Úvod do simulace - 1



Podobné dokumenty
Úvod do simulace - 1

Úvod do systémů hromadné obsluhy. charakteristika SHO: systém, který poskytuje obsluhu určitého typu

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Zásobníky nástrojů, typy, základní vlastnosti.

PL/SQL. Jazyk SQL je jazykem deklarativním, který neobsahuje procedurální příkazy jako jsou cykly, podmínky, procedury, funkce, atd.

Informatika Algoritmy

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

8) Jaké jsou důvody pro použití víceprůchodového překladače Dříve hlavně kvůli úspoře paměti, dnes spíše z důvodu optimalizace

Seminář z IVT Algoritmizace. Slovanské gymnázium Olomouc Tomáš Kühr

Distribuovaná synchronizace. Paralelní a distribuované systémy. 11. Přednáška Vzájemné vyloučení. Centralizovaný algoritmus - fronta procesů

Šablony, kontejnery a iterátory

Implementace seznamů do prostředí DELPHI pomocí lineárního seznamu

5 Rekurze a zásobník. Rekurzivní volání metody

IB015 Neimperativní programování. Časová složitost, Typové třídy, Moduly. Jiří Barnat Libor Škarvada

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Etapy tvorby lidského díla

Informační systémy a plánování výroby 2.čast

Cvičení 9 - Monitory. monitor m; var proměnné... procedure p; begin... end; begin inicializace; end;

Algoritmizace. 1. Úvod. Algoritmus

14. Složitější konstrukce

Úvod do programovacích jazyků (Java)

Programovací jazyk Pascal

Abstraktní datové typy FRONTA

Řízení projektů Simulační projekt

Učební pomůcka Simulace Witness

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

Šablony, kontejnery a iterátory

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Semestrální práce z předmětu. Jan Bařtipán / A03043 bartipan@studentes.zcu.cz

SDI. František Manlig. Technická univerzita v Liberci. Simulace diskrétních systémů TU v Liberci

Rozvrhování výroby. František Koblasa Technická univerzita v Liberci. TU v Liberci

Homer. prvky. délka. přední 0 zadní 4. Použití fronty BUS STOP. 3 Lisa. 2 Bart. 4 Maggie. 1 Marge. Grafické znázornění předchozí animace:

Činnost: 1) Vyhodnotí se výraz E. 2) Jeho hodnota se uloží do proměnné V.

Test prvočíselnosti. Úkol: otestovat dané číslo N, zda je prvočíslem

Konstruktory a destruktory

Seřizování nástrojů na CNC EMCO Turn E-120 P

PREPROCESOR POKRAČOVÁNÍ

Operační systémy. Přednáška 5: Komunikace mezi procesy

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Úvod do programování

B3 Vazba strategie byznys

III/2 Inovace a zkvalitnění výuky prostřednictvím ICT

PARADIGMATA PROGRAMOVÁNÍ 2 PŘÍSLIBY A LÍNÉ VYHODNOCOVÁNÍ

simulace v logistice

Sada 1 - Základy programování

NPRG030 Programování I, 2010/11

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

Počítačová simulace logistických procesů I. 11. přednáška Programování v SimTalk. ŠAVŠ, Fábry

10. Architektura klient/server a třívrstvá architektura

Jazyk C++ I. Šablony 2

10. Architektura klient/server a třívrstvá architektura

Basic256 - úvod do programování Příklady. ing. petr polách

Uložené procedury Úvod ulehčit správu zabezpečení rychleji

KMA/PDB. Karel Janečka. Tvorba materiálů byla podpořena z prostředků projektu FRVŠ č. F0584/2011/F1d

NPRG030 Programování I, 2016/17 1 / :58:13

Evoluční algoritmy. Podmínka zastavení počet iterací kvalita nejlepšího jedince v populaci změna kvality nejlepšího jedince mezi iteracemi

Informační systémy plánování výroby - pokročilé rozvrhování

Stromy, haldy, prioritní fronty

Programování. Debugging a testování. Martin Urza

Grafický manuál značky. Fond Vysočiny sponzorský vzkaz

Katedra kybernetiky skupina Inteligentní Datové Analýzy (IDA) 9. dubna Filip Železný (ČVUT) Vytěžování dat 9.

O datových typech a jejich kontrole

Rozklad problému na podproblémy

