<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://www.simulace.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xrojr01</id>
	<title>Simulace.info - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://www.simulace.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Xrojr01"/>
	<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php/Special:Contributions/Xrojr01"/>
	<updated>2026-07-27T14:32:36Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://www.simulace.info/index.php?title=Variance_reduction/cs&amp;diff=11846</id>
		<title>Variance reduction/cs</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Variance_reduction/cs&amp;diff=11846"/>
		<updated>2016-06-10T20:31:16Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Oprava mezer v citacích&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Metody redukce rozptylu}}&lt;br /&gt;
&lt;br /&gt;
= Předmluva =&lt;br /&gt;
&lt;br /&gt;
K problematice redukce rozptylu není příliš velké množství českých zdrojů. Jedná se většinou o akademické práce, které citují zahraniční autory. Texty blíže se zabývající tímto tématem jsou primárně v anglickém jazyce a k vysvětlení využívají nástroje statistiky, které nemusí být čtenáři s pouhými základními znalostmi ze statistiky příliš jasné. Jelikož i já, autor tohoto textu, oplývám pouze základními znalostmi z oboru statistiky, budu se snažit v tomto učebním textu popsat metody redukce rozptylu co možná nejjednodušeji, aby si z něj čtenáři, kteří jsou na obdobné úrovni znalostí, odnesli pokud možno jakési základy, které jim pomohou lépe toto téma pochopit. Zároveň tím apeluji na zkušenější čtenáře, aby pomohli s korekcí a rozšířením tohoto textu o hlubší poznatky ze statistiky, které by navazovaly na mnou vytvořený základ.&lt;br /&gt;
&lt;br /&gt;
= Náhodná veličina a její rozptyl = &lt;br /&gt;
&lt;br /&gt;
'''Náhodná veličina (též náhodná či stochastická proměnná) '''je nějaká libovolná veličina mající číselnou hodnotu (např. 1, -150 nebo 18,6) a jednotku (kilogram, metr, litr, ...). Tuto veličinu můžeme měřit u různých objektů, v různém čase, různém místě a pomocí teorie pravděpodobnosti a matematické statistiky s ní různě pracovat. Příkladem náhodné veličiny může být počet ok při hodu kostkou, hmotnost narozených dětí v různých regionech, roční mzda občanů státu apod.&amp;lt;ref name=&amp;quot;nahv&amp;quot;&amp;gt;Náhodná veličina &amp;lt;i&amp;gt;Veterinární a farmaceutická univerzita Brno&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-08]. Dostupné z: http://cit.vfu.cz/statpotr/POTR/Teorie/Predn1/nahvelic.htm&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Náhodná veličina může být buď diskrétního nebo spojitého typu. Oba typy si jsou velmi podobné, což je vidět v následujících podkapitolách.&lt;br /&gt;
&lt;br /&gt;
== Diskrétní náhodná veličina ==&lt;br /&gt;
[[File:Poisson_pmf.svg.png|right|325px|thumb|Pravděpodobnostní funkce diskrétního Poissonova rozdělení&amp;lt;ref name=&amp;quot;poiss1&amp;quot;&amp;gt;Pravděpodobnostní funkce diskrétního Poissonova rozdělení &amp;lt;i&amp;gt;Skbkekas&amp;lt;/i&amp;gt; 2010-02-10 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Poisson_pmf.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
[[File:Poisson_cdf.svg.png|right|325px|thumb|Distribuční funkce diskrétního Poissonova rozdělení&amp;lt;ref name=&amp;quot;poiss2&amp;quot;&amp;gt;Distribuční funkce diskrétního Poissonova rozdělení &amp;lt;i&amp;gt;Skbkekas&amp;lt;/i&amp;gt; 2010-02-10 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Poisson_cdf.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
'''Diskrétní (též nespojitá) náhodná veličina''' je taková náhodná veličina, která může nabývat pouze jednotlivých hodnot z konečného nebo nekonečného intervalu. To znanená, že se může měnit jen po skocích&amp;lt;ref name=&amp;quot;nahv&amp;quot; /&amp;gt;. Příkladem spojité náhodné veličiny může být počet ok při hodu kostkou, který může nabývat pouze hodnot &amp;lt;math&amp;gt;\{ 1, 2, 3, 4, 5, 6 \}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zkoumáme-li potom pravděpodobnost, že na hozené kostce padne konkrétní hodnota, můžeme těmto možným hodnotám přiřadíit jejich pravděpodobnost výskytu, čímž získáme '''pravděpodobnostní funkci''' diskrétní náhodné veličiny &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;. Sestavením tabulky s možnými hodnotami ok na kostce značených &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; a pravděpodobnostmi, že padne právě tento počet ok získáme průběh pravděpodobnostní funkce &amp;lt;math&amp;gt;p(x)&amp;lt;/math&amp;gt;, která každému &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; přiřazuje jeho pravděpodobnost značenou &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt;, což můžeme zapsat jako &amp;lt;math&amp;gt;p(x) = P(X = x)&amp;lt;/math&amp;gt;, slovy &amp;quot;pravděpodobnost, že náhodná veličina &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; nabyde hodnoty &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Kromě '''pravděpodobnostní funkce''' nás zajímá také '''distribuční funkce''' &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;, a to v případech, kdy chceme určit pravděpodobnost, že veličina &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; nabyde hodnoty menší než &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, což lze zapsat jako &lt;br /&gt;
:&amp;lt;math&amp;gt;F(x) = P(X &amp;lt; x)&amp;lt;/math&amp;gt; &lt;br /&gt;
a v případě diskrétní náhodné veličiny ji lze určit &amp;quot;nasčítáním&amp;quot; všech předchozích pravděpodobností před zvolenou hodnotou, tedy touto sumací: &lt;br /&gt;
:&amp;lt;math&amp;gt;F(x) = \sum_{i=1}^{x}P(X = x_{i})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Známe-li hodnoty, kterých může náhodná veličina nabývat, a pravděpodobnosti výskytu těchto hodnot, můžeme spočítat '''střední hodnotu (též označnovanou jako první počáteční moment''') jako &amp;lt;math&amp;gt;\operatorname{E}(X) = \sum_{i=1}^{x}x_{i} P(x_{i})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pro příklad si můžeme představit obyčejnou šestihrannou kostku. Pravděpodobnost, že padne jedna z 6 možných hodnot na kostce stejná, proto pravděpodobnostní funkci lze zapsat jako &lt;br /&gt;
:&amp;lt;math&amp;gt;p(x) = \frac{1}{6}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
A protože tyto hodnoty pokrývají všechny možné, které mohou nastat, je jejich součet roven jedné. Platí tedy vztah &lt;br /&gt;
:&amp;lt;math&amp;gt;\sum_{i=1}^{n}P(x_{i}) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Díky tomu, že jsou pravděpodobnosti v tomto případě vždy stejné, zjednodušuje se tím i vzoreček pro výpočet střední hodnoty, který je potom pouze &lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{E}(X) = \frac{1}{n}\sum_{i=1}^{x}x_{i}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Jedná se v podstatě o prostý aritmetický průměr. Kdybychom ale zkoumali náhodnou veličinu, kterou by byl součet ok na dvou hozených kostkách, nebyla by pravděpodobnost vždy stejná, protože například součet 5 můžeme hodit čtyřmi způsoby: (1,4), (2, 3) (3, 2), (4, 1), a tudíž bychom nemohli použít prostého aritmetického průměru&amp;lt;ref name=&amp;quot;ban&amp;quot;&amp;gt;NÁHODNÁ VELIČINA &amp;lt;i&amp;gt;Vysoká škola báňská - Technická univerzita Ostrava - VŠB-TUO&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-08]. Dostupné z: hhttps://homen.vsb.cz/~oti73/cdpast1/KAP03/PRAV3.HTM&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Spojitá náhodná veličina ==&lt;br /&gt;
[[File:Normal_Distribution_PDF.svg.png|right|325px|thumb|Hustota pravděpodobnosti spojitého Normálního rozdělení&amp;lt;ref name=&amp;quot;norm1&amp;quot;&amp;gt;Hustota pravděpodobnosti spojitého Normálního rozdělení &amp;lt;i&amp;gt;Inductiveload&amp;lt;/i&amp;gt; 2008-04-02 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Normal_Distribution_PDF.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
[[File:Normal_Distribution_CDF.svg.png|right|325px|thumb|Distribuční funkce spojitého Normálního rozdělení&amp;lt;ref name=&amp;quot;norm2&amp;quot;&amp;gt;Distribuční funkce spojitého Normálního rozdělení &amp;lt;i&amp;gt;Inductiveload&amp;lt;/i&amp;gt; 2008-04-02 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Normal_Distribution_PDF.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
'''Spojitá náhodná veličina''' je taková náhodná veličina, která může nabývat všech možných hodnot z konečného nebo nekonečného intervalu, může se tedy měnit bez skoků (spojitě)&amp;lt;ref name=&amp;quot;nahv&amp;quot; /&amp;gt;. Ekvivalentem diskrétní pravděpodobnostní funkce je zde hustota pravděpodobnosti značená &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;ban&amp;quot; /&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Spojitá náhodná veličina má rovněž distribuční funkci &amp;lt;math&amp;gt;F(X)&amp;lt;/math&amp;gt;, kterou získáme když budeme integrovat hustotu pravděpodobnosti od mínus nekonečna do &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;: F(X)=\int_{-\infin}^{x}f(t)dt.&lt;br /&gt;
Chceme-li naopak z distribuční funkce získat hustotu pravděpodobnosti, stačí nám provést inverzní operavi k integrálu, kterou je derivace: &amp;lt;math&amp;gt;f(x)=F'(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stejně jako v případě pravděpodobnostní u diskrétní náhodné veličiny, hustota pravděpodobnosti u spojité náhodné veličiny splňuje podmínku &lt;br /&gt;
:&amp;lt;math&amp;gt;\int_{-\infty}^{\infty}f(x)dx=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Střední hodnotu pak dostaneme podobně jako u diskrétní funkce, a to integrováním hustoty pravděpodobnosti násobené hodnotou  &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;: &lt;br /&gt;
:&amp;lt;math&amp;gt;E(X)=\int_{-\infty}^{\infty}xf(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spojitou veličinu můžeme &amp;quot;převést&amp;quot; na diskrétní tak, že její průběh rozdělíme do dílčích intervalů&amp;lt;ref name=&amp;quot;nahv&amp;quot; /&amp;gt;. Kdybychom například zkoumali hmotnosti pro zápasy v bojových sporetch a předpokládali, že hmostnosti účastníků budou rozděleny od 60 kg výše, čemuž odpovídá interval &amp;lt;math&amp;gt;\langle 60, \infty ) &amp;lt;/math&amp;gt; a chtěli bychom určit 6 váhových katerogií, rozdělili bychom původní interval například takto&amp;lt;ref name=&amp;quot;judo&amp;quot;&amp;gt;Rozdělení závodníků podle věku a hmotnosti &amp;lt;i&amp;gt;AC Sparta Praha Judo&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-05]. Dostupné z: http://www.sparta-judo.cz/judo-jako-sport/vekove-a-vahove-kategorie/&amp;lt;/ref&amp;gt;:&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 60, 66) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 66, 73) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 73, 81) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 81, 90) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 90, 100) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 100, \infty) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pravděpodobnostní rozdělení ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;[[Probability_distributions/cs|Podrobnější informace o pravděpodobnostních rozděleních]]&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Pravděpodobnostní rozdělení (též rozdělení, rozložení nebo distribuce pravděpodobnosti)''' je pravidlo, podle kterého je každému náhodnému jevu přiřazena určitá (známá) pravděpodobnost. Pravděpodobnostní rozdělení se v závislosti na typu náhodné veličiny dělí na diskrétní (např. Alternativní, Binomické, Nagativní binomické, Poissonovo rozdělění) a spojitá (např. Rovnoměrné, Normální, Exponenciální, Logaritmicko-normální rozdělění).&lt;br /&gt;
&lt;br /&gt;
== Rozptyl ==&lt;br /&gt;
&lt;br /&gt;
'''Rozptyl (též střední kvadratická odchylka, variance nebo disperze)''' je jednou z charakteristik náhodné veličiny, konkrétně jde o charakteristiku variability a udává, jak moc jsou hodnoty v našem statistickém souboru rozptýleny&amp;lt;ref name=&amp;quot;ban&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Uvažujeme-li náhodnou veličinu &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, pak její rozptyl se označuje &amp;lt;math&amp;gt;\sigma^2(X)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;S^2(X)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;D(X)&amp;lt;/math&amp;gt; nebo &amp;lt;math&amp;gt;\operatorname{var}(X)&amp;lt;/math&amp;gt; a spočítá se jako &amp;quot;střední hodnota kvadrátů odchylek od střední hodnoty&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pro '''diskrétní náhodnou veličinu''' tuto větu můžeme vyjádřit vztahem&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma^2 = \sum_{i=1}^n {\left[x_i - \operatorname{E}(X)\right]}^2 p_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
kde &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; jsou hodnoty, kterých může náhodná veličina &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; nabývat (s pravděpodobnostmi &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;) a &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; je střední hodnota veličiny &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
Chceme-li rozptyl počítat &amp;quot;ručně&amp;quot;, je vhodnější použít tzv. výpočetní tvar&amp;lt;ref name=&amp;quot;ban&amp;quot; /&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma^2 = \sum_{i=1}^n x_i^2 p_i - {[\operatorname{E}(X)]}^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pro '''spojitou náhodnou veličinu''' je vztah podobný, jen místo sčítání integrujeme. Vztah vypadá potom takto&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma^2 = \int_{-\infty}^\infty {\left[x-\operatorname{E}(X)\right]}^2 f(x)\mathrm{d}x&amp;lt;/math&amp;gt;,&lt;br /&gt;
kde &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; je hustota pravděpodobnosti veličiny &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A obdobně jako u diskrétní náhodné veličiny, i zde můžeme použít jednodušší &amp;quot;výpočetní tvar&amp;quot;&amp;lt;ref name=&amp;quot;ban&amp;quot; /&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma^2 = \int_{-\infty}^\infty x^2 f(x)\mathrm{d}x - {[\operatorname{E}(X)]}^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zákon velkých čísel a centrální limitní věta ==&lt;br /&gt;
[[File:Largenumbers.svg.png|right|325px|thumb|Zákon velkých čísel a konvergence výběrového průměru k teoretiské střední hodnotě při hodu šestihrannou kostkou&amp;lt;ref name=&amp;quot;llno&amp;quot;&amp;gt;Zákon velkých čísel - hody kostkou &amp;lt;i&amp;gt;NYKevin&amp;lt;/i&amp;gt; 2010-01-31 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Largenumbers.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
[[File:Central_theorem_2.svg.png|right|325px|thumb|Centrální limitní věta a znázornění obecného diskrétního rozdělení, které se blíží rozdělení normálnímu&amp;lt;ref name=&amp;quot;clto&amp;quot;&amp;gt;Podobnost rozdělení - Centrální limitní věta &amp;lt;i&amp;gt;Chen-Pan Liao&amp;lt;/i&amp;gt; 2014-11-15 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Central_theorem_2.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Při použití metody Monte Carlo v podstatě generujeme obrovské množství scénářů, které potom skládáme dohromady průměrováním. V tom nám pomáhá '''zákon velkých čísel''' a '''centrální limitní věta'''&lt;br /&gt;
&lt;br /&gt;
'''Zákon velkých čísel''' lze nejlépe ilustrovat na příkladu s házením kostkou. Budeme-li házet 6hrannou kostkou stále dokola a získané hodnoty, které na kostce padly, průměrovat, tak s rostoucím počtem pokusů náš zaznamenávaný průměr bude asymptoticky kolísat kolem teoretické (vypočtené) střední hodnoty&amp;lt;ref name=&amp;quot;lln&amp;quot;&amp;gt;Law of large numbers &amp;lt;i&amp;gt;encyclopediaofmath.org&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-05]. Dostupné z: https://www.encyclopediaofmath.org/index.php/Law_of_large_numbers&amp;lt;/ref&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt; \frac{1+2+3+4+5+6}{6} = 3,5.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lze tedy říci, že výběrový průměr&lt;br /&gt;
:&amp;lt;math&amp;gt;\overline{X}_n=\frac1n(X_1+\cdots+X_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bude konvergovat ke střední hodnotě&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{matrix}{}\\&lt;br /&gt;
\overline{X}_n \, \to \, \mu \qquad\textrm{pro}\qquad n \to \infty&lt;br /&gt;
\\{}\end{matrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Díky '''centrální limitní větě''' potom můžeme využívat toho, že při velkém počtu opakování &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; bude mít libovolná veličina přibližně normální rozdělení se snižujícím se rozptylem &amp;lt;math&amp;gt;\frac{\sigma^2}{n}&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;clt&amp;quot;&amp;gt;Central Limit Theorem &amp;lt;i&amp;gt;Robert D. Klauber&amp;lt;/i&amp;gt; 2015-06-07 [online]. [cit. 2016-06-09]. Dostupné z: http://www.quantumfieldtheory.info/CentralLimitTheorem.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Metoda Monte Carlo =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;[[Monte_Carlo_method/cs|Podrobnější informace o metodě Monte Carlo]]&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V simulacích pomocí metody Monte Carlo se snažíme pomocí generování náhodných čísel a mnoha opakování náhodných pokusů získat obecné charakteristiky nějakého modelovaného jevu. To je možné díky platnosti zákona velkých čísel a centrální limitní věty. Pomocí metody Monte Carlo lze získávat relativně jednoduše přibližné výsledky tam, kde by bylo použití analytických modelů složité, ba nemožné. Metody Monte Carlo je využíváno i například v systémech založených na [[Queueing_theory/cs|teorii front]].&lt;br /&gt;
&lt;br /&gt;
= Metody redukce roptylu =&lt;br /&gt;
&lt;br /&gt;
Když provádíme simulaci, obvykle v rámci nějaké studie, zajímá nás jedna nebo více sledovaných hodnot nějakého stochastického (nedeterministického) modelu. Například chceme zjistit, dlouhodobou střední (průměrnou) dobu čekání zákazníků ve frontě, kterou budeme značit &amp;lt;math&amp;gt;\operatorname{W}&amp;lt;/math&amp;gt;. Střední dobu čekání značme například &amp;lt;math&amp;gt;\operatorname{E}(W)&amp;lt;/math&amp;gt;. Abychom odhadli &amp;lt;math&amp;gt;\operatorname{E}(W)&amp;lt;/math&amp;gt;, musíme provést &amp;lt;math&amp;gt;\operatorname{K}&amp;lt;/math&amp;gt; nezávislých simulací. Po provedení těchto simulací a zjištění středních hodnot dob čekání &amp;lt;math&amp;gt;\operatorname{E}(W_i)&amp;lt;/math&amp;gt; lze stanovit estimátor &amp;lt;math&amp;gt;\operatorname{E}(W)&amp;lt;/math&amp;gt; podle vztahu &amp;lt;math&amp;gt;\operatorname{\overline{W}} = \frac{\sum_{i=1}^K W_i}{K}&amp;lt;/math&amp;gt;. Kdybychom však našli jiný nezkreslený estimátor střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(W)&amp;lt;/math&amp;gt; s menším rozptylem než má &amp;lt;math&amp;gt;\operatorname{\overline{W}}&amp;lt;/math&amp;gt;, získali bychom tím estimátor s menším intervalem spolehlivosti, což je pro náš žádoucí. Pro zredukování rozptylu estimátoru &amp;lt;math&amp;gt;\operatorname{\overline{W}}&amp;lt;/math&amp;gt; lze použít několik metod, které jsou popsány v následujících kapitolách. I ty jednodšší podávají vcelku dobré výsledky. Je ale třeba dát si pozor, protože nesprávným použitím některých metod může místo snížení rozptylu naopak dojít k jeho zvýšení&amp;lt;ref name=&amp;quot;vrt&amp;quot;&amp;gt;Variance Reduction Techniques &amp;lt;i&amp;gt;Technische Universiteit Eindhoven University of Technology&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-07]. Dostupné z: http://www.win.tue.nl/~resing/2S540/week6.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
== Metoda společných náhodných čísel ==&lt;br /&gt;
&lt;br /&gt;
Metoda společných náhodných čísel využívá toho, že pokud zkoumáme a porovnáváme dva různé systémy, které obsahují nějaké náhodně se chovající komponenty, je obecně lepší při vyhodnocování takovýchto systémů v nich používat vždy stejně implementované náhodné komponenty. Metoda využívá klíčové vlastnosti dvou náhodných veličin &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt;, která je dána vztahem&lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{var}(X-Y) = \operatorname{var}(X) + \operatorname{var}(Y) - 2\operatorname{cov}(X,Y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Jestliže jsou náhodné veličiny &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; závislé a jsou pozitivně korelovány, tzn. že platí i &amp;lt;math&amp;gt;\operatorname{cov}(X,Y) &amp;gt; 0&amp;lt;/math&amp;gt;, potom bude rozptyl rozdílu &amp;lt;math&amp;gt;\operatorname{X-Y}&amp;lt;/math&amp;gt; menší než kdyby veličiny &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; byly nezávislé. Obecně použití metody společných náhodných čísel vede k tomu, že i výsledky simulace dvou takto zkoumaných systémů budou pozitivně korelovány, proto je při porovnávání dvou systémů lepší použít společná náhodná čísla místo zcela nezávislých náhodných čísel.&lt;br /&gt;
&lt;br /&gt;
Problém by nastal, pokud by byly veličiny negativně korelovány. V takovém případě by došlo naopak ke zvýšení rozptylu, což je ve většině případů nežádoucí&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Příklad užití metody společných náhodných čísel ===&lt;br /&gt;
&lt;br /&gt;
Pro ilustraci metody společných náhodných čísel použijeme následující příklad zabývající se zpracováním konečného počtu &amp;lt;math&amp;gt;\operatorname{N}&amp;lt;/math&amp;gt; úkolů, které jsou zpracovávány dvěma identickými stroji. Doby zpracování úkolů na jednotlivých strojích jsou náhodné veličiny z nějakého obecného rozdělení, jehož distribuční funkci označmě &amp;lt;math&amp;gt;\operatorname{F}&amp;lt;/math&amp;gt;. Naším úkolem je porovnat čas dokončení posledního úkolu, značený &amp;lt;math&amp;gt;\operatorname{C_{max}}&amp;lt;/math&amp;gt;, za platnosti dvou různých pravidel. Prvním pravidlem je LPTF (Longest Processing Time First), podle něhož si stroj bude vybírat z množiny ještě nezpracovaných úkolů ty úkoly, jejichž doba zpracování je největší. Druhé zkoumané pravidlo SPTF (Shortest Processing Time First) bude stroji říkat, aby si z množiny zbývajících úkolů vybíral nejprve ty nejkratší, čili ty s nejmenší dobou zpracování&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Srovnáme-li výsledky simulace pro &amp;lt;math&amp;gt;\operatorname{N} = 10&amp;lt;/math&amp;gt; úkolů s délkou z exponenciálního rozdělení s distribuční funkcí &amp;lt;math&amp;gt;\operatorname{F} = 1 - e^{-x}&amp;lt;/math&amp;gt;, pak dostaneme jiné estimátory a intervaly spolehlivosti pro střední hodnotu &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{SPTF}-C_{max}^{LPTF}})&amp;lt;/math&amp;gt;, když použijeme společná náhodná čísla, než když je nepoužijeme. Srovnání sledovaných hodnot znázorňují následující dvě tabulky, z nichž první ukazuje hodnoty získané bez použití metody nezávislých náhodných čísel, a druhá ukazuje snížení rozptylu právě použitím této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 3: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{SPTF}-C_{max}^{LPTF}})&amp;lt;/math&amp;gt; bez použití této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8138&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;2,5745&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,645; 0,973)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8293&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;2,4976&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,780; 0,878)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8487&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;2,4990&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,833; 0,864)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8398&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;2,4951&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,835; 0,845)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 4: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{SPTF}-C_{max}^{LPTF}})&amp;lt;/math&amp;gt; s použitím metody společných náhodných čísel&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8559&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,5416&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,822; 0,889)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8415&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,5230&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,831; 0,852)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8394&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,5164&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,836; 0,843)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8391&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,5168&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,838; 0,840)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Z hodnot je patrné, že došlo přibližně k 5násobnému snížení směrodatné odcyhlky, a tím i k 5násobnému zúžení intervalu spolehlivosti.&lt;br /&gt;
&lt;br /&gt;
Při použití této metody však existuje riziko vyplývající s nutnosti použití stejných náhodných počátečních čísel při generování náhodných veličin v obou systémech. Tento problém se synchronizací by mohl nastat, kdybychom uvažovali [[Queueing_theory/cs|systém front]] &amp;lt;math&amp;gt;\operatorname{G/G/1}&amp;lt;/math&amp;gt;, v němž může server pracovat dvěma různými rychlostmi &amp;lt;math&amp;gt;\operatorname{v_1}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{v_2}&amp;lt;/math&amp;gt;. Kdybychom v tomto případě chtěli získat estimátor pro rozdíl v čekacích dobách za použití různých rychlostí, museli bychom v rámci této metody použít stejné mezičasy zpracování a stejně velké požadavky. (Dobu obsluhy bychom získali podílem velikosti požadavku a rychlosti serveru.) Tím bychom narazili na problém synchroznizace, protože při vyšší rychlosti zpracování úkolů by se fronta posouvala rychleji&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;. Tento problém lze vyřešit dvěma způsoby:&lt;br /&gt;
# Použitím více oddělených toků náhodných čísel pro různé sekvence náhodných veličin potřebných k provedení simulace.&lt;br /&gt;
# Zajištěním, že budou náhodné veličiny generovány v přesně stejném pořadí v obou zkoumaných systémech.&lt;br /&gt;
&lt;br /&gt;
Pozn.: &amp;lt;math&amp;gt;\operatorname{G/G/1}&amp;lt;/math&amp;gt; fronta představuje délku fronty v systému s &amp;lt;math&amp;gt;\operatorname{1}&amp;lt;/math&amp;gt; jediným serverem, kde mají mezičasy nějaké obecné rozdělení &amp;lt;math&amp;gt;\operatorname{G}&amp;lt;/math&amp;gt; (jako General - obecné) a časy obsluhy jiné obecné rozdělení &amp;lt;math&amp;gt;\operatorname{G}&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;foss&amp;quot;&amp;gt;Wiley Encyclopedia of Operations Research and Management Science &amp;lt;i&amp;gt;S. Foss&amp;lt;/i&amp;gt; 2001 [cit. 2016-06-09]. ISBN: 9780470400531&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Antitetické proměnné ==&lt;br /&gt;
&lt;br /&gt;
Metoda antitetických proměnných využívá skutečnosti, že pokud je náhodná veličina &amp;lt;math&amp;gt;\operatorname{U}&amp;lt;/math&amp;gt; z rozvnoměrného rozdělení nabývajícího hodnot z intervalu &amp;lt;math&amp;gt;(0, 1)&amp;lt;/math&amp;gt;, pak musí platit, že &amp;lt;math&amp;gt;1 - \operatorname{U}&amp;lt;/math&amp;gt; je také z rovnoměrného rozdělení. Zároveň využívá toho, že &amp;lt;math&amp;gt;\operatorname{U}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;1 - \operatorname{U}&amp;lt;/math&amp;gt; musí být nutně negativně korelované (když se zvýší &amp;lt;math&amp;gt;\operatorname{U}&amp;lt;/math&amp;gt;, logicky musí dojít ke snížení &amp;lt;math&amp;gt;1 - \operatorname{U}&amp;lt;/math&amp;gt; a naopak)&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Klíčovou myšlenkou celé této metody je pak to, že máme-li dva výsledky po sobě jdoucích simulací &amp;lt;math&amp;gt;\operatorname{W_1}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{W_2}&amp;lt;/math&amp;gt;, pak platí, že &lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{var}(\frac{W_1 + W_2}{2}) = \frac{1}{4}\operatorname{var}(W_1) + \frac{1}{4}var(W_2) + \frac{1}{2}\operatorname{cov}(W_1, W_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z tohoto vztahu vyplývá, že budou-li výsledky simulace &amp;lt;math&amp;gt;\operatorname{W_1}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{W_2}&amp;lt;/math&amp;gt; negativně korelovány, bude jejich rozptyl &amp;lt;math&amp;gt;\operatorname{var}(\frac{W_1 + W_2}{2})&amp;lt;/math&amp;gt; menší, než kdyby na sobě oba výsledky nebyly závislé.&lt;br /&gt;
&lt;br /&gt;
Otázkou je, jak zajistíme, aby výsledky dvou po sobě jdoucích běhů simulace byly negativně korelované. Jak už bylo zmíněno dříve, &amp;lt;math&amp;gt;\operatorname{U}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;1 - \operatorname{U}&amp;lt;/math&amp;gt; jsou negativně korelované, díky čemuž můžeme předpokládat, že když pro první běh simulace použijeme náhodné proměnné &amp;lt;math&amp;gt;\operatorname{U_1,...,U_m}&amp;lt;/math&amp;gt; k výpočtu výsledku simulace &amp;lt;math&amp;gt;\operatorname{W_1}&amp;lt;/math&amp;gt; a poté použijeme použijeme náhodné proměnné &amp;lt;math&amp;gt;\operatorname{1 - U_1,...,1 - U_m}&amp;lt;/math&amp;gt; k výpočtu &amp;lt;math&amp;gt;\operatorname{W_2}&amp;lt;/math&amp;gt;, bude to znamenat, že i &amp;lt;math&amp;gt;\operatorname{W_1}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{W_2}&amp;lt;/math&amp;gt; budou negativně korelované. Selský rozum nám říká, že v obdobném případě se simulací [[Queueing_theory/cs|fronty]] &amp;lt;math&amp;gt;\operatorname{G/G/1}&amp;lt;/math&amp;gt; povede velké množství hodnot z &amp;lt;math&amp;gt;\operatorname{U_i}&amp;lt;/math&amp;gt;, kterým odpovídají dlouhé časy obsluhy, k dlouhým čekacím dobám v prvním běhu simulace. Použití antitetických proměnných &amp;lt;math&amp;gt;\operatorname{1 - U_i}&amp;lt;/math&amp;gt; v druhém běhu simulace způsobí naopak krátké časy obsluhy, a tím i krátké čekací doby&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Příklad užití metody antitetických proměnných ===&lt;br /&gt;
&lt;br /&gt;
Výsledky použití antitetických proměnných znázorňují následujícíc dvě tabulky, z nichž první ukazuje odhad střední doby trvání posledního úkolu bez použití této metody a druhá s použitím této metody.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 5: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{LPTF}})&amp;lt;/math&amp;gt; bez použití této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0457&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;1,6201&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(4,945; 5,146)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0400&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;1,6020&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,009; 5,071)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0487&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;1,597&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,039; 5,059)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0559&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;1,5980&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,053; 5,059)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 6: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{LPTF}})&amp;lt;/math&amp;gt; s použitím metody antitetických proměnných&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet párů proměnných !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;500&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0711&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,7216&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,008; 5,134)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;5 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0497&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,6916&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,030; 5,069)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;50 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0546&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,6858&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,049; 5,061)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;500 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0546&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,6844&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,053; 5,056)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Srovnáme-li opět výsledky simulace pro &amp;lt;math&amp;gt;\operatorname{N} = 10&amp;lt;/math&amp;gt; úkolů s délkou z exponenciálního rozdělení s distribuční funkcí &amp;lt;math&amp;gt;\operatorname{F} = 1 - e^{-x}&amp;lt;/math&amp;gt;, pak dostaneme jiné estimátory a intervaly spolehlivosti pro střední hodnotu &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{LPTF}})&amp;lt;/math&amp;gt;, když použijeme metodu antitetických proměnných, než když je nepoužijeme. Srovnáváme zde výsledky 1000 nezávislých běhů simulace s 1000 záviclých běhů sestávajích z 500 dvojic běhů, které jsou na vzájemně závislé a používají právě antitetické proměnné. Z hodnot tabulky je patrné, že došlo k 1,5násobnému snížení směrodatné odchylky, a tím i k 1,5násobnému zúžení intervalů spolehlivosti&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Je nutno podotknout, že podobně jako při použití metody společných náhodných čísel, i zde může dojít k problému se synchronizací. Dále je užitečné uvést, že tato metoda je určitě jednodušší na implementaci, protože nám stačí pouze jeden zdroj rovnoměrně rozložených náhodných čísel k vygenerování jendoho páru antitetických proměnných.&lt;br /&gt;
&lt;br /&gt;
== Metoda řídících proměnných ==&lt;br /&gt;
&lt;br /&gt;
Metoda řídících proměnných je založena na myšlence, která říká, že pokud chceme odhadnout střední hodnotu neznámé veličiny &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; měřící výkonnost za použití &amp;lt;math&amp;gt;\operatorname{K}&amp;lt;/math&amp;gt; nezávislých běhů simulace, pak pro výstup i-tého běhu simulace &amp;lt;math&amp;gt;\operatorname{X_i}&amp;lt;/math&amp;gt; bude platit &amp;lt;math&amp;gt;\operatorname{E}(X_i) = \operatorname{E}(X)&amp;lt;/math&amp;gt;. Nezkreslený estimátor pro &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; je dán jako &amp;lt;math&amp;gt;\operatorname{E}(\overline{X}) = \frac{(\sum_{i=1}^K X_i)}{K}&amp;lt;/math&amp;gt;. Navíc předpokládejme, že jsme zároveň schopni simulovat průběh související výstupní proměnné &amp;lt;math&amp;gt;\operatorname{Y_i}&amp;lt;/math&amp;gt;, pro kterou platí &amp;lt;math&amp;gt;\operatorname{E}(Y_i) = \operatorname{E}(y)&amp;lt;/math&amp;gt; a my &amp;lt;math&amp;gt;\operatorname{E}(Y)&amp;lt;/math&amp;gt; už známe. Označíme-li nezkreslený estimátor &amp;lt;math&amp;gt;\operatorname{E}(Y)&amp;lt;/math&amp;gt; jako &amp;lt;math&amp;gt;\operatorname{E}(\overline{Y}) = \frac{(\sum_{i=1}^K Y_i)}{K}&amp;lt;/math&amp;gt;, pak pro libovolnou konstantu &amp;lt;math&amp;gt;\operatorname{c}&amp;lt;/math&amp;gt; je součet &amp;lt;math&amp;gt;\overline{X} + c(\overline{Y}-E(Y))&amp;lt;/math&amp;gt; také nezkresleným estimátorem &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt;. Z následujícího vztahu &lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{var}(\overline{X}+c(\overline-E(Y))) = \operatorname{var}(\overline{X}) + c^2\operatorname{var}(\overline{Y}) + 2c\operatorname{cov}(\overline{X},\overline{Y})&amp;lt;/math&amp;gt;&lt;br /&gt;
lze vyvodit, že rozptyl &amp;lt;math&amp;gt;\operatorname{var}(\overline{X} + c(\overline{Y}-E(Y)))&amp;lt;/math&amp;gt; bude minimalizován, pokud použijeme konstantu &amp;lt;math&amp;gt;\operatorname{c} = \operatorname{c*}&amp;lt;/math&amp;gt;, kde&lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{c*} = -\frac{\operatorname{cov}(\overline{X},\overline{Y})}{\operatorname{var}(\overline{Y})}&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Bohužel, konkrétní hodnoty pro &amp;lt;math&amp;gt;\operatorname{cov}(\overline{X},\overline{Y})&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{var}(\overline{Y})&amp;lt;/math&amp;gt; obvykle neznáme předem, musíme je ohdadnout ze simulovaných dat. Hodnota &amp;lt;math&amp;gt;\overline{Y}&amp;lt;/math&amp;gt; se zde nazývá řídící proměnná estimátoru &amp;lt;math&amp;gt;\overline{X}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Tato metoda funguje díky tomu, že uvažujeme-li pozitivně korelované &amp;lt;math&amp;gt;\overline{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\overline{Y}&amp;lt;/math&amp;gt;, pak v simulaci, kde je hodnota výstupu &amp;lt;math&amp;gt;\overline{Y}&amp;lt;/math&amp;gt; mnohem vyšší než průměrná hodnota výstupu &amp;lt;math&amp;gt;\operatorname{E}(\overline{Y})&amp;lt;/math&amp;gt;, bude pravděpodobné, že i vstupní hodnota &amp;lt;math&amp;gt;\overline{X}&amp;lt;/math&amp;gt; bude větší než její průměr &amp;lt;math&amp;gt;\operatorname{E}(\overline{X})&amp;lt;/math&amp;gt;, což můžeme opravit tak, že snížíme hodnotu vstupní proměnné (estimátoru) &amp;lt;math&amp;gt;\operatorname{E}(\overline{X})&amp;lt;/math&amp;gt;. Totéž platí analogicky i pro negativně korelované proměnné&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
V příkladě s produkční linkou by jako přirozeně vzniklá řídící proměnná mohla být dlouhodobá průměrná rychlost produkce linky, která má nárazníky (buffery) o nulové délce.&lt;br /&gt;
&lt;br /&gt;
== Metoda závislých proměnných ==&lt;br /&gt;
&lt;br /&gt;
Tato metoda je založena na následujících dvou vztazích. Jestliže &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; jsou dvě libovolné náhodné veličiny, pak platí&lt;br /&gt;
:1. &amp;lt;math&amp;gt;\operatorname{E}(X) = \operatorname{E}(\operatorname{E}(X|Y))&amp;lt;/math&amp;gt;&lt;br /&gt;
:2. &amp;lt;math&amp;gt;\operatorname{var}(X) = \operatorname{E}(\operatorname{var}(X|Y)) + \operatorname{var}(\operatorname{E}(X|Y)) &amp;gt;= \operatorname{var}(\operatorname{E}(X|Y))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
z čehož vyplnývá, že náhodná veličina &amp;lt;math&amp;gt;\operatorname{E}(X|Y)&amp;lt;/math&amp;gt; bude mít stejnou střední hodnotu jako náhodná veličina &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt;, a navíc bude mít menší rozptyl než &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tyto vztahy nám mohou pomoci snížit rozptyl v simulacích. Předpokládejme, že &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; bude nějaký výkonnostní ukazatel, který chceme odhadnout. Jestliže zavedeme náhodnou proměnnou &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; takovou, že budeme znát &amp;lt;math&amp;gt;\operatorname{E}(X|Y = y)&amp;lt;/math&amp;gt;, tak z předchozích dvou vztahů můžeme předpokládat, že pro nás bude lepší simulovat &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; a tedy používat &amp;lt;math&amp;gt;\operatorname{E}(X|Y)&amp;lt;/math&amp;gt;, než přímo simulovat veličinu &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ukažme si to na příkladu modelu fronty &amp;lt;math&amp;gt;M_{\lambda}/M_{\mu}/1/N&amp;lt;/math&amp;gt;, ve kterém systém nepřijme více než &amp;lt;math&amp;gt;\operatorname{N}&amp;lt;/math&amp;gt; zákazníků, ti budou ze systému ztraceni. Cílovou veličinou, kterou budeme sledovat, je střední doba ztracených zákazníků &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; v daném čase &amp;lt;math&amp;gt;\operatorname{t}&amp;lt;/math&amp;gt;. Kdybychom pracovali přímo s veličinou &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt;, tak bychom provedli &amp;lt;math&amp;gt;\operatorname{K}&amp;lt;/math&amp;gt; simulací až do okamžiku &amp;lt;math&amp;gt;\operatorname{t}&amp;lt;/math&amp;gt;. Počet ztracených zákazníků v jednotlivých simulacích značme &amp;lt;math&amp;gt;\operatorname{X_i}&amp;lt;/math&amp;gt;. Nezkreslený estimátor &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; by potom byl &amp;lt;math&amp;gt;\operatorname{\overline{X}} = \frac{\sum_{i=1}^K X_i}{K}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Díky použití této metody ale můžeme rozptyl estimátoru snížit následovně. Uvažujme nejprve &amp;lt;math&amp;gt;\operatorname{Y_i}&amp;lt;/math&amp;gt;, které bude značit celkový čas z intervalu &amp;lt;math&amp;gt;(0,\operatorname{t})&amp;lt;/math&amp;gt;, při počtu &amp;lt;math&amp;gt;\operatorname{N}&amp;lt;/math&amp;gt; zákazníků v systému v i-tém běhu simulace. Díky tomu, že příchody zákazníků jsou z Poissonova rozdělení s parametrem &amp;lt;math&amp;gt;\operatorname{\lambda}&amp;lt;/math&amp;gt;, pak naše podmíněná střední hodnota bude &amp;lt;math&amp;gt;\operatorname{E}(X|Y_i) = \lambda Y_i&amp;lt;/math&amp;gt;. Změní se tím i estimátor, který bude nyní &amp;lt;math&amp;gt;\lambda \overline{Y}&amp;lt;/math&amp;gt;, kde &amp;lt;math&amp;gt;\operatorname{\overline{Y}} = \frac{\sum_{i=1}^K Y_i}{K}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Následující tabulky srovnávají hodnoty estimátoru &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; a intervaly spolehlivosti pro různé počty simulací s parametry &amp;lt;math&amp;gt;\operatorname{\lambda} = 0,5&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\operatorname{\mu} = 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\operatorname{N} = 3&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{t} = 1000&amp;lt;/math&amp;gt; získané bez použití metody závislých proměnných, a druhá ukazuje snížení rozptylu právě použitím této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 5: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{X})&amp;lt;/math&amp;gt; bez použití této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,10&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;10,06&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(26,86; 39,33)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,09&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;9,21&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(32,28; 35,90)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,60&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;8,88&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(33,05; 34,15)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 6: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{X})&amp;lt;/math&amp;gt; s použitím metody podmíněných proměnných&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,60&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;7,16&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(29,17; 38,05)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,82&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;6,91&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(32,46; 35,18)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,36&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;6,57&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(32,95; 33,76)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Z hodnot v tabulce je patrné, že metoda podmíněných proměnných snížila směrodatnou odchylku 1,3krát, čímž i zúžila interval spolehlivosti 1,3krát.&lt;br /&gt;
&lt;br /&gt;
== Další metody pro redukci rozptylu ==&lt;br /&gt;
Kromě již uvedených metod snižování rozptylu existují ještě další, které stojí za zmínku a jsou v praxi používány. Mezi ty patří&amp;lt;ref name=&amp;quot;tvrdik&amp;quot;&amp;gt;Simulační metody při hodnocení cenných papírů &amp;lt;i&amp;gt;Mgr. Michal Tvrdík&amp;lt;/i&amp;gt; 2007-09-20 [online]. [cit. 2016-06-05]. Dostupné z: https://is.cuni.cz/webapps/zzp/detail/46348/&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* '''Metoda momentů'''&lt;br /&gt;
* '''Výběr podle důležitosti'''&lt;br /&gt;
* '''Stratifikovaný výběr'''&lt;br /&gt;
* '''Regresní modely'''&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Díky uvedeným metodám lze snížit rozptyl v simulacích, které využívají metodu Monte Carlo. Některé metody pomohou snížit rozptyl více, některé méně, přičemž z uvedených metod dokázala nejvíce snížit rozptyl metoda '''Antitetických proměnných'''. V závislosti na typu úlohy a nám známých informacích bychom neměli volit zbytečně složitou metodu. Při snaze o snižování rozptylu je nutné mít na paměti, že ne vždy je čas strávený nad imlementací některé z metod kompenzován odpovídajícím výsedkem. V praxi se totiž může stát, že námi navržený model bude obsahovat nedostatky, které se projeví negativně na kvalitě výsledku mnohonásobně více než vyšší rozptyl.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Variance_reduction/cs&amp;diff=11845</id>
		<title>Variance reduction/cs</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Variance_reduction/cs&amp;diff=11845"/>
		<updated>2016-06-10T20:28:59Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Přidána prvotní verze stránky&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{DISPLAYTITLE:Metody redukce rozptylu}}&lt;br /&gt;
