Principy modelování a simulace systémů

Základní termíny

Všechny a stručně

Systém

Systém je soubor elementárních částí (= prvků systému), které mají mezi sebou určité vazby. Matematicky je systém dvojice S = {U, R}:

U – universum, množina všech prvků systému

R – množina všech relaci – vazeb prvků

Pro představu: Akvárko je systém složený ze stěn, vody, rybiček a všeho, co rybičky vyprděly. Vazby mezi rybičkami jsou takové, že velké rybičky žerou menší.

Isomorfní – ekvivalentní systémy, bijekce, 1:1

Homomorfní – podobné systémy, injekce, tvorba homomorfních systémů je principem modelování

Model

Model je napodobenina systému jiným, jednodušším systémem.

Příklad modelu: Fyzikální zákony jsou matematickým modelem reálného světa – modelují způsob, jakým reálný svět funguje.

Abstraktní – zjednodušený model zkoumaného systému, například nějaká čmáranice na papír, vzorce, whatever.

Simulační – abstraktní zapsaný kódem

Modelování a simulace

Modelování je proces vytváření modelu systému a simulace je pak získávání nových znalostí o původním systému pomocí experimentování na tomto modelu.

Příklad: Modelování je vytváření LEGO traktoru. Simulací je pak shození traktoru ze stolu a pozorování, jak moc se rozbije.

Důležitou částí simulace je vyhodnocení výsledků (výstupních dat).

Verifikace modelu

Kontrola, zda simulační model odpovídá abstraktnímu modelu. Čili že to, co jsme naprogramovali, dělá přesně to samé co jsme načmárali na papír.

Validace modelu

Ověření, zda model dává validní výsledky – takové, které by dávalo pozorování původního systému při stejných podmínkách. Validace je náročná. Nelze vyrobit model, který bude 100% validní, respektive ani u sebedokonalešího modelu nelze 100% validitu dokázat.

Takže třeba u výše uvedeného příkladu s LEGO traktorem bychom po pár shození LEGO traktoru a skutečného traktoru zjistili, že ten z Lega se rozbije jinak než ten skutečný, takže dělat model z Lega nebyl asi dobrý nápad a zkusili bychom to třeba s papírem.

Diskrétní simulace

Čas je v diskrétních simulacích nerovnoměrný. Simulátor skáče v čase vždy k další události v čase.

Simulace diskrétních systémů. Diskrétním systémem myslíme takový systém, ve kterém nás nezajímá stav v jakémkoli okamžiku v čase, ale pouze v klíčových momentech.

Proces

Proces je posloupnost událostí. Proces může být například zákazník v obchodu a jeho posloupnost událostí je: vstup do obchodu, výběr položek k nákupu, zaplacení na pokladně, odchod z obchodu.

Paralelní události se počítají sériově – nejdřív se provede jedna, pak druhá a teprve poté se posune simulační čas.

SHO – systémy hromadné obsluhy

Jde o diskrétní systémy, které kromě procesů obsahují fronty, obslužné linky a potažmo sklady.

Fronta

Procesy, které čekají na přidělení nějakých zdrojů (třeba čekají na obsloužení na nějaké obsazené lince), se mohou řadit do front.

Obslužná linka

Jde o zařízení, do kterého proces vstoupí, vykoná zde pomyslnou činnost a následně ho opustí. Pokud je linka plná, proces může vstoupit do fronty. Někdy se pojmem zařízení myslí práve obslužná linka.

Sklad

Sklad je linka, která umí obsluhovat více procesů. Zároveň může nějaký proces zabrat více míst ve skladu.

Příklad: Parkoviště je sklad s 10ti sloty. Autobus zabere 4 sloty, auto jeden. Když na parkovišti stojí 3 auta a autobus, jsou tam jen 3 volná místa a další autobus musí stát ve frontě a čekat, až někdo odjede.

Priority procesů

Některé procesy mohou mít větší prioritu. Jsou dva typy priority: slabou a silnou.

Slabá priorita

Při příchodu procesu se slabou prioritou k zařízení se nejprve dokončí obsluha procesu, který je uvnitř.

Silná priorita

Právě obsluhovaný proces je postaven do zvláštní, vnitřní fronty. Silně prioritní proces je obsloužen. Pak se teprve doobslouží prvky z vnitřní fronty.

Kalendář událostí

Řídící mechanismus simulace. Pokaždé, když nějaký proces dokončí svou diskrétní činnost a „čeká“ na opětovnou činnost (například je ve frontě, v nějaké trvající obsluze nebo prostě čeká na nějaký stav systému), kalendář vybere proces, který má běžet. Pokud v aktuálním simulačním čase už žádný proces nemá naplánovanou aktivitu, posune se kalendář v čase k nejbližšímu budoucímu procesu a aktivuje ho.

Kalendář obsahuje: čas kdy má událost nastat, proces který se má probudit, a případně i prioritu tohoto procesu.

Spojitá simulace

Pokud potřebujeme simulovat systém se spojitými průběhy, použiváme spojitou simulaci. Spadá sem například fyzikální simulace pohybu vesmírných těles, elektrických obvodů atd. Stejně jako u diskrétních simulací je zde čas diskrétní. Rozdíl je však v tom, že výpočet stavu systému probíhá v daných intervalech, také krocích. Kroky jsou dané vrchním a spodním omezením – simulátor může v případě potřeby krok zmenšit nebo zvětšit.

Princip fungování spojitého simulátoru

Stanoví se počáteční podmínky, stav systému v okamžiku zahájení simulace

Simulátor se posune v čase o krok dopředu

Simulátor vypočítá stav všech součástí systému

goto 2

Numerické metody

Výpočet stavu systému je často spojen s řešením diferenciálních funkcí. Např. při řešení fyzikálních modelů jsou jednotlivé prvky systému ve vztazích definovaných pomocí fyzikálních zákonů. Na počítači se diferenciální funkce řeší pomocí numerických metod. Funkce se přibližně proloží (aproximuje) polynomem a pak se extrapoluje výsledek v příštím integračním kroku.

Eulerova metoda

Runge-Kutta

Numerické metody a matematická pravděpodobnost

Dorovnávání času

Pokud je simulační čas od konce simulace vzdálený o malou část obvyklého derivačního kroku, přepočítá se poslední krok rovnou až do konce simulace.

Kombinovaná simulace

Jde o spojitou simulaci s (občasnými) diskrétními událostmi. Simulátor počítá spojité průběhy a kontroluje, zda nedošlo k nějaké diskrétní události.

Příklad: Míček skáče po zemi. Jeho stoupání a klesání je spojitý průběh a počítá se spojitou simulací. Dopad míčku na zem, ztráta pohybové energie, změna směru pohybu – to je, pokud nezkoumáme fyzikální vlastnosti a pochody během odrážení míčku, diskrétní událost.

Řízení kombinované simulace

Stejné jako spojitá simulace s následujícím rozdílem: Při každém integračním kroku simulátor kontroluje, jestli nedošlo k nějaké diskrétní události. Pokud ano, tak se vrátí o krok zpátky, zmenší velikost kroku a počítá znovu. V momentě, kdy už nelze krok zmenšit, dojde k diskrétní události a nastaví se opět původní velikost integračního kroku.

Tento princip je důležitý kvůli co nejpřesnějšímu zjištění, kdy přesně k diskrétní události došlo.

Shrnutí

systém, model, modelování (abstraktní model, simulační model), verifikace, validace

simulování, analýza výsledků

diskrétní simulace, kalendář, SHO

spojitá simulace, numerické metody, dokročení

kombinovaná simulace, detekce diskrétní události