Přidávání animací do programů

Dynamické datové struktury I.

Algoritmizace diskrétních. Ing. Michal Dorda, Ph.D.

CEZ a TEEP. Průmyslové inženýrství. EduCom. Jan Vavruška Technická univerzita v Liberci

Grafové algoritmy. Programovací techniky

NPRG030 Programování I, 2018/19 1 / :03:07

Základy ergonomických studií

Six Sigma - DMAIC. Jan Vavruška Technická univerzita v Liberci. TU v Liberci

NPRG030 Programování I, 2018/19 1 / :25:37

REFA vs. MOST. Jan Vavruška. Technická univerzita v Liberci. Výrobní systémy II. TU v Liberci

Seřizování nástrojů na CNC Mazak Integrex IV

PES lib (C + PASCAL) KNIHOVNY KOMUNIKAÈNÍCH FUNKCÍ 03/ PESlib KOMUNIKAČNÍ KNIHOVNY C, PASCAL 03/ stran 1

Informační systémy 2008/2009. Radim Farana. Obsah. Jazyk SQL

PB přednáška (26. října 2015)

Algoritmizace prostorových úloh

Systémy plánování a řízení výroby AROP II

PRÉCIS STRUKTUROVANÁ DATABÁZE JAKO ODPOVĚĎ NA NESTRUKTUROVANÝ DOTAZ. Dominik Fišer, Jiří Schejbal

Simulace číslicových obvodů (MI-SIM) zimní semestr 2010/2011

PŘETĚŽOVÁNÍ OPERÁTORŮ

20. Projekt Domácí mediotéka

Jazyk VHDL konstanty, signály a proměnné. Jazyk VHDL paralelní a sekvenční doména. Kurz A0B38FPGA Aplikace hradlových polí

Úvod do programování - Java. Cvičení č.4

Aplikovaná informatika. Podklady předmětu Aplikovaná informatika pro akademický rok 2006/2007 Radim Farana. Obsah. Obsah předmětu

Semafory Zobecněním operací WAKEUP a SLEEP přidáním celočíselného čítače vzniknou semafory a jejich atomické operace DOWN a UP.

Složitosti základních operací B + stromu

Algoritmizace a programování

1. D Y N A M I C K É DAT O V É STRUKTUR Y

awk programovatelný filtr

Digitální učební materiál

Operační systémy Tomáš Hudec. 6 Komunikace procesů (IPC) Obsah: 6.1 Klasické problémy souběhu Obědvající filosofové

ABSTRAKTNÍ DATOVÉ TYPY (ADT)

Simulační model jednoduchého SHO

Náznak ukázky syntaxe a sémantiky pro projekt. 1 Syntaktické prvky. Poslední aktualizace: 8.

Prognostické metody. Prognostické metody. Vybrané prognostické metody ANALÝZA DAT V REGIONALISTICE. Doc. Ing. Alois Kutscherauer, CSc.

Algoritmizace a programování

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

Kapitola 7: Návrh relačních databází. Nástrahy relačního návrhu. Příklad. Rozklad (dekompozice)

Transkript:

Tento materiál vznikl jako součást projektu, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR. Úvod do simulace - 1 Technická univerzita v Liberci Simulace výrobních systémů 14.11.2012 Technická univerzita v Liberci a partneři Preciosa, a.s. a TOS Varnsdorf a.s. 1 TU v Liberci

Motto Počítačová simulace je jedním z cílů složitého procesu poznání systému, modelování a vlastního simulačního experimentu Simulace obecně by měla být chápána jako alternativní "nouzovéřešení" k reálným pokusům, či exaktním (analytickým) výpočtům 2

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Cíle přednáškového bloku Metodologie v oblasti modelování a simulace terminologie pro klíčová slova: systém, modelování, simulace Principy simulace diskrétně chápaných systémů simulační prostředky, demonstrační příklady 3

Systém můžeme definovat jako množinu prvků, které jsou z našeho pohledu dále nedělitelné, a které mají dané vlastnosti a mezi nimiž existují určité vazby. Systémy můžeme rozdělit na: otevřené - uzavřené (podle vzniku, resp. zániku prvků) dynamické - statické (podle závislosti okamžitého stavu na minulosti) deterministické - stochastické (podle výskytu neurčitosti) spojité - diskrétní (podle pohledu na způsob změny stavu) 4