&lt;br /&gt;
= Předmluva =&lt;br /&gt;
&lt;br /&gt;
K problematice redukce rozptylu není příliš velké množství českých zdrojů. Jedná se většinou o akademické práce, které citují zahraniční autory. Texty blíže se zabývající tímto tématem jsou primárně v anglickém jazyce a k vysvětlení využívají nástroje statistiky, které nemusí být čtenáři s pouhými základními znalostmi ze statistiky příliš jasné. Jelikož i já, autor tohoto textu, oplývám pouze základními znalostmi z oboru statistiky, budu se snažit v tomto učebním textu popsat metody redukce rozptylu co možná nejjednodušeji, aby si z něj čtenáři, kteří jsou na obdobné úrovni znalostí, odnesli pokud možno jakési základy, které jim pomohou lépe toto téma pochopit. Zároveň tím apeluji na zkušenější čtenáře, aby pomohli s korekcí a rozšířením tohoto textu o hlubší poznatky ze statistiky, které by navazovaly na mnou vytvořený základ.&lt;br /&gt;
&lt;br /&gt;
= Náhodná veličina a její rozptyl = &lt;br /&gt;
&lt;br /&gt;
'''Náhodná veličina (též náhodná či stochastická proměnná) '''je nějaká libovolná veličina mající číselnou hodnotu (např. 1, -150 nebo 18,6) a jednotku (kilogram, metr, litr, ...). Tuto veličinu můžeme měřit u různých objektů, v různém čase, různém místě a pomocí teorie pravděpodobnosti a matematické statistiky s ní různě pracovat. Příkladem náhodné veličiny může být počet ok při hodu kostkou, hmotnost narozených dětí v různých regionech, roční mzda občanů státu apod.&amp;lt;ref name=&amp;quot;nahv&amp;quot;&amp;gt;Náhodná veličina&amp;lt;i&amp;gt;Veterinární a farmaceutická univerzita Brno&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-08]. Dostupné z: http://cit.vfu.cz/statpotr/POTR/Teorie/Predn1/nahvelic.htm&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Náhodná veličina může být buď diskrétního nebo spojitého typu. Oba typy si jsou velmi podobné, což je vidět v následujících podkapitolách.&lt;br /&gt;
&lt;br /&gt;
== Diskrétní náhodná veličina ==&lt;br /&gt;
[[File:Poisson_pmf.svg.png|right|325px|thumb|Pravděpodobnostní funkce diskrétního Poissonova rozdělení&amp;lt;ref name=&amp;quot;poiss1&amp;quot;&amp;gt;Pravděpodobnostní funkce diskrétního Poissonova rozdělení&amp;lt;i&amp;gt;Skbkekas&amp;lt;/i&amp;gt; 2010-02-10 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Poisson_pmf.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
[[File:Poisson_cdf.svg.png|right|325px|thumb|Distribuční funkce diskrétního Poissonova rozdělení&amp;lt;ref name=&amp;quot;poiss2&amp;quot;&amp;gt;Distribuční funkce diskrétního Poissonova rozdělení&amp;lt;i&amp;gt;Skbkekas&amp;lt;/i&amp;gt; 2010-02-10 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Poisson_cdf.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
'''Diskrétní (též nespojitá) náhodná veličina''' je taková náhodná veličina, která může nabývat pouze jednotlivých hodnot z konečného nebo nekonečného intervalu. To znanená, že se může měnit jen po skocích&amp;lt;ref name=&amp;quot;nahv&amp;quot; /&amp;gt;. Příkladem spojité náhodné veličiny může být počet ok při hodu kostkou, který může nabývat pouze hodnot &amp;lt;math&amp;gt;\{ 1, 2, 3, 4, 5, 6 \}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Zkoumáme-li potom pravděpodobnost, že na hozené kostce padne konkrétní hodnota, můžeme těmto možným hodnotám přiřadíit jejich pravděpodobnost výskytu, čímž získáme '''pravděpodobnostní funkci''' diskrétní náhodné veličiny &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;. Sestavením tabulky s možnými hodnotami ok na kostce značených &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; a pravděpodobnostmi, že padne právě tento počet ok získáme průběh pravděpodobnostní funkce &amp;lt;math&amp;gt;p(x)&amp;lt;/math&amp;gt;, která každému &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt; přiřazuje jeho pravděpodobnost značenou &amp;lt;math&amp;gt;P(x)&amp;lt;/math&amp;gt;, což můžeme zapsat jako &amp;lt;math&amp;gt;p(x) = P(X = x)&amp;lt;/math&amp;gt;, slovy &amp;quot;pravděpodobnost, že náhodná veličina &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; nabyde hodnoty &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Kromě '''pravděpodobnostní funkce''' nás zajímá také '''distribuční funkce''' &amp;lt;math&amp;gt;F(x)&amp;lt;/math&amp;gt;, a to v případech, kdy chceme určit pravděpodobnost, že veličina &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; nabyde hodnoty menší než &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;, což lze zapsat jako &lt;br /&gt;
:&amp;lt;math&amp;gt;F(x) = P(X &amp;lt; x)&amp;lt;/math&amp;gt; &lt;br /&gt;
a v případě diskrétní náhodné veličiny ji lze určit &amp;quot;nasčítáním&amp;quot; všech předchozích pravděpodobností před zvolenou hodnotou, tedy touto sumací: &lt;br /&gt;
:&amp;lt;math&amp;gt;F(x) = \sum_{i=1}^{x}P(X = x_{i})&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Známe-li hodnoty, kterých může náhodná veličina nabývat, a pravděpodobnosti výskytu těchto hodnot, můžeme spočítat '''střední hodnotu (též označnovanou jako první počáteční moment''') jako &amp;lt;math&amp;gt;\operatorname{E}(X) = \sum_{i=1}^{x}x_{i} P(x_{i})&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pro příklad si můžeme představit obyčejnou šestihrannou kostku. Pravděpodobnost, že padne jedna z 6 možných hodnot na kostce stejná, proto pravděpodobnostní funkci lze zapsat jako &lt;br /&gt;
:&amp;lt;math&amp;gt;p(x) = \frac{1}{6}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
A protože tyto hodnoty pokrývají všechny možné, které mohou nastat, je jejich součet roven jedné. Platí tedy vztah &lt;br /&gt;
:&amp;lt;math&amp;gt;\sum_{i=1}^{n}P(x_{i}) = 1&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Díky tomu, že jsou pravděpodobnosti v tomto případě vždy stejné, zjednodušuje se tím i vzoreček pro výpočet střední hodnoty, který je potom pouze &lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{E}(X) = \frac{1}{n}\sum_{i=1}^{x}x_{i}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Jedná se v podstatě o prostý aritmetický průměr. Kdybychom ale zkoumali náhodnou veličinu, kterou by byl součet ok na dvou hozených kostkách, nebyla by pravděpodobnost vždy stejná, protože například součet 5 můžeme hodit čtyřmi způsoby: (1,4), (2, 3) (3, 2), (4, 1), a tudíž bychom nemohli použít prostého aritmetického průměru&amp;lt;ref name=&amp;quot;ban&amp;quot;&amp;gt;NÁHODNÁ VELIČINA&amp;lt;i&amp;gt;Vysoká škola báňská - Technická univerzita Ostrava - VŠB-TUO&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-08]. Dostupné z: hhttps://homen.vsb.cz/~oti73/cdpast1/KAP03/PRAV3.HTM&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Spojitá náhodná veličina ==&lt;br /&gt;
[[File:Normal_Distribution_PDF.svg.png|right|325px|thumb|Hustota pravděpodobnosti spojitého Normálního rozdělení&amp;lt;ref name=&amp;quot;norm1&amp;quot;&amp;gt;Hustota pravděpodobnosti spojitého Normálního rozdělení&amp;lt;i&amp;gt;Inductiveload&amp;lt;/i&amp;gt; 2008-04-02 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Normal_Distribution_PDF.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
[[File:Normal_Distribution_CDF.svg.png|right|325px|thumb|Distribuční funkce spojitého Normálního rozdělení&amp;lt;ref name=&amp;quot;norm2&amp;quot;&amp;gt;Distribuční funkce spojitého Normálního rozdělení&amp;lt;i&amp;gt;Inductiveload&amp;lt;/i&amp;gt; 2008-04-02 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Normal_Distribution_PDF.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
'''Spojitá náhodná veličina''' je taková náhodná veličina, která může nabývat všech možných hodnot z konečného nebo nekonečného intervalu, může se tedy měnit bez skoků (spojitě)&amp;lt;ref name=&amp;quot;nahv&amp;quot; /&amp;gt;. Ekvivalentem diskrétní pravděpodobnostní funkce je zde hustota pravděpodobnosti značená &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;ban&amp;quot; /&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Spojitá náhodná veličina má rovněž distribuční funkci &amp;lt;math&amp;gt;F(X)&amp;lt;/math&amp;gt;, kterou získáme když budeme integrovat hustotu pravděpodobnosti od mínus nekonečna do &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;: F(X)=\int_{-\infin}^{x}f(t)dt.&lt;br /&gt;
Chceme-li naopak z distribuční funkce získat hustotu pravděpodobnosti, stačí nám provést inverzní operavi k integrálu, kterou je derivace: &amp;lt;math&amp;gt;f(x)=F'(x)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Stejně jako v případě pravděpodobnostní u diskrétní náhodné veličiny, hustota pravděpodobnosti u spojité náhodné veličiny splňuje podmínku &lt;br /&gt;
:&amp;lt;math&amp;gt;\int_{-\infty}^{\infty}f(x)dx=1&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Střední hodnotu pak dostaneme podobně jako u diskrétní funkce, a to integrováním hustoty pravděpodobnosti násobené hodnotou  &amp;lt;math&amp;gt;x&amp;lt;/math&amp;gt;: &lt;br /&gt;
:&amp;lt;math&amp;gt;E(X)=\int_{-\infty}^{\infty}xf(x)dx&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Spojitou veličinu můžeme &amp;quot;převést&amp;quot; na diskrétní tak, že její průběh rozdělíme do dílčích intervalů&amp;lt;ref name=&amp;quot;nahv&amp;quot; /&amp;gt;. Kdybychom například zkoumali hmotnosti pro zápasy v bojových sporetch a předpokládali, že hmostnosti účastníků budou rozděleny od 60 kg výše, čemuž odpovídá interval &amp;lt;math&amp;gt;\langle 60, \infty ) &amp;lt;/math&amp;gt; a chtěli bychom určit 6 váhových katerogií, rozdělili bychom původní interval například takto&amp;lt;ref name=&amp;quot;judo&amp;quot;&amp;gt;Rozdělení závodníků podle věku a hmotnosti&amp;lt;i&amp;gt;AC Sparta Praha Judo&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-05]. Dostupné z: http://www.sparta-judo.cz/judo-jako-sport/vekove-a-vahove-kategorie/&amp;lt;/ref&amp;gt;:&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 60, 66) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 66, 73) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 73, 81) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 81, 90) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 90, 100) &amp;lt;/math&amp;gt;&lt;br /&gt;
# &amp;lt;math&amp;gt;\langle 100, \infty) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Pravděpodobnostní rozdělení ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;[[Probability_distributions/cs|Podrobnější informace o pravděpodobnostních rozděleních]]&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Pravděpodobnostní rozdělení (též rozdělení, rozložení nebo distribuce pravděpodobnosti)''' je pravidlo, podle kterého je každému náhodnému jevu přiřazena určitá (známá) pravděpodobnost. Pravděpodobnostní rozdělení se v závislosti na typu náhodné veličiny dělí na diskrétní (např. Alternativní, Binomické, Nagativní binomické, Poissonovo rozdělění) a spojitá (např. Rovnoměrné, Normální, Exponenciální, Logaritmicko-normální rozdělění).&lt;br /&gt;
&lt;br /&gt;
== Rozptyl ==&lt;br /&gt;
&lt;br /&gt;
'''Rozptyl (též střední kvadratická odchylka, variance nebo disperze)''' je jednou z charakteristik náhodné veličiny, konkrétně jde o charakteristiku variability a udává, jak moc jsou hodnoty v našem statistickém souboru rozptýleny&amp;lt;ref name=&amp;quot;ban&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Uvažujeme-li náhodnou veličinu &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;, pak její rozptyl se označuje &amp;lt;math&amp;gt;\sigma^2(X)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;S^2(X)&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;D(X)&amp;lt;/math&amp;gt; nebo &amp;lt;math&amp;gt;\operatorname{var}(X)&amp;lt;/math&amp;gt; a spočítá se jako &amp;quot;střední hodnota kvadrátů odchylek od střední hodnoty&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Pro '''diskrétní náhodnou veličinu''' tuto větu můžeme vyjádřit vztahem&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma^2 = \sum_{i=1}^n {\left[x_i - \operatorname{E}(X)\right]}^2 p_i&amp;lt;/math&amp;gt;,&lt;br /&gt;
kde &amp;lt;math&amp;gt;x_i&amp;lt;/math&amp;gt; jsou hodnoty, kterých může náhodná veličina &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt; nabývat (s pravděpodobnostmi &amp;lt;math&amp;gt;p_i&amp;lt;/math&amp;gt;) a &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; je střední hodnota veličiny &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
Chceme-li rozptyl počítat &amp;quot;ručně&amp;quot;, je vhodnější použít tzv. výpočetní tvar&amp;lt;ref name=&amp;quot;ban&amp;quot; /&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma^2 = \sum_{i=1}^n x_i^2 p_i - {[\operatorname{E}(X)]}^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pro '''spojitou náhodnou veličinu''' je vztah podobný, jen místo sčítání integrujeme. Vztah vypadá potom takto&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma^2 = \int_{-\infty}^\infty {\left[x-\operatorname{E}(X)\right]}^2 f(x)\mathrm{d}x&amp;lt;/math&amp;gt;,&lt;br /&gt;
kde &amp;lt;math&amp;gt;f(x)&amp;lt;/math&amp;gt; je hustota pravděpodobnosti veličiny &amp;lt;math&amp;gt;X&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
A obdobně jako u diskrétní náhodné veličiny, i zde můžeme použít jednodušší &amp;quot;výpočetní tvar&amp;quot;&amp;lt;ref name=&amp;quot;ban&amp;quot; /&amp;gt;&lt;br /&gt;
:&amp;lt;math&amp;gt;\sigma^2 = \int_{-\infty}^\infty x^2 f(x)\mathrm{d}x - {[\operatorname{E}(X)]}^2&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Zákon velkých čísel a centrální limitní věta ==&lt;br /&gt;
[[File:Largenumbers.svg.png|right|325px|thumb|Zákon velkých čísel a konvergence výběrového průměru k teoretiské střední hodnotě při hodu šestihrannou kostkou&amp;lt;ref name=&amp;quot;llno&amp;quot;&amp;gt;Zákon velkých čísel - hody kostkou&amp;lt;i&amp;gt;NYKevin&amp;lt;/i&amp;gt; 2010-01-31 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Largenumbers.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
[[File:Central_theorem_2.svg.png|right|325px|thumb|Centrální limitní věta a znázornění obecného diskrétního rozdělení, které se blíží rozdělení normálnímu&amp;lt;ref name=&amp;quot;clto&amp;quot;&amp;gt;Podobnost rozdělení - Centrální limitní věta&amp;lt;i&amp;gt;Chen-Pan Liao&amp;lt;/i&amp;gt; 2014-11-15 [online]. [cit. 2016-06-08]. Dostupné z: https://commons.wikimedia.org/wiki/File:Central_theorem_2.svg&amp;lt;/ref&amp;gt;.]]&lt;br /&gt;
Při použití metody Monte Carlo v podstatě generujeme obrovské množství scénářů, které potom skládáme dohromady průměrováním. V tom nám pomáhá '''zákon velkých čísel''' a '''centrální limitní věta'''&lt;br /&gt;
&lt;br /&gt;
'''Zákon velkých čísel''' lze nejlépe ilustrovat na příkladu s házením kostkou. Budeme-li házet 6hrannou kostkou stále dokola a získané hodnoty, které na kostce padly, průměrovat, tak s rostoucím počtem pokusů náš zaznamenávaný průměr bude asymptoticky kolísat kolem teoretické (vypočtené) střední hodnoty&amp;lt;ref name=&amp;quot;lln&amp;quot;&amp;gt;Law of large numbers&amp;lt;i&amp;gt;encyclopediaofmath.org&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-05]. Dostupné z: https://www.encyclopediaofmath.org/index.php/Law_of_large_numbers&amp;lt;/ref&amp;gt;:&lt;br /&gt;
: &amp;lt;math&amp;gt; \frac{1+2+3+4+5+6}{6} = 3,5.&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Lze tedy říci, že výběrový průměr&lt;br /&gt;
:&amp;lt;math&amp;gt;\overline{X}_n=\frac1n(X_1+\cdots+X_n) &amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
bude konvergovat ke střední hodnotě&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{matrix}{}\\&lt;br /&gt;
\overline{X}_n \, \to \, \mu \qquad\textrm{pro}\qquad n \to \infty&lt;br /&gt;
\\{}\end{matrix}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Díky '''centrální limitní větě''' potom můžeme využívat toho, že při velkém počtu opakování &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; bude mít libovolná veličina přibližně normální rozdělení se snižujícím se rozptylem &amp;lt;math&amp;gt;\frac{\sigma^2}{n}&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;clt&amp;quot;&amp;gt;Central Limit Theorem&amp;lt;i&amp;gt;Robert D. Klauber&amp;lt;/i&amp;gt; 2015-06-07 [online]. [cit. 2016-06-09]. Dostupné z: http://www.quantumfieldtheory.info/CentralLimitTheorem.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
= Metoda Monte Carlo =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;i&amp;gt;[[Monte_Carlo_method/cs|Podrobnější informace o metodě Monte Carlo]]&amp;lt;/i&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V simulacích pomocí metody Monte Carlo se snažíme pomocí generování náhodných čísel a mnoha opakování náhodných pokusů získat obecné charakteristiky nějakého modelovaného jevu. To je možné díky platnosti zákona velkých čísel a centrální limitní věty. Pomocí metody Monte Carlo lze získávat relativně jednoduše přibližné výsledky tam, kde by bylo použití analytických modelů složité, ba nemožné. Metody Monte Carlo je využíváno i například v systémech založených na [[Queueing_theory/cs|teorii front]].&lt;br /&gt;
&lt;br /&gt;
= Metody redukce roptylu =&lt;br /&gt;
&lt;br /&gt;
Když provádíme simulaci, obvykle v rámci nějaké studie, zajímá nás jedna nebo více sledovaných hodnot nějakého stochastického (nedeterministického) modelu. Například chceme zjistit, dlouhodobou střední (průměrnou) dobu čekání zákazníků ve frontě, kterou budeme značit &amp;lt;math&amp;gt;\operatorname{W}&amp;lt;/math&amp;gt;. Střední dobu čekání značme například &amp;lt;math&amp;gt;\operatorname{E}(W)&amp;lt;/math&amp;gt;. Abychom odhadli &amp;lt;math&amp;gt;\operatorname{E}(W)&amp;lt;/math&amp;gt;, musíme provést &amp;lt;math&amp;gt;\operatorname{K}&amp;lt;/math&amp;gt; nezávislých simulací. Po provedení těchto simulací a zjištění středních hodnot dob čekání &amp;lt;math&amp;gt;\operatorname{E}(W_i)&amp;lt;/math&amp;gt; lze stanovit estimátor &amp;lt;math&amp;gt;\operatorname{E}(W)&amp;lt;/math&amp;gt; podle vztahu &amp;lt;math&amp;gt;\operatorname{\overline{W}} = \frac{\sum_{i=1}^K W_i}{K}&amp;lt;/math&amp;gt;. Kdybychom však našli jiný nezkreslený estimátor střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(W)&amp;lt;/math&amp;gt; s menším rozptylem než má &amp;lt;math&amp;gt;\operatorname{\overline{W}}&amp;lt;/math&amp;gt;, získali bychom tím estimátor s menším intervalem spolehlivosti, což je pro náš žádoucí. Pro zredukování rozptylu estimátoru &amp;lt;math&amp;gt;\operatorname{\overline{W}}&amp;lt;/math&amp;gt; lze použít několik metod, které jsou popsány v následujících kapitolách. I ty jednodšší podávají vcelku dobré výsledky. Je ale třeba dát si pozor, protože nesprávným použitím některých metod může místo snížení rozptylu naopak dojít k jeho zvýšení&amp;lt;ref name=&amp;quot;vrt&amp;quot;&amp;gt;Variance Reduction Techniques&amp;lt;i&amp;gt;Technische Universiteit Eindhoven University of Technology&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-07]. Dostupné z: http://www.win.tue.nl/~resing/2S540/week6.pdf&amp;lt;/ref&amp;gt;.&lt;br /&gt;
== Metoda společných náhodných čísel ==&lt;br /&gt;
&lt;br /&gt;
Metoda společných náhodných čísel využívá toho, že pokud zkoumáme a porovnáváme dva různé systémy, které obsahují nějaké náhodně se chovající komponenty, je obecně lepší při vyhodnocování takovýchto systémů v nich používat vždy stejně implementované náhodné komponenty. Metoda využívá klíčové vlastnosti dvou náhodných veličin &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt;, která je dána vztahem&lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{var}(X-Y) = \operatorname{var}(X) + \operatorname{var}(Y) - 2\operatorname{cov}(X,Y)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Jestliže jsou náhodné veličiny &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; závislé a jsou pozitivně korelovány, tzn. že platí i &amp;lt;math&amp;gt;\operatorname{cov}(X,Y) &amp;gt; 0&amp;lt;/math&amp;gt;, potom bude rozptyl rozdílu &amp;lt;math&amp;gt;\operatorname{X-Y}&amp;lt;/math&amp;gt; menší než kdyby veličiny &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; byly nezávislé. Obecně použití metody společných náhodných čísel vede k tomu, že i výsledky simulace dvou takto zkoumaných systémů budou pozitivně korelovány, proto je při porovnávání dvou systémů lepší použít společná náhodná čísla místo zcela nezávislých náhodných čísel.&lt;br /&gt;
&lt;br /&gt;
Problém by nastal, pokud by byly veličiny negativně korelovány. V takovém případě by došlo naopak ke zvýšení rozptylu, což je ve většině případů nežádoucí&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Příklad užití metody společných náhodných čísel ===&lt;br /&gt;
&lt;br /&gt;
Pro ilustraci metody společných náhodných čísel použijeme následující příklad zabývající se zpracováním konečného počtu &amp;lt;math&amp;gt;\operatorname{N}&amp;lt;/math&amp;gt; úkolů, které jsou zpracovávány dvěma identickými stroji. Doby zpracování úkolů na jednotlivých strojích jsou náhodné veličiny z nějakého obecného rozdělení, jehož distribuční funkci označmě &amp;lt;math&amp;gt;\operatorname{F}&amp;lt;/math&amp;gt;. Naším úkolem je porovnat čas dokončení posledního úkolu, značený &amp;lt;math&amp;gt;\operatorname{C_{max}}&amp;lt;/math&amp;gt;, za platnosti dvou různých pravidel. Prvním pravidlem je LPTF (Longest Processing Time First), podle něhož si stroj bude vybírat z množiny ještě nezpracovaných úkolů ty úkoly, jejichž doba zpracování je největší. Druhé zkoumané pravidlo SPTF (Shortest Processing Time First) bude stroji říkat, aby si z množiny zbývajících úkolů vybíral nejprve ty nejkratší, čili ty s nejmenší dobou zpracování&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Srovnáme-li výsledky simulace pro &amp;lt;math&amp;gt;\operatorname{N} = 10&amp;lt;/math&amp;gt; úkolů s délkou z exponenciálního rozdělení s distribuční funkcí &amp;lt;math&amp;gt;\operatorname{F} = 1 - e^{-x}&amp;lt;/math&amp;gt;, pak dostaneme jiné estimátory a intervaly spolehlivosti pro střední hodnotu &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{SPTF}-C_{max}^{LPTF}})&amp;lt;/math&amp;gt;, když použijeme společná náhodná čísla, než když je nepoužijeme. Srovnání sledovaných hodnot znázorňují následující dvě tabulky, z nichž první ukazuje hodnoty získané bez použití metody nezávislých náhodných čísel, a druhá ukazuje snížení rozptylu právě použitím této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 3: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{SPTF}-C_{max}^{LPTF}})&amp;lt;/math&amp;gt; bez použití této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8138&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;2,5745&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,645; 0,973)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8293&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;2,4976&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,780; 0,878)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8487&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;2,4990&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,833; 0,864)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8398&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;2,4951&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,835; 0,845)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 4: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{SPTF}-C_{max}^{LPTF}})&amp;lt;/math&amp;gt; s použitím metody společných náhodných čísel&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8559&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,5416&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,822; 0,889)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8415&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,5230&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,831; 0,852)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8394&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,5164&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,836; 0,843)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,8391&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,5168&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(0,838; 0,840)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Z hodnot je patrné, že došlo přibližně k 5násobnému snížení směrodatné odcyhlky, a tím i k 5násobnému zúžení intervalu spolehlivosti.&lt;br /&gt;
&lt;br /&gt;
Při použití této metody však existuje riziko vyplývající s nutnosti použití stejných náhodných počátečních čísel při generování náhodných veličin v obou systémech. Tento problém se synchronizací by mohl nastat, kdybychom uvažovali [[Queueing_theory/cs|systém front]] &amp;lt;math&amp;gt;\operatorname{G/G/1}&amp;lt;/math&amp;gt;, v němž může server pracovat dvěma různými rychlostmi &amp;lt;math&amp;gt;\operatorname{v_1}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{v_2}&amp;lt;/math&amp;gt;. Kdybychom v tomto případě chtěli získat estimátor pro rozdíl v čekacích dobách za použití různých rychlostí, museli bychom v rámci této metody použít stejné mezičasy zpracování a stejně velké požadavky. (Dobu obsluhy bychom získali podílem velikosti požadavku a rychlosti serveru.) Tím bychom narazili na problém synchroznizace, protože při vyšší rychlosti zpracování úkolů by se fronta posouvala rychleji&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;. Tento problém lze vyřešit dvěma způsoby:&lt;br /&gt;
# Použitím více oddělených toků náhodných čísel pro různé sekvence náhodných veličin potřebných k provedení simulace.&lt;br /&gt;
# Zajištěním, že budou náhodné veličiny generovány v přesně stejném pořadí v obou zkoumaných systémech.&lt;br /&gt;
&lt;br /&gt;
Pozn.: &amp;lt;math&amp;gt;\operatorname{G/G/1}&amp;lt;/math&amp;gt; fronta představuje délku fronty v systému s &amp;lt;math&amp;gt;\operatorname{1}&amp;lt;/math&amp;gt; jediným serverem, kde mají mezičasy nějaké obecné rozdělení &amp;lt;math&amp;gt;\operatorname{G}&amp;lt;/math&amp;gt; (jako General - obecné) a časy obsluhy jiné obecné rozdělení &amp;lt;math&amp;gt;\operatorname{G}&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;foss&amp;quot;&amp;gt;Wiley Encyclopedia of Operations Research and Management Science&amp;lt;i&amp;gt;S. Foss&amp;lt;/i&amp;gt; 2001 [cit. 2016-06-09]. ISBN: 9780470400531&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Antitetické proměnné ==&lt;br /&gt;
&lt;br /&gt;
Metoda antitetických proměnných využívá skutečnosti, že pokud je náhodná veličina &amp;lt;math&amp;gt;\operatorname{U}&amp;lt;/math&amp;gt; z rozvnoměrného rozdělení nabývajícího hodnot z intervalu &amp;lt;math&amp;gt;(0, 1)&amp;lt;/math&amp;gt;, pak musí platit, že &amp;lt;math&amp;gt;1 - \operatorname{U}&amp;lt;/math&amp;gt; je také z rovnoměrného rozdělení. Zároveň využívá toho, že &amp;lt;math&amp;gt;\operatorname{U}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;1 - \operatorname{U}&amp;lt;/math&amp;gt; musí být nutně negativně korelované (když se zvýší &amp;lt;math&amp;gt;\operatorname{U}&amp;lt;/math&amp;gt;, logicky musí dojít ke snížení &amp;lt;math&amp;gt;1 - \operatorname{U}&amp;lt;/math&amp;gt; a naopak)&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Klíčovou myšlenkou celé této metody je pak to, že máme-li dva výsledky po sobě jdoucích simulací &amp;lt;math&amp;gt;\operatorname{W_1}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{W_2}&amp;lt;/math&amp;gt;, pak platí, že &lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{var}(\frac{W_1 + W_2}{2}) = \frac{1}{4}\operatorname{var}(W_1) + \frac{1}{4}var(W_2) + \frac{1}{2}\operatorname{cov}(W_1, W_2)&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z tohoto vztahu vyplývá, že budou-li výsledky simulace &amp;lt;math&amp;gt;\operatorname{W_1}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{W_2}&amp;lt;/math&amp;gt; negativně korelovány, bude jejich rozptyl &amp;lt;math&amp;gt;\operatorname{var}(\frac{W_1 + W_2}{2})&amp;lt;/math&amp;gt; menší, než kdyby na sobě oba výsledky nebyly závislé.&lt;br /&gt;
&lt;br /&gt;
Otázkou je, jak zajistíme, aby výsledky dvou po sobě jdoucích běhů simulace byly negativně korelované. Jak už bylo zmíněno dříve, &amp;lt;math&amp;gt;\operatorname{U}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;1 - \operatorname{U}&amp;lt;/math&amp;gt; jsou negativně korelované, díky čemuž můžeme předpokládat, že když pro první běh simulace použijeme náhodné proměnné &amp;lt;math&amp;gt;\operatorname{U_1,...,U_m}&amp;lt;/math&amp;gt; k výpočtu výsledku simulace &amp;lt;math&amp;gt;\operatorname{W_1}&amp;lt;/math&amp;gt; a poté použijeme použijeme náhodné proměnné &amp;lt;math&amp;gt;\operatorname{1 - U_1,...,1 - U_m}&amp;lt;/math&amp;gt; k výpočtu &amp;lt;math&amp;gt;\operatorname{W_2}&amp;lt;/math&amp;gt;, bude to znamenat, že i &amp;lt;math&amp;gt;\operatorname{W_1}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{W_2}&amp;lt;/math&amp;gt; budou negativně korelované. Selský rozum nám říká, že v obdobném případě se simulací [[Queueing_theory/cs|fronty]] &amp;lt;math&amp;gt;\operatorname{G/G/1}&amp;lt;/math&amp;gt; povede velké množství hodnot z &amp;lt;math&amp;gt;\operatorname{U_i}&amp;lt;/math&amp;gt;, kterým odpovídají dlouhé časy obsluhy, k dlouhým čekacím dobám v prvním běhu simulace. Použití antitetických proměnných &amp;lt;math&amp;gt;\operatorname{1 - U_i}&amp;lt;/math&amp;gt; v druhém běhu simulace způsobí naopak krátké časy obsluhy, a tím i krátké čekací doby&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Příklad užití metody antitetických proměnných ===&lt;br /&gt;
&lt;br /&gt;
Výsledky použití antitetických proměnných znázorňují následujícíc dvě tabulky, z nichž první ukazuje odhad střední doby trvání posledního úkolu bez použití této metody a druhá s použitím této metody.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 5: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{LPTF}})&amp;lt;/math&amp;gt; bez použití této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0457&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;1,6201&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(4,945; 5,146)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0400&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;1,6020&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,009; 5,071)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0487&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;1,597&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,039; 5,059)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1 000 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0559&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;1,5980&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,053; 5,059)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 6: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{LPTF}})&amp;lt;/math&amp;gt; s použitím metody antitetických proměnných&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet párů proměnných !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;500&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0711&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,7216&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,008; 5,134)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;5 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0497&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,6916&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,030; 5,069)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;50 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0546&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,6858&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,049; 5,061)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;500 000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;5,0546&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;0,6844&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(5,053; 5,056)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Srovnáme-li opět výsledky simulace pro &amp;lt;math&amp;gt;\operatorname{N} = 10&amp;lt;/math&amp;gt; úkolů s délkou z exponenciálního rozdělení s distribuční funkcí &amp;lt;math&amp;gt;\operatorname{F} = 1 - e^{-x}&amp;lt;/math&amp;gt;, pak dostaneme jiné estimátory a intervaly spolehlivosti pro střední hodnotu &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{C_{max}^{LPTF}})&amp;lt;/math&amp;gt;, když použijeme metodu antitetických proměnných, než když je nepoužijeme. Srovnáváme zde výsledky 1000 nezávislých běhů simulace s 1000 záviclých běhů sestávajích z 500 dvojic běhů, které jsou na vzájemně závislé a používají právě antitetické proměnné. Z hodnot tabulky je patrné, že došlo k 1,5násobnému snížení směrodatné odchylky, a tím i k 1,5násobnému zúžení intervalů spolehlivosti&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Je nutno podotknout, že podobně jako při použití metody společných náhodných čísel, i zde může dojít k problému se synchronizací. Dále je užitečné uvést, že tato metoda je určitě jednodušší na implementaci, protože nám stačí pouze jeden zdroj rovnoměrně rozložených náhodných čísel k vygenerování jendoho páru antitetických proměnných.&lt;br /&gt;
&lt;br /&gt;
== Metoda řídících proměnných ==&lt;br /&gt;
&lt;br /&gt;
Metoda řídících proměnných je založena na myšlence, která říká, že pokud chceme odhadnout střední hodnotu neznámé veličiny &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; měřící výkonnost za použití &amp;lt;math&amp;gt;\operatorname{K}&amp;lt;/math&amp;gt; nezávislých běhů simulace, pak pro výstup i-tého běhu simulace &amp;lt;math&amp;gt;\operatorname{X_i}&amp;lt;/math&amp;gt; bude platit &amp;lt;math&amp;gt;\operatorname{E}(X_i) = \operatorname{E}(X)&amp;lt;/math&amp;gt;. Nezkreslený estimátor pro &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; je dán jako &amp;lt;math&amp;gt;\operatorname{E}(\overline{X}) = \frac{(\sum_{i=1}^K X_i)}{K}&amp;lt;/math&amp;gt;. Navíc předpokládejme, že jsme zároveň schopni simulovat průběh související výstupní proměnné &amp;lt;math&amp;gt;\operatorname{Y_i}&amp;lt;/math&amp;gt;, pro kterou platí &amp;lt;math&amp;gt;\operatorname{E}(Y_i) = \operatorname{E}(y)&amp;lt;/math&amp;gt; a my &amp;lt;math&amp;gt;\operatorname{E}(Y)&amp;lt;/math&amp;gt; už známe. Označíme-li nezkreslený estimátor &amp;lt;math&amp;gt;\operatorname{E}(Y)&amp;lt;/math&amp;gt; jako &amp;lt;math&amp;gt;\operatorname{E}(\overline{Y}) = \frac{(\sum_{i=1}^K Y_i)}{K}&amp;lt;/math&amp;gt;, pak pro libovolnou konstantu &amp;lt;math&amp;gt;\operatorname{c}&amp;lt;/math&amp;gt; je součet &amp;lt;math&amp;gt;\overline{X} + c(\overline{Y}-E(Y))&amp;lt;/math&amp;gt; také nezkresleným estimátorem &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt;. Z následujícího vztahu &lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{var}(\overline{X}+c(\overline-E(Y))) = \operatorname{var}(\overline{X}) + c^2\operatorname{var}(\overline{Y}) + 2c\operatorname{cov}(\overline{X},\overline{Y})&amp;lt;/math&amp;gt;&lt;br /&gt;
lze vyvodit, že rozptyl &amp;lt;math&amp;gt;\operatorname{var}(\overline{X} + c(\overline{Y}-E(Y)))&amp;lt;/math&amp;gt; bude minimalizován, pokud použijeme konstantu &amp;lt;math&amp;gt;\operatorname{c} = \operatorname{c*}&amp;lt;/math&amp;gt;, kde&lt;br /&gt;
:&amp;lt;math&amp;gt;\operatorname{c*} = -\frac{\operatorname{cov}(\overline{X},\overline{Y})}{\operatorname{var}(\overline{Y})}&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Bohužel, konkrétní hodnoty pro &amp;lt;math&amp;gt;\operatorname{cov}(\overline{X},\overline{Y})&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{var}(\overline{Y})&amp;lt;/math&amp;gt; obvykle neznáme předem, musíme je ohdadnout ze simulovaných dat. Hodnota &amp;lt;math&amp;gt;\overline{Y}&amp;lt;/math&amp;gt; se zde nazývá řídící proměnná estimátoru &amp;lt;math&amp;gt;\overline{X}&amp;lt;/math&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Tato metoda funguje díky tomu, že uvažujeme-li pozitivně korelované &amp;lt;math&amp;gt;\overline{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\overline{Y}&amp;lt;/math&amp;gt;, pak v simulaci, kde je hodnota výstupu &amp;lt;math&amp;gt;\overline{Y}&amp;lt;/math&amp;gt; mnohem vyšší než průměrná hodnota výstupu &amp;lt;math&amp;gt;\operatorname{E}(\overline{Y})&amp;lt;/math&amp;gt;, bude pravděpodobné, že i vstupní hodnota &amp;lt;math&amp;gt;\overline{X}&amp;lt;/math&amp;gt; bude větší než její průměr &amp;lt;math&amp;gt;\operatorname{E}(\overline{X})&amp;lt;/math&amp;gt;, což můžeme opravit tak, že snížíme hodnotu vstupní proměnné (estimátoru) &amp;lt;math&amp;gt;\operatorname{E}(\overline{X})&amp;lt;/math&amp;gt;. Totéž platí analogicky i pro negativně korelované proměnné&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
V příkladě s produkční linkou by jako přirozeně vzniklá řídící proměnná mohla být dlouhodobá průměrná rychlost produkce linky, která má nárazníky (buffery) o nulové délce.&lt;br /&gt;
&lt;br /&gt;
== Metoda závislých proměnných ==&lt;br /&gt;
&lt;br /&gt;
Tato metoda je založena na následujících dvou vztazích. Jestliže &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; jsou dvě libovolné náhodné veličiny, pak platí&lt;br /&gt;
:1. &amp;lt;math&amp;gt;\operatorname{E}(X) = \operatorname{E}(\operatorname{E}(X|Y))&amp;lt;/math&amp;gt;&lt;br /&gt;
:2. &amp;lt;math&amp;gt;\operatorname{var}(X) = \operatorname{E}(\operatorname{var}(X|Y)) + \operatorname{var}(\operatorname{E}(X|Y)) &amp;gt;= \operatorname{var}(\operatorname{E}(X|Y))&amp;lt;/math&amp;gt;,&lt;br /&gt;
&lt;br /&gt;
z čehož vyplnývá, že náhodná veličina &amp;lt;math&amp;gt;\operatorname{E}(X|Y)&amp;lt;/math&amp;gt; bude mít stejnou střední hodnotu jako náhodná veličina &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt;, a navíc bude mít menší rozptyl než &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt;&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Tyto vztahy nám mohou pomoci snížit rozptyl v simulacích. Předpokládejme, že &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; bude nějaký výkonnostní ukazatel, který chceme odhadnout. Jestliže zavedeme náhodnou proměnnou &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; takovou, že budeme znát &amp;lt;math&amp;gt;\operatorname{E}(X|Y = y)&amp;lt;/math&amp;gt;, tak z předchozích dvou vztahů můžeme předpokládat, že pro nás bude lepší simulovat &amp;lt;math&amp;gt;\operatorname{Y}&amp;lt;/math&amp;gt; a tedy používat &amp;lt;math&amp;gt;\operatorname{E}(X|Y)&amp;lt;/math&amp;gt;, než přímo simulovat veličinu &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Ukažme si to na příkladu modelu fronty &amp;lt;math&amp;gt;M_{\lambda}/M_{\mu}/1/N&amp;lt;/math&amp;gt;, ve kterém systém nepřijme více než &amp;lt;math&amp;gt;\operatorname{N}&amp;lt;/math&amp;gt; zákazníků, ti budou ze systému ztraceni. Cílovou veličinou, kterou budeme sledovat, je střední doba ztracených zákazníků &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; v daném čase &amp;lt;math&amp;gt;\operatorname{t}&amp;lt;/math&amp;gt;. Kdybychom pracovali přímo s veličinou &amp;lt;math&amp;gt;\operatorname{X}&amp;lt;/math&amp;gt;, tak bychom provedli &amp;lt;math&amp;gt;\operatorname{K}&amp;lt;/math&amp;gt; simulací až do okamžiku &amp;lt;math&amp;gt;\operatorname{t}&amp;lt;/math&amp;gt;. Počet ztracených zákazníků v jednotlivých simulacích značme &amp;lt;math&amp;gt;\operatorname{X_i}&amp;lt;/math&amp;gt;. Nezkreslený estimátor &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; by potom byl &amp;lt;math&amp;gt;\operatorname{\overline{X}} = \frac{\sum_{i=1}^K X_i}{K}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Díky použití této metody ale můžeme rozptyl estimátoru snížit následovně. Uvažujme nejprve &amp;lt;math&amp;gt;\operatorname{Y_i}&amp;lt;/math&amp;gt;, které bude značit celkový čas z intervalu &amp;lt;math&amp;gt;(0,\operatorname{t})&amp;lt;/math&amp;gt;, při počtu &amp;lt;math&amp;gt;\operatorname{N}&amp;lt;/math&amp;gt; zákazníků v systému v i-tém běhu simulace. Díky tomu, že příchody zákazníků jsou z Poissonova rozdělení s parametrem &amp;lt;math&amp;gt;\operatorname{\lambda}&amp;lt;/math&amp;gt;, pak naše podmíněná střední hodnota bude &amp;lt;math&amp;gt;\operatorname{E}(X|Y_i) = \lambda Y_i&amp;lt;/math&amp;gt;. Změní se tím i estimátor, který bude nyní &amp;lt;math&amp;gt;\lambda \overline{Y}&amp;lt;/math&amp;gt;, kde &amp;lt;math&amp;gt;\operatorname{\overline{Y}} = \frac{\sum_{i=1}^K Y_i}{K}&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Následující tabulky srovnávají hodnoty estimátoru &amp;lt;math&amp;gt;\operatorname{E}(X)&amp;lt;/math&amp;gt; a intervaly spolehlivosti pro různé počty simulací s parametry &amp;lt;math&amp;gt;\operatorname{\lambda} = 0,5&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\operatorname{\mu} = 1&amp;lt;/math&amp;gt;, &amp;lt;math&amp;gt;\operatorname{N} = 3&amp;lt;/math&amp;gt; a &amp;lt;math&amp;gt;\operatorname{t} = 1000&amp;lt;/math&amp;gt; získané bez použití metody závislých proměnných, a druhá ukazuje snížení rozptylu právě použitím této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 5: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{X})&amp;lt;/math&amp;gt; bez použití této metody&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,10&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;10,06&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(26,86; 39,33)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,09&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;9,21&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(32,28; 35,90)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,60&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;8,88&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(33,05; 34,15)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+Tabulka 6: Odhad střední hodnoty &amp;lt;math&amp;gt;\operatorname{E}(\operatorname{X})&amp;lt;/math&amp;gt; s použitím metody podmíněných proměnných&amp;lt;ref name=&amp;quot;vrt&amp;quot; /&amp;gt;&lt;br /&gt;
!Počet běhů simulace !! Střední hodnota !! Směrodatná odchylka !! 95% interval spolehlivosti&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;10&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,60&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;7,16&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(29,17; 38,05)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;100&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,82&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;6,91&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(32,46; 35,18)&amp;lt;/math&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| &amp;lt;math&amp;gt;1000&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;33,36&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;6,57&amp;lt;/math&amp;gt; || &amp;lt;math&amp;gt;(32,95; 33,76)&amp;lt;/math&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Z hodnot v tabulce je patrné, že metoda podmíněných proměnných snížila směrodatnou odchylku 1,3krát, čímž i zúžila interval spolehlivosti 1,3krát.&lt;br /&gt;
&lt;br /&gt;
== Další metody pro redukci rozptylu ==&lt;br /&gt;
Kromě již uvedených metod snižování rozptylu existují ještě další, které stojí za zmínku a jsou v praxi používány. Mezi ty patří&amp;lt;ref name=&amp;quot;tvrdik&amp;quot;&amp;gt;Simulační metody při hodnocení cenných papírů&amp;lt;i&amp;gt;Mgr. Michal Tvrdík&amp;lt;/i&amp;gt; 2007-09-20 [online]. [cit. 2016-06-05]. Dostupné z: https://is.cuni.cz/webapps/zzp/detail/46348/&amp;lt;/ref&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
* '''Metoda momentů'''&lt;br /&gt;
* '''Výběr podle důležitosti'''&lt;br /&gt;
* '''Stratifikovaný výběr'''&lt;br /&gt;
* '''Regresní modely'''&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Díky uvedeným metodám lze snížit rozptyl v simulacích, které využívají metodu Monte Carlo. Některé metody pomohou snížit rozptyl více, některé méně, přičemž z uvedených metod dokázala nejvíce snížit rozptyl metoda '''Antitetických proměnných'''. V závislosti na typu úlohy a nám známých informacích bychom neměli volit zbytečně složitou metodu. Při snaze o snižování rozptylu je nutné mít na paměti, že ne vždy je čas strávený nad imlementací některé z metod kompenzován odpovídajícím výsedkem. V praxi se totiž může stát, že námi navržený model bude obsahovat nedostatky, které se projeví negativně na kvalitě výsledku mnohonásobně více než vyšší rozptyl.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Largenumbers.svg.png&amp;diff=11844</id>
		<title>File:Largenumbers.svg.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Largenumbers.svg.png&amp;diff=11844"/>
		<updated>2016-06-10T19:37:53Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Zákon velkých čísel

