%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/old2/_music/
Upload File :
Create Path :
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>

Zerion Mini Shell 1.0