Informatika - Katedra informatiky na UPOL

Diplomová práce


Zadávání, odevzdávání a obhajoba diplomové práce se řídí dokumenty Pravidla pro zadávání, odevzdávání a obhajoby závěrečných prací a Opatření děkana Přírodovědecké fakulty UP v Olomouci k provedení některých ustanovení Studijního a zkušebního řádu UP v Olomouci a Rigorózního řádu UP v Olomouci.

Témata diplomových prací


Eduard Bartl

Modeling of properties of chemical compounds based on graphical representation of molecular structure and deep learning algorithms

Práce bude vznikat v součinnosti s Ústavem molekulární a translační medicíny Lékařské fakulty Univerzity Palackého v Olomouci. Podrobné informace budou sděleny na osobní schůzce.

Automatické ověřování podpisů  |  Lukáš Oščádal

Práce se zabývá problémem ověřování podpisu na základě pouze jednoho dostupného podpisového vzoru. Řešení je založeno na konstrukci kostry podpisu, která je schopna detekovat změny tvaru. K vyhodnocení shody jsou použita fuzzy inferenční pravidla.

Transformace barevných prostorů pomocí neuronových sítí (spolupráce s GMC Software)

Diplomant se nejprve seznámí s problematikou transformace barevných prostorů (RGB, CMY, CMYK, HSV, HSB, CIE XYZ, Lab a dalších). Dále popíše neuronové sítě použitelné k těmto transformacím. Následně implementuje vybrané neuronové sítě v .NET nebo v Kotlin a provede jejich test na konkrétních transformacích.

Radim Bělohlávek

Faktorová analýza relačních dat: algoritmy a experimenty

Faktorová analýza relačních dat představuje moderní směr výzkumu v oblasti analýzy dat, který je rozvíjen také na katedře informatiky PřF. Cílem diplomové práce je nastudovat a implementovat základní existující algoritmy, provést jejich implementaci, experimentální porovnání a případně navrhnout jejich vylepšení.

Lenka Carr-Motyčková

Výukový simulátor distribuovaných algoritmů  |  Petr Hrbek

Prostudujte simulátor DAJ, který je v současnosti používaný Vytvořte simulátor, který bude podporovat synchronní i asynchronní prostředí. Doplňte jej grafickým rozhraním. Implementujte vzorové úlohy.

Miroslav Kolařík

Kvalitní axiomatické systémy

Diplomant vytvoří aplikaci na zjednodušování axiomatických systémů daných identitami. Aplikace bude umět nalézt redundantní axiomy odvozením z ostatních axiomů a tedy bude umět odvozovat dané identity z jiných identit (samozřejmě pokud to čas a paměť dovolí). Aplikace bude dále umět ověřovat nezávislost daných axiomů hledáním modelů splňujících všechny axiomy daného axiomatického systému kromě jednoho. Kroky ověřování aplikace a rovněž modely budou uživateli zpřístupněny v přehledné formě s možností exportu. Diplomant se při vytváření aplikace zaměří také na minimalizování náročnosti výpočetního procesu a pojedná o složitosti výpočtů v závislosti na vstupech.

Nový expertní systém v PROLOGu  |  Milan Vojáček

Diplomant se naučí programovací jazyk PROLOG a seznámí se s expertními systémy. Poté v PROLOGu naprogramuje vlastní (originální) expertní systém vhodného rozsahu. V textové části diplomant pojedná o PROLOGu, o expertních systémech a zejména pak o nově vytvořeném expertním systému (včetně jeho výhod a nevýhod).

Kvantová kryptografie

Cílem diplomové práce je z různých zdrojů samostatně nastudovat vše podstatné o kvantové kryptografii. Textová část práce bude sestávat zejména z těchto poznatků a také pojedná o výhodách a nevýhodách použití kvantové kryptografie v současnosti. Značná část textu bude věnována algoritmům, včetně algoritmů používaných v praxi.

Program na podporu výuky

Téma určeno zejména studentům učitelského oboru. Po vzájemné dohodě si diplomant vybere téma úzce související s informatikou, které zpracuje jako interaktivní výukový program (spolu s učebním textem adekvátního rozsahu). Příklady témat: agregační funkce, algebraické struktury, zobecnění svazů, rekurentní rovnice, lineární algebra, atd.