Zdroj: https://en.wikipedia.org/wiki/File:Largenumbers.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zákon velkých čísel&lt;br /&gt;
&lt;br /&gt;
Zdroj: https://en.wikipedia.org/wiki/File:Largenumbers.svg&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Central_theorem_2.svg.png&amp;diff=11843</id>
		<title>File:Central theorem 2.svg.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Central_theorem_2.svg.png&amp;diff=11843"/>
		<updated>2016-06-10T19:37:35Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Centrální limitní věta

Zdroj: https://en.wikipedia.org/wiki/File:Central_theorem_2.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Centrální limitní věta&lt;br /&gt;
&lt;br /&gt;
Zdroj: https://en.wikipedia.org/wiki/File:Central_theorem_2.svg&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Normal_Distribution_CDF.svg.png&amp;diff=11842</id>
		<title>File:Normal Distribution CDF.svg.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Normal_Distribution_CDF.svg.png&amp;diff=11842"/>
		<updated>2016-06-10T19:37:02Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Distribuční funkce Normálního rozdělení.

Zdroj: https://en.wikipedia.org/wiki/File:Normal_Distribution_CDF.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Distribuční funkce Normálního rozdělení.&lt;br /&gt;
&lt;br /&gt;
Zdroj: https://en.wikipedia.org/wiki/File:Normal_Distribution_CDF.svg&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Normal_Distribution_PDF.svg.png&amp;diff=11841</id>
		<title>File:Normal Distribution PDF.svg.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Normal_Distribution_PDF.svg.png&amp;diff=11841"/>
		<updated>2016-06-10T19:36:38Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Hustota pravděpodobnosti Normálního rozdělení.

