Počítačová simulace

Počítačová simulace je simulace, při níž je modelem počítačový program, který se pokouší simulovat abstraktní model určitého systému. Úkolem simulačního programu je zjistit, jak se bude systém chovat pro zadaná vstupní data. Úkolem simulačního programu není provádět optimalizaci, tzn. hledat, pro která vstupní data
dostaneme optimální řešení. Uživatel může provádět se simulačním programem opakované simulační experimenty s cílem zjistit očekávané výsledky pro různá vstupní data a nalézt tak optimální řešení problému.

Simulace je v matematice a kybernetice vědecká metoda, při které se zkoumají vlastnosti nějakého systému pomocí experimentů s jeho matematickým modelem. Počítačové simulace se staly užitečnou součástí matematického modelování mnoha přirozených systémů ve fyzice, chemii a biologii, psychologii a získaly nový pohled do fungování těchto systémů.

Jiná definice: Počítačová simulace je experiment s počítačovým modelem.

Historie 
Počítačová simulace byla vyvinuta ruku v ruce s rychlým růstem počítačů. První velké nasazení bylo v Manhattanském projektu ve druhé světové válce na procesní model jaderného výbuchu. Jednalo se o simulaci 12 těžkých koulí pomocí algoritmu Monte Carlo. Počítačová simulace se často používá jako doplněk nebo náhrada pro modelování systémů. Existuje mnoho různých druhů počítačových simulací. Společným rysem, které všechny sdílejí, je pokus generovat vzorek reprezentativních scénářů pro model ve kterém kompletní výčet všech možných stavů modelu by byl nepřístupný nebo nemožný. Počítačové modely byly původně používány jako doplněk k další argumentaci, ale jejich použití se později stalo poměrně rozšířené.

Základní části simulace 
1.Návrh modelu
 sestavení modelu
 založeno na redukci skutečnosti

2.Provedení simulace
 využití / tvorba programu
 vizualizace problému
 pozorování problému

3.Analýza získaných dat

Simulované jevy 
S pojmem simulace se spojují dva základní významy: 1) napodobovat, 2) předstírat. Počítačové simulace představují velkou rozmanitost. Mezi ty nejnápadnější simulované jevy pro mladší generaci patří 3D akční hry, které představují virtuální prostředí založené na vizuální podobnosti s reálným světem kolem nás. V případě počítačových simulací je možné říci, že cokoliv, co můžeme popsat, lze také simulovat pomocí počítače. Popisem se má na mysli proces rozčlenění jevu na základní samostatné prvky, kterým lze přiřadit určité hodnoty a určitý počet pravidel, podle kterých se tyto prvky mezi sebou chovají. Počítačově simulovaná realita je proto založena na popisu skutečného světa a sama o sobě vytváří jednodušší a ve své jednoduchosti také dokonalejší svět. Jevy, které nás obklopují, jsme se rozhodli vysvětlit či popsat určitými zákonitostmi, které se zdají být efektivní. Nesmíme však zapomínat, že z konečné množiny pozorování přírodních úkazů většinou usuzujeme na absolutní, tedy nekonečnou, platnost námi stanovených zákonů. Tyto zákony pak však popisují spíše ideální svět než realitu

Rozdělení počítačových simulací 
Předvídatelnost událostí
 Stochastické – používají generátor pseudonáhodných čísel, nebo pravděpodobnost (obzvláště populární je metoda Monte Carlo).
 Deterministické – výsledek je opakovatelný a závisí pouze na vstupních datech a možné interakci s vnějším světem.

Podle času
 Spojitá simulace (synchronní výpočet) / čas v simulačním modelu je opakovaně zvyšován s konstantním malým krokem, vždy se přepočítají všechny děje, které v systému probíhají
 Diskrétní simulace (asynchronní výpočet) – čas v simulačním modelu je zvyšován nepravidelně vždy na hodnotu, kdy dojde v systému k nejbližší události.

Forma výstupu
 Statické – výsledkem je soubor údajů – statické obrázky.
 Dynamické – je výsledkem procesu, který se koná v určité době např. animace.
 Interaktivní – reaguje na signály z vnějšího světa
 Neinteraktivní

Počtu používaných počítačů
 Místní – zpracování se provádí na jediném počítači.
 Distribuované – zpracování se provádí v počtu připojených počítačů v místní síti (LAN), nebo vnější, jako je internet.