Aplikace pro práci s kongruenčními vlastnostmi variet algeber

Diplomant nastuduje základy univerzální algebry, zejména pak partie týkající se kongruenčních vlastností variet algeber a mal'cevovské podmínky. Poté vytvoří aplikaci, která bude algebraikům pomáhat při hledání kongruenčních vlastností variet algeber. U konkrétních příkladů diplomant zkusí ověřit, zda známé termy splňující příslušné mal'cevovské podmínky pro permutabilní, n-permutabilní, distributivní, modulární či aritmetické variety, jsou nejlepší možné, případně určí nové (jednodušší). Diplomant by se mohl pokusit i o případné zjednodušení některých (obecných) mal'cevovských podmínek. Diplomant by měl být také v jisté míře schopen umět nalézat vhodné protipříklady, dokazující, že vybraná varieta nemá danou kongruenční vlastnost a mohl by se pokusit i o vyřešení některých otevřených problémů souvisejících s tématem.

Zaheslování souboru zvukem  |  Roman Vyjídáček

Cílem diplomové práce je vytvořit aplikaci sloužící k zaheslovaní souboru pomocí zvuku či hlasu. K rozpoznání a analýze zvukové stopy bude použito fuzzy logiky a neuronových sítí. Program zaznamená určitou zvukovou stopu a analyzuje a porovná ji s uloženou stopou. Soubor bude odemčen, pokud budou zvukové stopy dostatečně podobné. Součástí práce bude také otestování aplikace alespoň na 15 reálných uživatelích. K implementaci bude použit jazyk Java. Textová část bude obsahovat popis výhod a nevýhod použitých metod pro analýzu hlasu, možnosti vývoje pro platformu Java a také shrnutí výsledků testování aplikace na reálných uživatelích.

Steganografické šifry  |  Ondřej Kašpar

Cílem práce je stručně zmínit historii steganografie, popsat metody digitální steganografie (ukrývání zpráv do textu, obrázků a audiosignálu), vysvětlit základy stegoanalýzy a uvést čtenáře do základů kryptografie. Následně nastudovat a implementovat vybrané steganografické šifry a vytvořit vlastní steganografickou šifru v kombinaci s jinou kryptografickou metodou.

Enigma

Diplomant popíše šifrovací stroj Enigma, podrobněji zejména části úzce související s informatikou. Dále se zaměří na popis slabin Enigmy a navrhne jejich odstranění/vylepšení tak, aby vznikla silnější šifra založená na podobných principech jako Enigma. Vylepšení vtělí do uživatelsky přívětivé grafické podoby, kterou bude možno v praxi využívat. V práci bude vysvětlena i problematika generování náhodných a pseudonáhodných čísel a její vliv na kryptologii.

3D tisk  |  Jan Hamerník

Cílem práce je navrhnout různé struktury pro zpevnění 3D modelů s většími dutinami. Praktická část práce bude obsahovat program, který na vstupu přijme 3D model a vygeneruje jeho verzi se zpevněnými dutinami podle uživatelova nastavení pro následný 3D tisk. Práce také bude obsahovat praktické otestování navržených struktur a jejich souhrnnou analýzu. Teoretická část se mimo jiné dotkne historie 3D tisku a jeho uplatnění v různých odvětvích.

Jan Konečný

Biclustering bináních dat

Detekce komunit v grafech

Petr Krajča

Jazyk pro programování GPGPU  |  Martin Hořava

Cílem práce je navrhnout programovací jazyk vyšší úrovně, který umožní snažší programování GPGPU. Mělo by se jednat o jazyk, který bude stavět na technologích jako CUDA a OpenCL, ale bude zjednodušovat zadávání programů pro paralelní běh a současně zjednoduší práci s pamětí.

Programovací jazyk pro distribuované výpočty  |  Peter Vaňušanik

Cílem práce je navrhnout programovací jazyk a jeho běhové prostředí, které umožní efektivní tvorbu a běh programů v distribuovaném systému.

Optimalizace v dynamicky typovaných jazycích

Diplomant nastuduje vybrané optimalizace pro dynamicky typované jazyky a implementuje interpretr/překladač zvoleného jazyka využívající tyto optimalizace.