Zdroj: https://en.wikipedia.org/wiki/File:Normal_Distribution_PDF.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hustota pravděpodobnosti Normálního rozdělení.&lt;br /&gt;
&lt;br /&gt;
Zdroj: https://en.wikipedia.org/wiki/File:Normal_Distribution_PDF.svg&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Poisson_cdf.svg.png&amp;diff=11840</id>
		<title>File:Poisson cdf.svg.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Poisson_cdf.svg.png&amp;diff=11840"/>
		<updated>2016-06-10T19:35:51Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Distribuční funkce Poissonova rozdělení.

Zdroj: https://en.wikipedia.org/wiki/File:Poisson_cdf.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Distribuční funkce Poissonova rozdělení.&lt;br /&gt;
&lt;br /&gt;
Zdroj: https://en.wikipedia.org/wiki/File:Poisson_cdf.svg&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Poisson_pmf.svg.png&amp;diff=11839</id>
		<title>File:Poisson pmf.svg.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Poisson_pmf.svg.png&amp;diff=11839"/>
		<updated>2016-06-10T19:35:23Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Pravděpodobnostní funkce Poissonova rozdělení.

Zdroj: https://en.wikipedia.org/wiki/File:Poisson_pmf.svg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pravděpodobnostní funkce Poissonova rozdělení.&lt;br /&gt;
&lt;br /&gt;
Zdroj: https://en.wikipedia.org/wiki/File:Poisson_pmf.svg&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11706</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11706"/>
		<updated>2016-06-06T13:20:02Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: hotfix nesmyslné části textu&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
