Témata pro studenty

Matematické modelování a numerická simulace růstu krystalů

Krystalická struktura materiálu má zásadní vliv na jeho mechanické vlastnosti. U nás ve skupině matematického modelování (MMG) má simulace procesů fázových přechodů v materiálech dlouhou tradici. Podrobně jsme se věnovali simulaci růstu krystalů a tvorby dendritických (chaotických rozvětvených) struktur při tuhnutí kovů. Podobně lze zkoumat procesy tání a nebo i komplikovanější procesy ve slitinách, jejichž primární hnací silou není přestup tepla (vznik tzv. martenzitických struktur). Pro matematický popis těchto procesů na úrovni kontinua (kdy nelze rozlišit jednotlivé částice) existuje několik přístpů, které lze použít: řešení úloh s volnou hranicí, vrstevnicová metoda (level set) nebo metoda fázového pole (phase field). Pro konkrétní fyzikální situace je potřeba zvolit vhodnou metodu, formulovat konkrétní matematický problém založený na soustavě parciálních diferenciálních rovnic a tento problém následně efektivně numericky řešit. Pokud je to možné, lze provést též matematickou analýzu problému, jejímž výsledkem jsou podmínky řešitelnosti soustavy a matematické vlastnosti jejího řešení.

Téma je dostatečně rozsáhlé pro práci v průběhu několika let. Student během své bakalářské práce pronikne do základů matematického modelování a numerické simulace některé jednoduché varianty problému. Pro názornost je vhodné formulovat problém nejprve ve dvou rozměrech, kde hranice mezi fázemi netvoří plochy, ale křivky. Dalším krokem je implementace numerického schématu, které tento problém řeší. V dalších letech (VÚ, DP) je možné přejít ke komplikovanějším variantám problému a zejména se věnovat implementaci numerických řešičů ve 3D, kdy značné výpočetní a paměťové nároky vyžadují použití paralelizace a neuniformních adaptivních numerických sítí.

Téma je vhodné pro studenty matematiky A, kteří se zároveň nebojí programování. Když se pustíte do práce, tak po chvíli pochopíte, k čemu v praxi ta matematika je :-)

Literatura:

[1] Beneš, M. Computational Studies of Anisotropic Diffuse Interface Model of Microstructure Formation in Solidification. Acta Math. Univ. Comenianae, 2007, 76, 39-59.

[2] Barrett, J. W.; Garcke, H. & Nürnberg, R. On Stable Parametric Finite Element Methods For The Stefan Problem and the Mullins-Sekerka Problem with Applications to Dendritic Growth. J. Comput. Phys., 2010, 229, 6270-6299.

[3] Strachota, P. Analysis and Application of Numerical Methods for Solving Nonlinear Reaction-Diffusion Equations. Dissertation, Czech Technical University in Prague, 2012.

CFD modely komplexních procesů v průmyslu

MMG spolupracuje s průmyslovými partnery na vývoji matematických modelů a simulačního softwaru pro komplexní procesy, v nichž významnou roli hraje (vícefázové) proudění tekutin. Příkladem je spalování uhlí a biomasy ve fluidních kotlích i v kotlích na práškové palivo. Kromě samotného proudění je nutné modelovat i řadu dalších jevů jako jsou chemické reakce při hoření, produkce a přenos tepla nebo interakce více fází v hořící směsi (plyn, částečky paliva, drcený vápenec). Sestavit výsledné rovnice je obtížný úkol vyžadující dobrou znalost matematiky i inženýrský „cit“. S ohledem na aplikaci výsledků simulací je totiž třeba činit vhodné kompromisy mezi složitostí modelu, úrovní detailů, přesností, výpočetní náročností a dalšími aspekty. Výsledné modely mají víceškálový (multiscale) charakter, který klade vysoké nároky na vlastnosti a efektivitu numerického řešiče. Proto často používáme paralelní implementace pracující na výpočetních clusterech. Modely a numerické algoritmy je třeba verifikovat (ověřit správnou funkci pomocí standardních testů) a validovat (srovnat výsledky s reálnými naměřenými hodnotami).

Kromě "populárního" spalování v kotlích, které rádi ukazujeme na různých seminářích pro studenty, lze velmi podobně přistupovat i k řešení dalších problémů. Z poslední doby máme zkušenosti s modelováním proudění a kondenzace ve výfukovém potrubí automobilů a s modelováním dynamiky Li-ion akumulátorů. V průběhu řešení průmyslových projektů jsme se zabývali všemi výše popsanými aspekty daných problémů, avšak každý z nich by si rozhodně zasloužil pečlivější rozbor a studium. Budeme velmi rádi, když nám s tím pomůže někdo z Vás, talentovaných studentů :-) Téma je dostatečně rozsáhlé pro práci v průběhu několika let, od bakalářské práce po práci diplomovou, a případně i v doktorském studiu.