„Inteligentní“ editor pro jazyk Java

Cílem práce je navrhnout editor (vývojové prostředí) pro jazyk Java, který umožní programátorovi soustředit se na samotnou tvorbu programu tím, že jej odstíní od psaní zbytečného kódu. Editor by měl být schopen automaticky doplňovat části kódu, které jsou zjevné, a zároveň by měl být schopen skrývat tyto části kódu tak, aby nerušily při programování.

Verzování zdrojových kódů založené na syntaxi a sémantice jazyka  |  Petr Němeček

Cílem práce je vytvořit systém pro správu zdrojových kódů, který bude využívat znalosti o konkrétním programovacím jazyce k řešení kolizí při slučování. Tyto informace by dále měly být použitelné k automatické tvorbě srozumitelného zápisu o provedených změnách.

Michal Krupka

Lze v Common Lispu napsat rychlý program?

Kvalitní implementace Common Lispu obsahují různé nástroje na optimalizaci programu na rychlost. Uvádí se, že v některých případech je možné program optimalizovat tak, že bude stejně rychlý jako ekvivalentní program napsaný v C. Cílem práce je toto tvrzení ověřit. Diplomant nastuduje a popíše možnosti optimalizace programu v Common Lispu a pokusí se je použít na vybrané reálné úkoly. Tyto úkoly současně vyřeší i v C a výsledky porovná. Jako hlavní implementace Common Lispu použije LispWorks a SBCL. V práci bude popsáno, do jaké míry (ve srovnání s programy napsanými v C) a za jakých okolností (pro jaké typy úloh, v jakých implementacích) lze programy napsané v Lispu optimalizovat.

Predikce neznámých hodnot v datech  |  Jiří Balun

Student nastuduje a popíše vybrané metody predikce neznámých hodnot v datech s důrazem na tabulková data. Pokusí se modifikovat existující nebo vyvinout nové metody pomocí klasické a fuzzy formální konceptuální analýzy. Jedná se o výzkumné téma. Pod tabulkovými daty si lze představit jakoukoli tabulku (např. z databáze) s binárními nebo odstupňovanými hodnotami. Predikce (odhadování) neznámých hodnot může být např. základem doporučovacího systému, pokud hodnoty znamenají uživatelské preference v nějaké oblasti. (Například pokud data obsahují divácké hodnocení shlédnutých filmů, může systém na základě analogie s podobnými filmy a podobnými diváky odhadnout, zda se divákovi bude líbit film, který zatím neviděl.)

Topologické metody v analýze a zpracování dat

Použití topologie je moderním trendem v oblasti zpracování velkých dat. Základní myšlenkou je reprezentovat velkou databázi jako mnohodimenzionální útvar (jako jsou v dimenzi 2 např. kulová plocha, anuloid, Möbiova páska apod.) a z jeho topologických vlastností získat informace o datech. Student se seznámí se základy obecné a algebraické topologie a s literaturou o aplikacích topologie v analýze a zpracování dat. V práci podá souhrn vybraných metod a výsledků v této oblasti s důrazem na původní praktické příklady. Ve spolupráci s vedoucím práce se také pokusí navrhnout nové metody, např. v oblastech zkoumaných na KI (formální konceptuální analýza, fuzzy logika).

Přibližná minimalizace fuzzy automatů

Fuzzy automaty představují rozšíření klasických konečných automatů. Narozdíl od klasických automatů je možné u fuzzy automatů uvažovat minimalizaci, vedoucí k automatu, rozpoznávajícímu nikoli tentýž, ale podobný jazyk. Přípustná míra podobnosti (maximální chyba) je předepsána uživatelem. Přibližnou minimalizaci lze chápat jako ztrátovou kompresi, která za cenu přijatelné chyby vede k větší redukci velikosti. Jedná se o nové výzkumné téma. Student nastuduje dostupnou literaturu a pak se ve spolupráci s vedoucím pokusí o původní výsledky.

Přesné výpočty s reálnými čísly