== Cíl ==&lt;br /&gt;
&lt;br /&gt;
Cílem je pomocí vytvořeného modelu minimalizovat počet aktivních eskalátorů, čímž dojde ke snížení nákladů, a minimalizovat dobu, kdy je eskalátor v provozu, což lze odhadnout podle toho, za jakou dobu se všichni dostanou ven z prostoru metra.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
== Definice problému ==&lt;br /&gt;
&lt;br /&gt;
Eskalátory jsou poháněny elektrickou energií a jejich vysoký výkon znamená potřebu vysokého odběru elektrického proudu. Při běhu eskalátoru také dochází k jeho opotřebení, čímž vzniká potřeba pravidelné údržby a čas od času je nutné provést kromě rutinních servisních prací také vyměnit opotřebované či poškozené součásti eskalátoru. &lt;br /&gt;
&lt;br /&gt;
Při hustějším provozu v metru nás (zejména v době konání nějaké akce) na takovýchto eskalátorech v metru nás bude zajímat klíčová otázka : '''Vyplatí se nám zapnout další eskalátor?'''&lt;br /&gt;
Abychom si mohli na položenou otázku odpovědět, potřebujeme znát, za jak dlouho cestující průměrně opouští prostor metra. Pro naše potřeby budeme uvažovat, že eskalátory jsou zapnuty již od příjezdu metra do stanice a nevypínají se. Model sleduje jen omezený časový úsek - od příjezdu metra a vyložení cestujících až do opuštění posledního cestujícího vestibul metra (horní část stanice).&lt;br /&gt;
&lt;br /&gt;
Z doby, po kterou jsou cestující v prostorech metra lze snadno vypočítat celkové náklady spojené s provozem eskalátorů, známe-li průměrné náklady za 1 sekundu provozu. Ty se budou značně lišit v závislosti na typu, délce, technického stavu eskalátoru, cenu za služby spojené s údržbou apod. Pro potřeby této simulace budeme zanedbávat potřebu údržby a budeme uvažovat, že 1 kWh stojí 3,71 Kč&amp;lt;ref name=&amp;quot;kwh&amp;quot;&amp;gt;Cena 1kWh&amp;lt;i&amp;gt;Energie123.cz&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-04]. Dostupné z: http://www.energie123.cz/elektrina/ceny-elektricke-energie/cena-1-kwh/&amp;lt;/ref&amp;gt; a eskalátor ročně spotřebuje 60 000 kWh&amp;lt;ref name=&amp;quot;spotreba&amp;quot;&amp;gt;How much energy do escalators use?&amp;lt;i&amp;gt;Slate.com&amp;lt;/i&amp;gt; [online]. 2010-08-10 [cit. 2016-06-04]. Dostupné z: http://www.slate.com/articles/health_and_science/the_green_lantern/2010/08/escalators_vs_elevators.html&amp;lt;/ref&amp;gt;. Při 20 hodinách denního provozu (uvažujme uzavření metra od 1 do 5 hodin ráno) to činí 60000/(365*20*60*60) = '''0,002283105023''' kWh každou vteřinu, tedy 3,71*0,002283105023 = '''0,008470319635''' Kč za každou vteřinu provozu. V modelu je výchozí hodnota zaokrouhlena na '''0,0085 Kč'''&lt;br /&gt;
&lt;br /&gt;
== Postup řešení problému == &lt;br /&gt;
&lt;br /&gt;
# Nejprve resetujeme simulaci tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
# Natavíme příjezd 200 cestujících, kteří se budou pohybovat výchozí rychlostí, pevně danou v modelu&lt;br /&gt;
# Ve výchozím stavu budeme uvažovat jen aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu. Ostatní eskalátory vypneme&lt;br /&gt;
# Fixní náklady budeme považovat za nulové, variabilní náklady ponecháme výchozí, tedy 0,0085&lt;br /&gt;
# Ostatní parametry modelu necháme ve výchozím stavu:&lt;br /&gt;
#* Délka eskalátoru 50 m&lt;br /&gt;
#* Pravděpodobnost zastavení 0.05&lt;br /&gt;
#* Poměr chodících cestujících 30 % &lt;br /&gt;
&lt;br /&gt;
Nyní simulaci spustíme a zapíšeme si naměřené hodnoty. Protože bude průběh pokaždé trochu jiný, provedeme opakovaný počet pozorování (5) a výsledky zprůměrujeme.&lt;br /&gt;
&lt;br /&gt;
Dále zkusíme změnit nastavení eskalátorů následovně:&lt;br /&gt;
* Zvýšíme rychlost jediného aktivního eskalátoru na maximum (0,75 m/s)&lt;br /&gt;
* Zapneme navíc eskalátor číslo 3, oběma aktivním eskalátorům nastavíme rychlost 0,5 m/s&lt;br /&gt;
* Zapneme všechny eskalátory a nastavíme jim maximální rychlost (0,75 m/s) &lt;br /&gt;
&lt;br /&gt;
== Výsledky ==&lt;br /&gt;
&lt;br /&gt;
Z měření jsme dostali hodnoty ze 4 různých scénářů, které jsou znázorněny v následujících obrázcích (tabulkách). Níže jsou zobrazeny i grafy porovnávající čas odchodu a náklady pro jednotlivé scénáře.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Xrojr01-s1.png|Obr. 2 Scénář č. 1&lt;br /&gt;
File:Xrojr01-s2.png|Obr. 3 Scénář č. 2&lt;br /&gt;
File:Xrojr01-s3.png|Obr. 4 Scénář č. 3&lt;br /&gt;
File:Xrojr01-s4.png|Obr. 5 Scénář č. 4&lt;br /&gt;
File:Xrojr01-grafy.png|Obr. 6 Srovnání výsledků&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z naměřených hodnot je patrné, že zvýšíme-li počet eskalátorů a jejich rychlost, zkrátíme tím dobu, kterou po kterou musí být zapnuty, protože stihneme přepravit stejný počet cestujících za kratší dobu, což se dalo očekávat. Nás však kromě toho zajímá, který z navrhovaných scénářů bude co nejefektivnější, tedy který dokáže přepravit cestující nejrychleji a zároveň za nejnižší náklady. To můžeme určit pomocí poměru mezi dobou, za kterou odejde polovina cestujících a náklady&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Ze získaných poměrů mezi dobou opuštění poloviny cestujících a náklady vidíme, že nejefektivnějším scénářem je scénář č. 4, v němž jsou zapnuty všechny eskalátory na plnou rychlost, protože cestující opustí prostor výrazně rychleji než v případě ostatních scénářů. Výhodnost tohoto scénáře by platila, pokud by v mezičasech mezi příjezdy mohly být eskalátory vypínány. Pokud by vypínány být nemohly, bylo by nejlepší zvolit scénář č. 2, tedy jeden eskalátor s maximální rychlostí.&lt;br /&gt;
&lt;br /&gt;
Můžeme-li eskalátory vypínat v době, kdy nejsou potřeba se vždy vyplatí další eskalátory zapnout. Pokud však musí být eskalátory v provozu po celou dobu otevření metra, je lepší pouze zvýšit rychlost a další eskalátory zapínat jen v případě nezbytnosti.&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle práce ==&lt;br /&gt;
&lt;br /&gt;
Cílem této práce bylo zjistit optimální nastavení eskalátorů pro dané vstupní parametry, čehož bylo v předchozí kapitole dosaženo. Provedením simulace byla nalezena odpověď na klíčovou otázku '''Vyplatí se nám zapnout další eskalátor?'''. Vytvořený model lze použít pro simulace s různými vstupními parametry a lze jej snadno rozšířit. Cíl práce tedy považuji za naplněný.&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
* Jak se na výsledných nákladech projeví větší procento chodících cestujících?&lt;br /&gt;
* Jaký vliv má počet cestujících na výsledné náklady? Zkoumejte pro 50, 100, 200 a 300 cestujících.&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ke stažení =&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-eskalatory-final.nlogo]] | Vlastní simulace v programu NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-eskalatory-provedeni.xlsx]] | Pomocný XLSX se záznamy z pozorování&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-eskalatory-final.nlogo&amp;diff=11550</id>
		<title>File:Xrojr01-eskalatory-final.nlogo</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-eskalatory-final.nlogo&amp;diff=11550"/>
		<updated>2016-06-05T19:56:57Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Xrojr01 načetl novou verzi File:Xrojr01-eskalatory-final.nlogo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vlastní simulace v programu NetLogo 5.3.1&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-eskalatory-final.nlogo&amp;diff=11467</id>
		<title>File:Xrojr01-eskalatory-final.nlogo</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-eskalatory-final.nlogo&amp;diff=11467"/>
		<updated>2016-06-05T17:33:15Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Xrojr01 načetl novou verzi File:Xrojr01-eskalatory-final.nlogo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vlastní simulace v programu NetLogo 5.3.1&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11272</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11272"/>
		<updated>2016-06-04T11:51:45Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Ke stažení */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
== Cíl ==&lt;br /&gt;
&lt;br /&gt;
Cílem je pomocí vytvořeného modelu minimalizovat počet aktivních eskalátorů, čímž dojde ke snížení nákladů, a minimalizovat dobu, kdy je eskalátor v provozu, což lze odhadnout podle toho, za jakou dobu se všichni dostanou ven z prostoru metra.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
== Definice problému ==&lt;br /&gt;
&lt;br /&gt;
Eskalátory jsou poháněny elektrickou energií a jejich vysoký výkon znamená potřebu vysokého odběru elektrického proudu. Při běhu eskalátoru také dochází k jeho opotřebení, čímž vzniká potřeba pravidelné údržby a čas od času je nutné provést kromě rutinních servisních prací také vyměnit opotřebované či poškozené součásti eskalátoru. &lt;br /&gt;
&lt;br /&gt;
Při hustějším provozu v metru nás (zejména v době konání nějaké akce) na takovýchto eskalátorech v metru nás bude zajímat klíčová otázka : '''Vyplatí se nám zapnout další eskalátor?'''&lt;br /&gt;
Abychom si mohli na položenou otázku odpovědět, potřebujeme znát, za jak dlouho cestující průměrně opouští prostor metra. Pro naše potřeby budeme uvažovat, že eskalátory jsou zapnuty již od příjezdu metra do stanice a nevypínají se. Model sleduje jen omezený časový úsek - od příjezdu metra a vyložení cestujících až do opuštění posledního cestujícího vestibul metra (horní část stanice).&lt;br /&gt;
&lt;br /&gt;
Z doby, po kterou jsou cestující v prostorech metra lze snadno vypočítat celkové náklady spojené s provozem eskalátorů, známe-li průměrné náklady za 1 sekundu provozu. Ty se budou značně lišit v závislosti na typu, délce, technického stavu eskalátoru, cenu za služby spojené s údržbou apod. Pro potřeby této simulace budeme zanedbávat potřebu údržby a budeme uvažovat, že 1 kWh stojí 3,71 Kč&amp;lt;ref name=&amp;quot;kwh&amp;quot;&amp;gt;Cena 1kWh&amp;lt;i&amp;gt;Energie123.cz&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-04]. Dostupné z: http://www.energie123.cz/elektrina/ceny-elektricke-energie/cena-1-kwh/&amp;lt;/ref&amp;gt; a eskalátor ročně spotřebuje 60 000 kWh&amp;lt;ref name=&amp;quot;spotreba&amp;quot;&amp;gt;How much energy do escalators use?&amp;lt;i&amp;gt;Slate.com&amp;lt;/i&amp;gt; [online]. 2010-08-10 [cit. 2016-06-04]. Dostupné z: http://www.slate.com/articles/health_and_science/the_green_lantern/2010/08/escalators_vs_elevators.html&amp;lt;/ref&amp;gt;. Při 20 hodinách denního provozu (uvažujme uzavření metra od 1 do 5 hodin ráno) to činí 60000/(365*20*60*60) = '''0,002283105023''' kWh každou vteřinu, tedy 3,71*0,002283105023 = '''0,008470319635''' Kč za každou vteřinu provozu. V modelu je výchozí hodnota zaokrouhlena na '''0,0085 Kč'''&lt;br /&gt;
&lt;br /&gt;
== Postup řešení problému == &lt;br /&gt;
&lt;br /&gt;
# Nejprve resetujeme simulaci tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
# Natavíme příjezd 200 cestujících, kteří se budou pohybovat výchozí rychlostí, pevně danou v modelu&lt;br /&gt;
# Ve výchozím stavu budeme uvažovat jen aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu. Ostatní eskalátory vypneme&lt;br /&gt;
# Fixní náklady budeme považovat za nulové, variabilní náklady ponecháme výchozí, tedy 0,0085&lt;br /&gt;
# Ostatní parametry modelu necháme ve výchozím stavu:&lt;br /&gt;
#* Délka eskalátoru 50 m&lt;br /&gt;
#* Pravděpodobnost zastavení 0.05&lt;br /&gt;
#* Poměr chodících cestujících 30 % &lt;br /&gt;
&lt;br /&gt;
Nyní simulaci spustíme a zapíšeme si naměřené hodnoty. Protože bude průběh pokaždé trochu jiný, provedeme opakovaný počet pozorování (5) a výsledky zprůměrujeme.&lt;br /&gt;
&lt;br /&gt;
Dále zkusíme změnit nastavení eskalátorů následovně:&lt;br /&gt;
* Zvýšíme rychlost jediného aktivního eskalátoru na maximum (0,75 m/s)&lt;br /&gt;
* Zapneme navíc eskalátor číslo 3, oběma aktivním eskalátorům nastavíme rychlost 0,5 m/s&lt;br /&gt;
* Zapneme všechny eskalátory a nastavíme jim maximální rychlost (0,75 m/s) &lt;br /&gt;
&lt;br /&gt;
== Výsledky ==&lt;br /&gt;
&lt;br /&gt;
Z měření jsme dostali hodnoty ze 4 různých scénářů, které jsou znázorněny v následujících obrázcích (tabulkách). Níže jsou zobrazeny i grafy porovnávající čas odchodu a náklady pro jednotlivé scénáře.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Xrojr01-s1.png|Obr. 2 Scénář č. 1&lt;br /&gt;
File:Xrojr01-s2.png|Obr. 3 Scénář č. 2&lt;br /&gt;
File:Xrojr01-s3.png|Obr. 4 Scénář č. 3&lt;br /&gt;
File:Xrojr01-s4.png|Obr. 5 Scénář č. 4&lt;br /&gt;
File:Xrojr01-grafy.png|Obr. 6 Srovnání výsledků&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z naměřených hodnot je patrné, že zvýšíme-li počet eskalátorů a jejich rychlost, zkrátíme tím dobu, kterou po kterou musí být zapnuty, protože stihneme přepravit stejný počet cestujících za kratší dobu, což se dalo očekávat. Nás však kromě toho zajímá, který z navrhovaných scénářů bude co nejefektivnější, tedy který dokáže přepravit cestující nejrychleji a zároveň za nejnižší náklady. To můžeme určit pomocí poměru mezi dobou, za kterou odejde polovina cestujících (střední doby opuštění) a náklady&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Ze získaných poměrů mezi střední dobou opuštění a náklady vidíme, že nejefektivnějším scénářem je scénář č. 4, v němž jsou zapnuty všechny eskalátory na plnou rychlost, protože cestující opustí prostor výrazně rychleji než v případě ostatních scénářů. Výhodnost tohoto scénáře by platila, pokud by v mezičasech mezi příjezdy mohly být eskalátory vypínány. Pokud by vypínány být nemohly, bylo by nejlepší zvolit scénář č. 2, tedy jeden eskalátor s maximální rychlostí.&lt;br /&gt;
&lt;br /&gt;
Můžeme-li eskalátory vypínat v době, kdy nejsou potřeba se vždy vyplatí další eskalátory zapnout. Pokud však musí být eskalátory v provozu po celou dobu otevření metra, je lepší pouze zvýšit rychlost a další eskalátory zapínat jen v případě nezbytnosti.&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle práce ==&lt;br /&gt;
&lt;br /&gt;
Cílem této práce bylo zjistit optimální nastavení eskalátorů pro dané vstupní parametry, čehož bylo v předchozí kapitole dosaženo. Provedením simulace byla nalezena odpověď na klíčovou otázku '''Vyplatí se nám zapnout další eskalátor?'''. Vytvořený model lze použít pro simulace s různými vstupními parametry a lze jej snadno rozšířit. Cíl práce tedy považuji za naplněný.&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
* Jak se na výsledných nákladech projeví větší procento chodících cestujících?&lt;br /&gt;
* Jaký vliv má počet cestujících na výsledné náklady? Zkoumejte pro 50, 100, 200 a 300 cestujících.&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ke stažení =&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-eskalatory-final.nlogo]] | Vlastní simulace v programu NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-eskalatory-provedeni.xlsx]] | Pomocný XLSX se záznamy z pozorování&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11271</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11271"/>
		<updated>2016-06-04T11:51:36Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Ke stažení */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
== Cíl ==&lt;br /&gt;
&lt;br /&gt;
Cílem je pomocí vytvořeného modelu minimalizovat počet aktivních eskalátorů, čímž dojde ke snížení nákladů, a minimalizovat dobu, kdy je eskalátor v provozu, což lze odhadnout podle toho, za jakou dobu se všichni dostanou ven z prostoru metra.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
== Definice problému ==&lt;br /&gt;
&lt;br /&gt;
Eskalátory jsou poháněny elektrickou energií a jejich vysoký výkon znamená potřebu vysokého odběru elektrického proudu. Při běhu eskalátoru také dochází k jeho opotřebení, čímž vzniká potřeba pravidelné údržby a čas od času je nutné provést kromě rutinních servisních prací také vyměnit opotřebované či poškozené součásti eskalátoru. &lt;br /&gt;
&lt;br /&gt;
Při hustějším provozu v metru nás (zejména v době konání nějaké akce) na takovýchto eskalátorech v metru nás bude zajímat klíčová otázka : '''Vyplatí se nám zapnout další eskalátor?'''&lt;br /&gt;
Abychom si mohli na položenou otázku odpovědět, potřebujeme znát, za jak dlouho cestující průměrně opouští prostor metra. Pro naše potřeby budeme uvažovat, že eskalátory jsou zapnuty již od příjezdu metra do stanice a nevypínají se. Model sleduje jen omezený časový úsek - od příjezdu metra a vyložení cestujících až do opuštění posledního cestujícího vestibul metra (horní část stanice).&lt;br /&gt;
&lt;br /&gt;
Z doby, po kterou jsou cestující v prostorech metra lze snadno vypočítat celkové náklady spojené s provozem eskalátorů, známe-li průměrné náklady za 1 sekundu provozu. Ty se budou značně lišit v závislosti na typu, délce, technického stavu eskalátoru, cenu za služby spojené s údržbou apod. Pro potřeby této simulace budeme zanedbávat potřebu údržby a budeme uvažovat, že 1 kWh stojí 3,71 Kč&amp;lt;ref name=&amp;quot;kwh&amp;quot;&amp;gt;Cena 1kWh&amp;lt;i&amp;gt;Energie123.cz&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-04]. Dostupné z: http://www.energie123.cz/elektrina/ceny-elektricke-energie/cena-1-kwh/&amp;lt;/ref&amp;gt; a eskalátor ročně spotřebuje 60 000 kWh&amp;lt;ref name=&amp;quot;spotreba&amp;quot;&amp;gt;How much energy do escalators use?&amp;lt;i&amp;gt;Slate.com&amp;lt;/i&amp;gt; [online]. 2010-08-10 [cit. 2016-06-04]. Dostupné z: http://www.slate.com/articles/health_and_science/the_green_lantern/2010/08/escalators_vs_elevators.html&amp;lt;/ref&amp;gt;. Při 20 hodinách denního provozu (uvažujme uzavření metra od 1 do 5 hodin ráno) to činí 60000/(365*20*60*60) = '''0,002283105023''' kWh každou vteřinu, tedy 3,71*0,002283105023 = '''0,008470319635''' Kč za každou vteřinu provozu. V modelu je výchozí hodnota zaokrouhlena na '''0,0085 Kč'''&lt;br /&gt;
&lt;br /&gt;
== Postup řešení problému == &lt;br /&gt;
&lt;br /&gt;
# Nejprve resetujeme simulaci tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
# Natavíme příjezd 200 cestujících, kteří se budou pohybovat výchozí rychlostí, pevně danou v modelu&lt;br /&gt;
# Ve výchozím stavu budeme uvažovat jen aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu. Ostatní eskalátory vypneme&lt;br /&gt;
# Fixní náklady budeme považovat za nulové, variabilní náklady ponecháme výchozí, tedy 0,0085&lt;br /&gt;
# Ostatní parametry modelu necháme ve výchozím stavu:&lt;br /&gt;
#* Délka eskalátoru 50 m&lt;br /&gt;
#* Pravděpodobnost zastavení 0.05&lt;br /&gt;
#* Poměr chodících cestujících 30 % &lt;br /&gt;
&lt;br /&gt;
Nyní simulaci spustíme a zapíšeme si naměřené hodnoty. Protože bude průběh pokaždé trochu jiný, provedeme opakovaný počet pozorování (5) a výsledky zprůměrujeme.&lt;br /&gt;
&lt;br /&gt;
Dále zkusíme změnit nastavení eskalátorů následovně:&lt;br /&gt;
* Zvýšíme rychlost jediného aktivního eskalátoru na maximum (0,75 m/s)&lt;br /&gt;
* Zapneme navíc eskalátor číslo 3, oběma aktivním eskalátorům nastavíme rychlost 0,5 m/s&lt;br /&gt;
* Zapneme všechny eskalátory a nastavíme jim maximální rychlost (0,75 m/s) &lt;br /&gt;
&lt;br /&gt;
== Výsledky ==&lt;br /&gt;
&lt;br /&gt;
Z měření jsme dostali hodnoty ze 4 různých scénářů, které jsou znázorněny v následujících obrázcích (tabulkách). Níže jsou zobrazeny i grafy porovnávající čas odchodu a náklady pro jednotlivé scénáře.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Xrojr01-s1.png|Obr. 2 Scénář č. 1&lt;br /&gt;
File:Xrojr01-s2.png|Obr. 3 Scénář č. 2&lt;br /&gt;
File:Xrojr01-s3.png|Obr. 4 Scénář č. 3&lt;br /&gt;
File:Xrojr01-s4.png|Obr. 5 Scénář č. 4&lt;br /&gt;
File:Xrojr01-grafy.png|Obr. 6 Srovnání výsledků&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z naměřených hodnot je patrné, že zvýšíme-li počet eskalátorů a jejich rychlost, zkrátíme tím dobu, kterou po kterou musí být zapnuty, protože stihneme přepravit stejný počet cestujících za kratší dobu, což se dalo očekávat. Nás však kromě toho zajímá, který z navrhovaných scénářů bude co nejefektivnější, tedy který dokáže přepravit cestující nejrychleji a zároveň za nejnižší náklady. To můžeme určit pomocí poměru mezi dobou, za kterou odejde polovina cestujících (střední doby opuštění) a náklady&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Ze získaných poměrů mezi střední dobou opuštění a náklady vidíme, že nejefektivnějším scénářem je scénář č. 4, v němž jsou zapnuty všechny eskalátory na plnou rychlost, protože cestující opustí prostor výrazně rychleji než v případě ostatních scénářů. Výhodnost tohoto scénáře by platila, pokud by v mezičasech mezi příjezdy mohly být eskalátory vypínány. Pokud by vypínány být nemohly, bylo by nejlepší zvolit scénář č. 2, tedy jeden eskalátor s maximální rychlostí.&lt;br /&gt;
&lt;br /&gt;
Můžeme-li eskalátory vypínat v době, kdy nejsou potřeba se vždy vyplatí další eskalátory zapnout. Pokud však musí být eskalátory v provozu po celou dobu otevření metra, je lepší pouze zvýšit rychlost a další eskalátory zapínat jen v případě nezbytnosti.&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle práce ==&lt;br /&gt;
&lt;br /&gt;
Cílem této práce bylo zjistit optimální nastavení eskalátorů pro dané vstupní parametry, čehož bylo v předchozí kapitole dosaženo. Provedením simulace byla nalezena odpověď na klíčovou otázku '''Vyplatí se nám zapnout další eskalátor?'''. Vytvořený model lze použít pro simulace s různými vstupními parametry a lze jej snadno rozšířit. Cíl práce tedy považuji za naplněný.&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
* Jak se na výsledných nákladech projeví větší procento chodících cestujících?&lt;br /&gt;
* Jaký vliv má počet cestujících na výsledné náklady? Zkoumejte pro 50, 100, 200 a 300 cestujících.&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ke stažení =&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-eskalatory-final.nlogo]] | Vlastní simulace v programu NetLogo 5.3.1&lt;br /&gt;
[[File:Xrojr01-eskalatory-provedeni.xlsx]] | Pomocný XLSX se záznamy z pozorování&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-eskalatory-provedeni.xlsx&amp;diff=11270</id>
		<title>File:Xrojr01-eskalatory-provedeni.xlsx</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-eskalatory-provedeni.xlsx&amp;diff=11270"/>
		<updated>2016-06-04T11:51:14Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Záznamy z pozorování&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Záznamy z pozorování&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-eskalatory-final.nlogo&amp;diff=11269</id>
		<title>File:Xrojr01-eskalatory-final.nlogo</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-eskalatory-final.nlogo&amp;diff=11269"/>
		<updated>2016-06-04T11:49:44Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Vlastní simulace v programu NetLogo 5.3.1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Vlastní simulace v programu NetLogo 5.3.1&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11268</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11268"/>
		<updated>2016-06-04T11:48:41Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