Modelování 
Modelování patří k tradičním postupům v některých technických disciplínách, například v kybernetice nebo v teorii automatického řízení. S rozvojem levných a dostupných počítačů v posledních desetiletích proniklo počítačové modelování do většiny technických věd a stalo se důležitou metodou i v biologii, meteorologii, geologii a dokonce v ekonomii a ve vědách sociálních.

Hlavní praktickou výhodou modelování je možnost pomocí pokusů a omylů vyřešit úlohy, které nemají analytické řešení, nebo ověřit vlastnosti nákladných zařízení před jejich fyzickou realizací (např. složité integrované obvody, letadla nebo atomové bomby). Simulační modely se používají také jako součást trenažérů nebo počítačových her. Biologické modely mohou zabránit některým pokusům na zvířatech.

Pro modelování v různých oborech byla vyvinuta řada specializovaných softwarových balíků, k nejznámějším patří například Matlab Simulink pro modelování dynamických systémů nebo Spice pro elektrické obvody. V minulosti se používaly pro modelování analogové počítače (výpočet obyčejných diferenciálních rovnic s počátečními podmínkami) nebo simulační programovací jazyky, jako např. Simula (systémy s diskrétními událostmi, Discrete event simulation) nebo CSSL (Continuous System Simulation Language, spojité systémy).

Matematický model 
Prvním krokem při počítačovém modelování bývá sestavení matematického modelu zkoumaného systému. Model může být získán buďto teoreticky ze základních fyzikálních vlastností systému, nebo empiricky z naměřených hodnot. Určování parametrů teoreticky vytvořeného modelu z empirických hodnot se nazývá identifikace systémů.

Matematický model musí vhodně charakterizovat závislost výstupů systému na jeho vstupech. Modely fyzikálních soustav jsou obvykle sestaveny jako soustavy několika diferenciálních rovnic. V kybernetice nebo elektrotechnice jsou to obvykle obyčejné diferenciální rovnice, jiné obory pracují také s parciálními diferenciálními rovnicemi. Rovnice obvykle upravujeme do některé z kanonických forem. V jiných disciplínách můžeme použít pro popis systému diferenční rovnice, stochastické diferenciální rovnice, přenosové funkce v Laplaceově transformaci nebo zcela jiný matematický aparát.

Model ale málokdy dokáže popsat dění v přírodě dostatečně přesně. Výsledek jsme např. získali s použitím zjednodušujících předpokladů, nebo byl použit nevhodný model. Při modelování je proto zásadní znát omezení použitého modelu a nevyvozovat z modelování nepatřičné závěry.

Rovnice matematického modelu řešíme vhodnou numerickou metodou. Vypočtené výsledky vhodně interpretujeme.

Princip počítačové simulace výrobních systémů 
Počítačová simulace výrobního systému je etapa dynamického zkoumání výrobního systému. Jejím principem je experimentování s počítačovým modelem, který je pokud možno přesným obrazem stochasticky se chovajícího výrobního systému. Na simulačním modelu se simulují stavy systému (např. transport součásti, proces obrábění, porucha atd.) v závislosti na čase. Jejich změna přitom nastává diskrétně v časových okamžicích, které jsou reprezentovány diskrétní událostí (např. příchod zakázky, začátek obrábění, začátek seřizování, začátek poruchy apod.). Cílem experimentování je vyhledáni takových hodnot výstupních veličin modelu, které vyhovují předem stanoveným požadavkům (cílům simulační studie). Vstupní hodnoty tohoto řešení jsou potom použitelné i pro reálný systém.

Data v simulacích 
Požadavky na data u simulací a modelů se velmi liší podle konkrétní modelované situace. Pro některé může být vstup jen několik čísel (například simulace průběhu střídavého proudu), zatímco jiné simulace požadují několik terabajtů informací (jedná se např. o počítačové simulace jako je počasí a klimatické modely).

Vstupní proměnné se různě liší:

 Čidla a dalších fyzikálních zařízení připojené k modelu;
 Řídící plochy sloužící k přímému postupu simulace nějakým způsobem;
 Aktuální nebo historické údaje zadané ručně;
 Hodnoty získané jako vedlejší produkt jiných procesů;
 Výstupní hodnoty pro účely jiné simulace, modely, nebo procesy;