Student nastuduje a v práci shrne současné znalosti o přesné reprezentaci reálných čísel v paměti počítače. Ve spolupráci s vedoucím se pokusí získat nové poznatky. V jazyce Common Lisp naprogramuje základní funkce pro práci s přesně reprezentovanými reálnými čísly, které umožní počítat s reálnými čísly s libovolnou přesností, tj. bez akumulace chyb. V programu využije techniky líného vyhodnocování.

Denotativní sémantika funkcionálních programovacích jazyků

Jedná se o matematickou metodu, která stojí na reprezentaci programů jistými matematickými objekty a z jejich vlastností usuzuje na vlastnosti programů. Funkcionální programovací jazyky, které stojí na typovaném λ-kalkulu, lze takto dobře reprezentovat zejména díky absenci vedlejšího efektu. Jde o výzkumné téma. K pochopení teorie je třeba některých základních poznatků z teorie uspořádaných množin (svazů) a topologie, které diplomant nastuduje a v práci podá. Dále nastuduje a v práci popíše základní poznatky denotativní sémantiky a ve spolupráci s vedoucím se pokusí o nové výsledky.

Taxonomie nad neúplnými daty

V taxonomii jde o klasifikaci kategorií nějakých objektů do vhodné struktury, zejména stromové. Používá se např. v biologii ke klasifikaci organismů do biologických kategorií. Jde o stále živý problém v mnoha oblastech. Na naší katedře byla vyvinuta metoda založená na formální konceptuální analýze, která umožňuje navrhnout taxonomii daných objektů pomocí jejich známých atributů. Metoda byla použita k navržení taxonomie zkamenělin belemnitů (Bělohlávek, Košták, Osička). V diplomové práci půjde o rozšíření metody o možnost práce s neúplnou informací (zkamenělina nemusí být kompletně dochovaná, některé atributy jsou proto neznámé). Diplomant na to použije a v práci vysvětlí existující teorii, kterou se v případě potřeby (která pravděpodobně nastane) pokusí ve spolupráci s vedoucím dále rozvinout. Práce bude založená zejména na zpracování konkrétních podkladů; kromě zkamenělin to mohou být např. údaje o některých druzích hmyzu, případně jiné podle zájmu diplomanta. Výsledkem by měly být navržené taxonomie a nové teoretické poznatky.

Tomáš Kühr

Pluginy do softwaru pro vizualizaci biomolekul

Cílem práce bude vytvořit zásuvný modul pro zvolený nástroj pro vizualizaci biomolekul (Pymol, VMD). Téma bude dále konkretizováno po domluvě případného zájemce s vedoucím práce a zadavateli z Katedry fyzikální chemie.

Petr Osička

SAT Solver

Student se seznámí s principy fungování SAT solverů. Cílem práce je implementovat SAT solver efektivní pro určitý typ instancí, které lze obdržet z instancí problému pokrytí bipartitního grafu biklikami.

Bot pro Starcraft Broodwar  |  David Kolibáč

Práce navazuje na diplomovou práce R. Škrabala obhájenou v minulém roce. Cílem práce je rozšírit bota tak, aby byl schopen obstát v konkurenci ostatních botů a lidských hráčů. Práce je náročná na studium literatury i implementačně.

Generování a vzorkování bipartitních grafů

Cílem je vytvořit systém pro genorování (malých) a vzorkování (větších) bipartitních grafů s požadovanými vlastnostmi. Práce je výzkumného charakteru, náplní je návrh a implementace algoritmů.

Jan Outrata

Systém pro klonování PC

Předmětem práce je rozšíření, příp. reimplementace, stávajícího systému pro klonování linuxových operačních systémů na počítačích na učebnách katedry informatiky UP. Stávající systém tvoří sada Bash skriptů pro linuxový systém a toto je i preferované řešení (ovšem ne nutné). Cílem výsledného řešení je podpora pro klonování i operačních systémů MS Windows, tj. celého počítače, s automatickou konfigurací systémů po vyklonování. Dalšími žádanými vlastnostmi budou klonování více počítačů zároveň, uložení obrazu počítače na server a klonování z něj nebo automatické opakování klonování při chybě.

Visualizace konceptuálních svazů