== Cíl ==&lt;br /&gt;
&lt;br /&gt;
Cílem je pomocí vytvořeného modelu minimalizovat počet aktivních eskalátorů, čímž dojde ke snížení nákladů, a minimalizovat dobu, kdy je eskalátor v provozu, což lze odhadnout podle toho, za jakou dobu se všichni dostanou ven z prostoru metra.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
== Definice problému ==&lt;br /&gt;
&lt;br /&gt;
Eskalátory jsou poháněny elektrickou energií a jejich vysoký výkon znamená potřebu vysokého odběru elektrického proudu. Při běhu eskalátoru také dochází k jeho opotřebení, čímž vzniká potřeba pravidelné údržby a čas od času je nutné provést kromě rutinních servisních prací také vyměnit opotřebované či poškozené součásti eskalátoru. &lt;br /&gt;
&lt;br /&gt;
Při hustějším provozu v metru nás (zejména v době konání nějaké akce) na takovýchto eskalátorech v metru nás bude zajímat klíčová otázka : '''Vyplatí se nám zapnout další eskalátor?'''&lt;br /&gt;
Abychom si mohli na položenou otázku odpovědět, potřebujeme znát, za jak dlouho cestující průměrně opouští prostor metra. Pro naše potřeby budeme uvažovat, že eskalátory jsou zapnuty již od příjezdu metra do stanice a nevypínají se. Model sleduje jen omezený časový úsek - od příjezdu metra a vyložení cestujících až do opuštění posledního cestujícího vestibul metra (horní část stanice).&lt;br /&gt;
&lt;br /&gt;
Z doby, po kterou jsou cestující v prostorech metra lze snadno vypočítat celkové náklady spojené s provozem eskalátorů, známe-li průměrné náklady za 1 sekundu provozu. Ty se budou značně lišit v závislosti na typu, délce, technického stavu eskalátoru, cenu za služby spojené s údržbou apod. Pro potřeby této simulace budeme zanedbávat potřebu údržby a budeme uvažovat, že 1 kWh stojí 3,71 Kč&amp;lt;ref name=&amp;quot;kwh&amp;quot;&amp;gt;Cena 1kWh&amp;lt;i&amp;gt;Energie123.cz&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-04]. Dostupné z: http://www.energie123.cz/elektrina/ceny-elektricke-energie/cena-1-kwh/&amp;lt;/ref&amp;gt; a eskalátor ročně spotřebuje 60 000 kWh&amp;lt;ref name=&amp;quot;spotreba&amp;quot;&amp;gt;How much energy do escalators use?&amp;lt;i&amp;gt;Slate.com&amp;lt;/i&amp;gt; [online]. 2010-08-10 [cit. 2016-06-04]. Dostupné z: http://www.slate.com/articles/health_and_science/the_green_lantern/2010/08/escalators_vs_elevators.html&amp;lt;/ref&amp;gt;. Při 20 hodinách denního provozu (uvažujme uzavření metra od 1 do 5 hodin ráno) to činí 60000/(365*20*60*60) = '''0,002283105023''' kWh každou vteřinu, tedy 3,71*0,002283105023 = '''0,008470319635''' Kč za každou vteřinu provozu. V modelu je výchozí hodnota zaokrouhlena na '''0,0085 Kč'''&lt;br /&gt;
&lt;br /&gt;
== Postup řešení problému == &lt;br /&gt;
&lt;br /&gt;
# Nejprve resetujeme simulaci tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
# Natavíme příjezd 200 cestujících, kteří se budou pohybovat výchozí rychlostí, pevně danou v modelu&lt;br /&gt;
# Ve výchozím stavu budeme uvažovat jen aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu. Ostatní eskalátory vypneme&lt;br /&gt;
# Fixní náklady budeme považovat za nulové, variabilní náklady ponecháme výchozí, tedy 0,0085&lt;br /&gt;
# Ostatní parametry modelu necháme ve výchozím stavu:&lt;br /&gt;
#* Délka eskalátoru 50 m&lt;br /&gt;
#* Pravděpodobnost zastavení 0.05&lt;br /&gt;
#* Poměr chodících cestujících 30 % &lt;br /&gt;
&lt;br /&gt;
Nyní simulaci spustíme a zapíšeme si naměřené hodnoty. Protože bude průběh pokaždé trochu jiný, provedeme opakovaný počet pozorování (5) a výsledky zprůměrujeme.&lt;br /&gt;
&lt;br /&gt;
Dále zkusíme změnit nastavení eskalátorů následovně:&lt;br /&gt;
* Zvýšíme rychlost jediného aktivního eskalátoru na maximum (0,75 m/s)&lt;br /&gt;
* Zapneme navíc eskalátor číslo 3, oběma aktivním eskalátorům nastavíme rychlost 0,5 m/s&lt;br /&gt;
* Zapneme všechny eskalátory a nastavíme jim maximální rychlost (0,75 m/s) &lt;br /&gt;
&lt;br /&gt;
== Výsledky ==&lt;br /&gt;
&lt;br /&gt;
Z měření jsme dostali hodnoty ze 4 různých scénářů, které jsou znázorněny v následujících obrázcích (tabulkách). Níže jsou zobrazeny i grafy porovnávající čas odchodu a náklady pro jednotlivé scénáře.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Xrojr01-s1.png|Obr. 2 Scénář č. 1&lt;br /&gt;
File:Xrojr01-s2.png|Obr. 3 Scénář č. 2&lt;br /&gt;
File:Xrojr01-s3.png|Obr. 4 Scénář č. 3&lt;br /&gt;
File:Xrojr01-s4.png|Obr. 5 Scénář č. 4&lt;br /&gt;
File:Xrojr01-grafy.png|Obr. 6 Srovnání výsledků&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z naměřených hodnot je patrné, že zvýšíme-li počet eskalátorů a jejich rychlost, zkrátíme tím dobu, kterou po kterou musí být zapnuty, protože stihneme přepravit stejný počet cestujících za kratší dobu, což se dalo očekávat. Nás však kromě toho zajímá, který z navrhovaných scénářů bude co nejefektivnější, tedy který dokáže přepravit cestující nejrychleji a zároveň za nejnižší náklady. To můžeme určit pomocí poměru mezi dobou, za kterou odejde polovina cestujících (střední doby opuštění) a náklady&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Ze získaných poměrů mezi střední dobou opuštění a náklady vidíme, že nejefektivnějším scénářem je scénář č. 4, v němž jsou zapnuty všechny eskalátory na plnou rychlost, protože cestující opustí prostor výrazně rychleji než v případě ostatních scénářů. Výhodnost tohoto scénáře by platila, pokud by v mezičasech mezi příjezdy mohly být eskalátory vypínány. Pokud by vypínány být nemohly, bylo by nejlepší zvolit scénář č. 2, tedy jeden eskalátor s maximální rychlostí.&lt;br /&gt;
&lt;br /&gt;
Můžeme-li eskalátory vypínat v době, kdy nejsou potřeba se vždy vyplatí další eskalátory zapnout. Pokud však musí být eskalátory v provozu po celou dobu otevření metra, je lepší pouze zvýšit rychlost a další eskalátory zapínat jen v případě nezbytnosti.&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle práce ==&lt;br /&gt;
&lt;br /&gt;
Cílem této práce bylo zjistit optimální nastavení eskalátorů pro dané vstupní parametry, čehož bylo v předchozí kapitole dosaženo. Provedením simulace byla nalezena odpověď na klíčovou otázku '''Vyplatí se nám zapnout další eskalátor?'''. Vytvořený model lze použít pro simulace s různými vstupními parametry a lze jej snadno rozšířit. Cíl práce tedy považuji za naplněný.&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
* Jak se na výsledných nákladech projeví větší procento chodících cestujících?&lt;br /&gt;
* Jaký vliv má počet cestujících na výsledné náklady? Zkoumejte pro 50, 100, 200 a 300 cestujících.&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Ke stažení =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11267</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11267"/>
		<updated>2016-06-04T10:35:17Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Závěr */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
== Cíl ==&lt;br /&gt;
&lt;br /&gt;
Cílem je pomocí vytvořeného modelu minimalizovat počet aktivních eskalátorů, čímž dojde ke snížení nákladů, a minimalizovat dobu, kdy je eskalátor v provozu, což lze odhadnout podle toho, za jakou dobu se všichni dostanou ven z prostoru metra.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
== Definice problému ==&lt;br /&gt;
&lt;br /&gt;
Eskalátory jsou poháněny elektrickou energií a jejich vysoký výkon znamená potřebu vysokého odběru elektrického proudu. Při běhu eskalátoru také dochází k jeho opotřebení, čímž vzniká potřeba pravidelné údržby a čas od času je nutné provést kromě rutinních servisních prací také vyměnit opotřebované či poškozené součásti eskalátoru. &lt;br /&gt;
&lt;br /&gt;
Při hustějším provozu v metru nás (zejména v době konání nějaké akce) na takovýchto eskalátorech v metru nás bude zajímat klíčová otázka : '''Vyplatí se nám zapnout další eskalátor?'''&lt;br /&gt;
Abychom si mohli na položenou otázku odpovědět, potřebujeme znát, za jak dlouho cestující průměrně opouští prostor metra. Pro naše potřeby budeme uvažovat, že eskalátory jsou zapnuty již od příjezdu metra do stanice a nevypínají se. Model sleduje jen omezený časový úsek - od příjezdu metra a vyložení cestujících až do opuštění posledního cestujícího vestibul metra (horní část stanice).&lt;br /&gt;
&lt;br /&gt;
Z doby, po kterou jsou cestující v prostorech metra lze snadno vypočítat celkové náklady spojené s provozem eskalátorů, známe-li průměrné náklady za 1 sekundu provozu. Ty se budou značně lišit v závislosti na typu, délce, technického stavu eskalátoru, cenu za služby spojené s údržbou apod. Pro potřeby této simulace budeme zanedbávat potřebu údržby a budeme uvažovat, že 1 kWh stojí 3,71 Kč&amp;lt;ref name=&amp;quot;kwh&amp;quot;&amp;gt;Cena 1kWh&amp;lt;i&amp;gt;Energie123.cz&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-04]. Dostupné z: http://www.energie123.cz/elektrina/ceny-elektricke-energie/cena-1-kwh/&amp;lt;/ref&amp;gt; a eskalátor ročně spotřebuje 60 000 kWh&amp;lt;ref name=&amp;quot;spotreba&amp;quot;&amp;gt;How much energy do escalators use?&amp;lt;i&amp;gt;Slate.com&amp;lt;/i&amp;gt; [online]. 2010-08-10 [cit. 2016-06-04]. Dostupné z: http://www.slate.com/articles/health_and_science/the_green_lantern/2010/08/escalators_vs_elevators.html&amp;lt;/ref&amp;gt;. Při 20 hodinách denního provozu (uvažujme uzavření metra od 1 do 5 hodin ráno) to činí 60000/(365*20*60*60) = '''0,002283105023''' kWh každou vteřinu, tedy 3,71*0,002283105023 = '''0,008470319635''' Kč za každou vteřinu provozu. V modelu je výchozí hodnota zaokrouhlena na '''0,0085 Kč'''&lt;br /&gt;
&lt;br /&gt;
== Postup řešení problému == &lt;br /&gt;
&lt;br /&gt;
# Nejprve resetujeme simulaci tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
# Natavíme příjezd 200 cestujících, kteří se budou pohybovat výchozí rychlostí, pevně danou v modelu&lt;br /&gt;
# Ve výchozím stavu budeme uvažovat jen aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu. Ostatní eskalátory vypneme&lt;br /&gt;
# Fixní náklady budeme považovat za nulové, variabilní náklady ponecháme výchozí, tedy 0,0085&lt;br /&gt;
# Ostatní parametry modelu necháme ve výchozím stavu:&lt;br /&gt;
#* Délka eskalátoru 50 m&lt;br /&gt;
#* Pravděpodobnost zastavení 0.05&lt;br /&gt;
#* Poměr chodících cestujících 30 % &lt;br /&gt;
&lt;br /&gt;
Nyní simulaci spustíme a zapíšeme si naměřené hodnoty. Protože bude průběh pokaždé trochu jiný, provedeme opakovaný počet pozorování (5) a výsledky zprůměrujeme.&lt;br /&gt;
&lt;br /&gt;
Dále zkusíme změnit nastavení eskalátorů následovně:&lt;br /&gt;
* Zvýšíme rychlost jediného aktivního eskalátoru na maximum (0,75 m/s)&lt;br /&gt;
* Zapneme navíc eskalátor číslo 3, oběma aktivním eskalátorům nastavíme rychlost 0,5 m/s&lt;br /&gt;
* Zapneme všechny eskalátory a nastavíme jim maximální rychlost (0,75 m/s) &lt;br /&gt;
&lt;br /&gt;
== Výsledky ==&lt;br /&gt;
&lt;br /&gt;
Z měření jsme dostali hodnoty ze 4 různých scénářů, které jsou znázorněny v následujících obrázcích (tabulkách). Níže jsou zobrazeny i grafy porovnávající čas odchodu a náklady pro jednotlivé scénáře.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Xrojr01-s1.png|Obr. 2 Scénář č. 1&lt;br /&gt;
File:Xrojr01-s2.png|Obr. 3 Scénář č. 2&lt;br /&gt;
File:Xrojr01-s3.png|Obr. 4 Scénář č. 3&lt;br /&gt;
File:Xrojr01-s4.png|Obr. 5 Scénář č. 4&lt;br /&gt;
File:Xrojr01-grafy.png|Obr. 6 Srovnání výsledků&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z naměřených hodnot je patrné, že zvýšíme-li počet eskalátorů a jejich rychlost, zkrátíme tím dobu, kterou po kterou musí být zapnuty, protože stihneme přepravit stejný počet cestujících za kratší dobu, což se dalo očekávat. Nás však kromě toho zajímá, který z navrhovaných scénářů bude co nejefektivnější, tedy který dokáže přepravit cestující nejrychleji a zároveň za nejnižší náklady. To můžeme určit pomocí poměru mezi dobou, za kterou odejde polovina cestujících (střední doby opuštění) a náklady&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Ze získaných poměrů mezi střední dobou opuštění a náklady vidíme, že nejefektivnějším scénářem je scénář č. 4, v němž jsou zapnuty všechny eskalátory na plnou rychlost, protože cestující opustí prostor výrazně rychleji než v případě ostatních scénářů. Výhodnost tohoto scénáře by platila, pokud by v mezičasech mezi příjezdy mohly být eskalátory vypínány. Pokud by vypínány být nemohly, bylo by nejlepší zvolit scénář č. 2, tedy jeden eskalátor s maximální rychlostí.&lt;br /&gt;
&lt;br /&gt;
Můžeme-li eskalátory vypínat v době, kdy nejsou potřeba se vždy vyplatí další eskalátory zapnout. Pokud však musí být eskalátory v provozu po celou dobu otevření metra, je lepší pouze zvýšit rychlost a další eskalátory zapínat jen v případě nezbytnosti.&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle práce ==&lt;br /&gt;
&lt;br /&gt;
Cílem této práce bylo zjistit optimální nastavení eskalátorů pro dané vstupní parametry, čehož bylo v předchozí kapitole dosaženo. Provedením simulace byla nalezena odpověď na klíčovou otázku '''Vyplatí se nám zapnout další eskalátor?'''. Vytvořený model lze použít pro simulace s různými vstupními parametry a lze jej snadno rozšířit. Cíl práce tedy považuji za naplněný.&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
* Jak se na výsledných nákladech projeví větší procento chodících cestujících?&lt;br /&gt;
* Jaký vliv má počet cestujících na výsledné náklady? Zkoumejte pro 50, 100, 200 a 300 cestujících.&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11266</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11266"/>
		<updated>2016-06-04T10:31:58Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Výsledky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
