Kinosál (NetLogo)



=Zadání=

Název simulace: Kinosál

Předmět: 4IT495 Simulace systémů (LS 2016/2017)

Autor: Jan Buriánek, xburj18

Typ modelu: Multiagentní

Modelovací nástroj: Netlogo 6.0.1

=Definice problému= Práce se zabývá předmětem simulace navštěvovanosti kinosálu v konkrétním městě při promítání konkrtétních filmů. Konkrétně je simulace zaměřena na období od dokončení přípravy kinosálu k promítání po příchod všech diváků před / během promítání filmu. Prostředí simulovaného modelu se odehrává v konkrétním městě o stabilním počtu obyvatel, na sadě konkrétních filmů, popularitou a očekáváním, jenž je k dispozici na serverech ČSFD.cz a IMDB.com. Takový model disponuje volně nastavitelnými atributy jako jsou počet a rozložení sedadel v kinosálu, počet a umístění dveří v kinosálu a počet uliček mezi sedadly. Model podléhá přirozeným omezením agentů jako je např. jejich pohyb pouze po volné ploše a omezení pohybu diváků v řadě židlí. Díky takovéto optimalizaci je možné např. maximalizovat počet lidí, kteří mohou díky optimalizované orientaci mobiliáře shlédnout co největší množství reklam před spuštění filmu. Veškerá relevantní data pro simulaci budou obstarána ze zdrojů ČSFD a IMDB a z příslušných dat poskytnutých kinem Milevsko. Počet komponent je omezen velikostí sálu. Model je dále využitelný pro jiné vznikající kinosály dle dosazení příslušných konstant.

Smysl tohoto modelu je v jednorázové fyzické úpravě, či pouze analýze stávajícího kinosálu, nebo výstavbě nového v lokalitě, kde se žádný kinosál nenachází. Praktické využití tohoto modelu je dvojí:
 * v případě přípravy kinosálu v rušné lokalitě lze optimalizovat jeho budoucí rozložení
 * v případě přípravy kinosálu v lokalitě s nízkým počtem obyvatel může být tento model nápomocen v rozhodování se zdali vůbec je v této lokalitě stavění kina smysluplné

Cíl
Cílem této práce je doporučit optimalizované rozložení (množství a umístění) komponent kinosálu na základě simulovaného chování veřejnosti v konkrétní lokalitě při návštěvě promítání filmů napříč žánry, popularitou a očekáváním.

=Metoda= Metoda naplnění cíle byla zvolena následovně:
 * Dle popisu modelu vybudována simulace.
 * Na základě reálných dat z kina v Milevsku (cca 10.000 obyvatel, 140 sedadel, dveře jedny, vlevo v zadní části sálu, bez uličky) bylo odhadnuto pravděpodobnostní rozdělení včetně příslušných koeficientů tak, aby co nejvěrněji simulovalo skutečnou návštěvnost tohoto kina v závislosti na veřejném hodnocení filmů (očekávání ze strany potencionálních návštěvníků), které se v tomto kině promítají.
 * Bylo provedeno 20 pozorování filmů v hodnocení 100% (průměrná návštěvnost 40% zaplnění), 60% (průměrná návštěvnost 23% zaplnění), 20% (průměrná návštěvnost 6% zaplnění). Tímto byla ověřena praktická korektnost a přiměřenost konfigurace parametrů při odhadu návštěvnosti.
 * Byla rozvržena zcela nová struktura kinosálu, jež je realizována pro město o 50.000 obyvatelích (např. město Děčín) a pro stejná hodnocení filmů byla testována v následující konfiguraci:
 * 792 sedadel (44 sedadel v řadě, 18 řad)
 * 3 uličky
 * dvoje dveře po stranách v přední části sálu
 * Pro porovnání variant rozložení komponent byla ve stejném modelu pozměněno umístění dveří (jedny dveře zleva) a odstraněny uličky. Tato varianta byla testována v 10-ti pozorováních pro filmy hodnocené 100%.

=Model=

Koncepce modelu
Obecný model kinosálu prochází během svého života následujícím procesem:
 * 1) Postavení scény
 * 2) Postavení rozložení sedadel a uliček v kinosálu
 * 3) Nastavení odhadu prodeje vstupenek, vytvoření vstupenek
 * 4) Prodání vstupenek na konkrétní místa v sálu
 * 5) Rezervace sedadel dle prodaných vstupenek. Rezervovaná místa se od volných liší vyplněním.
 * 6) Volba dveří v modelu - na výběr je 7 dveří ze všech stran, které lze libovolně využívat a schovávat
 * 7) Přivolání návštěvníků
 * 8) Návštěvníci přicházejí v různé náladě rozmístěni do použitých dveří v kinosálu
 * 9) Návštěvník si vyzvedne vstupenku, kterou má nakoupenou na konkrétní místo, které mu při nákupu bylo rezervováno.
 * 10) Otevření kinosálu
 * 11) Návštěvník zamíří ze dveří ke svému sedadlu
 * 12) V davu jsou jen velmi omezené možnosti pohybu
 * 13) V případě, že narazí na překážku, jako např. řada sedadel vyhne se vyhledáním uličky
 * 14) Návštěvník preferuje cestu v uličkách spíše než se prodírat mezi řadami sedadel
 * 15) Návštěvník může na své sedadlo usednout jedině ze správného směru
 * 16) Jakmile se návštěvník usadí, více se v procesu neangažuje

Plátno v kinosálu je v horní části.