Modelování můžeme popsat jako cílevědomou činnost, kdy pomocí jednoho systému originálu - vytvoříme jiný systém model, přičemž z výsledků chování modelu můžeme usuzovat na chování originálu. Aby toho bylo dosaženo, je nejprve nutné: provést separabilitu zkoumaného objektu stanovit rozlišovací úroveň prvků zajistit kauzalitu popsaných vztahů 5

Stavba modelu Při stavbě modelu pak musíme dodržet odpovídající složky vůči originálu: složku prvkovou - počet prvků modelu musí být stejný jako v originálu (je dána separibilitou a rozlišovací úrovení) složku časovou - sled událostí v originálu musí být stejný jako v modelu (odpovídá kauzalitě) složku relační - vlastnosti a vazby v originálu popisujeme v modelu pomocí atributů (např. smyslové vjemy jako je barva, pozice, apod. vyjadřujeme pomocí kvantifikovaných údajů -čísla, texty, výrazy, ordinální proměnné) 6

Stavba modelu Než-li přistoupíme k vlastnímu modelování, je dobré si zapamatovat dvě jednoduchá, ale o to důležitější pravidla: Při modelování postupujeme vždy od jednoduššího modelu ke složitějšímu umožní nám identifikovat případné chyby v modelu ve stádiu snadno opravitelných chyb. Verifikujeme - ověřujeme zpočátku základní principy chování systému. Model tvoříme především pro uživatele dílčí výsledky konzultujeme s uživatelem, resp. zadavatelem. Úzce souvisí s předchozí zásadou. Zadavatel se tak může včas rozhodnout, zda mu dosavadní výsledky vyhovují (odpovídají realitě) a zda bude financovat další práce na modelu. 7

Dále rozlišujeme dva nejčastěji používané přístupy k modelování: deduktivní - používáme, když známe vnitřní strukturu systému, můžeme pak aplikovat matematicko-fyzikální analýzu systém - matematický model - simulační model induktivní - používáme, když neznáme vnitřní strukturu systému, pokud výstupy systému můžeme měřit, jedná se o identifikaci systém - simulační model - matematický model 8

Simulace je pak vlastní experiment s modelem podle prostředků, které pro simulaci využíváme, můžeme hovořit o simulaci: identické (provádí se na reálném objektu) kvazi-identické (provádí se na reálném objektu, ale na některé výsledky sledovaných veličin se usuzuje nepřímo) laboratorní (fyzikální modely, simulační hry) počítačové - analogová (analogové počítače) - číslicová (číslicové počítače) - hybridní (propojení analogové a číslicové) 9

Diskrétně chápané systémy Systém můžeme již při jeho definici chápat jako sled diskrétních událostí (změn stavů), které se mění "skokem" Model je tak popsán jako uspořádaná posloupnost dvojic (událost, čas) Simulační model je pak možné realizovat pomocí tzv. kalendáře událostí, kdy jsou jednotlivé události zpracovávány (a plánovány) podle předem daného algoritmu. Pro číslicové pořítače jsou k dispozici jak komerčně dodávané produkty (Witness), tak je možné použít i za tím účelem vytvořených vývojových prostředků (PC-Simula). 10

Významnou aplikační oblastí jsou systémy hromadné obsluhy (SHO). V teorii SHO jsou pak důležité "předdefinované" objekty: Spojové seznamy jednocestné, dvoucestné, kruhové Procesy aktivní, suspendovaný, pasivní, ukončený Kalendář událostí realizuje plánování jednotlivých událostí - vytváření koprogramů 11

Tento materiál vznikl jako součást projektu, který je spolufinancován Evropským sociálním fondem a státním rozpočtem ČR. Úvod do simulace - 2 Technická univerzita v Liberci Simulace výrobních systémů 21.11.2012 Technická univerzita v Liberci a partneři Preciosa, a.s. a TOS Varnsdorf a.s. 12 TU v Liberci

Programové prostředky pro simulaci diskrétně chápaných systémů PC-Simula problémově objektově orientovaný jazyk, řadí se mezi vyšší programovací jazyky, tj. používá strukturovaných příkazů a strukturované datové typy. standardní třídy: BASICIO SET ULATION 13