== Cíl ==&lt;br /&gt;
&lt;br /&gt;
Cílem je pomocí vytvořeného modelu minimalizovat počet aktivních eskalátorů, čímž dojde ke snížení nákladů, a minimalizovat dobu, kdy je eskalátor v provozu, což lze odhadnout podle toho, za jakou dobu se všichni dostanou ven z prostoru metra.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
== Definice problému ==&lt;br /&gt;
&lt;br /&gt;
Eskalátory jsou poháněny elektrickou energií a jejich vysoký výkon znamená potřebu vysokého odběru elektrického proudu. Při běhu eskalátoru také dochází k jeho opotřebení, čímž vzniká potřeba pravidelné údržby a čas od času je nutné provést kromě rutinních servisních prací také vyměnit opotřebované či poškozené součásti eskalátoru. &lt;br /&gt;
&lt;br /&gt;
Při hustějším provozu v metru nás (zejména v době konání nějaké akce) na takovýchto eskalátorech v metru nás bude zajímat klíčová otázka : '''Vyplatí se nám zapnout další eskalátor?'''&lt;br /&gt;
Abychom si mohli na položenou otázku odpovědět, potřebujeme znát, za jak dlouho cestující průměrně opouští prostor metra. Pro naše potřeby budeme uvažovat, že eskalátory jsou zapnuty již od příjezdu metra do stanice a nevypínají se. Model sleduje jen omezený časový úsek - od příjezdu metra a vyložení cestujících až do opuštění posledního cestujícího vestibul metra (horní část stanice).&lt;br /&gt;
&lt;br /&gt;
Z doby, po kterou jsou cestující v prostorech metra lze snadno vypočítat celkové náklady spojené s provozem eskalátorů, známe-li průměrné náklady za 1 sekundu provozu. Ty se budou značně lišit v závislosti na typu, délce, technického stavu eskalátoru, cenu za služby spojené s údržbou apod. Pro potřeby této simulace budeme zanedbávat potřebu údržby a budeme uvažovat, že 1 kWh stojí 3,71 Kč&amp;lt;ref name=&amp;quot;kwh&amp;quot;&amp;gt;Cena 1kWh&amp;lt;i&amp;gt;Energie123.cz&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-04]. Dostupné z: http://www.energie123.cz/elektrina/ceny-elektricke-energie/cena-1-kwh/&amp;lt;/ref&amp;gt; a eskalátor ročně spotřebuje 60 000 kWh&amp;lt;ref name=&amp;quot;spotreba&amp;quot;&amp;gt;How much energy do escalators use?&amp;lt;i&amp;gt;Slate.com&amp;lt;/i&amp;gt; [online]. 2010-08-10 [cit. 2016-06-04]. Dostupné z: http://www.slate.com/articles/health_and_science/the_green_lantern/2010/08/escalators_vs_elevators.html&amp;lt;/ref&amp;gt;. Při 20 hodinách denního provozu (uvažujme uzavření metra od 1 do 5 hodin ráno) to činí 60000/(365*20*60*60) = '''0,002283105023''' kWh každou vteřinu, tedy 3,71*0,002283105023 = '''0,008470319635''' Kč za každou vteřinu provozu. V modelu je výchozí hodnota zaokrouhlena na '''0,0085 Kč'''&lt;br /&gt;
&lt;br /&gt;
== Postup řešení problému == &lt;br /&gt;
&lt;br /&gt;
# Nejprve resetujeme simulaci tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
# Natavíme příjezd 200 cestujících, kteří se budou pohybovat výchozí rychlostí, pevně danou v modelu&lt;br /&gt;
# Ve výchozím stavu budeme uvažovat jen aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu. Ostatní eskalátory vypneme&lt;br /&gt;
# Fixní náklady budeme považovat za nulové, variabilní náklady ponecháme výchozí, tedy 0,0085&lt;br /&gt;
# Ostatní parametry modelu necháme ve výchozím stavu:&lt;br /&gt;
#* Délka eskalátoru 50 m&lt;br /&gt;
#* Pravděpodobnost zastavení 0.05&lt;br /&gt;
#* Poměr chodících cestujících 30 % &lt;br /&gt;
&lt;br /&gt;
Nyní simulaci spustíme a zapíšeme si naměřené hodnoty. Protože bude průběh pokaždé trochu jiný, provedeme opakovaný počet pozorování (5) a výsledky zprůměrujeme.&lt;br /&gt;
&lt;br /&gt;
Dále zkusíme změnit nastavení eskalátorů následovně:&lt;br /&gt;
* Zvýšíme rychlost jediného aktivního eskalátoru na maximum (0,75 m/s)&lt;br /&gt;
* Zapneme navíc eskalátor číslo 3, oběma aktivním eskalátorům nastavíme rychlost 0,5 m/s&lt;br /&gt;
* Zapneme všechny eskalátory a nastavíme jim maximální rychlost (0,75 m/s) &lt;br /&gt;
&lt;br /&gt;
== Výsledky ==&lt;br /&gt;
&lt;br /&gt;
Z měření jsme dostali hodnoty ze 4 různých scénářů, které jsou znázorněny v následujících obrázcích (tabulkách). Níže jsou zobrazeny i grafy porovnávající čas odchodu a náklady pro jednotlivé scénáře.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery&amp;gt;&lt;br /&gt;
File:Xrojr01-s1.png|Obr. 2 Scénář č. 1&lt;br /&gt;
File:Xrojr01-s2.png|Obr. 3 Scénář č. 2&lt;br /&gt;
File:Xrojr01-s3.png|Obr. 4 Scénář č. 3&lt;br /&gt;
File:Xrojr01-s4.png|Obr. 5 Scénář č. 4&lt;br /&gt;
File:Xrojr01-grafy.png|Obr. 6 Srovnání výsledků&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z naměřených hodnot je patrné, že zvýšíme-li počet eskalátorů a jejich rychlost, zkrátíme tím dobu, kterou po kterou musí být zapnuty, protože stihneme přepravit stejný počet cestujících za kratší dobu, což se dalo očekávat. Nás však kromě toho zajímá, který z navrhovaných scénářů bude co nejefektivnější, tedy který dokáže přepravit cestující nejrychleji a zároveň za nejnižší náklady. To můžeme určit pomocí poměru mezi dobou, za kterou odejde polovina cestujících (střední doby opuštění) a náklady&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Ze získaných poměrů mezi střední dobou opuštění a náklady vidíme, že nejefektivnějším scénářem je scénář č. 4, v němž jsou zapnuty všechny eskalátory na plnou rychlost, protože cestující opustí prostor výrazně rychleji než v případě ostatních scénářů. Výhodnost tohoto scénáře by platila, pokud by v mezičasech mezi příjezdy mohly být eskalátory vypínány. Pokud by vypínány být nemohly, bylo by nejlepší zvolit scénář č. 2, tedy jeden eskalátor s maximální rychlostí.&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle práce ==&lt;br /&gt;
&lt;br /&gt;
Cílem této práce bylo zjistit optimální nastavení eskalátorů pro dané vstupní parametry, čehož bylo v předchozí kapitole dosaženo. Provedením simulace byla nalezena odpověď na klíčovou otázku '''Vyplatí se nám zapnout další eskalátor?'''. Vytvořený model lze použít pro simulace s různými vstupními parametry a lze jej snadno rozšířit. Cíl práce tedy považuji za naplněný.&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
* Jak se na výsledných nákladech projeví větší procento chodících cestujících?&lt;br /&gt;
* Jaký vliv má počet cestujících na výsledné náklady? Zkoumejte pro 50, 100, 200 a 300 cestujících.&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-grafy.png&amp;diff=11265</id>
		<title>File:Xrojr01-grafy.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-grafy.png&amp;diff=11265"/>
		<updated>2016-06-04T10:26:46Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Srovnání výsledků&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Srovnání výsledků&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-s4.png&amp;diff=11264</id>
		<title>File:Xrojr01-s4.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-s4.png&amp;diff=11264"/>
		<updated>2016-06-04T10:26:07Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Scénář č. 4&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scénář č. 4&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-s3.png&amp;diff=11263</id>
		<title>File:Xrojr01-s3.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-s3.png&amp;diff=11263"/>
		<updated>2016-06-04T10:25:55Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Scénář č. 3&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scénář č. 3&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-s2.png&amp;diff=11262</id>
		<title>File:Xrojr01-s2.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-s2.png&amp;diff=11262"/>
		<updated>2016-06-04T10:25:41Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Scénář č. 2&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scénář č. 2&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-s1.png&amp;diff=11261</id>
		<title>File:Xrojr01-s1.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-s1.png&amp;diff=11261"/>
		<updated>2016-06-04T10:25:26Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Scénář č. 1&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Scénář č. 1&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11260</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11260"/>
		<updated>2016-06-04T10:24:41Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
== Cíl ==&lt;br /&gt;
&lt;br /&gt;
Cílem je pomocí vytvořeného modelu minimalizovat počet aktivních eskalátorů, čímž dojde ke snížení nákladů, a minimalizovat dobu, kdy je eskalátor v provozu, což lze odhadnout podle toho, za jakou dobu se všichni dostanou ven z prostoru metra.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
== Definice problému ==&lt;br /&gt;
&lt;br /&gt;
Eskalátory jsou poháněny elektrickou energií a jejich vysoký výkon znamená potřebu vysokého odběru elektrického proudu. Při běhu eskalátoru také dochází k jeho opotřebení, čímž vzniká potřeba pravidelné údržby a čas od času je nutné provést kromě rutinních servisních prací také vyměnit opotřebované či poškozené součásti eskalátoru. &lt;br /&gt;
&lt;br /&gt;
Při hustějším provozu v metru nás (zejména v době konání nějaké akce) na takovýchto eskalátorech v metru nás bude zajímat klíčová otázka : '''Vyplatí se nám zapnout další eskalátor?'''&lt;br /&gt;
Abychom si mohli na položenou otázku odpovědět, potřebujeme znát, za jak dlouho cestující průměrně opouští prostor metra. Pro naše potřeby budeme uvažovat, že eskalátory jsou zapnuty již od příjezdu metra do stanice a nevypínají se. Model sleduje jen omezený časový úsek - od příjezdu metra a vyložení cestujících až do opuštění posledního cestujícího vestibul metra (horní část stanice).&lt;br /&gt;
&lt;br /&gt;
Z doby, po kterou jsou cestující v prostorech metra lze snadno vypočítat celkové náklady spojené s provozem eskalátorů, známe-li průměrné náklady za 1 sekundu provozu. Ty se budou značně lišit v závislosti na typu, délce, technického stavu eskalátoru, cenu za služby spojené s údržbou apod. Pro potřeby této simulace budeme zanedbávat potřebu údržby a budeme uvažovat, že 1 kWh stojí 3,71 Kč&amp;lt;ref name=&amp;quot;kwh&amp;quot;&amp;gt;Cena 1kWh&amp;lt;i&amp;gt;Energie123.cz&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-04]. Dostupné z: http://www.energie123.cz/elektrina/ceny-elektricke-energie/cena-1-kwh/&amp;lt;/ref&amp;gt; a eskalátor ročně spotřebuje 60 000 kWh&amp;lt;ref name=&amp;quot;spotreba&amp;quot;&amp;gt;How much energy do escalators use?&amp;lt;i&amp;gt;Slate.com&amp;lt;/i&amp;gt; [online]. 2010-08-10 [cit. 2016-06-04]. Dostupné z: http://www.slate.com/articles/health_and_science/the_green_lantern/2010/08/escalators_vs_elevators.html&amp;lt;/ref&amp;gt;. Při 20 hodinách denního provozu (uvažujme uzavření metra od 1 do 5 hodin ráno) to činí 60000/(365*20*60*60) = '''0,002283105023''' kWh každou vteřinu, tedy 3,71*0,002283105023 = '''0,008470319635''' Kč za každou vteřinu provozu. V modelu je výchozí hodnota zaokrouhlena na '''0,0085 Kč'''&lt;br /&gt;
&lt;br /&gt;
== Postup řešení problému == &lt;br /&gt;
&lt;br /&gt;
# Nejprve resetujeme simulaci tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
# Natavíme příjezd 200 cestujících, kteří se budou pohybovat výchozí rychlostí, pevně danou v modelu&lt;br /&gt;
# Ve výchozím stavu budeme uvažovat jen aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu. Ostatní eskalátory vypneme&lt;br /&gt;
# Fixní náklady budeme považovat za nulové, variabilní náklady ponecháme výchozí, tedy 0,0085&lt;br /&gt;
# Ostatní parametry modelu necháme ve výchozím stavu:&lt;br /&gt;
#* Délka eskalátoru 50 m&lt;br /&gt;
#* Pravděpodobnost zastavení 0.05&lt;br /&gt;
#* Poměr chodících cestujících 30 % &lt;br /&gt;
&lt;br /&gt;
Nyní simulaci spustíme a zapíšeme si naměřené hodnoty. Protože bude průběh pokaždé trochu jiný, provedeme opakovaný počet pozorování (5) a výsledky zprůměrujeme.&lt;br /&gt;
&lt;br /&gt;
Dále zkusíme změnit nastavení eskalátorů následovně:&lt;br /&gt;
* Zvýšíme rychlost jediného aktivního eskalátoru na maximum (0,75 m/s)&lt;br /&gt;
* Zapneme navíc eskalátor číslo 3, oběma aktivním eskalátorům nastavíme rychlost 0,5 m/s&lt;br /&gt;
* Zapneme všechny eskalátory a nastavíme jim maximální rychlost (0,75 m/s) &lt;br /&gt;
&lt;br /&gt;
== Výsledky ==&lt;br /&gt;
&lt;br /&gt;
Z měření jsme dostali hodnoty ze 4 různých scénářů, které jsou znázorněny v následujících obrázcích (tabulkách). Níže jsou zobrazeny i grafy porovnávající čas odchodu a náklady pro jednotlivé scénáře.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-s1.png|frame|left|Obr. 2 Scénář č. 1]]&lt;br /&gt;
[[File:Xrojr01-s2.png|frame|center|Obr. 3 Scénář č. 2]]&lt;br /&gt;
[[File:Xrojr01-s3.png|frame|right|Obr. 4 Scénář č. 3]]&lt;br /&gt;
-&lt;br /&gt;
[[File:Xrojr01-s4.png|frame|left|Obr. 5 Scénář č. 4]]&lt;br /&gt;
[[File:Xrojr01-grafy.png|frame|center|Obr. 6 Srovnání výsledků]]&lt;br /&gt;
&lt;br /&gt;
Z naměřených hodnot je patrné, že zvýšíme-li počet eskalátorů a jejich rychlost, zkrátíme tím dobu, kterou po kterou musí být zapnuty, protože stihneme přepravit stejný počet cestujících za kratší dobu, což se dalo očekávat. Nás však kromě toho zajímá, který z navrhovaných scénářů bude co nejefektivnější, tedy který dokáže přepravit cestující nejrychleji a zároveň za nejnižší náklady. To můžeme určit pomocí poměru mezi dobou, za kterou odejde polovina cestujících (střední doby opuštění) a náklady&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
Ze získaných poměrů mezi střední dobou opuštění a náklady vidíme, že nejefektivnějším scénářem je scénář č. 4, v němž jsou zapnuty všechny eskalátory na plnou rychlost, protože cestující opustí prostor výrazně rychleji než v případě ostatních scénářů. Výhodnost tohoto scénáře by platila, pokud by v mezičasech mezi příjezdy mohly být eskalátory vypínány. Pokud by vypínány být nemohly, bylo by nejlepší zvolit scénář č. 2, tedy jeden eskalátor s maximální rychlostí.&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle práce ==&lt;br /&gt;
&lt;br /&gt;
Cílem této práce bylo zjistit optimální nastavení eskalátorů pro dané vstupní parametry, čehož bylo v předchozí kapitole dosaženo. Provedením simulace byla nalezena odpověď na klíčovou otázku '''Vyplatí se nám zapnout další eskalátor?'''. Vytvořený model lze použít pro simulace s různými vstupními parametry a lze jej snadno rozšířit. Cíl práce tedy považuji za naplněný.&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
* Jak se na výsledných nákladech projeví větší procento chodících cestujících?&lt;br /&gt;
* Jaký vliv má počet cestujících na výsledné náklady? Zkoumejte pro 50, 100, 200 a 300 cestujících.&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11259</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11259"/>
		<updated>2016-06-04T08:25:20Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo 5.3.1&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
Eskalátory jsou poháněny elektrickou energií a jejich vysoký výkon znamená potřebu vysokého odběru elektrického proudu. Při běhu eskalátoru také dochází k jeho opotřebení, čímž vzniká potřeba pravidelné údržby a čas od času je nutné provést kromě rutinních servisních prací také vyměnit opotřebované či poškozené součásti eskalátoru. &lt;br /&gt;
&lt;br /&gt;
Při hustějším provozu v metru nás (zejména v době konání nějaké akce) na takovýchto eskalátorech v metru nás bude zajímat klíčová otázka : '''Vyplatí se nám zapnout další eskalátor?'''&lt;br /&gt;
Abychom si mohli na položenou otázku odpovědět, potřebujeme znát, za jak dlouho cestující průměrně opouští prostor metra. Pro naše potřeby budeme uvažovat, že eskalátory jsou zapnuty již od příjezdu metra do stanice a nevypínají se. Model sleduje jen omezený časový úsek - od příjezdu metra a vyložení cestujících až do opuštění posledního cestujícího vestibul metra (horní část stanice).&lt;br /&gt;
&lt;br /&gt;
Z doby, po kterou jsou cestující v prostorech metra lze snadno vypočítat celkové náklady spojené s provozem eskalátorů, známe-li průměrné náklady za 1 sekundu provozu. Ty se budou značně lišit v závislosti na typu, délce, technického stavu eskalátoru, cenu za služby spojené s údržbou apod. Pro potřeby této simulace budeme zanedbávat potřebu údržby a budeme uvažovat, že 1 kWh stojí 3,71 Kč&amp;lt;ref name=&amp;quot;kwh&amp;quot;&amp;gt;Cena 1kWh&amp;lt;i&amp;gt;Energie123.cz&amp;lt;/i&amp;gt; [online]. [cit. 2016-06-04]. Dostupné z: http://www.energie123.cz/elektrina/ceny-elektricke-energie/cena-1-kwh/&amp;lt;/ref&amp;gt; a eskalátor ročně spotřebuje 60 000 kWh&amp;lt;ref name=&amp;quot;spotreba&amp;quot;&amp;gt;How much energy do escalators use?&amp;lt;i&amp;gt;Slate.com&amp;lt;/i&amp;gt; [online]. 2010-08-10 [cit. 2016-06-04]. Dostupné z: http://www.slate.com/articles/health_and_science/the_green_lantern/2010/08/escalators_vs_elevators.html&amp;lt;/ref&amp;gt;. Při 20 hodinách denního provozu (uvažujme uzavření metra od 1 do 5 hodin ráno) to činí 60000/(365*20*60*60) = '''0,002283105023''' kWh každou vteřinu, tedy 3,71*0,002283105023 = '''0,008470319635''' Kč za každou vteřinu provozu. V modelu je výchozí hodnota zaokrouhlena na 0,0085&lt;br /&gt;
&lt;br /&gt;
== Postup řešení problému == &lt;br /&gt;
&lt;br /&gt;
* Nejprve resetujte model tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
* Uvažujte příjezd 200 cestujících pohybujících se běžnou rychlostí,&lt;br /&gt;
* Ve výchozím stavu uvažujte jen jeden aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu.&lt;br /&gt;
* Fixní náklady považujte za nulové&lt;br /&gt;
* Ostatní parametry modelu nechte ve výchozím stavu.&lt;br /&gt;
&lt;br /&gt;
Ze simulace získejte všechna potřebná data a dále zkoumejte, jak se změní průměrné náklady, když &lt;br /&gt;
* bude více cestujících chodit (místo 30 % jich bude chodit 50 %)&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=User:Xrojr01&amp;diff=11255</id>
		<title>User:Xrojr01</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=User:Xrojr01&amp;diff=11255"/>
		<updated>2016-06-03T07:19:21Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Created page with &amp;quot;Čau!&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Čau!&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-main-screen-3.png&amp;diff=11254</id>
		<title>File:Xrojr01-main-screen-3.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-main-screen-3.png&amp;diff=11254"/>
		<updated>2016-06-03T07:19:04Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Xrojr01 načetl novou verzi File:Xrojr01-main-screen-3.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hlavní obrazovka simulace&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11253</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11253"/>
		<updated>2016-06-03T07:01:09Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Výsledky */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
== Zadání úlohy == &lt;br /&gt;
&lt;br /&gt;
* Nejprve resetujte model tlačítkem Master Reset na výchozí hodnoty&lt;br /&gt;
* Uvažujte příjezd 200 cestujících pohybujících se běžnou rychlostí,&lt;br /&gt;
* Ve výchozím stavu uvažujte jen jeden aktivní a nejpomalejší (0,5 m/s) eskalátor nejblíže k místu příjezdu.&lt;br /&gt;
* Fixní náklady považujte za nulové&lt;br /&gt;
* Ostatní parametry modelu nechte ve výchozím stavu.&lt;br /&gt;
&lt;br /&gt;
Ze simulace získejte všechna potřebná data a dále zkoumejte, jak se změní průměrné náklady, když &lt;br /&gt;
* bude více cestujících chodit (místo 30 % jich bude chodit 50 %)&lt;br /&gt;
* TODO&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Další možné otázky ke zkoumání ==&lt;br /&gt;
&lt;br /&gt;
* Jak se zlepší průměrná rychlost odchodu poloviny cestujících, když budou všichni poslušní, tedy pravděpodobnost jejich zastavení bude rovna 0?&lt;br /&gt;
*&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11252</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11252"/>
		<updated>2016-06-03T06:26:48Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Nevýhody */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří se pohybují opačným směrem po protijedoucích eskalátorech nebo ty, kteří ve stanici čekají na metro či nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11251</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11251"/>
		<updated>2016-06-03T06:25:24Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Výhody */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to včetně zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří jsou opačným směrem nebo ty, kteří ve stanici čekají na metro a nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11250</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11250"/>
		<updated>2016-06-03T04:55:22Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Výhody a nevýhody modelu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* Cestující se nemohou předbíhat a ti, kdo na eskalátoru jdou, nemohou přecházet mezi levým a pravým pruhem, což je v praxi běžná věc.&lt;br /&gt;
* Trochu krkolomně se mění frame rate modelu, ale to je dáno omezením NetLoga&lt;br /&gt;
* Model uvažuje eskalátory pouze na jedné straně, a to na &amp;quot;dlouhém konci&amp;quot; vestibulu. Některé stanice metra mají více východů a některé z nich jsou třeba uprostřed stanice (Pankrác).&lt;br /&gt;
* Neuvažuji zde cestující, kteří jsou opačným směrem nebo ty, kteří ve stanici čekají na metro a nastupují. Pro nastupování a vystupování by bylo zajímavé vytvořit samotnou simulaci, která by však musela značně rozšířit pravidla pro chování agentů (cestujících).&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11249</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11249"/>
		<updated>2016-06-03T04:49:32Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Výhody */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* Model ukazuje výsledky v reálném čase nebo zrychleně, přičemž vždy zobrazuje skutečné hodnoty v sekundách.&lt;br /&gt;