Simulace je automaticky ukončena ve chvíli, kdy jsou všichni návštěvníci usazeni na svých místech.

Po skončení simulace je zřejmé, kolik času zabralo usazení všech návštěvníků a do jaké míry se sál vyprodán.

Heuristika použitá pro usazení návštěvníků do předem zakoupených sedadel garantuje, že své sedadlo najdou.

Čas se odpočítává od okamžiku vpuštění diváků do sálu.

Ovládání modelu
Pro ovládání modelu jsou k dispozici následující ovládací prvky:
 * 1) Tlačítko Nastavit scénu provede bod 1 v předchozím popisu.
 * 2) Sada tlačítek kolem plátna modelu umožňuje nastavit požadované dveře do kinosálu. Konfigurace dveří během běhu modelu nemá na výsledek vycházející z počátečních podmínek žádný efekt.
 * 3) Tlačítko Přivolat návštěvníky provede bod 3 v předchozím popisu.
 * 4) Tlačítko Vpustit návštěvníky do sálu spustí simulaci.

Konfigurace modelu
Model lze konfigurovat pomocí následujících ovládacích prvků:
 * Konfigurace okolí
 * movie-rating je proměnná, která ovlivňuje ochotu potencionálních zákazníků do kina přijít. Obecně se dá ztotožnit s hodnocením filmů na ČSFD.cz, nebo IMDB.com.
 * local-population je číslo, které vyjadřuje počet obyvatel v místě výstavby kinosálu. Čím více lidí na jeden kinosál, tím větší poptávka po filmech.
 * Konfigurace kinosálu
 * number-of-seats-in-front-row vyjadřuje počet sedadel v řadě.
 * nember-of-aisles vyjadřuje počet uliček v hledišti. Uličky je možné nastavit až 3 (ve skutečnosti je vždy o dvě uličky na krajích sálu více). Uličky jsou automaticky pravidelně distribuovány mezi sedadla.
 * ratio-seats-width a ratio-seats-height vyjadřují poměr řad sedadel v kině k jejím umístěním do sloupců. Je tedy možné nasavit poměr sedadel např. 4:3.

Model dále obsahuje následující monitory:
 * Monitor počtu aktuálně prodaných vstupenek
 * Monitor počtů sedadel v kinosálu

=Výsledky=

Analýza existujícího kinosálu
Na základě provedených pozorování kina v Milevsku byly naměřeny hodnoty, které shrnuje následující tabulka.

Tato tabulka byla naměřena s následující konfigurací:


 * local-population: 10000
 * number-of-seats-in-front-row: 10
 * nember-of-aisles: 0
 * ratio-seats-width: 10
 * ratio-seats-height: 14
 * Dveře ze zadní strany vlevo



Návrh nového kinosálu
Návrh nové struktury kinosálu pro město velikostí odpovídající městu Děčín byl proveden nejprve s následujícími parametry.


 * local-population: 50000
 * number-of-seats-in-front-row: 44
 * nember-of-aisles: 3
 * ratio-seats-width: 7
 * ratio-seats-height: 3
 * Dvoje dveře postranách nahoře

Přehled naměřených hodnot pro 10 pozorování je uveden v následující tabulce.



Pro porovnání různých výsledků se stejnou uživatelskou základnou a stejným počtem sedadel uvádím následující tabulku 10-ti pozorování při nejfrekventovaněji navštěvovaných filmech. Pro tato pozorování se od předchozího změnila tato konfigurace sálu:
 * 3 uličky -> žádná ulička
 * Dvoje dveře postranách nahoře -> jedny dveře vlevo od sedadel



=Závěr= Jak vyplívá z výše uvedených výsledků, popularita filmů je v korelaci s dobou potřebnou pro usazení publika, přičemž z faktu, že návštěvnost je na popularitu filmů výrazně citlivější lze odvodit, že doba potřebná k usazení návštěvníků je závislá především na velikosti sálu, než na jeho zaplnění. Tento fenomén bude připomenut ještě později.

Zároveň stojí za povšimnutí samotná doba potřebná pro usazení. Za reálného předpokladu, že jedna časová jednotka NetLogo může být reprezenována čtyřmi vteřinami, lze tvrdit, že zhruba ze třetiny zaplněný sál Milevského kina lze bez zbytečného zdržování zaplnit za 3 minuty. V extrémních případech se dle pozorování daří tento sál vyprodat, nebo se k tomuto stavu blížit.

Nově navrhovaný sál je znatelně větší (celkem 792 sedadel, o 652 více než v předchozím případě). Ze zhruba třetiny vyprodané kapacity ho lze naplnit diváky za přibližně 9 minut. Takovéto markantní navýšení potřebného času je pravděpodobně přisouzeno většímu mnošství lidí, kteří se musejí dostat jednotlivými uličkami. Velmi zajímavé je, že při odstranění uličky (3. případ) a umístění pouze jednich dveří, ale za to výhodněji ke všem sedadlům, se při zhruba stejné kapacitě tato doba zkrátí na zhruba 5 minut, tedy na dobu o celé 4 minuty kratší. Tuto variantu lze tedy díky tomuto pozorování označit za výhodnější a lépe optimalizovanou.

Analogickým způsobem lze tento model využít pro simulaci jakéhokoliv jiného kinosálu za pomocí existující parametrizace celého modelu.

=Kód= Soubor NetLogo je dostupný zde. Kód je na příhodných místech hojně okomentován.

[[Media:Kinosál.nlogo]]