%PDF- %PDF-
Direktori : /www/old2/_music/ |
Current File : /www/old2/_music/kap4.html |
<html> <head> <title>Waritko's pages </title> <META http-equiv=Content-Type content="text/html; charset=UTF-8"> <meta http-equiv="Content-Language" content="cz"> </head> <body> <table width="90%" align="center" border="0"> <tr> <td width="100%"> <h1>Architektura simulačního modelu</h1> <p>Simulační model byl naprogramován v jazyce C++ s pomocí knihovny SIMLIB verze 3. Jacyk C++ byl zvolen ze dvou důvodů. Prvním důvodem je možnost využití knihovny SIMLIB, která umožňuje přehlednou implementaci diskrétního simulačního modelu. Druhým důvodem pak je portabilita jazyka C++, která zajití snadnou přenositelnost modelu mezi různými systémy (např. mezi serverem merlin a stolním počítačem autorů).</p> <p>Generování procesů vlaků, které vstupují do systému probíhá na základě jízdního řádu pro všední den a periodicky se opakuje, tedy i v případě, že simulace trvá déle než jeden den, vlaky se generují stále korektně. Základní doby odjezdu vlaků jsou uloženy v globálně definovaných polích <em>odjezdyPrerov</em>, <em>odjezdyBohumin</em>, <em>odjezdyBilovec</em> a <em>odjezdyVerovice</em>. Jako ukazatele na aktuální pozici v těchto polích pak slouží proměnné <em>Cas{Misto}Idx</em>, tedy např. <em>CasPrerovIdx</em>. Pro periodicitu generace jsou pak využity pomocné globální proměnné <em>Cas{Misto}Day</em>, např. <em>CasPrerovDay</em>, které se inkrementují vždy když se dojde do konce seznamu vlaků pro daný den.</p> <p>Případné čas příjezdu zpožděných vlaků ze směrů na Přerov a Bohumín se ukládá do globálního seznamu (využití šablony list z knihovny STL), ze kterého poté mohou číst procesy odjezdu místních vlaků.</p> <h2>Mapování abstraktního modelu na simulační</h2> <p>Základní mapování procesů na třídy simulačního modelu je následující:</p> <ul> <li>class <em>VlakPrerov</em> – proces příjezdu a odjezdu vlaku ze směru na Přerov. U těchto vlaků se náhodně generuje zpoždění a právě toto zpoždění se pak dále promítá do zpoždění místních vlaků. Nová doba příjezdu po zpoždění se ukládá do globalního seznamu zpoždění odkud se při příjezdu vlaku na nádraží odstraní.</li> <li>class <em>VlakBohumin</em> – proces příjezdu a odjezdu vlaku ze směru na Bohumín. Podobně jako u vlaků na Přerov se zpoždění generuje náhodně a promítá se do odjezdu místních vlaků. Podobně jako u třídy výše se také pracuje s novou dobou příjezdu po zpoždění.</li> <li>class <em>VlakBilovec</em> – proces odjezdu vlaku ve směru na Bílovec. Jelikož se jedná o místní vlak, žádné zpoždění se negeneruje, ale naopak se odvozuje od zpoždění vlaků jedoucích ve směrech na Bohumín a Přerov. Vlak čeká na opožděné přípoje maximálně dobu definovanou v programu (10 minut), poté odjíždí. Zjištění doby, po jakou se bude čekat ve stanici se provádí v době plánovaného odjezdu vlaku podle jízdního řádu, doba zpoždění je odstupňována po pěti minutách. Pokud vlak vyjede se zpožděním, zapíšu si zpoždění do histogramu zpozdeniBc. V případě, že by po příjezdu zpožděného vlaku neměl do 15 minut vyjíždět podle JŘ žádný vlak, zvýším počítadlo vlaků, na které se v tomto směru nečekalo.</li> <li>class <em>VlakVeroviceZpet</em> – proces odjezdu vlaku ve směru na Veřovice. Práce se zpožděním je zde obdobná jako u vlaků ve směru na Bílovec.</li> <li>class PrijezdyPrerov – generátor procesů vlaků, které přijíždí ve směru na Přerov.</li> <li>class PrijezdyBohumin – generátor procesů vlaků, které přijíždí ve směru na Bohumín.</li> <li>class OdjezdyVerovice – generátor procesů místních vlaků, které odjíždějí ve směru na Veřovice.</li> <li>class OdjezdyBilovec – generátor procesů místních vlaků, které odjíždějí ve směru an Bílovec.</li> </ul> <!-- by Texy2! --> </td> </tr> </table> </body> </html>