Literatura:

[1] Anderson, J. D. Computational Fluid Dynamics: The Basics with Applications. McGraw-Hill, 1995.
[2] Gidaspow, D. Multiphase Flow and Fluidization: Continuum and Kinetic Theory Description. Academic Press, 1994.
[3] Cengel, Y. A. & Boles, M. A. Thermodynamics: An Engineering Approach. McGraw-Hill, 2006.
[4] Kolev, N. I. Multiphase Flow Dynamics 2: Mechanical Interactions. Springer, 2011.
[5] Kolev, N. I. Multiphase Flow Dynamics 3: Thermal Interactions. Springer, 2011.
[6] Basu, P.; Kefa, C. & Jestin, L. Boilers and Burners: Design and Theory. Springer, 1999.

Techniky procedurálního modelování v počítačové grafice

Řada objektů nebo scén má na první pohled velmi složitou geometrii, kterou však lze alespoň přibližně popsat relativně jednoduchými formálními pravidly nebo algoritmy. Jako příklad lze uvést rostliny nebo celé ekosystémy (louka, les), hornatý terén, oblaky, rozvlněnou vodní hladinu, města s pravoúhlou sítí ulic, lidský dav atd. Tyto objekty a scény často mají do jisté míry fraktální povahu. Chceme-li vytvořit jejich počítačový model, je možné analyzovat jejich strukturu a navrhnout algoritmus, který (často s využitím rekurze a náhodnosti) tento model automaticky vygeneruje. Tomuto přístupu se říká procedurální modelování, které obecně má dvě fáze:

  1. V první fázi jde o vygenerování abstraktního popisu objektu (např. strom se skládá z kmenu, větví, listů, květů atd.) s použitím vhodného formalismu (např. D0L systémy), který se uloží do odpovídající datové struktury.
  2. Následně jsou tato data použita pro vytvoření samotné geometrie objektu a k jeho otexturování.

Nakonec je nutné objekt vhodným způsobem vizualizovat (vyrenderovat), případně jej uložit do formátu, který bude možné zpracovat dostupnými vizualizačními nástroji nebo knihovnami.

V současnosti existuje nepřeberné množství algoritmů procedurálního modelování. Téma je vhodné pro kreativní studenty matematické informatiky nebo softwarového inženýrství, kteří jsou schopni samostatně studovat literaturu, vyhledávat si zdroje, a zároveň je baví programování. Lze si vybrat libovolný typ objektu, udělat si přehled o metodách jeho procedurálního modelování, implementovat nejprve ty základní a dále je vylepšovat s použitím literatury i vlastních nápadů. Při práci student využije a zdokonalí své dovednosti z matematiky, programování, teoretické počítačové grafiky, stejně jako vlastní fantazii. Mimo to by si měl procvičit správné postupy při tvorbě softwarového projektu.

Literatura:

[1] Prusinkiewicz, P., Lindenmayer, A. The Algorithmic Beauty of Plants. Springer-Verlag, 1990. ISBN 978-0387972978.

[2] Kelly G., McCabe H. A Survey of Procedural Techniques for City Generation. ITB Journal (14), 2006, pp. 87-130.

[3] Smelik R. M., de Kraker K. J., Tutenel T., Bidarra R., and Groenewegen S. A. A Survey of Procedural Methods for Terrain Modelling. In Proceedings of the CASA Workshop on 3D Advanced Media In Gaming And Simulation (3AMIGAS), Amsterdam, The Netherlands, June 2009.

Hardwarová a softwarová řešení pro vysoce výkonné počítání

Na katedře matematiky společně s katedrou inženýrství pevných látek provozujeme výpočetní svazek (cluster) pro paralelní vysoce výkonné výpočty (HPC - High Performance Computing), který neustále rozšiřujeme. Stejně tak stoupá počet jeho uživatelů. Tento stále složitější systém již vyžaduje profesionální softwarová řešení, používaná i v předních světových výpočetních centrech. Student, který si zvolí toto téma, se postupně seznámí se specifickými problémy při stavbě a provozování výpočetního clusteru, od volby a nastavení hardwaru a operačního systému přes konfiguraci distribuovaného systému souborů až po nasazení softwaru pro zpracování úloh (job scheduler). Všechny systémy lze bezpečně testovat s pomocí virtualizačních nástrojů, které jsou dnes již volně k dispozici. V pokročilejších stádiích práce student analyzuje možnosti více dostupných řešení a navrhne funkční softwarovou konfiguraci výpočetního svazku. Získané zkušenosti bude možné uplatnit při konfiguraci existujících reálných systémů.

