%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>