* Je pokryt nejčastější stav na eskalátorech, a to zastavení někoho v pohybující se řadě.&lt;br /&gt;
* Model umí kromě časů opuštění počítat i s náklady, což zvyšuje komfort uživateli.&lt;br /&gt;
* Model lze snadno rozšířit o nové zajímavé funkcionality&lt;br /&gt;
* V modelu lze snadno vyměnit rozdělení, ze kterých jsou generovány vlastnosti cestujících a eskalátoru (drobným zásahem do kódu)&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11248</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11248"/>
		<updated>2016-06-03T04:42:45Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Možná rozšíření modelu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Automatizace několika běhů''' - Pro pohodlí uživatele a předcházení manuálním chybám při zkoumání výsledků by mohl model v předen nastavených časových intervalech generovat další cestující o daném počtu. Bylo by tam možné zkoumat, zda nejsou intervaly příjezdu metra natolik krátké, že původní cestující nestihnout odejít před příjezdem dalších.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11247</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11247"/>
		<updated>2016-06-02T22:29:38Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Grafické rozhraní */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png|frame|center|Obr. 1 Hlavní obrazovka simulace]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11246</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11246"/>
		<updated>2016-06-02T22:26:10Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Metoda */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2013-04-24 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11245</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11245"/>
		<updated>2016-06-02T22:25:50Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Metoda */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2016 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11244</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11244"/>
		<updated>2016-06-02T22:25:26Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Metoda */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku hlavního města Prahy&amp;lt;ref name=&amp;quot;dpp&amp;quot;&amp;gt;Dopravní podnik vymění ve stanicích metra eskalátory za 100 milionů korun &amp;lt;i&amp;gt;Dopravní podnik hlavního města Prahy&amp;lt;/i&amp;gt; [online]. 2015 [cit. 2016-05-20]. Dostupné z: http://www.dpp.cz/dopravni-podnik-vymeni-ve-stanicich-metra-eskalatory-za-100-milionu-korun/&amp;lt;/ref&amp;gt;, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11243</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11243"/>
		<updated>2016-06-02T22:22:35Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Zdroje */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;br /&gt;
&amp;lt;references/&amp;gt;&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11242</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11242"/>
		<updated>2016-06-02T22:22:05Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní. V závěru jsou uvedeny výhody a nevýhody tohoto modelu.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png]]&lt;br /&gt;
&lt;br /&gt;
== Výhody a nevýhody modelu ==&lt;br /&gt;
&lt;br /&gt;
Aby byl cíl semestrální práce naplněn v daném čase a s mými danými znalostmi a zkušenostmi, nebylo možné implementovat všechny nápady s touto problematikou spojené. Z povahy a konkrétní implementace modelu vyplývají výhody i nevýhody, které jsou shrnuty níže.&lt;br /&gt;
&lt;br /&gt;
=== Výhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
=== Nevýhody ===&lt;br /&gt;
* ... TODO&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11241</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11241"/>
		<updated>2016-06-02T22:18:32Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo. Dále jsou uvedeny agenti, jejich vlastnosti, co je možné v modelu sledovat a jak vypadá uživatelské rozhraní.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=File:Xrojr01-main-screen-3.png&amp;diff=11240</id>
		<title>File:Xrojr01-main-screen-3.png</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=File:Xrojr01-main-screen-3.png&amp;diff=11240"/>
		<updated>2016-06-02T22:13:36Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: Hlavní obrazovka simulace&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Hlavní obrazovka simulace&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11239</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11239"/>
		<updated>2016-06-02T22:13:20Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Grafické rozhraní */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-3.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11238</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11238"/>
		<updated>2016-06-02T22:10:01Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Fáze 2 - Stairway to heaven */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-2.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11237</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11237"/>
		<updated>2016-06-02T22:09:00Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Definice problému */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-2.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11236</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11236"/>
		<updated>2016-06-02T22:08:28Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Agenti a jejich vlastnosti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory (escalators|escalator) ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
* '''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
* '''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
* '''pady''' - Pozice y eskalátoru&lt;br /&gt;
* '''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Dveře - východy (doors|door) ===&lt;br /&gt;
Počet, velikost i pozice dveří je pevně daná, neboť se model zaměřuje primárně na pohyb na eskalátorech&lt;br /&gt;
&lt;br /&gt;
* '''doorx''' - Souřadnice x dveří.&lt;br /&gt;
* '''doory''' - Souřadnice x dveří.&lt;br /&gt;
&lt;br /&gt;
=== Zdi (walls|wall) ===&lt;br /&gt;
Zdi jsou v modelu proto, aby nemohli cestující obejít nástupní plochu eskalátoru a nastoupit třeba až v polovině eskalátoru. Zdi jsou v modelu viditelné jako světle hnědá plocha v pásmu s eskalátory.&lt;br /&gt;
&lt;br /&gt;
* '''posx''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
* '''posy''' - Souřadnice x 1 bloku zdi.&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-2.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11235</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11235"/>
		<updated>2016-06-02T21:59:59Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory ===&lt;br /&gt;
* '''id''' - jednoznačný identifikátor eskalátoru. Jedná se spíše o pomocnou proměnnou při určování rychlosti cestujícího na eskalátoru. Ten totiž musí vědět, na kterém eskalátoru je (viz '''escalator-id''' u cestujícího).&lt;br /&gt;
'''speed''' - Rychlost samotného eskalátoru (0,5-0,75 m/s). Interval rychlosti je dán směrnicí EU.&lt;br /&gt;
'''padx''' - Pozice x eskalátoru. Eskalátory mají pevně danou šířku, která při přepoču neodpovídá skutečnosti, ale pro potřeby modelu to nijak nevadí.&lt;br /&gt;
'''pady''' - Pozice y eskalátoru&lt;br /&gt;
'''is-active''' - Je-li &amp;quot;true&amp;quot;, mohou si cestující tento eskalátor vybrat, jít k němu a nechat se vyvézt nahoru. Také slouží k určení výpočtu nákladů - ty se počítají pouze z aktivních eskalátorů. Aktivní eskalátory jsou označeny zelenou barvou, neaktivní pak barvou červenou.&lt;br /&gt;
&lt;br /&gt;
=== Východy ===&lt;br /&gt;
&lt;br /&gt;
=== Zdi ===&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-2.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11234</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11234"/>
		<updated>2016-06-02T21:54:28Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Model */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
Popis modelu je členěn do několika částí. V úvodu je vysvětleno, jak model pracuje - tento popis jsem převzal z vlastní analýzy problému, kterou jsem provedl před samotnou implementací simulace v nástroji NetLogo.&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do tří odlišných fází, kterými každý cestující prochází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - aktuální rychlost chůze, která se mění v závislosti na tom, zde je cestující na zemi nebo na eskalátoru, viz '''ground-pace''' a '''escalator-pace'''&lt;br /&gt;
* '''headx''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''heady''' - souřadnice x místa, kam cestující míří&lt;br /&gt;
* '''has-exit''' - true, pokud už má cestující zvolen východ, kterým vyjde po opuštění eskalátoru&lt;br /&gt;
* '''preference''' - &amp;quot;stand&amp;quot; nebo &amp;quot;walk&amp;quot;. Určuje, zda cestující bude na eskalátoru stát (bude modrý) či chodit (bude žlutý)&lt;br /&gt;
* '''escalator-pace''' - Rychlost chůze na eskalátoru (0,4-1,0 m/s) - V modelu pevně nastaveno jako polovina, tedy 0,2-0.5 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''ground-pace''' - Rychlost chůze na zemi (1-1,5 m/s). V modelu pevně nastaveno jako polovina , tedy 0,5-0.75 z důvodu přepočítávání pro potřeby měření času. Pro situaci jsem zvolil rovnoměrné rozdělení, i když správnější by bylo využít normální či lognormální rozdělení (u kterých je však problém určit parametry tak, aby se nerodili cestující, kteří chodí pozpátku)&lt;br /&gt;
* '''escalator-id''' - Jednoznačný identifikátor eskalátoru, ke kterému cestující jde a po kterém je vyvezen.&lt;br /&gt;
* '''ready-to-ride''' - Slouží pro potřeby &amp;quot;vstupu&amp;quot; na eskalátor, kdy je potřeba, aby se část kódu provedla pouze jednou.&lt;br /&gt;
* '''previous-x''' - Předchozí pozice x cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''previous-y''' - Předchozí pozice y cestujícího. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''ticks-standing''' - Počet tiknutí, které stojí cestující na stejném místě. Slouží k určování, zda stojí cestující moc dlouho na jednom místě a je někde zaseknutý.&lt;br /&gt;
* '''is-clogging''' - Vlastnost, která je cestujícímu přidělena na základě pravděpodobnosti blokování '''p-of-clogging'''. Blokující cestující je označen červeně.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory ===&lt;br /&gt;
&lt;br /&gt;
=== Východy ===&lt;br /&gt;
&lt;br /&gt;
=== Zdi ===&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-2.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11233</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11233"/>
		<updated>2016-06-02T21:40:56Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Metoda */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
Pro tuto simulaci jsem zvolil NetLogo, neboť mi šlo o simulování pohybu a interakce mnoha pasažérů v daném známém prostředí - na eskalátorech v metru. Informace o eskalátorech jsem získal z webu Dopravního podniku, rychlost eskalátorů a chůze na nich jsem osobně ověřoval měřením ve stanici Háje.&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do několika odlišných fází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - rychlost chůze&lt;br /&gt;
* '''headx''' &lt;br /&gt;
* '''heady''' &lt;br /&gt;
* '''has-exit''' &lt;br /&gt;
* '''preference''' &lt;br /&gt;
* '''escalator-pace''' &lt;br /&gt;
* '''ground-pace''' &lt;br /&gt;
* '''escalator-id''' &lt;br /&gt;
* '''ready-to-ride''' &lt;br /&gt;
* '''previous-x''' &lt;br /&gt;
* '''previous-y''' &lt;br /&gt;
* '''ticks-standing''' &lt;br /&gt;
* '''is-clogging'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory ===&lt;br /&gt;
&lt;br /&gt;
=== Východy ===&lt;br /&gt;
&lt;br /&gt;
=== Zdi ===&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-2.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11232</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11232"/>
		<updated>2016-06-02T21:36:26Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Agenti a jejich vlastnosti */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do několika odlišných fází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
Hlavními agenty, kteří v simulaci figurují, jsou cestující, eskalátory, východy a zdi.&lt;br /&gt;
&lt;br /&gt;
=== Cestující (passengers|passenger) ===&lt;br /&gt;
* '''pace''' - rychlost chůze&lt;br /&gt;
* '''headx''' &lt;br /&gt;
* '''heady''' &lt;br /&gt;
* '''has-exit''' &lt;br /&gt;
* '''preference''' &lt;br /&gt;
* '''escalator-pace''' &lt;br /&gt;
* '''ground-pace''' &lt;br /&gt;
* '''escalator-id''' &lt;br /&gt;
* '''ready-to-ride''' &lt;br /&gt;
* '''previous-x''' &lt;br /&gt;
* '''previous-y''' &lt;br /&gt;
* '''ticks-standing''' &lt;br /&gt;
* '''is-clogging'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory ===&lt;br /&gt;
&lt;br /&gt;
=== Východy ===&lt;br /&gt;
&lt;br /&gt;
=== Zdi ===&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-2.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
	<entry>
		<id>http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11231</id>
		<title>Optimalizace nastavení eskalátorů v metru (NetLogo)</title>
		<link rel="alternate" type="text/html" href="http://www.simulace.info/index.php?title=Optimalizace_nastaven%C3%AD_eskal%C3%A1tor%C5%AF_v_metru_(NetLogo)&amp;diff=11231"/>
		<updated>2016-06-02T21:29:57Z</updated>

		<summary type="html">&lt;p&gt;Xrojr01: /* Vstupní parametry a nastavení modelu */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
{{Ambox&lt;br /&gt;
| type  = content&lt;br /&gt;
| text  = &amp;lt;div&amp;gt;&lt;br /&gt;
Tato stránka ještě není kompletní. Dočkej času jako husa klasu!&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zadání =&lt;br /&gt;
&lt;br /&gt;
'''Název simulace''': Optimalizace nastavení eskalátorů v metru &lt;br /&gt;
&lt;br /&gt;
'''Předmět''': 4IT495 Simulace systémů (LS 2015/2016)&lt;br /&gt;
&lt;br /&gt;
'''Autor''': Bc. Robert Rojo&lt;br /&gt;
&lt;br /&gt;
'''Typ modelu''': Multiagentní&lt;br /&gt;
&lt;br /&gt;
'''Modelovací nástroj''': NetLogo&lt;br /&gt;
&lt;br /&gt;
= Definice problému =&lt;br /&gt;
&lt;br /&gt;
Simulace slouží k nalezení optimální rychlosti a počtu aktivních eskalátorů. Máme situaci s předem danými parametry. Do stanice přijede metro, vyloží cestující a ti jdou k nejbližšímu eskalátoru, přičemž pokud je eskalátorů více, zvolí si jeden z nich, jedoucí danou rychlostí. Někteří cestující jdou, a to po levé straně eskalátoru, někteří stojí na pravé straně. Ti inteligentnější stojí opravdu vpravo tak, aby nevadili těm, kteří chtějí jít. Ti, kterým Pán Bůh tolik nenadělil stojí vlevo, a tak blokují všechny za sebou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Metoda =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Model =&lt;br /&gt;
&lt;br /&gt;
== Jak to celé funguje ==&lt;br /&gt;
&lt;br /&gt;
Samotnou simulaci je možné rozdělit do několika odlišných fází.&lt;br /&gt;
&lt;br /&gt;
=== Fáze 1 - Příchod cestujících k eskalátorům. ===&lt;br /&gt;
'''Zde jde o jednoduché přemístění cestujících k předem určenému bodu.'''&lt;br /&gt;
&lt;br /&gt;
# Jsou vytvoření cestující u dveří metra. Každý cestující jde svým tempem, které je určeno náhodně při jeho narození.&lt;br /&gt;
# Každý cestující si náhodně při svém vzniku vybere, ke kterému eskalátoru půjde (dojde ke &amp;quot;spravedlivému&amp;quot; rozdělení zátěže). V reálu to vypadá velmi podobně, každý se snaží dostat tam, kde je menší fronta, což ve výsledku způsobí rovnoměrné rozložení počtu cestujících u jednotlivých eskalátorů.&lt;br /&gt;
# Cestující jde ke svému vybranému eskalátoru, během cesty svou volbu nemění (zde by mohlo být nějaké rozhodování na základě okolních podmínek, což by ale bylo složitější na implementaci)&lt;br /&gt;
# Během cesty se snaží cestující vyhnout ostatním, a to tak, že pokud je někdo před ním, otočí se o 45 stupnů do strany a vydá se tím směrem (stále se snaží dojít ke svému eskalátoru).&lt;br /&gt;
# Když se cestující dostanou k eskalátoru, dostávají se do fáze 2&lt;br /&gt;
&lt;br /&gt;
=== Fáze 2 - Stairway to heaven ===&lt;br /&gt;
'''V této fázi jsou cestující vyvezeni na povrch.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující si na eskalátoru stoupá vlevo či vpravo, podle své preference, která je určena při jeho narození. Pokud preferuje pravou stranu, pohybuje se ke konci eskalátoru právě rychlostí eskalátoru (na eskalátoru stojí).&lt;br /&gt;
# Preferuje-li levou stranu, mohou nastat dvě situace: &lt;br /&gt;
#* a) pohybuje se rychlostí eskalátoru (také stojí), čímž mimo jiné blokuje ty, kteří chtějí jít (viz b)&lt;br /&gt;
#* b) pohybuje se vyšší rychlostí než je rychlost eskalátoru (= rychlostí eskalátoru + vlastní rychlostí chůze, danou náhodně při jeho narození)&lt;br /&gt;
# V pohybu se cestující chovají podle těchto pravidel:&lt;br /&gt;
#* preferují-li stání, stojí, dokud nejsou vyvezeni nahoru&lt;br /&gt;
#* preferují-li chůzi, jdou (po levé straně) kupředu, dokud nenarazí na jiného stojícího cestujícího. V takovém případě se také zastaví.&lt;br /&gt;
# Dostanou-li se cestující na konec eskalátoru, dostávají se do fáze 3&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fáze 3 - Opouštění eskalátorů ===&lt;br /&gt;
'''V této fázi cestující opouští eskalátory a jdou k východu.'''&lt;br /&gt;
&lt;br /&gt;
# Cestující, kteří opustí eskalátor, pokračují k východu, opět svou rychlostí, která je určena při jejich narození.&lt;br /&gt;
# Opět se snaží vyhnout ostatním, pokud jim stojí v cestě, stejně jako před nastoupením na eskalátor.&lt;br /&gt;
&lt;br /&gt;
== Agenti a jejich vlastnosti ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Cestující ===&lt;br /&gt;
&lt;br /&gt;
=== Eskalátory ===&lt;br /&gt;
&lt;br /&gt;
=== Východy ===&lt;br /&gt;
&lt;br /&gt;
=== Zdi ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Vstupní parametry a nastavení modelu ==&lt;br /&gt;
&lt;br /&gt;
=== Nastavení cestujících (pasažérů) ===&lt;br /&gt;
# '''passengers-count''' - Počet cestujících (z Poissonova rozdělení nebo přesně - přepíná se volbou '''is-poisson''')&lt;br /&gt;
# '''is-poisson''' - Je-li volba aktivní, je počet pasažárů parametrem Poissonova rozdělení, jinak je vytvořen jejich přesný počet.&lt;br /&gt;
# '''walkers-ratio''' - Poměr stojících a chodících cestujících z intervalu &amp;lt;0;1&amp;gt;, 0 znaměná pouze stojící cestující, 1 pouze chodící&lt;br /&gt;
# '''p-of-clogging''' - Pravděpodobnost, že narozený chodící cestující bude na eskalátoru stát. Lze nastavit v intervalu &amp;lt;0;0,3&amp;gt; (0,3 je poměrně veliké množství, proto volím jemnější krokování 0,01 a shora omezený interval pravděpodobnosti)&lt;br /&gt;
# '''keep-distance''' - Aktivní volba zapíná kolize mezi chodícími na eskalátoru (když se před cestujícím někdo zastaví, musí se taky zastavit)&lt;br /&gt;
# '''unstuck-timeout''' - Pokud je pasažér tento počet tiknutí pořád na stejném místě, je zaseklý, a musí udělat krok zpět o náhodnou vzdálenost &amp;lt;0;0.5&amp;gt;. tím je zaručeno, že se ve velké mačkanici cestující nezaseknou a vždy mohou pokračovat ve své cestě.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení eskalátorů ===&lt;br /&gt;
# '''escalator-length''' - Délka eskalátorů v metrech, lze nastavit posuvníkem v intervalu &amp;lt;0;100&amp;gt;&lt;br /&gt;
# '''escalator-n''' - Počet aktivních eskalátorů, nastavuje se zvlášť pro každý eskalátor ('''escalator-1''', '''escalator-2''', '''escalator-3''', '''escalator-4''')&lt;br /&gt;
# '''escalator-n-speed''' - Rychlost každého z eskalátorů ('''escalator-1-speed''', '''escalator-2-speed''', '''escalator-3-speed''', '''escalator-4-speed''')&lt;br /&gt;
&lt;br /&gt;
=== Další nastavení ===&lt;br /&gt;
# '''debug''' - Aktivní volba zapíná ladící mód, kdy je vytvořen jen jeden cestující blízko eskalátorů. To je užitečné při zkoumání jeho rychlosti a pozice na eskalátoru.&lt;br /&gt;
# '''frame-rate''' - Aby správně fungoval přepočet měřáků na sekundy, musí být tato hodnota nastavena stejně jako hodnota &amp;quot;frame rate&amp;quot; v nastavení modelu a model musí být v &amp;quot;normal speed&amp;quot; rychlosti. Hodnota v nastavení modelu musí být nastavena bohužel zvlášť ručně.&lt;br /&gt;
&lt;br /&gt;
=== Nastavení nákladů ===&lt;br /&gt;
# '''fixed-costs-per-escalator''' - Fixní náklady pro každý aktivní eskalátor. (Můžeme situaci ještě před vybudováním eskalátorů, kdy nás zajímají např. pořizovací náklady)&lt;br /&gt;
# '''variable-costs-per-second''' - Náklady na každý aktivní eskalátor za každou vteřinu provozu.&lt;br /&gt;
&lt;br /&gt;
== Ovládání ==&lt;br /&gt;
&lt;br /&gt;
Ovládat simulaci lze následujícími tlačítky, které jsou v sekci '''Ovládání''':&lt;br /&gt;
* '''Setup''' - Připraví model k použití s aktuálně nastavenými parametry&lt;br /&gt;
* '''Go''' - Spustí simulaci. Opětovným stiskem lze simulaci zastavit. Mějte však na paměti, že pozastavením simulace nebude zastaven měřený čas.&lt;br /&gt;
* '''Step''' - Při krokování opět dojde k &amp;quot;rozbití&amp;quot; měření času. To je dáno tím, že čas se odvíjí od běhu času ve virtuálním prostředí Javy. Krokování je spíše vhodné pro potřeby ladění.&lt;br /&gt;
* '''Master Reset''' - Nastaví všechny hodnoty na výchozí a provede '''Setup'''.&lt;br /&gt;
&lt;br /&gt;
== Sledované ukazatelé ==&lt;br /&gt;
&lt;br /&gt;
=== Číselné ukazatelé ===&lt;br /&gt;
# '''total-passengers''' - (# pasažérů na začátku) - Zobrazuje, kolik cestujících (pasažérů) je na začátku vytvořeno. Informace se hodí v případě zapnuté volby '''is-poisson''', kdy není počet cestujících přímo zadaný.&lt;br /&gt;
# '''actual-costs''' - (Současné  náklady) - Zobrazuje aktuálně vypočtené náklady podle aktivních eskalátorů a uběhlého času.&lt;br /&gt;
# '''time''' - (Všichni odešli) - Čas, za který všichni cestující opustili systém (metro).&lt;br /&gt;
# '''half-time''' - (Polovina odešla) - Čas, za který metro opustila polovina všech původních cestujících.&lt;br /&gt;
# '''walking-time''' - (Všichni chodící odešli) - Čas, za který všichni eskalátorech chodící cestující.&lt;br /&gt;
# '''standing-time''' - (Všichni stojící odešli) - Čas, za který z metra odešlo všichni na eskalátorech stojící cestující opustili.&lt;br /&gt;
&lt;br /&gt;
=== Grafy ===&lt;br /&gt;
# '''Celkový počet cestujících v systému''' - Zobrazuje vývoj počtu cestujících v metru. na začátku jsou zde všichni a s postupem času křivka klesá, jak cestující vychází ven z prostorů metra.&lt;br /&gt;
# '''Počet cestujících dle preference''' - Zobrazuje to samé jako předchozí graf, jen zvlášť pro chodící (žlutá křivka) a stojící (modrá křivka).&lt;br /&gt;
# '''Počty cestujících dle fáze''' - Zobrazuje vývoj počtu cestujících v jednotlivých fázích&lt;br /&gt;
#* Fáze 1 - spodní podlaží (žlutá)&lt;br /&gt;
#* Fáze 2 - eskalátory (zelená)&lt;br /&gt;
#* Fáze 3 - horní podlaží (červená)&lt;br /&gt;
&lt;br /&gt;
Pozn.: Je-li nastaven frame-rate na 30, zobrazuje osa x v grafech čas ve vteřinách&lt;br /&gt;
&lt;br /&gt;
== Grafické rozhraní ==&lt;br /&gt;
&lt;br /&gt;
Níže je zobrazeno, jak vypadá rozhraní simulace.&lt;br /&gt;
&lt;br /&gt;
[[File:Xrojr01-main-screen-2.png]]&lt;br /&gt;
&lt;br /&gt;
= Výsledky =&lt;br /&gt;
&lt;br /&gt;
= Závěr =&lt;br /&gt;
&lt;br /&gt;
== Zhodnocení naplnění cíle ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Možná rozšíření modelu ==&lt;br /&gt;
&lt;br /&gt;
Současný model zachycuje základní principy a bylo by jej možné a vhodné rozšířit v několika aspektech, např.:&lt;br /&gt;
&lt;br /&gt;
* '''Předbíhání na eskalátorech''' - Hlavním nedostatkem modelu je úvaha, že ti, kdo stojí vpravo nikdy nejdou. V praxi se obvykle cestující podle potřeby umí vyhýbat, a tedy přeskakovat z levého do pravého pruhu a zpět podle potřeby.&lt;br /&gt;
* '''Možnost říct &amp;quot;s dovolením&amp;quot;''' - Cestující za někým stojícím by ho mohl požádat o uvolnění místa a ten by mu mohl vyhovět či ne.&lt;br /&gt;
* '''Více východů/přestupy''' - Např. ve stanici Můstek na linkách A a B se lze shledat s poměrně komplexním systémem východů a více eskalátory.&lt;br /&gt;
* '''Rozšíření o běžné schodiště''' - Případ stanice Muzeum, kde nalezneme dva eskalátory (jeden nahoru, jeden dolů) a běžné schodiště.&lt;br /&gt;
* '''Přidání lidí v opačném směru''' - Zajímavé by bylo sledovat pohyb cestujících při různém nastavení eskalátorů (např. 3 jedou nahoru, jeden dolů) a vzájemnou interakci cestujících blízko u nástupu a výstupu z eskalátorů. V praxi vidím, že se často lidé neumí vyhnout.&lt;br /&gt;
* '''Přidání třetí dimenze''' - Zde by šlo spíše o lepší vizuální přehlednost.&lt;br /&gt;
&lt;br /&gt;
= Zdroje =&lt;/div&gt;</summary>
		<author><name>Xrojr01</name></author>
		
	</entry>
</feed>