PC-Simula standardní třída: BASICIO Zajišťuje vstupně-výstupní operace, je automaticky linkována k hlavnímu programu. Procedury: outint(i,w); outreal(r,n,w); outtext(t); outimage; Funkční procedury: inint; inreal; inchar; 14

PC-Simula standardní třída: SET Zajišťuje práci programu se spojovými seznamy (fronty). Zohledňuje strukturu kruhového spojového seznamu. Realizace pomocí dvou podtříd: Třída Head definuje hlavu spojového seznamu: procedura clear; funkční procedury first; last; empty; cardinal; Třída Link definuje prostředky pro práci s jednotlivými prvky seznamu: procedury into(s); follow(x); precede(x); out; funkční procedury suc; pred; Deklarace v programu: ref (Head) jmeno (definuje frontu s identifikátorem jmeno) Vlastní realizace fronty: jmeno:- new Head (vytvoří exemplář třídy Head) 15

PC-Simula standardní třída: ULATION Svými prostředky realizuje vlastní simulační výpočet v čase. Pomocí třídy Process definuje prostředky pro plánování v kalendáři událostí. Procedury activate P; aktivuje výpočet procesu P v daném čase výpočtu (stávající proces se stane suspendovaným), tj. zařadí jej jako aktivní do kalendáře událostí. hold(t); pozastaví simulační výpočet daného procesu (události), tj. naplánuje další výpočet tohoto procesu v kalendáři událostí na čas aktuální čas + t proces z kalendáře událostí. passivate; pozastaví výpočet daného procesu na neurčito, tj. vyřadí cancel; ukončí možnost plánování daného procesu, přičemž pokud je proces aktivní nebo suspendovaný, vyřadí jej z kalendáře událostí. Proces X je možné zrušit i mimo jeho příkazovou část tvarem cancel(x). 16

PC-Simula Stavba programu je použita bloková struktura se systémem prefixů na začátku každého bloku jsou deklarace (nezáleží na pořadí) každý proces je ukončen vyčerpáním příkazové části implicitně je prvním procesem v kalendáři událostí hlavní program (označen identifikátorem main ), ukončením příkazové části hlavního programu je tedy ukončen celý simulační experiment ukončené procesy nelze již plánovat v kalendáři událostí, dostupná je ale jejich datová část prázdný kalendář událostí je chápán jako rozpor s realitou!!! 17

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Ilustrativní příklad - 1 PC-Simula řešena problematika obsluhy zákazníka ukončení simulace po časovém úseku Zadání Telefonistka přijímá hovory, které jsou generovány v náhodném čase a mají náhodnou délku. Zobrazují se data kdy se volající účastník dovolal a kdy byl odbaven. V následujícím programu jsou definovány dva procesy - zdroj hovorů a obsluha hovoru (telefonistka). Dále je definována jedna třída pro realizaci dat jednotlivých hovorů. Pro názornost vzniku jednotlivých událostí v Kalendáři událostí (tj. plánování procesů), jsou barevně rozlišeny příkazy aktivace a pasivace pro společné kauzální vazby. 18

Simulation begin process Class Zdroj;!! - zdroj hovorů begin integer start; ref(hovor) POM; while true do begin POM:-new Hovor; start:=time+1; POM.TH:=uniform(2,4,start);!! - délka odbavení POM.CallTime:=time;!! - čas příchodu hovoru POM.into(FR);!! zařazení prvku do fronty if TEL.idle then activate TEL; hold(uniform(0,4,start)); 19

link class Hovor;!! - definice prvku příchozích hovorů begin real TH,CallTime; process class TELEF;!! - telefonistka begin ref(hovor) POM; while true do begin if not FR.empty then begin POM:-FR.first;!! - vybrání prvního prvku z fronty POM.out;!! - vyloučení prvku z fronty hold(pom.th); outreal(pom.calltime,5,15); outreal(time,5,15);outimage; end else passivate; 20

} } ref(head) FR; ref(zdroj) Z;!! referenční proměnné ref(telef) TEL; FR:-new (HEAD); Z:-new Zdroj;!! - vygenerování exemplářů jednotlivých tříd TEL:-new TELEF; activate Z;!! - aktivace hovorů hold(50);!! doba simulace end. 21