Dále se data simulace liší podle údajů, které jsou k dispozici v určitém čase:

 Neměnná data jsou často napsána do kódu modelu, a to buď proto, že hodnota je skutečně neměnná (např. hodnota π), nebo proto, že konstruktéři je považují za hodnotu, která se nemění pro všechny případy;
 Data mohou vstoupit do simulace když začíná, například tím, že čte jeden nebo více souborů, nebo čte data ze zařízení jménem preprocesor;
 Data mohou být poskytnuty v průběhu simulace běhu, například senzorové sítě;

V počítačových simulací je vidět velká rozmanitost, ale také mnoho společných prvků. Proto existuje velké množství specializovaných simulačních jazyků. Například Simula 67.

Sledování průběhu simulace 
Lze využít při ladění programu. Při každé aktivaci procesu (ošetření jedné jeho události) můžeme vypsat do výstupního souboru řádek s informací o událostech, které se simulací souvisí (čas události, identifikace procesu, druh události, důležité údaje o aktuálním stavu modelu).

Výsledek simulace 
V nejjednodušším případě to může být čas, kdy simulace skončí (je odvezen všechen písek, ze samoobsluhy odešel poslední zákazník). Dále můžeme mít jiné požadavky, příslušné podklady je pak třeba průběžně evidovat a ukládat v průběhu simulace (kolik písku odvezlo které auto, jaké nejdelší fronty během dne vznikly v samoobsluze a kdy).

Výhody a nevýhody použití simulace 
Mezi výhody použití simulace se řadí:

 Simulace umožňuje prověřit všechny aspekty navrhované změny bez nutnosti vynaložení zdrojů na její realizaci. Náklady na odstranění následků špatného rozhodnutí, nebo úprava již hotového řešení mohou být v některých případech velmi nákladné (např. bourání nebo přestavba špatně navržené haly nebo změna rozestavení zařízení na zpracování materiálu).
 Možnost změny rychlosti toku času. Takto je možné důkladně prozkoumat vybraný jev, ať už se jedná např. o celou směnu, kterou tak lze prozkoumat v řádu minut, nebo několik hodin zkoumat jev, který ve skutečnosti trvá jen pár minut.
 Pochopení příčin vzniku sledovaného úkazu v reálném systému, který nelze vysvětlit jeho zkoumáním, protože jej nelze zachytit nebo řídit v jeho celistvosti. Příčiny tak lze určit podrobným zkoumáním rekonstrukce událostí, které v systému proběhly.
 Zkoumání možností úprav systému. Jakmile je k dispozici validní simulační model reálného systému, je možné navrhovat a zkoumat nové provozní zásady, postupy nebo metody bez dalších nákladů a přerušení činností v systému. Možnost modifikací je již zahrnuta v simulačním modelu a jejich důsledky lze tak pozorovat na počítači, nikoliv na reálném systému.
 Simulací lze řešit i velmi složité systémy, které jsou neřešitelné analytickými metodami.
 Již samotné zkušenosti z tvorby simulačního modelu mohou vést k návrhům na zlepšení řízení či struktury.
 Simulace nabízí komplexnější pohled na studovaný problém.
 Pozorování činnosti simulačního modelu vede k lepšímu pochopení reálného systému.
 Možnost využití již jednou vytvořeného simulačního modelu i v dalších činnostech podniku.

Mezi nevýhody použití simulace se řadí:
 Vytváření modelů vyžaduje odborné školení. Je to dovednost, která se zlepšuje v průběhu času a skrze zkušenosti. Dva modely stejného systému, každý vytvořen jinou osobou, se mohou v lecčem shodovat, ale stejné nebudou prakticky nikdy.
 Výsledky simulace lze někdy interpretovat jen s velkými obtížemi. Vzhledem k tomu, že většina výstupů simulace jsou v podstatě náhodné veličiny vycházející z náhodných vstupů, lze někdy těžko určit, zda je pozorování výsledkem vzájemných vztahů v systému nebo výsledkem pouhé nahodilosti.
 Simulační modelování a analýzy mohou být časově náročné a drahé. Šetření na zdrojích pro modelování a analýzu může mít za následek vytvoření modelu a/nebo analýzy, které jsou pro daný účel nedostatečné.
 Simulace může být použita nevhodně. Použití simulace může být nevhodné v případech, kdy je analytické řešení dosažitelné, ne-li dokonce upřednostňované.

