1. a 2. přednáška Základní pojmy Abstrakce zanedbání aspektů zkoumaných objektů, které nejsou z pohledu konkrétního typu zkoumání důležité. Nezanedbané aspekty jsou zvládnutelné. Abstrakce v modelování = systémy. Alternativně na objektech zkoumání vymezujeme systémy. Okolí - objekty reálného světa, které nebyly vybrány pro účely zkoumání, ale přesto je nutné uvažovat o jejich existenci. Abstrakce okolí = okolí systému. Statický systém - abstrahuje od významu času (zanedbání času). Dynamický systém - význam času nezanedbává, čas je chápán ve smyslu klasické newtonovské fyziky. (Časová) existence dynamického systému - množina okamžiků, v nichž dynamický systém existuje. Existence je dána abstrakcí a může ji představovat jakákoliv množina reálných čísel. Prvky (entity) fyzické nebo logické elementy objektu zkoumání, z nichž je systém složen Permanentní existují v dynamickém systému po celou dobu Temporární neexistují v dynamickém systému po celou dobu exogenní (vznikají v okolí systému) a endogenní (vznikají uvnitř systému) Stabilní infrastruktura systému Mobilní mohou se přesunovat v prostoru Atributy hodnoty prvků Standardní přiřazují standardní hodnoty (čísla, bool hodnoty, text) Referenční přiřazují vazby mezi prvky Stav dynamického systému v čase t je určen prvky t, které jsou v tu dobu přítomny a jejich atributy v čase t Model Analogie mezi dvěma systémy: modelovaným (originálem) a modelujícím. Vztah obou systémů každému prvku PO > PM, atributu AO prvku PO > AM prvku PM, přičemž pro hodnoty atributů AO a AM je dána nějaká relace. Simulační model pokud je modelovaný i modelující systém statický = > statický model Požadavky na simulační model: a) Modelovaný systém (originál) i jeho modelující systém jsou dynamické systémy. b) Existuje zobrazení τ existence originálu do existence modelujícího systému. Je-li t 1 časový okamžik, v němž existuje modelovaný systém O, je mu přiřazen τ(t 1 ) = t 2, v němž existuje modelující systém M, a tak je zobrazením τ přiřazen i stavu OS 1 (t 1 ) = Os 1 systému O stav MS 2 (t 2 ) = Ms 2 systému M. c) Mezi stavy Os 1 a Ms 2 jsou splněny požadavky na vztahy mezi prvky a jejich atributy jak již bylo uvedeno při definici modelu. d) Zobrazení τ je neklesající. Nikdy nemůže být časové pořadí stavu v orig sys a odpovídajících stavů v modelujícím sys přehozeno. Pokud nastane stav Os originálu před nějakým jeho jiným stavem Os, pak stav, který odpovídá v modelujícím systému stavu Os nastane před stavem, který odpovídá stavu Os (nebo mohou nastat současně). Nutnost dodržovat vztahy kauzality z originálu i v modelujícím systému. simulovaný sys (nebo originál) a simulující sys. Analogicky - místo termínu simulující systém => simulační model nebo též simulátor.
Modelování Podstatou je náhrada zkoumaného systému (originálu) jeho modelujícím systémem (modelem). Cílem je získat pomocí pokusů (experimentů) s modelem informaci o originálu. Simulace Simulace je výzkumná technika/metoda, jejíž podstatou je náhrada zkoumaného (simulovaného) DYNAMICKÉHO systému jeho simulátorem (simulujícím systémem), s nímž se experimentuje s cílem získat informace o původním zkoumaném (simulovaném) dynamickém systému Aktivita a procesy - Odrážejí dynamické vlastnosti systému Aktivita - Představuje základní akční jednotku simulace, která je obrazem jisté činnosti v simulovaném systému, přičemž pro ni platí: Má jisté časové trvání Může měnit stav systému Spojitá aktivita může měnit stav systému během celé doby jejího trvání. Časová existence aktivity je tedy charakterizovaná intervalem reálných čísel <t 1,t 2 >. Při zahájení spojité aktivity nejsme schopni určit čas jejího ukončení. Diskrétní aktivita - může měnit stav systému jen v okamžiku ukončení aktivity. Aktivita existuje jen v okamžiku ukončení, její existence je charakterizována jednoprvkovou množinou reálných čísel {t 2 }. Ukončení diskrétní aktivity a následnou změnu stavu systému nazýváme událost (U). Spojitá simulace - simulovaný systém obsahuje pouze spojité aktivity Diskrétní simulace - simulovaný systém obsahuje pouze diskrétní aktivity Kombinovaná (diskrétně spojitá) simulace - simulovaný systém obsahuje spojité i diskrétní aktivity Proces - posloupnost na sebe navazujících aktivit, které spolu tvoří jistý logický celek (například průjezd automobilu částí města). Simulační experimenty simulační program - řídí výpočet simulace, je spouštěn pro různé konfigurace Scéna - situace, na níž se bude odehrávat děj - množina všech permanentních prvků systému s hodnotami jejich atributů. Scénář - definuje množinu hodnot vstupních parametrů a výsledkem je množina výstupních hodnot charakterizujících chování systému. Je určen: scénou s jejími vlastnostmi pravidly vstupu, výstupu, generování a zániku temporárních prvků rozhodovacími a řídícími algoritmy popisujícími aktivity, resp. procesy, realizovanými simulátorem. Simulační pokus (experiment) - běh simulačního programu podle jednoho scénáře, dává odpověď na otázku co se stane, když... Metoda Monte Carlo Monte Carlo - metody řešení numerických úloh pomocí speciálně organizovaných statistických pokusů.
Řešení pomocí umělých realizací náhodných (stochastických) procesů, tak, aby některé z jejich charakteristik (střední hodnota, pravděpodobnost výskytu určitého jevu apod.) byly řešením úlohy. Je tedy třeba: formulovat novou úlohu (pravděpodobnostní model), která má shodné řešení s původní úlohou řešit novou úlohu pomocí statistických experimentů. -nelze považovat za simulační metody 3 přednáška Algoritmizace simulačního modelu a) navržení datových struktur pro reprezentaci stavů simulátoru, jakož i operací, které nad touto strukturou pracují - realizují změny stavu systému b) realizace plynutí simulačního času c) zajištění synchronizace stavových změn v simulátoru tak, aby tyto změny probíhaly v určitém pořadí (při dodržení vztahů kauzality v simulovaném systému) a při určitých hodnotách simulačního času nebo v okamžicích, kdy je splněna určitá podmínka týkající se stavu či konfigurace modelu. Simulační krok - Časový úsek výpočtu, během něhož se nemění hodnota simulačního času Plánování událostí - diskrétní simulace, je založena na plánování výskytů událostí do budoucnosti. Při odstartování určíme čas ukončení > naplánujeme událost > její konec. - Informace o naplánované události v příslušné datové struktuře - kalendář událostí nebo časová osa. - Událost plánována do budoucna - Uchováváno v kalendáři událostí nebo na časové ose - Využití prioritní fronty - asynchronní přístup metody o 0. Inicializace času Ts = 0 o 1. Ukončení běhu simulace pokud Kalendář událostí neobsahuje žádné naplánované události
o 2. odebraní z vrcholu PF kalendáře (má min. Tu) o 3. aktualizace Ts = Tu o 4. Provedení aktivit spojené s událostmi (stavové změny nebo plánování nových událostí) o 5. Na krok 1 Diagram Snímání aktivit - Dvojfázová metoda - > pro realizaci diskrétní i spojité simulace - Princip: snímání všech běžících aktivit v pevně (ekvidistantních) daných přírůstcích simulačního času - Při každém snímání dochází k vyhodnocování a v čase ts=n*t se zkoumá, zda došlo: - ke splnění podmínek výskytu její koncové události (platí pro diskrétní simulaci) - ke změně hodnot dynamických atributů (platí pro spojitou simulaci) a případně splnění aktivační podmínky - Přesnost závislá na velikosti snímací periody - synchronní přístup 0. Inicializace Ts (simulační čas) = 0 1. Ukončení běhu simulace pokud je vyčerpán simulační čas 2. Vyhodnocení všech aktivit vzhledem k času Ts a výkon příslušných akcí při splnění podmínek 3. Aktualizace simulačního času 4. Návrat na krok 1
5. přednáška Návrh tvorby simulačního modelu - Verifikace - model lze považovat za správný, pokud průběh simulačního procesu odpovídá představě konceptuálního modelu - následuje validace (test pravdivost modelu) - Validace srovnání s realitou, statistické metody, srovnání s jiným modelem, empirická metoda Data deterministické, stochastické
6 přednáška Verifikace a validace simulačního modelu Neexistují historická data = > provedení testů simulačního modelu: a) Sledování běhu simulačního programu po dobu simulačního času b) Testování deterministického modelu všechny stochastické komponenty simulačního modelu jsou nahrazeny deterministickými komponentami c) Porovnání s matematickými modely výsledky porovnány s očekávanými Počet replikací Replikace -opakování experimentu se stejným scénářem (různými vstupními instancemi ) vícekrát, N-krát proč opakovat? Z důvodu získání přesnějších výsledků (dostaneme tím nějakou průměrnou hodnotu z jednotlivých výsledků). A za předpokladu normálního rozdělení je možné spočítat interval spolehlivosti X kde delta je šířka intervalu a X s pruhem je výsledná průměrná hodnota z N replikací. Kolik je třeba replikací? Dle potřeby naší předpokládané přesnosti. Pro předpoklad přesnosti 10% musí platit, že 0,1 10%. X Počet replikací se dá odhadnout dle: (odhad směrodatné odchylky * kvantit normálního rozdělení / interval spolehlivosti) Vždy ne méně než 3 až 5 replikací Přednáška 7 Modelování vstupů simulátoru 1. kritérium - ROZLIŠOVACÍ ÚROVEŇ SUBMODELU VSTUPŮ Standardní model submodel je chápán a realizován jako standardní model, každému prvku PO originálu (jeho daného podsystému vstupů) je přiřazen prvek PM simulátoru (jeho odpovídajícího modulu vstupů), každému atributu a prvku PO je přiřazen atribut a prvku PM, přičemž pro hodnoty atributů a, je dána nějaká relace. Metamodel submodel vstupů jako černá skřínka produkující požadovaná data 2. kritérium NÁHODNOST Deterministický přístup proud vstupních dat odpovídající sesbíranému (nezpracovanému) souboru reálných historických dat Stochastický přístup generování vstupních dat generátorem vytvořeným na základě statistického zpracování reálných historických dat (využívají se empirická nebo standardní statistická rozdělení pravděpodobnosti) Generátory pseudonáhodných čísel rovnoměrně rozdělené na intervalu <0,1>, efektivní deterministický program, který generuje posloupnost čísel, statistickými testy pokud možno nerozlišitelnou od náhodné. Vstupními daty pro pseudonáhodné generátory jsou skutečně náhodné, leč krátké, posloupnosti.
Uplatnění generátorů pseudonáhodných čísel v metamodelech a) Realizace (aritmetického) generátoru pseudonáhodných (reálných) čísel rovnoměrně rozdělených na intervalu <0,1> - dlouhá perioda, bez korelace mezi jednotlivými vygenerovanými čísly - efektivní z časového i paměťového hlediska - možnost reprodukce vygenerovaného proudu čísel - uskutečnitelnost realizací nezávislých proudů b) Generování pseudonáhodných čísel (nerovnoměrně rozdělených) - metoda inverzní transformace (teoretický přístup znalost inverzní funkce F-1, empirický přístup) c) Výběr rozdělení pravděpodobnosti - věrnost výstupů z metamodelu věrnost simulátoru - na základě získaných dat postaven generátor pseudonáhodných čísel založený na empirickém rozdělení pravděpodobnosti - univerzální metoda, avšak je nutné získání velkého souboru dat - na základě získaných dat postaven generátor pseudonáhodných čísel založený na (standardním) teoretickém rozdělení pravděpodobnosti lze generovat i data mimo naměřeného rozsahu Postup: I. Hypotézy o typu rozdělení založeny na: - histogramech a kumulativních histogramech - proložení křivkou (tvar, symetrie) - zkušenosti (experimentální intervaly na vstupu) - výpočet statistik (průměry apod.) a znalosti vlastností rozdělení II. Odhad parametrů (bodové a intervalové odhady) III. Test dobré shody (Kolmogorovův-Smirnovův test)
8. přednáška Analýza výstupních dat simulátoru Experimentování se simulačním modelem zahrnuje analýzu výsledků simulačních experimentů Úkol výstupní analýzy Na základě pozorování odhadnout rozdělení a parametry náhodných proměnných Y1,..., Ym. E(Yi) - odhad střední hodnoty proměnné Yi : y instance náhodné proměnné Klasifikace simulace z hlediska výstupní analýzy A. Simulace s ukončením B. Simulace bez ukončení i. s ustálenými parametry ii. s ustálenými cyklickými parametry iii. s jinými parametry Simulace s ukončením - existuje přirozená událost U, která ohraničuje délku každého běhu simulačního programu. Po výskytu U: - již nejsou informace produkované simulátorem potřebné/zajímavé a simulující systém je prázdný. - V této souvislosti jsou důležité i počáteční podmínky. př. Zkoumání realizovatelnost výroby automobilů v daném období (např. 6 měsíců) Simulace bez ukončení - neexistuje událost U určující konec běhu sim. programu. - Charakteristikou chování simulujícího systému jsou ustálená rozdělení a jejich parametry pro každý výstupní stochastický proces: Y 1,Y 2,... ; Z 1,Z 2,... atd. Problém: Charakteristiky originálu se mění v čase. Navzdory tomu připouštíme, že charakteristiky simulujícího systému se nemění. Př: zkoumání hodinové produkce v dlouhodobém ustáleném stavu navazování směn bez ztráty produkce, pracuje se bez přestávek, lze ignorovat volné dny
Simulace s ukončením - výběr počátečních podmínek Přístup A Začneme s prázdným systémem v 9,00 hod. Do pozorování zahrneme pouze čekání těch klientů, kteří přišli a ukončili čekání v intervalu <12:00,13:00>. Pro získání lepších počátečních podmínek byl aplikován tzv. náběh nebo-li zahřívání simulátoru. Přístup B Pozorováním objektu zkoumání odhadneme pravděpodobnost pi, že je v bance ve 12:00 i klientů (i=1,2,...). Simulační experiment realizujeme od 12:00 počáteční počet klientů vygenerujeme na základě odhadu { p i i=1,2,,k,k+1} Pozn.: Odhad p k+1 můžeme interpretovat jako pravděpodobnost, že je v bance ve 12:00 více než k klientů Simulace s ukončením - statistická analýza Provedeme n nezávislých běhů simulačního programu se stejnými počátečními podmínkami a různými proudy pseudonáhodných čísel. Doporučení potřebného počtu replikací závislé od požadované přesnosti sledovaných typů výsledků - nikdy ne méně než 3-5 replikací! Statistická analýza pro ustálené výstupní parametry Problém: V procesu Y 1,Y 2,... nalézt takové k, že Y k+1,y k+2,... jsou ustálená. Pozorování Y 1,...,Y k nejsou pro odhad parametrů zohledněna, tj. parametry odhadujeme na základě Y k+1 nebo lépe Y k+1,y k+2,...,y m Náběh/zahřívání simulujícího systému aplikováno za účelem eliminace přechodových stavů. Volba k (doba náběhu): Lze aplikovat např. Welchovu metodu využívající počítání klouzavých průměrů pro různě definované intervaly/okna. Výsledkem jsou různá vyhlazení původní křivky Fi (i=1,2,...,k,k+1,...,m - diskr.čas.okamžiky), přičemž vybrané k odráží počátek ploché křivky. Ustálené cyklické výstupní parametry Nechť Y 1,Y 2,... pro simulaci bez ukončení nemá ustálené rozdělení. Rozdělme čas na intervaly zvané cykly (např. směny). Nechť C Yi je náhodná proměnná definovaná na i-tém cyklu. Předpokládejme, že proces C Y 1, C Y 2,... má ustálené rozdělení C F a že C Y~ C F. Potom mírou chování jsou ustálené cyklické výstupní parametry jako charakteristiky C Y (např. C a = E( C Y)).Příklad: Výrobní provoz továrny pracuje se v 8-hodinových směnách, v polovině směny je půlhodinová přestávka s případným výběhem a náběhem. Stochastický proces hodinových produkcí N 1,N 2,... nemá ustálené rozdělení.
Proces 8-hodinových (středních) produkcí 8 N 1, 8 N 2,... může mít ustálená rozdělení a nás může zajímat 8 a = E( 8 N) ustálený cyklický parametr. Výstupní stochastický proces Dovedeme další vývoj předvídat jen s určitou pravděpodobností. Ve skutečnosti jsou reálné procesy vždy do jisté míry stochastické, protože jejich podmínky se nahodile a nepředvídatelně mění, i když třeba jen v úzkých mezích. Typické problémy s analýzou vstupních dat data nemusí být nezávislá ani s identickým rozdělením Neplatí: nezávislost pozorování v rámci jedné replikace Platí: nezávislost i-tých pozorování v replikacích 9 přednáška Kombinovaná simulace & animace on-line animátor může být dobrým pomocníkem při verifikaci. Umožňuje sledovat změny ve stavovém prostoru. Základní moduly online simulace jádra diskrétní simulace jádra spojité simulace jádra animace jejichž činnost je nutné vhodným způsobem synchronizovat. Základním úkolem jádra spojité simulace je zabezpečit a synchronizovat činnost všech paralelně v čase běžících spojitých aktivitmožné použít metodu snímání aktivit. Zvolíme snímací periodu, se kterou pracuje jádro spojité simulace, označme jako τ C. Je nutné při každém sesnímání aktivity testovat, zda hodnoty příslušných atributů dosáhly v daném simulačním čase prahových hodnot, které indikují ukončení aktivity. Aby bylo možno průběh zobrazovat, je nutné zabezpečit vhodný mechanismus synchronizovaného grafického zobrazování. Jádro může využívat metodu snímání aktivit. Po uplynutí každé animační snímací periody τ A dochází k aktualizaci grafického znázornění. Diskrétní proces obsahuje výhradně
diskrétní aktivity. Spojitý proces obsahuje výhradně spojité aktivity, přičemž je ošetřuje pomocí metody snímání aktivit. Kombinovaný proces obsahuje diskrétní i spojité aktivity a každou z nich zpracuje příslušnou metodou. Synchronizace Ústřední modulem je modul diskrétní simulace V době kdy je to potřeba, přenechává řízení simulátoru ostatním modulům pro definovanou dobu a poté si bere řízení zpět a) Událost Start označuje začátek aktivity, Konec označuje ukončení aktivity a následné spuštění další aktivity (pokud nebyla poslední) b) Zahájení diskrétní události chápeme jako naplánování budoucího ukončení. Časovému intervalu aktivity odpovídá interval mezi naplánováním a okamžikem výskytu, kdy se provedou stavové změny. c) Zahájení spojité aktivity je chápáno jako registrace modulu spojitého simulátoru. Synchronizace. Každý agent musí vždy znát aktuální simulační čas. Protože synchronizace je relativně náročná na komunikaci mezi agenty, není celý systém synchronizován při každé události, ale jednotlivé agenty se mezi občasnými synchronizacemi spoléhají na svůj systémový čas. Systém obsahuje synchronizační agent (TSA Time Synchronization Agent), který má uživatelské rozhraní (viz např. obr. 3), a podle pokynů uživatele rozesílá příkazy ke spuštění, pozastavení nebo změně rychlosti simulace. Struktura kombinovaného simulátoru s animátorem Dva základní požadavky, a to, aby byl schopen: a) realizovat kombinovanou diskrétně-spojitou simulaci a b) provádět animaci těch aktivit, u kterých to požadujeme. Při navrhování architektury kombinovaného simulátoru je tedy nutné vytvořit strukturu, která by umožňovala provádět synchronizaci diskrétní a spojité simulace a zabezpečovala by volitelnou možnost výkonu animace zobrazující provádění aktivit.