Cílem práce je vytvoření FCA (Formal Concept Analysis) rozšíření grafické aplikace pro visualizaci (Hasseova diagramu) svazů JLatVis napsané v Javě. Rozšíření bude spočívat zejména v zobrazení (fuzzy) konceptuálního svazu (pro výpočet svazu budou využity existující implementace algoritmů). Důraz bude kladen na přehlednost, přizpůsobitelnost a provázanost zobrazení svazu a tabulky vstupních dat. Rozšíření bude zároveň podporovat využití konceptuálních informací ve všech funkcích aplikace, kde to bude mít smysl, např. k vyhledávání a navigaci ve svazu, vyznačení jeho částí atd.

Dokonalý výtah  |  Lukáš Vrajík

Student vytvoří algoritmus pro řízení výtahu s cílem minimalizace (nejdelšího) času čekání na výtah v patře a zároveň minimalizace času pohybu výtahu. Algoritmus bude v řešení této optimalizační úlohy využívat historii pohybu výtahu. Řešení pro jeden výtah bude poté rozšířeno na dvojici (či obecně n-tici) výtahů vedle sebe. Výstupem práce bude samotný algoritmus, jeho prototypová implementace nevyžadující kromě základních prostředků zvoleného programovacího jazyka žádný další software (např. rozšiřující knihovny nebo moduly jazyka, klasifikační nebo expertní systém apod.) a výsledky experimentů ukazující optimální řízení výtahu.

Prezentace záznamů sportovních aktivit

Student prozkoumá datové formáty používané k uložení záznamů sportovních aktivit uživatele na zařízeních jako sportovní hodinky, fitness náramky, GPS navigátory, mobilní telefon s příslušnou aplikací apod. (FIT, TCX, GPX, PWX, HRM aj.) a vytvoří software pro přehledné grafické zobrazení dat záznamů, grafů a statistik za zvolené období nad nimi, ze zálohy obsahu celé paměti zařízení (obsahující tedy mj. i soubory se záznamy aktivit). Důležitou vlastností software bude rozpoznání stejných záznamů ze záloh zařízení v různých časech. Prezentace informací ze záznamů bude formou sady provázaných webových stránek nevyžadujících webový server.

Vizualizace Booleovské dekompozice matic

Student nastuduje základy Booleovské dekompozice matic a navrhne způsob přehledné a interaktivní vizualizace výsledku dekompozice (množiny faktorů jako Booleovských submatic vstupních dat) i průběhu dosažení výsledku přímo na vstupních datech (Booleovská matice) až středně velkého rozsahu (desetitisíce řádků, stovky sloupců). Tuto vizualizaci pak implementuje do podoby grafické aplikace s možností uložení prezentovaných informací do obrázků pro odborné články. Součástí práce není implementace algoritmů Booleovské dekompozice matic, vstupem implementované aplikace budou výstupy software implementujících algoritmy.

Martin Trnečka

Prolomení CAPTCHA

Cílem této práce je vytvoření nástroje, který bude schopen prolomit CAPTCHA zabezpečení.

Webová služba pro doporučování hudby  |  Jiří Valůšek

Cílem této práce je navrhnout algoritmus pro doporučování hudby dle uživatelských preferencí. Algoritmus bude realizován jako webová služba využívající již existující API (Spotify, Youtube, Discogs.com).

Vilém Vychodil

Rozpoznávání diagramů uspořádaných množin  |  František Veselý

Cílem práce je navrhnout algoritmy pro strojové rozpoznávání diagramů uspořádaných množin, zejména svazů, na základě bitmapových předloh. Práce by měla obsahovat návrh algoritmů, jejich implementaci, a experimentální ověření efektivity.

Experimentální jazyk pro definici fyzických plánů pro PostgreSQL

Cílem práce je vytvořit experimentální prefixový programovací jazyk pro definici fyzických plánů pro systém řízení báze dat PostgreSQL. Předpokladem je dobrá znalost programování v C, snaha a ochota porozumět zdrojovým kódům PostgreSQL a rozšířit je.

Překladač Tutorial D do MonetDB MAL

Cílem práce je implementovat překladač jazyka Tutorial D do MonetDB Assembly Language (MAL). Práce předpokládá znalost relačního modelu dat, jazyka Tutorial D, vysokou programátorskou úroveň a schopnost zorientovat se ve velkém softwarovém balíku.