Určení oblastí využívající simulace 
Oblastí využití je velký počet. Zde je uveden hrubý přehled oblastí, kde velmi často lidé sahají po simulačních modelech, jako nástroj pro podporu rozhodování a vizualizaci, analýzu a predikci chování systému či na řešení konkrétních problémů, uplatnění u výrobních systémů a systémů manipulujících s materiálem.

Typické úlohy pro řešení pomocí počítačové simulace:

Optimalizace obchodních procesů
 stanovení „optimální“ výrobní strategie
 předpovídání „skutečných“ nákladů na zakázku

Plánování a řízení výroby
 plánování celopodnikových zdrojů
 přidělování zakázek jednotlivým výrobním celkům
 dílenské řízení výroby

Zlepšení logistických koncepcí
 minimalizace skladů a zásob
 redukce rozpracované (nedokončené) výroby a průběžných dob
 určování výrobních a transportních dávek
 sladění dodávek surovin a polotovarů s výrobou
 zabezpečení expedice

Projektování výrobních systémů
 projektování inovačních změn stávajících výrobních systémů
 zjištění požadavků na kapacity pro zajištění plynulosti výroby
 návrh dispozičního uspořádání
 „optimalizace“ uspořádání jednotlivých prvků celku
 zkušební provoz

Analýzy výrobních systémů
 identifikování a odstranění úzkých míst
 odhalování rezerv důkladným rozborem nejrůznějších činností
 „co když“ analýzy

Školení pracovníků v oblasti
 stanovování výrobní strategie
 projektování a plánování výroby
 analýz a zlepšování výrobních systémů
 zaškolování nových pracovníků

Aplikace ve veřejném sektoru
 systémy ve zdravotnictví
 vojenské systémy
 přírodní zdroje
 veřejné služby

Aplikace u obslužných systémů
 doprava
 počítačové systémy
 komunikační systém

Vybrané příklady aplikací simulace 
 simulátorů pro letadla, ponorky, tanky,
 v ekonomice a podnikání
 systémů hromadné dopravy
 Inventory Management
 oceňování derivátů
 hodnocení investičních projektů
 předpověď rozdělení křesel v parlamentu
 populační dynamika
 přírodní vědy
 meteorologie – předpověď počasí
 analýza rozptylových charakteristik
 v technických vědách
 konstrukce
 letectví – pevnost konstrukce
 elektronika – analýzy elektrických obvodů
 matematika
 numerické výpočty řešení diferenciálních rovnic
 simulace určení distribuční funkce, které nelze integrovat (např. normální rozdělení)
 počítačová simulace hry

Příklady software pro simulaci 
 SimQuest
 Witness 
 JeLSIM – Java eLearning simulace...
 NetLogo
 AgentSheets
 Microsoft Excel
 Simprocess
 ASCEND
 Facsimile
 Galatea
 GarlicSim
 JModelica
 NS2
 OpenModelica
 Physics Abstraction Layer
 SimPy

Literatura 
 BANKS, J.: Principles of Simulation. In BANKS, J., ed.: Handbook of simulation: Principles, Methodology, Advances, Applications, and Practice, 1998. John Wiley & Sons, Inc., New York. . s. 547–570
 BAKER, D. W., STEVENS, C. D., BROOK, R.H.: Regular source of ambulatory care and medical care utilization by patients presenting to a public hospital emergency department. Journal of the American Medical Association, 271, 1994, s. 1909–1912;
 SHANNON, R. E. Introduction to Simulation. Winter Simulation Conference. In SWAIN, J. J., GOLDSMAN, D., CRAIN,R. C. & WILSON, J. R., eds.: Proceedings of the 1992 Winter Simulation Conference, 1992, Arlington, Virginia, United States.
 SHANNON, R. E. Introduction to the Art and Science of Simulation. Winter Simulation Conference. In MEDEIROS, D. J., WATSON, E. F., CARSON, J. S. 92 & MANIVANNAN, M. S., eds.: Proceedings of the 1998 Winter Simulation
 HORA, P. Diplomová práce "Srovnání programových produktů pro simulaci a možnosti jejich využití", Vysoká škola ekonomická v Praze, 2011
 PRECLÍK Vratislav: Průmyslová logistika, 359 s., , Nakladatelství ČVUT v Praze, 2006

Reference

Související články 
 EXCLAIM (meteorologie)
 Simulace v technice
 Vědecké modelování

Externí odkazy 
 

Numerická matematika
Kybernetika
Informatika
Teorie systémů
Simulační software