INVESTICE DO ROZVOJE VZDĚLÁVÁNÍ Ilustrativní příklad - 2 PC-Simula řešena problematika dopravní úlohy spolupráce více (tří) procesů ukončení simulace na danou podmínku (událost) Zadání úkolem je převést materiál z jednoho místa na druhé pomocí několika aut s různou rychlostí, nosností a dobou nakládky a vykládky. Nakládání a vykládání aut je řešeno samostatnými procesy (auta jsou v tomto případě jen prvky v činnosti nakladače a vykladače). Vzdálenost mezi nakládáním a vykládáním je pro obě cesty stejná. Simulace končí v okamžiku, kdy je všechen materiál vyložen na určeném místě. 22

PC-Simula V následujícím programu jsou definovány tři procesy - Nakladač, Vykladač a Auto. Jednotlivá auta (exempláře třídy Auto) jsou pak generována v hlavním programu, přičemž vzhledem ke stavbě programu není potřeba vytvářet pro ně vlastní identifikátory. Pro názornost vzniku jednotlivých událostí v Kalendáři událostí (tj. plánování procesů), jsou opět barevně rozlišeny příkazy aktivace a pasivace pro společné kauzální vazby. Na závěr příkladu bude proveden rozbor vzniku prvních několika událostí, tj. jejich zařazení do kalendáře událostí, resp. změna procesů ve stavech aktivace, pasivace a suspendace. Pozn.: Nekonečné smyčky v těle procesů jsou jen programátorským obratem pro ukončení příkazové části v okamžiku ukončení celé simulace. 23

Process Class NAKLAD;!! - Nakladac Begin ref (AUTO) Pom; while true do Begin if (P >= PMAX) then begin outtext( a neni uz co nakladat"); outimage; if (FN.empty) then begin outtext("neni k dispozici zadne auto pro nalozeni"); outimage; passivate; end else Begin POM:-FN.first; outtext("nakladam auto"); outint (POM.cislo,2); outimage; POM.out; hold(pom.dn); PNA:= PNA + 1; P:= P + POM.N; outtext("auto nalozeno"); outin(pom.cislo,2); outimage; activate POM; 24

Process Class Vyklad;!! - Vykladac Begin ref (AUTO) POM; while true do Begin if (FV.empty) then begin outtext("neni k dispozici zadne auto k vylozeni"); outimage; passivate; end else Begin POM:- FV.first; outtext("vykladam auto"); outint(pom.cislo,2); outimage; POM.out; hold(pom.dv); PNA:= PNA 1; outtext("vylozeno auto"); outint(pom.cislo,2); outimage; if (P >= PMAX) and (PNA = 0) then begin outimage; outtext( HOTOVO a prevezeno v case"); outreal(time,5,15); outimage; activate main; activate POM; 25

Process Class AUTO(N,R,DV,DN,cislo);!! - Auto real N,R,DV,DN; integer cislo; Begin while true do Begin into(fn); if NAKL.idle then activate NAKL; passivate; outtext("jedu s materialem - auto cislo: ); outint(cislo,2); outimage; hold(vzd/r); into(fv); if VYKL.idle then activate VYKL; passivate; outtext("jede prazdne auto cislo"); outint(cislo,2); outimage; hold(vzd/r); 26

real P, PMAX, VZD; integer PNA, N, I; ref (HEAD) FN, FV; ref (NAKLAD) NAKL; ref (VYKLAD) VYKL;!! - referenční proměnné FN:- new HEAD; FV:- new HEAD; NAKL:- new NAKLAD; VYKL:- new VYKLAD;!! - vygenerování exemplářů tříd outtext("pmax... velikost materiálu:");!! - zadání velikosti materiálu outimage; PMAX:= inreal; outtext("vzd... vzdalenost:");!! - zadání vzdálenosti outimage; VZD = inreal; outtext("n... Pocet aut :");!! - zadání počtu aut outimage; N:= inint; for I:=1 step 1 until N do begin!!- vytvoření N aut outtext ("auto "); outint(i,2); outtext(" N, R, DV, DN:"); outimage; activate new AUTO(inreal,inreal,inreal,inreal,I); passivate; outreal(time,5,15); outimage; outimage; End; 27

Děkuji za pozornost Prezentace byla inovována v rámci projektu CZ.1.07/2.2.00/15.0089 - Inovace studijních programů s ohledem na požadavky a potřeby průmyslové praxe zavedením inovativního vzdělávacího systému "Výukový podnik" 28