1. Vymezení základních pojmů z oblasti modelování a simulace Studijní cíl Úvodní blok věnuje pozornost vymezení základních pojmů z oblasti modelování a simulace s cílem zavést příslušnou odbornou terminologii, která bude používána v rámci celé této elektronické opory. Doba nutná k nastudování 3 hodiny Až dosud neexistuje všeobecně celosvětově uznávaný a používaný standard terminologie simulace. Stejné pojmy spojené se simulací mají pro různé autory často odlišný význam. V této opoře se při definování následujících základních pojmů vychází zejména z pojmového aparátu uvedeného v publikacích [1], [2] a [3]. 1.1 Objekt zkoumání a vymezený systém Modelování a simulace se věnuje studiu zkoumaných objektů hmotného světa, přičemž tyto objekty buď již v realitě existují (výrobní podnik, nemocnice, burza, železniční stanice, organismus živočicha apod.) nebo by existovat mohly (továrna po rekonstrukci a dobudování, nově projektovaný terminál kontejnerové dopravy, nemocí zasažený organismus atd.). Zmíněné zkoumané objekty (jak existující, tak projektované nebo myšlené) nelze v jejich úplné složitosti popsat, resp. racionálně pochopit a zvládnout. Proto jsou na nich zaváděny abstrakce, jež zanedbávají některé aspekty těchto objektů, které nejsou z pohledu konkrétního typu zkoumání důležité. Nezanedbané aspekty jsou vybírány tak, že jsou příslušným vědeckým, technickým či společenským oborem zvládnutelné. Uvedené abstrakce se v modelování a simulaci nazývají systémy. Alternativně lze předešlou myšlenku též vyjádřit tak, že na objektech zkoumání jsou vymezovány systémy. Různé druhy studia mohou na jednom objektu zkoumání vymezovat odlišné systémy. Například pro nově zřízené klientské oddělení bankovní pobočky (jako KST/IMOSI Modelování a simulace blok 1, strana 1 (8) Antonín Kavička
objektu zkoumání) lze vymezit (i) systém, jenž se soustředí na kvalitu různých provozních režimů obsluhy zákazníků daného oddělení nebo (ii) systém, který se zabývá problematikou kvality konfigurace lokální počítačové sítě využívané pracovníky oddělení. Okolím zkoumaného objektu nazýváme ty objekty reálného světa, které nebyly vybrány pro potřeby zkoumání, nicméně je nutné uvažovat jejich existenci a vlastnosti kvůli vztahům se zkoumaným objektem. Abstrakci okolí zkoumaného objektu potom nazýváme okolím systému. Je-li zkoumaným objektem jisté oddělení banky, do jeho okolí mohou patřit (i) jiná oddělení této banky, která s ním příslušným způsobem komunikují nebo (ii) proudy zákazníků přicházející z ulice do banky. Při vymezování systému na objektu zkoumání se může nebo nemusí zanedbat význam času. Systém, jenž od významu času abstrahuje, se nazývá statickým systémem. Naproti tomu systém, jehož čas není zanedbáván (a je chápán ve smyslu klasické newtonovské a nikoliv kvantové fyziky) se v oboru modelování a simulace nazývá dynamickým systémem. Množina okamžiků, v nichž dynamický systém existuje, se nazývá (časovou) existencí dynamického systému, přičemž tato existence je dána abstrakcí a může ji představovat jakákoliv množina reálných čísel. Zkoumání vymezeného systému na objektu oddělení banky, které je zaměřeno na režimy obsluhy zákazníků, může definovat existenci, která zahrnuje pouze okamžiky, v nichž dochází k zahajování, resp. ukončování činností zahrnutých do systému (např. obslužné činnosti na přepážkách, přemísťování zákazníků uvnitř banky, přemísťování obslužného personálu apod.). Kromě těchto okamžiků nás chování systému nezajímá, a tedy z tohoto pohledu systém v jiných okamžicích neexistuje. Systém je složen z prvků (entit), které představují určité fyzické nebo logické elementy objektu zkoumání. Rozlišujeme permanentní a temporární prvky, přičemž první z nich jsou v dynamickém systému během celé jeho existence, kdežto druhé nikoliv. Temporární entity mohou být exogenní nebo endogenní. Exogenní prvky vznikají vně systému (v jeho okolí), zatímco endogenní vznikají v samotném systému. Analogicky temporární prvky mohou zaniknout tím, že jsou přesunuty do okolí systému (a tím pro systém přestanou existovat) nebo zaniknou přímo v systému. Rozlišujeme též stabilní prvky (nazývané často infrastruktura) a mobilní prvky, které mají schopnost přemísťovat se nebo být přemísťovány v prostoru. KST/IMOSI Modelování a simulace blok 1, strana 2 (8) Antonín Kavička
Příkladem temporárních exogenních prvků systému jsou zákazníci přicházející do banky. Dokumentace k žádosti o půjčku, která byla vyhotovena pracovníkem oddělení, podepsána zákazníkem a je dále archivována, je příkladem endogenního temporárního prvku. Permanentními prvky v tomto příkladu mohou být stabilní prvky infrastruktury (pevné bariéry vymezující koridory pro fronty čekajících zákazníků, přepážky apod.), či obslužný personál (mobilní prvky). Podle funkce prvku v systému rozlišujeme obsluhující prvky (obslužné zdroje) a obsluhované prvky (zákazníci). Je však nutné mít na paměti, že tyto funkce prvků se mohou v průběhu času měnit. Sledované vybavení bankovní pobočky (přepážky, bankomaty, bariéry), jakož i personál představují obslužné zdroje zkoumaného systému. Klienti přicházející do banky jsou zákazníci systému. Během údržby se však například i bankomat, jako obslužný zdroj sloužící klientům, stává sám zákazníkem. Prvky systému mají své vlastnosti, které se nazývají atributy, které přiřazují prvkům nějaké hodnoty, jež se mohou u prvků dynamického systému v čase měnit. Atributy lze dále členit na standardní a referenční. Standardní atributy přiřazují prvkům standardní hodnoty (např. reálná čísla, booleovské hodnoty, texty) zatímco referenční atributy přiřazují prvkům systému jiné prvky, tj. definují vazby/relace mezi prvky. Stav dynamického systému v čase t je určen prvky, které jsou v čase t v systému přítomny a hodnotami jejich atributů v tomto čase. Stav dynamického systému oddělení banky je v daném čase určen všemi prvky, které se v systému aktuálně nacházejí (zákazníci, personál, infrastruktura apod.) a dále aktuálními hodnotami jejich atributů. Pro názornost uveďme, že například prvek systému zákazník může disponovat atributy: jméno, příjmení, rodné číslo, čísla účtů, stavy na účtech, reference na přepážku, na níž se aktuálně nachází, nebo dále prvek-bankovní úředník je charakterizován atributy: identifikační číslo, specializace na dané bankovní operace, reference na právě obsluhovaného zákazníka atd. 1.2 Model versus simulační model Termín model je v oblasti modelování a simulace používán pro analogii mezi dvěma systémy: modelovaným (neboli originálem) a modelujícím. Vztah obou systémů je dán tím, že každému prvku P O originálu je přiřazen prvek P M KST/IMOSI Modelování a simulace blok 1, strana 3 (8) Antonín Kavička
modelujícího systému, každému atributu a O prvku P O je přiřazen atribut a M prvku P M, přičemž pro hodnoty atributů a O a a M je dána nějaká relace. Jsou-li modelovaný i modelující systém statické, říkáme, že daný model je statický model. V simulaci se uplatňují pouze tzv. simulační modely, které splňují následující požadavky: 1. Modelovaný systém (originál) i jeho modelující systém jsou dynamické systémy. 2. Existuje zobrazení τ existence originálu do existence modelujícího systému. Je-li t O časový okamžik, v němž existuje modelovaný systém O, je mu přiřazen τ(t O ) = t M, v němž existuje modelující systém M, a tak je zobrazením τ přiřazen i stavu S O (t O ) systému O stav S M (t M ) systému M. 3. Mezi stavy S O (t O ) a S M (t M ) jsou splněny požadavky na vztahy mezi prvky a jejich atributy, jak již bylo uvedeno při definici modelu. 4. Zobrazení τ je neklesající. Pokud nastane stav S O 1 originálu před nějakým jeho jiným stavem S O 2, pak stav S M 1, který odpovídá v modelujícím systému stavu S O 1, nastane před stavem S M 2, který odpovídá stavu S O 2 (nebo mohou nastat současně). Tento požadavek vyjadřuje nutnost dodržovat vztahy kauzality z originálu i v modelujícím systému. Lze tedy shrnout, že model je struktura, která váže dva systémy, jejich prvky a jejich atributy, a v případě simulačních modelů i existence obou systémů. V běžné praxi je ustáleno, že pod pojmem model se rozumí modelující systém, i když tento pojem není přesný a výstižný. V případě simulačních modelů se raději než pojmy modelovaný a modelující systém používají pojmy simulovaný systém (nebo originál) a simulující systém. Analogicky jako u modelujícího systému se místo termínu simulující systém používá buď méně přesný termín simulační model, nebo též simulátor. 1.3 Modelování versus simulace Podstatou modelování ve smyslu výzkumné techniky/metody je náhrada zkoumaného systému (originálu) jeho modelujícím systémem (nebo stručněji jeho modelem), jejímž cílem je získat pomocí pokusů (experimentů) s modelem informaci o originálu. V odborné praxi je výše zmíněné modelování obvykle chápáno tak, že zahrnuje jak budování modelu (modelujícího systému), tak provádění experimentů s tímto modelem. KST/IMOSI Modelování a simulace blok 1, strana 4 (8) Antonín Kavička
Modelující systém (model) může být realizován mnoha různými způsoby, například jako abstraktní matematická struktura (vzorec, systém diferenciálních rovnic apod.) interpretovaná na papíře, v měřítku zmenšená napodobenina (třeba sítě městských vodních kanálů), komplexní datová struktura v paměti číslicového počítače (tento typ modelujícího systému je v poslední době velmi masivně využíván) atd. Simulace je v oblasti aplikované informatiky, resp. kybernetiky chápána jako modelování ve smyslu výzkumné techniky, při němž je použit simulační model. Jedna z vhodných definic simulace je následující. Simulace je výzkumná technika/metoda, jejíž podstatou je náhrada zkoumaného dynamického systému (originálu) jeho simulátorem, s nímž se experimentuje s cílem získat informace o původním zkoumaném dynamickém systému. Nutno zdůraznit, že aby šlo o simulaci, musí být cílem experimentů se simulátorem získání informací o simulovaném systému (originálu). Výše zmíněný simulátor je možné principiálně realizovat na různých speciálních zařízeních a podle nich potom získává pojem simulace příslušné přívlastky např. elektromechanická, hydrodynamická, mechanická, analogová (pomocí analogových počítačů), hybridní (pomocí analogo-číslicových počítačů) apod. V současné době je drtivá většina simulátorů realizována na číslicových počítačích mluvíme o tzv. číslicové simulaci. V celé opoře se budeme věnovat pouze číslicové simulaci, a proto nebudeme tento přívlastek používat. Program, který řídí výpočet při simulaci, se nazývá simulačním programem. 1.4 Poznámky k metodě Monte Carlo Jako metodu Monte Carlo označujeme řešení numerických úloh pomocí speciálně organizovaných statistických pokusů. Při použití této metody získáváme řešení pomocí umělých realizací náhodných (stochastických) procesů, jež jsou vytvořeny tak, aby jejich charakteristiky (střední hodnota, pravděpodobnost výskytu jevu apod.) odrážely charakter originálních procesů. 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ů. KST/IMOSI Modelování a simulace blok 1, strana 5 (8) Antonín Kavička
Metoda Monte Carlo je charakterizována specifickými numerickými postupy (generování hodnot náhodných veličin, metody redukce rozptylu, vyhodnocení přesnosti výsledků) řešení úloh stochastického charakteru (bez nároku zkoumat dynamické systémy), zatímco simulační metody jsou určeny ke studiu výhradně dynamických systémů z tohoto pohledu tedy nelze klasifikovat metodu Monte Carlo jako metodu simulační. Pozn.: V některé odborné literatuře je možné se setkat s nepřesnou klasifikací metody Monte Carlo jako metody statické simulace. Příklad aplikace metody Monte Carlo Buffonova úloha Na desku, na níž jsou nakresleny dvě rovnoběžné přímky, je náhodně vrhána jehla. Označme délku jehly H, vzdálenost dvou sousedních přímek L, vzdálenost středu jehly po dopadu od bližší z přímek y. Úhel α svírá jehla s kolmicí na přímky (obr. 1.1). H/2 α y L Obr. 1.1 Buffonova jehla po dopadu na pracovní desku Podmínka, že jehla protne jednu z přímek je: y (H/2). cos α pro 0 y (L/2), 0 α (π/2) Pravděpodobnost, že jehla při jednom pokusu zůstane ležet na desce tak, že protne jednu z přímek, lze vyjádřit analyticky vztahem (ilustrace na obr. 1.2): P π /2 H.cos dα H 2.[sin α] 2H π L π L. π L 2 2 4 π /2 = 0 = 0 2 = KST/IMOSI Modelování a simulace blok 1, strana 6 (8) Antonín Kavička
Obr. 1.2 Grafická ilustrace podkladu pro výpočet pravděpodobnosti protnutí Analytické řešení pravděpodobnosti P, že jehla protne jednu z přímek, lze experimentálně ověřit aplikací metody Monte Carlo, tj. prováděním umělého házení jehly na desku, které je na počítači realizováno jako série nezávislých pokusů - generování dvojic hodnot [y i,α i ] náhodných proměnných y a α. Pro vygenerovanou dvojici hodnot [y i,α i ] zkoumáme splnění podmínky protnutí jedné z přímek. V případě, že zkoumaný jev nastal, inkrementujeme proměnnou m (četnost protnutí). Pro daný počet pokusů n potom lze vypočítat požadovanou pravděpodobnost výskytu jevu: P EXP m = n a případně provést experimentální odhad hodnoty čísla π: π = 2H P L EXP Úkol Pomocí metody Monte Carlo realizujte série Buffonových pokusů a znázorněte závislost experimentálního odhadu hodnoty čísla π od počtu realizovaných náhodných pokusů. KST/IMOSI Modelování a simulace blok 1, strana 7 (8) Antonín Kavička
Otázky k procvičení 1. Co představuje vymezení systému na objektu zkoumání? 2. Jaké jsou odlišnosti mezi statickým a dynamickým systémem? 3. Čím se liší model od simulačního modelu? 4. V čem se odlišuje modelování od simulace? 5. Čím je charakteristická metoda Monte Carlo? Odkazy a další studijní prameny [1] Křivý, I., Kindler, E.: Simulace a modelování, elektronický učební text Přírodovědecké fakulty Ostravské univerzity, Ostravská univerzita, Ostrava, 2001. [2] Banks, J.: Handbook of simulation, John Wiley and Sons, New York, 1998. [3] Kavička, A., Klima, V., Adamko, N. Agentovo orientovaná simulácia dopravných uzlov. Žilina: EDIS - vydavateľstvo ŽU, 2005. KST/IMOSI Modelování a simulace blok 1, strana 8 (8) Antonín Kavička
2. Experimenty se simulačním modelem Studijní cíl Problematika probíraná v tomto bloku se věnuje oblasti simulačních experimentů s cílem přiblížit typy realizací základních akčních jednotek simulace a specifikace scénářů simulačních experimentů. Doba nutná k nastudování 3 hodiny 2.1 Aktivity a procesy Věnujme se nyní aktivitám a procesům, které modelují dynamické vlastnosti systému, tj. plynutí času a změny stavu systému v čase. Aktivita představuje základní akční jednotku simulace (obr 2.1), která je obrazem jisté činnosti v simulovaném systému (např. pohyb dopravního prostředku po elementárním volném úseku dopravní infrastruktury, obslužná činnost klienta u přepážky v bance, opracování výrobku na jednom pracovišti výrobního závodu, apod.), přičemž pro ni platí, že: - má jisté časové trvání a - (potenciálně) mění stav systému. Běh simulačního programu je představován vykonáváním jednotlivých aktivit a to ve stejném pořadí, v němž se vykonávají jim odpovídající činnosti v simulovaném systému. aktivita t 1 t 2 čas Obr. 2.1 Aktivita a její časové trvání Stejně jako mluvíme o časové existenci systému, můžeme hovořit i o časové existenci aktivity jako důležité součásti simulovaného systému. Časová existence aktivity je charakterizovaná množinou reálných čísel (časových KST/IMOSI Modelování a simulace blok 2, strana 1 (5) Antonín Kavička
okamžiků), v nichž aktivita existuje, tedy může měnit stav systému. Z tohoto hlediska rozeznáváme dva druhy aktivit. Spojitá aktivita může měnit stav systému v průběhu celé doby svého trvání. V tomto případě (obr. 2.2) je časová existence aktivity charakterizovaná intervalem reálných čísel t 1,t 2. aktivita t 1 možné změny stavu t 2 Obr. 2.2 Spojitá aktivita Příkladem spojité aktivity může být přesun těžkého dopravního prostředku z pozice A do pozice B v případě, že chceme podrobně respektovat dynamiku pohybu v závislosti na vlastnostech dopravního prostředku a vnějších podmínkách. Charakteristickým znakem spojité aktivity je, že při jejím zahájení nejsme schopni určit čas jejího ukončení. Diskrétní aktivita je charakterizovaná tím, že může změnit stav systému pouze v okamžiku svého ukončení; v průběhu trvání aktivity stav systému změnit nemůže. Tuto situaci lze chápat tak, že aktivita existuje jen v okamžiku svého ukončení a tedy její existence je charakterizovaná jednoprvkovou množinou reálných čísel {t 2 } (obr. 2.3). Ukončení diskrétní aktivity a následnou změnu stavu systému nazýváme událost (U). aktivita t 1 t 2 U Obr. 2.3 Diskrétní aktivita Příkladem diskrétní aktivity může být přesun dopravního prostředku z pozice A do pozice B v případě, že nemáme důvod podrobně sledovat dynamiku pohybu. Předpokládáme tedy, že dopředu určíme pevnou dobu přesunu (charakteristický znak diskrétní aktivity) a zajímá nás pouze událost ukončení přesunu. Výskyt diskrétních, resp. spojitých aktivit v simulovaném systému dost podstatně ovlivňuje charakter simulátoru a vede k rozlišování několika typů simulací. KST/IMOSI Modelování a simulace blok 2, strana 2 (5) Antonín Kavička
V případě, že simulovaný systém obsahuje pouze spojité aktivity, potom mluvíme o spojité simulaci. Jestliže simulovaný systém obsahuje výhradně diskrétní aktivity, pak mluvíme o diskrétní simulaci. V případě, že simulovaný systém obsahuje jak spojité tak i diskrétní aktivity, potom příslušnou simulaci označujeme jako kombinovanou (diskrétně-spojitou) simulaci. Často je užitečné rozšířit pojem aktivita na pojem proces. Proces je posloupnost přirozeně na sebe navazujících aktivit, které spolu tvoří jistý logický celek (například průjezd automobilu částí města, roznesení pošty listonošem apod.). Pro názornost si můžeme proces znázornit graficky (obr. 2.4). Vidíme, že uvedený proces se skládá ze tří aktivit (a 1, a 2 a a 3 ). Po startu procesu P se nejdříve vykoná aktivita a 1, po jejím ukončení aktivita a 2 a nakonec aktivita a 3, jejíž konec je chápán zároveň jako konec procesu P. a 1 a 2 a 3 t 1 t 2 t 3 t 4 Obr. 2.4 Proces P složený ze sekvence aktivit a1,a2,a3 2.2 Simulační experimenty Dostáváme se k pojmům spojeným s experimentováním se simulačním modelem, což technicky znamená spouštění (provádění) simulačního programu. Nejdříve je nutné nakonfigurovat scénu, na níž se bude odehrávat simulační děj. Pod scénou rozumíme množinu všech permanentních prvků systému s hodnotami jejich atributů. Dynamické chování systému je definováno scénářem, přičemž tento 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 řídicími algoritmy popisujícími procesy obsluhy. Běh simulačního programu podle jednoho definovaného scénáře se nazývá simulační pokus (experiment) se simulátorem. Uskutečněním simulačního KST/IMOSI Modelování a simulace blok 2, strana 3 (5) Antonín Kavička
pokusu získáme informace o chování systému při aplikovaném scénáři (v literatuře se v této souvislosti někdy uvádí, že simulační pokus dává odpověď na otázku co se stane, když ). Scénář definuje množinu hodnot vstupních parametrů a výsledkem pokusu je množina výstupních hodnot charakterizujících chování systému. Vstupní parametry nemusí být deterministické. Naopak, v typických případech je mnoho vstupních parametrů představováno náhodnými proměnnými. V takovém případě jsou samozřejmě i příslušné výstupní hodnoty realizacemi náhodných proměnných (výstupních náhodných proměnných). Proto je nutné uskutečňovat celou sérii pokusů (tzv. replikace pokusu) se stejným scénářem ale různými instancemi hodnot vstupních náhodných proměnných. Na výstupu dostaneme pro každou replikaci množinu výstupních hodnot instancí výstupních náhodných proměnných. Tyto hodnoty jsou potom statisticky zpracovány (např. výpočtem aritmetického průměru příslušných hodnot ze všech replikací se odhadne střední hodnota výstupní náhodné proměnné). Simulační pokus potom tedy nedává informaci např. o délce fronty (žadatelů o zdroj), nýbrž o střední délce fronty. Scénář může být definován ve zjednodušené formě například takto: (i) scéna zahrnuje jednu konkrétní verzi infrastruktury oddělení banky (počet přepážek a případně automatizovaných míst obsluhy) a dále definované počty a profese uvažovaných pracovníků oddělení, (ii) příchody zákazníků do oddělení jsou generovány na základě měsíčního statistického sledování, (iii) jsou algoritmizována pravidla pro zařazování se zákazníků do front na obsluhy, jakož i pravidla přestupování mezi frontami. Probíhá-li na počítači simulační pokus, je v jeho průběhu evidován i čas, který v dané fázi simulace odpovídá reálnému času (tj. času v simulovaném systému). Čas v rámci simulačního pokusu označujeme jako simulační čas, přičemž tento typicky ubíhá rychleji (výjimečně i pomaleji) než čas reálný. Simulační čas (podobně jako reálný) nemůže klesat. Typické použití simulačních modelů v praxi si klade vyšší ambice, než studium chování systému při jednom scénáři. Ve všeobecnosti může být při studiu příslušného systému cílem nalézt takový scénář, při jehož uplatnění se systém chová nejlépe/optimálně (v souvislosti se zadanými kritérii). Zmíněná motivace vede k návrhu série simulačních pokusů s různými scénáři koncipovanými tak, aby se co nejefektivněji získala odpověď na zadané otázky. Tato série pokusů se nazývá simulační studie nebo simulační projekt. KST/IMOSI Modelování a simulace blok 2, strana 4 (5) Antonín Kavička
2.3 Uplatnění simulace Kdy je vhodné experimentální výzkumnou techniku - simulaci, která nenabízí automaticky optimální řešení daného problému, aplikovat? Metodu simulace je vhodné použít zejména v těch případech, kdy: popis zkoumaného dynamického systému je značně složitý, a tudíž by bylo extrémně složité aplikovat jiné analytické exaktní nebo heuristické metody (např. operačního výzkumu) nebo vyvstává potřeba prozkoumat širokou škálu odlišných (provozních) variant zkoumaného dynamického systému (tedy je často potřeba podstatně měnit konfiguraci vymezeného systému), jejichž zpracování bývá při použití jiných metod obvykle málo flexibilní. Dalším důvodem pro použití simulace může být akutní potřeba poskytnutí on-line animace, která umožní názorně sledovat obrazy procesů vymezeného zkoumaného systému, což se může uplatnit u aplikací typu: trenažér, kdy kupříkladu na daném simulátoru experimentuje řídící pracovník pracující v rámci odpovídajícího objektu zkoumání, který je školen (příp. zkoušen) pro řešení jak obvyklých tak neočekávaných provozních problémů nebo rekonstrukce, kdy je na základě přesných historických dat např. rekonstruována problémová pracovní směna s cílem věrně demonstrovat celý její průběh a poukázat na kořeny vzniklých problémů. Otázky k procvičení 1. Jaké jsou základní akční jednotky simulace a jak je lze alternativně realizovat? 2. Čím se od sebe liší aktivity a procesy? 3. Co je charakteristické pro kombinovanou diskrétně spojitou simulaci? 4. Jak je specifikován scénář simulačního experimentu? 5. Jaká je indikace pro nasazení experimentální výzkumné techniky simulace? KST/IMOSI Modelování a simulace blok 2, strana 5 (5) Antonín Kavička
3. Základní metody synchronizace výpočtu v rámci simulačních modelů Studijní cíl V rámci tohoto bloku bude věnována pozornost zejména vybraným metodám synchronizace simulačního výpočtu v počítačové simulaci. Cílem je prezentovat základní typy algoritmů, které jsou využitelné pro řízení běhu simulačních programů. Doba nutná k nastudování 3 hodiny 3.1 Úvodní poznámky Zaměřme se nejprve na popis základní metodiky algoritmizace simulačního modelu, jejímiž hlavními úkoly jsou: a) navržení datových struktur dat pro reprezentaci stavů simulovaného systému, jakož i operací, které nad touto strukturou pracují (realizují změny stavu systému), b) zobrazení simulačního času a jeho plynutí (průběhu) a c) zajištění synchronizace stavových změn systému 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. Dobrý návrh datových struktur (jak z hlediska paměťové reprezentace, tak z hlediska výpočetní složitosti jejich frekventovaných operací) umožňuje provádět efektivní výpočty během realizace pokusu se simulátorem. V průběhu realizace simulačního experimentu je evidován měnící se čas, který by v dané fázi výpočtu odpovídal času v simulovaném systému (simulační čas), přičemž pro jeho plynutí musí být zabezpečeno, že děje v simulátoru závisejí na simulačním čase stejným způsobem, jako jejich vzory v originálu na toku přirozeného času. Způsoby synchronizace simulačního výpočtu mohou být značně odlišné, a proto alespoň stručně charakterizujme dvě základní metody. KST/IMOSI Modelování a simulace blok 3, strana 1 (10) Antonín Kavička
3.2 Metoda plánování událostí Metoda plánování událostí, která je jednou z nejrozšířenějších metod uplatňovaných při realizaci diskrétní simulace, je založena na plánování výskytů událostí do budoucnosti. Ilustrujme si tuto metodu na příkladu realizace aktivity. Pro diskrétní simulaci je charakteristické, že doba trvání aktivity je známá už při jejím odstartování, tedy v okamžiku startu aktivity určíme čas jejího ukončení, na který naplánujeme událost, která bude představovat její konec. Trvání odpovídá časové zpoždění výskytu koncové události (U) aktivity (obr. 2.3 v bloku 2). Při zpracování koncové události jedné aktivity je možné případně odstartovat další aktivitu a to naplánováním její příslušné koncové události s odpovídajícím časovým zpožděním. Informaci o naplánované události je nutno až do okamžiku jejího výskytu v modelu někde uchovávat a to obvykle v příslušné datové struktuře označované jako kalendář událostí (někdy též jako časová osa). Tato datová struktura disponuje kromě jiného základní operací Výběr, která po řídícím příkazu simulačního programu provede odebrání té události z kalendáře, jejíž hodnota času plánovaného výskytu je nejmenší ze všech událostí obsažených v kalendáři. Z tohoto pohledu je vhodné pro implementaci kalendáře využít koncepci prioritní fronty, přičemž priority jejích prvků/událostí určuje čas výskytu. Prakticky bychom tedy mohli událost představit jako datovou strukturu zapouzdřující zejména atribut čas výskytu události (časové razítko) a operace Plánuj a Zpracuj. Metoda Plánuj vykoná naplánování události (vložení do kalendáře) do budoucnosti na jistý čas výskytu a metoda Zpracuj provede v okamžiku výskytu události (výběru z kalendáře) požadované stavové změny, resp. plánování dalších událostí. Běh simulačního programu uplatňující diskrétní simulaci dle zmíněné metody můžeme chápat jako cyklické plánování událostí, jejich vybírání z kalendáře a provádění příslušných výkonných akcí, které jsou spojeny s jejich výskytem. Algoritmus uvedeného cyklu je formálně popsán v Tab. 3.1. Na obrázku 3.1 je stylizovaně graficky znázorněna koncepce konfigurace modulu diskrétní simulace založená na metodě plánování událostí. KST/IMOSI Modelování a simulace blok 3, strana 2 (10) Antonín Kavička
KROK Činnost 0 Inicializace simulačního času t S (t S = 0) 1 Ukončení běhu simulačního programu Výběr události z vrcholu kalendáře 2 (s nejmenší hodnotou /t U / plánovaného času výskytu) 3 Aktualizace simulačního času (t S = t U ) Výkon akce spojené s výskytem události 4 (akce provádí stavové změny a případné plánování dalších událostí) 5 Návrat na KROK 1 Vykonána za podmínek Kalendář neobsahuje události nebo je vyčerpán čas pro běh simulace Tab. 3.1 Algoritmus simulačního výpočtu aplikující metodu plánování událostí Modul Kalendář událostí (časová osa) Odebrání události z vrcholu Plánování událostí Zpracování události Pokyn zpracovat další událost Zpracování dokončeno Řídicí algoritmus Provádění změn stavu Obr. 3.1 Koncepce konfigurace modulu diskrétní simulace Příklad aplikace metody plánování událostí Aplikaci metody plánování událostí nyní ilustrujme na zjednodušeném příkladu nově plánovaných provozoven Drive-in občerstvení u dálnice (viz obr. 3.2). Zmíněné provozovny mají být vybudovány pro každý jízdní směr, přičemž ke každé z nich bude vést samostatný odbočovací pruh. KST/IMOSI Modelování a simulace blok 3, strana 3 (10) Antonín Kavička
Obr. 3.2 Ilustrace umístění nových provozoven Drive-in občerstvení Na obrázku 3.2. je stylizovaně znázorněn objekt zkoumání a následně příslušný vymezený systém, který abstrahuje od dopravních proudů na dálnici a postihuje pouze proudy, které směřují do odbočovacích pruhů. Obr. 3.3 Diagram plánování událostí KST/IMOSI Modelování a simulace blok 3, strana 4 (10) Antonín Kavička
INICIALIZACE STAV A-Obsluha = nepracuje B-Obsluha = nepracuje A-Fronta = prázdná B-Fronta = prázdná NAPLÁNOVÁNÍ příjezdů prvních zákazníků ZPĚT na simulační jádro Obr. 3.4 Logika inicializace simulačního experimentu V rámci simulace jsou sledovány příjezdy zákazníků do odbočovacích pruhů (na základě zadaných intenzit a charakteru příslušných dopravních proudů). Po uskutečnění příjezdu se příslušný zákazník přesune přímo k výdejnímu okénku (v případě, že před ním není fronta čekatelů) a neprodleně je zahájena obsluha, tj. výdej požadovaného jídla (časové trvání tohoto úkonu se odvíjí od zadaných charakteristik). Není-li možno po příjezdu zákazníka okamžitě zahájit obsluhu, zařadí se dorazivší zákazník do příslušné fronty, z níž později přistoupí k obsluze, až na něj přijde řada. Po dokončení obsluhy zákazníka tento následně opouští systém. Struktura simulujícího systému využívajícího událostně orientovanou architekturu je ilustrována na obrázku 3.3, kde je znázorněn tzv. diagram plánování událostí. Posláním digramu plánování událostí je specifikace jednak všech typů událostí, které se v simulujícím sytému vyskytují, a jednak plánovacích vazeb mezi těmito událostmi. Zmíněný diagram neobsahuje informace o podmínkách, za kterých k příslušným plánováním dochází. Představený diagram sestává ze čtyř typů událostí: Přijel zákazník ze směru A, Přijel zákazník ze směru B, Dokončena obsluha zákazníka ze směru A, Dokončena obsluha zákazníka ze směru B. Plánovací vazby jsou znázorněny orientovanými hranami (inicializační hrany vyjadřují nutnost naplánování prvních dvou událostí do kalendáře ještě před spuštěním simulace. KST/IMOSI Modelování a simulace blok 3, strana 5 (10) Antonín Kavička
UDÁLOST "Přijel zákazník ze směru A" STATISTIKA Zaznamenání času příjezdu zákazníka ze směru A NAPLÁNOVÁNÍ příjezdu dalšího zákazníka ze směru A STAV obsluhy A? STAV Zařazení zákazníka do A-Fronty STAV A-Obsluha = pracuje ZPĚT na simulační jádro NAPLÁNOVÁNÍ ukončení obsluhy zákazníka ze směru A ZPĚT na simulační jádro UDÁLOST "Dokončena obsluha zákazníka ze směru A" STATISTIKA Zaznamenání času odjezdu zákazníka STAV A-Fronty? STAV A-Obsluha = nepracuje STAV Přechod prvního zákazníka z A-Fronty do obsluhy ZPĚT na simulační jádro NAPLÁNOVÁNÍ ukončení obsluhy zákazníka ze směru A ZPĚT na simulační jádro Obr. 3.5 Logika zpracování vybraných událostí KST/IMOSI Modelování a simulace blok 3, strana 6 (10) Antonín Kavička
Obr. 3.6 Ilustrace evoluce běhu simulačního experimentu KST/IMOSI Modelování a simulace blok 3, strana 7 (10) Antonín Kavička
Aktuální simulační čas Probíhající obsluhy zákazníků Zákazníci ve frontách Inicializace Zákazníci v systému Naplánov. příjezdy zákazníků Naplánov. konce obsluh zákazníků 0,00 --- --- --- --- --- --- A1 B1 --- --- Po zpracování události Přijel zákazník ze směru A (zákazník A1) 1,1 A1 --- --- --- A1 --- A2 B1 A1 --- Po zpracování události Přijel zákazník ze směru B (zákazník B1) 1,3 A1 B1 --- --- A1 B1 A2 B2 A1 B1 Po zpracování události Dokončena obsluha zákazníka ze směru B (zákazník B1) 10,8 A1 --- --- --- A1 --- A2 B2 A1 --- Po zpracování události Přijel zákazník ze směru B (zákazník B2) 10,9 A1 B2 --- --- A1 B2 A2 B3 A1 B2 Po zpracování události Přijel zákazník ze směru B (zákazník B3) 11,1 A1 B2 --- B3 A1 B2, B3 A2 B4 A1 B2 Po zpracování události Přijel zákazník ze směru A (zákazník A2) 11,4 A1 B2 A2 B3 A1, A2 B2, B3 A3 B4 A1 B2 Po zpracování události Dokončena obsluha zákazníka ze směru B (zákazník B2) 15,2 A1 B3 A2 --- A1, A2 B3 A3 B4 A1 B3 Tab. 3.2 Ilustrace evoluce běhu simulačního experimentu Obr. 3.7 Struktura simulačního modelu využívající zobecněné událostí KST/IMOSI Modelování a simulace blok 3, strana 8 (10) Antonín Kavička
Logika zpracování vybraných událostí (včetně inicializačních úkonů před startem simulace) je zjednodušeně specifikována na obrázcích 3.4 3.6. U operací zaměřených na plánování nových událostí do budoucnosti lze generovat hodnotu časového razítka (udávající okamžik času výskytu příslušné události) buď s uplatněním deterministického, anebo stochastického přístupu. Na obrázku 3.6 a v tabulce 3.2 je ilustrována jedna z možných evolucí běhu simulačního experimentu z pohledu plánování událostí a aktuální zaplněnosti kalendáře. Diagram plánování událostí z obrázku 3.5 by bylo možné dále zobecnit, tj. bylo by možné redukovat model na využívání pouze dvou typů událostí (obr. 3.7), přičemž jeden typ události by zpracovával příjezdy zákazníků z obou směrů a druhý typ události by ošetřoval dokončení všech obsluh. Zobecnění lze dosáhnout vhodnou parametrizací při plánování událostí. 3.3 Metoda snímání aktivit Metoda snímání aktivit, někdy též označovaná jako dvojfázová metoda, je použitelná jak pro realizaci diskrétní, tak spojité simulace. Princip této metody je založen na principu snímání všech v simulátoru právě běžících aktivit v daných (obvykle pevných ekvidistantních) přírůstcích simulačního času τ (někdy též mluvíme o snímací periodě). Přesnost této metody je závislá na zvolené velikosti snímací periody. Při každém snímání aktivity dochází k jejímu vyhodnocování, tj. zkoumá se, zda v simulačním čase t S = n*τ (hodnota n vyjadřuje, o kolikáté snímání od počátku simulace jde) došlo: k ukončení aktivity, ke změně hodnot příslušných dynamických atributů a případně ke splnění aktivační podmínky (například dosažení dané prahové hodnoty atributu nebo výskyt interakce mezi aktivitami) pro vykonání specifické akce. Pro spojitou simulaci je charakteristické, že aktivita je formalizována analytickým popisem (např. soustavou diferenciálních rovnic), přičemž je principiálně možné zjistit hodnotu požadovaných atributů v libovolném simulačním čase. Volba periody snímání může být určena příslušným integračním krokem použité metody numerické integrace. Běh simulačního programu, založený na metodě snímání aktivit, je realizován jako periodické vyhodnocování běžících aktivit simulátoru (tab. 3.3). Je-li při vyhodnocování splněna aktivační podmínka, pak je provedena příslušná akce. KST/IMOSI Modelování a simulace blok 3, strana 9 (10) Antonín Kavička
KROK Činnost Vykonána za podmínek 0 Inicializace simulačního času t S (t S = 0) 1 Ukončení běhu simulačního programu 2 3 1. fáze Vyhodnocování všech běžících aktivit vzhledem k času t S a výkon příslušných akcí při splnění aktivačních podmínek 2. fáze Aktualizace simulačního času (t S = t S + τ) 4 Návrat na KROK 1 Je vyčerpán čas pro běh simulace Tab. 3.3 Algoritmus simulačního výpočtu využívající metodu snímání aktivit 3.4 Poznámky k implementaci Ukončeme probírané téma poznámkou, že algoritmy (právě uvedených synchronizačních metod) řídící běh simulačního programu jsou obvykle implementovány v samostatných synchronizačních rutinách. Tyto rutiny bývají označovány jako simulační jádro, které dále zahrnují příslušné operace (přístupné konstruktérovi simulátoru) umožňující aktivně ovlivňovat, případně monitorovat simulační experiment (jsou například k dispozici operace na zahájení simulace, zjištění hodnoty aktuálního simulačního času, definování hodnoty snímací periody, apod.). Otázky k procvičení 1. K čemu slouží kalendář událostí? 2. Jaké jsou vhodné implementace kalendáře událostí. 3. Jaké podmínky musí být splněny pro ukončení simulace synchronizované metodou plánování událostí? 4. Kdy dochází k aktualizaci simulačního času při uplatnění metody snímání aktivit a metody plánování událostí? 5. Pro jaký typ simulace je aplikovatelná metoda plánování událostí a metoda snímání aktivit? KST/IMOSI Modelování a simulace blok 3, strana 10 (10) Antonín Kavička
4. Životní cyklus simulačního projektu Studijní cíl Cílem výkladu v tomto bloku je představení základních etap životního cyklu simulačního projektu, jak jsou typicky realizovány v rámci aplikačních projektů v praxi. Doba nutná k nastudování 2 hodiny Simulační projekt (jinak též nazývaný jako simulační studie) se zaměřuje na studium zkoumaného (existujícího nebo projektovaného) dynamického systému, vymezeného na objektu zkoumání, s cílem odpovědět na otázky s tímto objektem zkoumání spojené, přičemž je využívána výzkumná metoda simulace. Simulační projekt sestává ze dvou základních etap a to z etapy návrhu a tvorby simulačního modelu a dále z etapy experimentování s tímto modelem. Uvedené etapy lze dále členit do dílčích fází, které mohou probíhat jak sekvenčně tak paralelně. Životní cyklus zmíněného simulačního projektu je znázorněn na obrázku 4.1. 4.1 Etapa návrhu a tvorby simulačního modelu 1. fáze Na začátku každého projektu, resp. při jeho zadávání jsou formulovány základní problémy, které trápí zákazníka, o nichž si tento myslí, že pro jejich řešení je vhodné nasadit výzkumnou metodu simulace. Jakmile řešitel pochopí podstatu zákazníkových problémů (které je mnohdy nutné ve spolupráci se zákazníkem přeformulovat), musí si nejprve odpovědět (na základě svých zkušeností) na otázku, zda je pro jejich řešení metoda simulace vhodná a zda je schopen ji vzhledem k povaze problému úspěšně aplikovat. Jestliže je odpověď na uvedenou otázku kladná, potom je nutné si na reálném objektu, k němuž zákazník své problémy vztahuje, po provedené analýze vymezit objekt zkoumání, na který bude během celého projektu soustředěna pozornost. KST/IMOSI Modelování a simulace blok 4, strana 1 (7) Antonín Kavička
Obr. 4.1 Základní životní cyklu simulačního projektu KST/IMOSI Modelování a simulace blok 4, strana 2 (7) Antonín Kavička
2. fáze Dalším úkolem na začátku projektu je stanovení konkrétních cílů a časového plánu projektu. Cíle projektu vlastně navozují otázky, které mají být během projektu zodpovězeny. 3. fáze Následně je na objekt zkoumání uplatněna abstrakce, tedy je na něm vymezen zkoumaný/simulovaný systém (originál), který zohledňuje ty prvky objektu zkoumání (spolu s jejich vazbami) a ty jejich vlastnosti, které jsou důležité pro řešení problémů projektu v souladu s cílem. 4. fáze Dále je zvolena vhodná koncepce pro tvorbu simulačního modelu tzn. je vybrána metodika tvorby spojená s některou s architektur simulačního modelu (událostní, procesovou, agentovou apod.). V závislosti od zvolené koncepce je možné v jistém (neimplementačním) formalismu vytvořit též konceptuální model, který specifikuje základní funkční a řídicí části budoucího simulačního modelu zatím bez nutnosti definovat jejich detaily. Je nutné, aby do fáze přípravy a tvorby modelu byl též zahrnut zákazník. S volbou uvedené koncepce je obvykle spojen i výběr vhodného implementačního prostředí, resp. simulačního jazyka, v němž bude simulační model později realizován. 5. fáze Paralelně se 4. fází probíhá sběr a analýza dat potřebných pro simulační model, přičemž jejich charakter může být různý. Sbírají se například: data popisující vlastnosti jednotlivých prvků originálu, data popisující povahu procesů (deterministické nebo stochastické), data o pravidlech technologických postupů, dále historická data o vstupech prvků z okolí do systému (na nich může být následně provedena statistická analýza, jež bude podkladem pro parametrizaci generátorů vstupujících prvků), data o rozhodovacích pravidlech pro řešení konfliktů v systému apod. Řešitel projektu by se měl snažit, aby potřebná data sesbíral sám zákazník a dodal je v požadovaném elektronickém formátu (např. s využitím údajů z informačních systémů). 6. fáze Po ukončení výše zmíněných fází se přistupuje k samotné tvorbě tedy implementaci simulačního modelu, která je spojena zejména s navrhováním a implementací vhodných datových struktur, v nichž budou uchovávány prvky simulačního modelu a dále s implementací jak řídicích, tak výkonných KST/IMOSI Modelování a simulace blok 4, strana 3 (7) Antonín Kavička
komponentů simulátoru. Jak již bylo zmíněno výše, je nutné si vybrat vhodné implementační prostředí, resp. programovací jazyk, který konstruktérovi dovolí budovat model, vzhledem k jeho charakteru, existujícími adekvátními prostředky. Například pro tvorbu modelů, které zahrnují takovou třídu úkolů, pro něž již existují specializované simulační nástroje (zaměřené například na simulaci počítačových sítí, výrobních systémů, elektronických obvodů apod.) je vhodné tyto nástroje použít a neimplementovat takové simulační modely v obecnějších simulačních nebo dokonce obecných vyšších programovacích jazycích. Volba adekvátního realizačního prostředku vždy závisí na zkušenostech a schopnostech řešitelského týmu. Častým požadavkem na implementaci bývá on-line animace, která umožňuje sledovat a kontrolovat důležité simulační pokusy s cílem transparentně posuzovat uplatnitelnost jednotlivých scénářů simulačních pokusů v praxi. Online animace umožňuje experimentátorovo pohodlné sledování evoluce simulačního pokusu a v případě potřeby mu rovněž usnadňuje provádění interaktivních zásahů do simulátoru za běhu simulačního programu. Dalším možným požadovaným výstupem je poskytnutí post-simulačních grafických protokolů, které mohou například zobrazovat nasazení obslužných zdrojů v čase na určité úkoly. Implementační koncepce může stavět buď na (i) klasickém popisu pomocí programového kódu (nevýhodou je, že každý nutný opravný či modifikující zásah je spojen s nutností měnit programový kód příslušné části simulátoru) anebo na (ii) deklarativním přístupu, tj. takovém formálním popisu, který je možné měnit vně simulačního programu pomocí změny struktury řídicích dat jedná se tedy o značně flexibilnější přístup, který umožňuje mnohem efektivnější práci se simulátorem. Realizace druhého přístupu může být například spojena s použitím Petriho sítě (rozšiřující modelovací možnosti stavových automatů), která představuje vhodný formalismus popisu dynamiky dané části systému, přičemž konkrétní topologie příslušné Petriho sítě může být simulačnímu programu předána jako parametr obsahující aktuální řídicí data (ta mohou být pohodlně editována ve speciálním grafickém editoru), přičemž daná Petriho síť je v simulačním programu interpretována pomocí specializovaného interpreta. 7. fáze Jakmile je implementace simulačního modelu dokončena, je nutné ověřit správnost simulačního programu, resp. model verifikovat. Model je považován za správný, resp. verifikovaný, jestliže průběh simulačního výpočtu odpovídá KST/IMOSI Modelování a simulace blok 4, strana 4 (7) Antonín Kavička
aktuální představě vyjádřené v konceptuálním modelu neboli je funkčně správný. V procesu verifikace se uplatňují různé metody a přístupy, které umožňují testování funkční správnosti simulátoru, resp. jeho jednotlivých částí/komponentů (testuje se např. korektnost interakce procesů, dodržování vztahů kauzality, korektnost generátorů vstupů apod.). Dobrým pomocníkem v procesu verifikace se taktéž jeví on-line animátor, který umožňuje sledovat, ve vhodné grafické formě, změny ve stavovém prostoru simulátoru. Postupně odhalované závady funkčnosti simulačního modelu jsou odstraňovány opravnými implementačními zásahy. 8. fáze Po úspěšném završení verifikace je dále potřebné otestovat pravdivost neboli provést validaci simulačního modelu. V této fázi se vlastně zjišťuje, zda simulátor odráží objekt zkoumání na takové úrovni přesnosti, která se od něj očekává a která byla zadaná v cílech projektu. Nebo jinými slovy, zda simulátor představuje takovou substituci reality, která je způsobilá k experimentování. Validaci lze provádět pomocí různých metodik: (i) metoda srovnávání s realitou porovnává chování simulátoru s chováním (reálného) objektu zkoumání pomocí statistických metod, (ii) metoda srovnávání s jiným modelem na rozdíl od metody předešlé provádí srovnávání s jiným (matematickým) modelem a konečně (iii) empirická metoda je založená na studiu vnějšího chování simulátoru nezávislým odborníkem expertem z příslušné oblasti, který posuzuje, zda je toto chování dostatečně realistické. První metoda může využívat pro srovnávání historická data (např. statisticky zpracovaná) spojená s objektem zkoumání, která jsou aplikována v jednotlivých simulačních pokusech. Metoda druhá a třetí je aplikována zejména v případech, kdy vůči simulátoru neexistuje originál (je projektovaný nebo jen myšlený), a tudíž srovnání s realitou nelze provést. Nedostatky odhalené při validaci mohou být spojeny s potřebou přehodnotit konceptuální model a pořídit případné nové typy dat nebo je dokonce nutné provést nové vymezení systému na objektu zkoumání. V těchto případech je nezbytné znovu vybudovat (resp. modifikovat) i samotný simulátor a opět ověřit jeho správnost a pravdivost. Fáze verifikace a validace se v praxi mnohdy prolínají a není možné je od sebe striktně oddělovat. Další významnou skutečností je fakt, že v simulačním KST/IMOSI Modelování a simulace blok 4, strana 5 (7) Antonín Kavička
projektu je velmi důležité přesvědčit zákazníka, že simulátor představuje po ukončené validaci důvěryhodnou substituci reality, neboli že simulátor je kredibilní. Jaké přístupy lze uplatnit pro ověření pravdivosti (již verifikovaného) simulátoru? První možnost je nejdříve sestrojit simulátor tak, aby odrážel stávající stav zkoumaného objektu, a potom jej otestovat pomocí metody srovnávání s realitou a doplňkově též pomocí empirické metody (pro ni je možné využít vhodného specializovaného odborníka, který může v případě úspěchu osvědčit kredibilitu modelu). Metoda srovnávání s realitou může využívat historická data, jež jsou v dnešní době poměrně lehce dostupná například z různých informačních systémů, které v reálném čase monitorují procesy spojené se zkoumaným objektem. Prokáže-li se, že model je věrohodný, lze dále simulátor modifikovat tak, aby odrážel změny v systému, které odpovídají projektovým záměrům. Validace takto modifikovaného a verifikovaného simulátoru je prakticky možná uplatněním empirické metody. 4.2 Etapa simulačních experimentů 9. fáze Na začátku druhé etapy projektu je nutné sestavit plán simulačních experimentů, jejichž postupné provádění povede k dosažení cílů projektu. Samozřejmě není možné očekávat sestavení fixního detailního plánu, kterého je nutno se striktně držet. Postupně získávané výsledky jednotlivých experimentů mohou celý plán i scénáře jednotlivých experimentů korigovat. Simulační studie zaměřené na racionalizaci provozu obslužných systémů často využívají scénářů postavených na počátečním předpokladu nelimitovaných obslužných zdrojů, které jsou postupně v rámci dalších scénářů redukovány až na minimum, které umožní realizaci provozu v požadované kvalitě. 10. fáze Po sestavení plánu experimentů začíná proces provádění samotných simulačních experimentů. Výsledky jednotlivých experimentů jsou statisticky zpracovány, analyzovány a je přijato rozhodnutí o scénářích dalších experimentů. Jestliže byly provedeny experimenty, jejichž rámec byl vymezen v původním plánu a vyvstaly nové problémy, resp. potřeba realizace další série KST/IMOSI Modelování a simulace blok 4, strana 6 (7) Antonín Kavička
experimentů, je nutné se vrátit a sestavit další plán experimentů a ty opět provést. Tento iterační proces má za cíl najít dobré (v ideálním případě optimální) řešení problémů, které jsou během projektu zkoumány. 11. fáze Po ukončení experimentování se simulátorem vyvstává úkol vypracovat závěrečnou zprávu, která vyhodnotí celý projekt (na základě doložených podkladů o vyhodnocení provedených experimentů), vyjádří se k dosažení cílů projektu a předloží doporučení řešení problémů spojených s objektem zkoumání. Závěrečná zpráva obvykle obsahuje zdůvodnění navrhovaných řešení zkoumaných problémů na základě důkladného statistického zpracování širokého spektra výsledků simulačních pokusů a dále může pro vybrané pokusy doložit post-simulační grafické časové protokoly. Doporučuje se taktéž zákazníkovi dodat softwarový prohlížeč vybraných simulačních pokusů, který mu umožní tyto reprodukovat (včetně animačních výstupů a vytváření statistik) bez možnosti měnit jejich vstupní data. Zmíněný prohlížeč je v zásadě možné používat během celé doby experimentování, na němž může tímto způsobem zákazník participovat a dávat k jeho průběhu své připomínky. Otázky k procvičení 1. Jaké jsou základní etapy simulačního projektu/studie? 2. Jaká opatření jsou typicky prováděna pro zabezpečení vstupů simulačního modelu? 3. Jak lze charakterizovat verifikaci simulačního modelu? 4. Jaké postupy lze uplatnit při validaci simulačního modelu? 5. Za jakých podmínek je možné v simulačním projektu přistoupit k provádění naplánovaných simulačních experimentů? KST/IMOSI Modelování a simulace blok 4, strana 7 (7) Antonín Kavička
5. Demonstrační simulační projekt prvotní analýza vstupních dat Studijní cíl Na příkladu simulačního zkoumání zjednodušených variant provozu pokladního oddělení pobočky banky budou postupně ilustrovány jednotlivé fáze simulačního projektu. V rámci tohoto bloku bude věnována pozornost zejména problematice analýzy dat s cílem následně vytvářet generátory vstupních dat pro příslušný simulátor. Doba nutná k nastudování 3 hodiny 5.1 Motivační poznámky Centrála EM-Banky plánuje rekonstruovat pobočku, přičemž plán prostorového uspořádání pokladního oddělení pobočky po rekonstrukci odpovídá znázornění na obrázku 5.1. Uvedený plán počítá s: jednou přepážkou vyhrazenou pro informátora, pěti standardními přepážkami pro vyřizování bankovních operací pokladními úředníky a jedním pokladním automatem. Obr. 5.1 Prostorové uspořádání pokladního oddělení na pobočce banky KST/IMOSI Modelování a simulace blok 5, strana 1 (19) Antonín Kavička
8.2 Závěry simulačního projektu Výše uvedené výsledky simulačních experimentů vedou k následujícím závěrům: Jeden automat není schopen zabezpečit požadovanou kvalitu obsluhy zákazníků. Instalace dvou automatů umožňuje obsluhovat téměř 89 % zákazníků na požadované úrovni kvality, tj. čekací doba ve frontě nepřesáhne 3 minuty. Po instalaci tří automatů je téměř u všech zákazníků započata jejich obsluha do 3 minut po jejich příchodu do banky. Využití automatů je okolo 75 % v případě, jsou-li k dispozici dva automaty a okolo 50 % pro případ instalace tří automatů. Doporučuje se nákup dvou nebo tří automatů, přičemž vylepšení kvality obsluhy při instalaci tří automatů musí být zváženo vzhledem k dodatečným nákladům. Uplatnění společné fronty vede k lepší kvalitě obsluhy (patrné zejména pro případ instalace dvou automatů), a proto lze její využívání managementu banky doporučit. Pro celkové zhodnocení provozu pokladního oddělení by bylo vhodné simulační model dále rozšířit o ostatní obslužná místa (informátora a pokladníků). Pozn.: Problematika aplikace statistických metod v simulačních projektech byla v rámci této opory zpracována ve spolupráci s Mgr. Věrou Záhorovou, Ph.D. (Katedra informatiky v dopravě, Dopravní fakulta Jana Pernera). Otázky k procvičení 1. Jakou metodiku lze uplatnit pro určení vhodného, resp. dostatečného počtu replikací simulačního experimentu? 2. Jaké jsou možnosti pro stanovení požadované míry přesnosti hodnot sledovaných typů ukazatelů získávaných statistickým zpracováním výstupních dat simulačních experimentů? KST/IMOSI Modelování a simulace blok 8, strana 18 (18) Antonín Kavička