View this PageEdit this PageUploads to this PageHistory of this PageTop of the SwikiRecent ChangesSearch the SwikiHelp Guide

Rozbor témat IMS-09/10

Obecné pokyny pro zpracování projektů:


Uznáno z loňska

Studenti, kteří byli v minulém roce hodnoceni 15 a více body z projektu se mohou přihlásit do této varianty a budou jim (v určitém okamžiku najednou) přiděleny loňské body. Tito studenti pochopitelně netvoří týmy, ale vystupují sami za sebe.


Vlastní téma (naprosto odlišné od ostatních), nutno schválit

Pokud máte nápad na model, který nezapadá do žádné z variant (striktně vyžadováno), pak si nechte váš nápad schválit (e-mail, fórum, konzultace) a váš nápad zpracujte. Do tohoto tématu rozhodně nezapadají systémy hromadné obsluhy (SHO).


Implementace diskr. simulátoru založeného na přepínání procesů (opak řízení událostmi)

Ve zvoleném jazyce (C++,Java,Python) naprogramujte diskrétní simulátor s kalendářem událostí, který umožní modelování procesů (jako v SIMLIB). Tento simulátor vytvořte jako knihovnu. Součástí knihovny budou i třídy pro zpracování SHO (fronta, zařízení, sklad, základní statistika). Ověřte vaši knihovnu na příkladě vlastního modelu SHO, kde demonstrujete schopnosti knihovny. Demonstrační model může být triviální (jeden typ procesů, několik linek). Knihovna a princip řízení simulace musí být v dokumentaci důkladně popsány.


Implementace diskr. simulátoru založeného na řízení UDÁLOSTMI (opak procesně orientovaného přístupu)

Ve zvoleném jazyce (C++,Java,Python) naprogramujte diskrétní simulátor s kalednářem událostí, který umožní modelování na základě událostí. Tento simulátor vytvořte jako knihovnu. Součástí knihovny budou i třídy pro zpracování SHO (fronta, zařízení, sklad, základní statistika). Ověřte vaši knihovnu na příkladě vlastního modelu SHO, kde demonstrujete schopnosti knihovny. Demonstrační model může být triviální (jeden typ procesů, několik linek). Knihovna a princip řízení simulace musí být v dokumentaci důkladně popsány.


Implementace knihovny pro generování pseudonáhodných čísel

Naprogramujte knihovnu pro generován pseudonáhodných čísel. Knihovna musí obsahovat minimálně generátor čísel řídících se rovnoměrným rozložením, exponenciálním rozložením a normálním rozložením. Nad tyto tři vytvořte ještě generátory dalších třech existujících rozložení (zdroj: Wikipedia). Vašimi generátory vygenerujte pro každý typ rozložení statisticky hodnotný soubor dat (např. 1000 čísel). Ze souboru vygenerujte histogram a ten porovnejte (stačí vizuálně v grafu) s analytickým vyjádřením hustoty pravděpodobnosti. To znamená, že pro 6 rozložení to bude 6 grafů v dokumentaci. V dokumentaci popište metody generování čísel dle vašich zvolených rozložení.


Implementace spojitého simulátoru

Ve zvoleném jazyce (C++,Java,Python) naprogramujte spojitý simulátor na úrovni knihovny. Numerickou integraci v simulátoru zajistěte minimálně Eulerovou metodou, Runge-Kutta metodou a zvolenou vícekrokovou metodou. Funkčnost knihovny prezentujte na jednoduchém příkladě spojitého modelu. Uživatel knihovny musí mít možnost specifikovat požadovaný integrační krok a metodu integrace. V dokumentaci popište architekturu knihovny a demonstrujte výsledky experimentů s demonstračním modelem.


Model analogového filtru (včetně specifikace filtru)

Navrhněte smysluplný analogový filtr (ideálně nějaký z vašeho okolí). Navrhněte a implementujte jeho model prostředky knihovny SIMLIB (výhradně!!!). V rámci experimentování s modelem demonstrujte funkci modelu v zajímavých reálných situacích (na vstup modelu přiveďte konkrétní signál a sledujte odezvu). Experimentujte s parametry modelu. Zkuste se vyhnout jednoduchým zvukovým efektům.


Model dopravy: MHD

Modelujte dopravní síť hromadné dopravy v konkrétním městě. Pokuste se respektovat (s ohledem na možnosti) skutečnou strukturu sítě a harmonogramy jízd. Modelujte příchody požadavků do systému (toky cestujících) s ohledem na skutečný stav. Model implementujte v SIMLIB. Zkoumejte průchodnost systému. Součástí modelu je zřejmě i studie konkrétního města.