Nově se otevírá možnost využít cluster HYPERION (672 jader AMD Opteron, 1600 GB RAM), který bude uveden do provozu na podzim 2015. Místo na konfiguraci softwaru se lze zaměřit na návrh paralelních algoritmů numerické matematiky, jejich implementaci a zlepšování jejich efektivity (na základě poznatků z profileru). Za tímto účelem se nabízí celá řada  možností (hybridní paralelizace, vyvažování zátěže, optimalizace přístupů do paměti a využití cache, optimalizace komunikace, pevné vazby procesů na výpočetní jádra atd).

Využití metod hlubokého učení k automatickému obchodování na kryptoměnové burze

Kryptoměny mají do značné míry spekulativní povahu a obchodování s nimi není tolik ovlivněno vnějšími faktory, jako je to na burzách akcií. Kryptoměnové burzy nabízejí ruční zadávání příkazů přes webové rozhraní, avšak rozhodnutí nakoupit či prodat je jako sázení loterie. Kromě toho lze využít aplikační rozhraní (API) pro obchodování a s jeho pomocí vytvářet automaticky obchodující (ro)boty. Robot obvykle uplatňuje pevně naprogramovanou tzv. strategii, a obvykle prodělává. Není však možné díky odtrženosti kryptoměn od reálné ekonomiky vypozorovat v obchodování složitější vzory chování, které by umožnily predikovat budoucí vývoj a vyvinout výdělečnou strategii? A bylo by možné k tomu využít hluboké neuronové sítě (deep neural networks)?

V rámci dané práce bychom se pokusili prozkoumat, zda je vůbec nějaká šance na úspěch. Ve hře je nejen návrh architektury neuronové sítě, ale také výběr vstupních dat, časového rámce pro jejich sběr, a především otázky, na kterou má neuronová síť odpovědět. Například existují sítě, které umí predikovat budoucí vývoj (tvar křivky) ceny na základě historických dat. Predikce tak obsahuje spoustu informace, ale její úspěšnost je nepatrná. Jde to udělat chytřeji?

Práce nabízí příležitost porozumět metodám strojového učení a zejména fungování hlubokých neuronových sítí. Dále si student osvojí programátorské schopnosti a práci v Linuxu z uživatelské (překvapivě) i administrátorské stránky. Bonusem je náhled do fungování finančních trhů a samozřejmě vidina pohádkového zbohatnutí :)

Veškeré analýzy lze provádět na historických i veřejně dostupných aktuálních datech.

Literatura:

[1] C. C. Aggarwal - Neural Networks and Deep Learning, Springer, 2018.

[2] F. Chollet - Deep Learning with Python, Manning Publications Co., 2018.

[3] G. Zaccone, R. Karim - Deep Learning with TensorFlow, Packt Publishing, 2018.

[4] S. Pattanayak - Pro Deep Learning with TensorFlow, Apress, 2017.

[5] K. Söze - Bitcoin and Cryptocurrency Technologies. Sabi Shepherd Ltd., 2019.

 


 

Témata, která již nejsou nabízena:

Vizualizace a organizace dat se strukturou grafu

Ve smyslu teorie grafů se grafem rozumí množina vrcholů (bodů) pospojovaných hranami (dvouprvkovými množinami vrcholů). Tato datová struktura, případně doplněná o další vlastnosti, může reprezentovat široké spektrum reálných systémů, například silniční síť mezi městy, propojení počítačové sítě, vztahy mezi uživateli sociálních sítí typu Facebooku nebo závislosti mezi moduly softwarového projektu. Grafy lze různými způsoby zobrazit v rovině i v prostoru. Vhodná vizualizace grafu může zásadním způsobem pomoci při pochopení či organizaci systému, který je grafem reprezentován. Dodnes však neexistuje mnoho nástrojů pro vizualizaci grafových struktur, které by byly schopné zpracovat velké objemy vstupních dat (řádově tisíce i miliony vrcholů) a zároveň by poskytovaly uživateli dostatečně interaktivní prostředí. Uživatel musí být schopen pohodlně a efektivně volit způsob zobrazení tak, aby výsledná vizualizace vystihovala podstatné vlastnosti vstupních dat. Mělo by být možné např. zobrazit jen zvolenou podmnožinu zobrazených uzlů, seskupovat a vybírat uzly na základě jednoduchých i algoritmických kritérií, přidávat anotace k uzlům i hranám atp. Úkolem studenta by bylo začít vývoj aplikace s popsanými vlastnostmi. Důležitým aspektem před začátkem vývoje je výběr vhodných nástrojů pro implementaci (programovací jazyk, prostředí pro tvorbu GUI apod.) a rovněž rozumný návrh datových struktur, které budou schopny efektivně zpracovat data požadovaným způsobem. Návrh aplikace by měl být navíc dostatečně abstraktní, aby ji bylo možno použít pro co nejširší třídu vstupních dat.

Téma je vhodné pro studenty matematiky A i B se zálibou v programování.