Model dopravy: vlaky

Podobně jako předchozí model MHD. Lze pojmout jako zkoumání průchodnosti dopravní sítě nebo jako zkoumání jednoho konkrétního (většího) uzlu. V případě modelu dopravního uzlu (nádraží, překladní stanice) pochopitelně opět vycházejte z konkrétního existujícího místa na této planetě. Lze u tohoto pojetí navíc předpokládat, že se budete zabývat větším detailem (například pohyb vlaku o kolejišti, výhybky, řazení vagónů, ...).


Model regulačního obvodu

Zvolte si realný příklad regulačního obvodu, kde se kombinuje spojitý jev (okolí, aktivita obvodu) a diskrétní události (sepnutí aktivity obvodu). Situace analyzujte formou diferenciálních (příp. diferenčních) rovnic a diskrétní části. Model vytvořte v SIMLIB. Simulačně ukažte činnost systému v různých situacích, případně navrhněte zlepšení obvodu a okolních podmínek.


Model ve vybraném simulačním jazyce

Zvolte si simulačná jazyk (např. Simula 67 – existuje pod názvem "cim"). Prostudujte způsob jeho použití v diskrétním či spojitém modelování. Navrhněte jednoduchý model demonstrující vlastnosti zvoleného jazyka. V dokumentaci popište důkladně váš model – cílem je předvést, že jste pochopili zvolený simulační jazyk.


Modelování číslicových obvodů

Vytvořte simulátor číslicových obvodů, který bude znát několik základních součástek (NAND, NOR, AND, NOT, OR) a bude programovatelný formou NETLIStu (popis propojení součástek). Ukažte činnost simulátoru na příkladech (kombinační logika, klopné obvody, ...). Předpokladem je různé časové zpoždění na různých typech bloků.
Výsledkem tedy bude program, který na vstup dostane strukturu obvodu (vámi navržený netlist), provede simulaci a na výstup vystiskne časový průběh všech (nebo sledovaných) portů (vstupních/výstupních) v obvodu. Součástí zadání je i navržení vstupního a výstupního formátu. Ať bude váš zvolený formát jakýkoliv, uživatel musí mít možnost sledovat průběh signálů v obvodu grafickou formou (aplikace má GUI nebo využije nějaký vizualizér – např. GNUplot). Není stanovena podoba aplikace, ani její způsob činnosti. Aplikace-simulátor musí korektně na logické úrovni simulovat (tzn. v úrovních 1,O,X) veškeré obvody z elementárních hradel.
Lze využít SIMLIB/C++ nebo libovolný z povolených programovacích jazyků.



SHO: nemocnice

Vytvořte diskrétní model (SIMLIB) nemocnice s různými odděleními, pacienty, zákroky, a podobně. Součástí modelu musí být i možné poruchy v systému. Modelujte proces příchodů pacientů do nemocnice (model musí být realistický, svůj model zdůvodněte v dokumentaci). Simulačně prověřte chování systému v různých situacích.


SHO: ukázka s několika různými procesy

Zvolte si problematiku, ve které vystupují alespoň dva různé procesy, kde každý má svou vlastní aktivitu a v některých situacích se oba procesy synchronizují (např. při předání něčeho). Vytvořte diskrétní model (SIMLIB). Simulačně prověřte chování systému v různých situacích.


SHO: výrobní podnik

Zvolte příklad výrobního podniku (ideálně reálného) a vytvořte jeho model. Model (v SIMLIB) musí realisticky vystihovat proces výroby, příchody požadavků do výroby a distribuci výrobků mimo podnik.

Ukázka celulárního automatu

Zvolte problematiku modelovatelnou efektivně (1D nebo 2D) celulárním automatem. Model musí realisticky popisovat zvolenou problematiku. Konstrukci modelu (pravidla automatu) zdůvodněte v dokumentaci (citováním odborného zdroje). Experimenty ukažte chování modelovaného systému.


Vlastní příklad diskrétního systému (téma musí být schváleno opravujícím)

Máte nápad na model diskrétního systému. Tématiku nutno schválit opravujícím.

Vlastní příklad spojitého systému (téma musí být schváleno opravujícím)

Máte nápad na model spojitého systému. Tématiku nutno schválit opravujícím.

Link to this Page