Difference between revisions of "Kinosál (NetLogo)"

From Simulace.info
Jump to: navigation, search
m (termín doplnění)
m
 
(6 intermediate revisions by the same user not shown)
Line 1: Line 1:
Bude doplněno nejpozději ve středu 21.6.
+
[[File:Kinosal-ilustrace.png|right|alt=Kinosál|'''Schéma 1'''. Ilustrace kinosálu.]]
  
 
=Zadání=
 
=Zadání=
Line 14: Line 14:
  
 
=Definice problému=
 
=Definice problému=
Bude doplněno.
+
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íl==
Bude doplněno.
+
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=
Bude doplněno.
+
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=
 
=Model=
Bude doplněno.
+
==Koncepce modelu==
 +
Obecný model kinosálu prochází během svého života následujícím procesem:
 +
# Postavení scény
 +
## Postavení rozložení sedadel a uliček v kinosálu
 +
## Nastavení odhadu prodeje vstupenek, vytvoření vstupenek
 +
## Prodání vstupenek na konkrétní místa v sálu
 +
## Rezervace sedadel dle prodaných vstupenek. Rezervovaná místa se od volných liší vyplněním.
 +
# Volba dveří v modelu - na výběr je 7 dveří ze všech stran, které lze libovolně využívat a schovávat
 +
# Přivolání návštěvníků
 +
## Návštěvníci přicházejí v různé náladě rozmístěni do použitých dveří v kinosálu
 +
## 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.
 +
# Otevření kinosálu
 +
## Návštěvník zamíří ze dveří ke svému sedadlu
 +
## V davu jsou jen velmi omezené možnosti pohybu
 +
## V případě, že narazí na překážku, jako např. řada sedadel vyhne se vyhledáním uličky
 +
## Návštěvník preferuje cestu v uličkách spíše než se prodírat mezi řadami sedadel
 +
## Návštěvník může na své sedadlo usednout jedině ze správného směru
 +
## 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:
 +
# Tlačítko ''Nastavit scénu'' provede bod 1 v předchozím popisu.
 +
# 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.
 +
# Tlačítko ''Přivolat návštěvníky'' provede bod 3 v předchozím popisu.
 +
# 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=
 
=Výsledky=
Bude doplněno.
+
==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
 +
 
 +
{| class="wikitable"
 +
! style="font-weight: bold;" | Popularita
 +
! colspan="2" style="text-align: center; font-weight: bold;" | 100%
 +
! colspan="2" style="text-align: center; font-weight: bold;" | 60%
 +
! colspan="2" style="text-align: center; font-weight: bold;" | 20%
 +
|-
 +
| rowspan="21" |
 +
| style="font-weight: bold;" | Návštěvnost
 +
| style="font-weight: bold;" | Doba obsazení
 +
| style="font-weight: bold;" | Návštěvnost
 +
| style="font-weight: bold;" | Doba obsazení
 +
| style="font-weight: bold;" | Návštěvnost
 +
| style="font-weight: bold;" | Doba obsazení
 +
|-
 +
| style="text-align: center;" | 140
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 43
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 1
 +
| style="text-align: center;" | 18
 +
|-
 +
| style="text-align: center;" | 42
 +
| style="text-align: center;" | 44
 +
| style="text-align: center;" | 7
 +
| style="text-align: center;" | 37
 +
| style="text-align: center;" | 26
 +
| style="text-align: center;" | 46
 +
|-
 +
| style="text-align: center;" | 94
 +
| style="text-align: center;" | 45
 +
| style="text-align: center;" | 34
 +
| style="text-align: center;" | 48
 +
| style="text-align: center;" | 4
 +
| style="text-align: center;" | 45
 +
|-
 +
| style="text-align: center;" | 120
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 8
 +
| style="text-align: center;" | 36
 +
| style="text-align: center;" | 7
 +
| style="text-align: center;" | 45
 +
|-
 +
| style="text-align: center;" | 2
 +
| style="text-align: center;" | 43
 +
| style="text-align: center;" | 1
 +
| style="text-align: center;" | 34
 +
| style="text-align: center;" | 4
 +
| style="text-align: center;" | 28
 +
|-
 +
| style="text-align: center;" | 72
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 4
 +
| style="text-align: center;" | 36
 +
| style="text-align: center;" | 8
 +
| style="text-align: center;" | 39
 +
|-
 +
| style="text-align: center;" | 5
 +
| style="text-align: center;" | 43
 +
| style="text-align: center;" | 76
 +
| style="text-align: center;" | 47
 +
| style="text-align: center;" | 11
 +
| style="text-align: center;" | 41
 +
|-
 +
| style="text-align: center;" | 19
 +
| style="text-align: center;" | 42
 +
| style="text-align: center;" | 6
 +
| style="text-align: center;" | 34
 +
| style="text-align: center;" | 10
 +
| style="text-align: center;" | 37
 +
|-
 +
| style="text-align: center;" | 24
 +
| style="text-align: center;" | 45
 +
| style="text-align: center;" | 1
 +
| style="text-align: center;" | 24
 +
| style="text-align: center;" | 5
 +
| style="text-align: center;" | 37
 +
|-
 +
| style="text-align: center;" | 14
 +
| style="text-align: center;" | 41
 +
| style="text-align: center;" | 36
 +
| style="text-align: center;" | 43
 +
| style="text-align: center;" | 4
 +
| style="text-align: center;" | 41
 +
|-
 +
| style="text-align: center;" | 21
 +
| style="text-align: center;" | 42
 +
| style="text-align: center;" | 6
 +
| style="text-align: center;" | 34
 +
| style="text-align: center;" | 7
 +
| style="text-align: center;" | 41
 +
|-
 +
| style="text-align: center;" | 134
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 48
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 31
 +
| style="text-align: center;" | 43
 +
|-
 +
| style="text-align: center;" | 59
 +
| style="text-align: center;" | 47
 +
| style="text-align: center;" | 69
 +
| style="text-align: center;" | 45
 +
| style="text-align: center;" | 4
 +
| style="text-align: center;" | 41
 +
|-
 +
| style="text-align: center;" | 10
 +
| style="text-align: center;" | 40
 +
| style="text-align: center;" | 80
 +
| style="text-align: center;" | 48
 +
| style="text-align: center;" | 3
 +
| style="text-align: center;" | 26
 +
|-
 +
| style="text-align: center;" | 51
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 27
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 1
 +
| style="text-align: center;" | 25
 +
|-
 +
| style="text-align: center;" | 74
 +
| style="text-align: center;" | 43
 +
| style="text-align: center;" | 53
 +
| style="text-align: center;" | 47
 +
| style="text-align: center;" | 5
 +
| style="text-align: center;" | 37
 +
|-
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 43
 +
| style="text-align: center;" | 111
 +
| style="text-align: center;" | 45
 +
| style="text-align: center;" | 1
 +
| style="text-align: center;" | 29
 +
|-
 +
| style="text-align: center;" | 84
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 14
 +
| style="text-align: center;" | 41
 +
| style="text-align: center;" | 37
 +
| style="text-align: center;" | 45
 +
|-
 +
| style="text-align: center;" | 17
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 6
 +
| style="text-align: center;" | 41
 +
| style="text-align: center;" | 2
 +
| style="text-align: center;" | 39
 +
|-
 +
| style="text-align: center;" | 88
 +
| style="text-align: center;" | 46
 +
| style="text-align: center;" | 1
 +
| style="text-align: center;" | 20
 +
| style="text-align: center;" | 3
 +
| style="text-align: center;" | 32
 +
|-
 +
| style="font-weight: bold;" | Průměr
 +
| style="text-align: center; font-weight: bold;" | 55,8
 +
| style="text-align: center; font-weight: bold;" | 44,3
 +
| style="text-align: center; font-weight: bold;" | 31,55
 +
| style="text-align: center; font-weight: bold;" | 39,9
 +
| style="text-align: center; font-weight: bold;" | 8,7
 +
| style="text-align: center; font-weight: bold;" | 36,75
 +
|}
 +
[[File:Kinosal-1.png||alt=Kinosál Milevsko|'''Schéma 2'''. Kinosál je připravený na vpuštění lidí. Předem zakoupená sedadla jsou označena.]]
 +
 
 +
==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.
 +
 
 +
{| class="wikitable"
 +
! style="font-weight: bold;" | Popularita
 +
! colspan="2" style="text-align: center; font-weight: bold;" | 100%
 +
! colspan="2" style="text-align: center; font-weight: bold;" | 60%
 +
! colspan="2" style="text-align: center; font-weight: bold;" | 20%
 +
|-
 +
| rowspan="11" style="font-weight: bold;" |
 +
| style="font-weight: bold;" | Návštěvnost
 +
| style="font-weight: bold;" | Doba obsazení
 +
| style="font-weight: bold;" | Návštěvnost
 +
| style="font-weight: bold;" | Doba obsazení
 +
| style="font-weight: bold;" | Návštěvnost
 +
| style="font-weight: bold;" | Doba obsazení
 +
|-
 +
| style="text-align: center;" | 528
 +
| style="text-align: center;" | 139
 +
| style="text-align: center;" | 21
 +
| style="text-align: center;" | 135
 +
| style="text-align: center;" | 17
 +
| style="text-align: center;" | 129
 +
|-
 +
| style="text-align: center;" | 25
 +
| style="text-align: center;" | 128
 +
| style="text-align: center;" | 95
 +
| style="text-align: center;" | 137
 +
| style="text-align: center;" | 83
 +
| style="text-align: center;" | 137
 +
|-
 +
| style="text-align: center;" | 63
 +
| style="text-align: center;" | 94
 +
| style="text-align: center;" | 102
 +
| style="text-align: center;" | 139
 +
| style="text-align: center;" | 147
 +
| style="text-align: center;" | 102
 +
|-
 +
| style="text-align: center;" | 368
 +
| style="text-align: center;" | 142
 +
| style="text-align: center;" | 79
 +
| style="text-align: center;" | 138
 +
| style="text-align: center;" | 45
 +
| style="text-align: center;" | 129
 +
|-
 +
| style="text-align: center;" | 329
 +
| style="text-align: center;" | 151
 +
| style="text-align: center;" | 42
 +
| style="text-align: center;" | 130
 +
| style="text-align: center;" | 72
 +
| style="text-align: center;" | 138
 +
|-
 +
| style="text-align: center;" | 58
 +
| style="text-align: center;" | 144
 +
| style="text-align: center;" | 58
 +
| style="text-align: center;" | 138
 +
| style="text-align: center;" | 32
 +
| style="text-align: center;" | 143
 +
|-
 +
| style="text-align: center;" | 17
 +
| style="text-align: center;" | 128
 +
| style="text-align: center;" | 185
 +
| style="text-align: center;" | 129
 +
| style="text-align: center;" | 40
 +
| style="text-align: center;" | 134
 +
|-
 +
| style="text-align: center;" | 242
 +
| style="text-align: center;" | 132
 +
| style="text-align: center;" | 177
 +
| style="text-align: center;" | 131
 +
| style="text-align: center;" | 20
 +
| style="text-align: center;" | 137
 +
|-
 +
| style="text-align: center;" | 65
 +
| style="text-align: center;" | 174
 +
| style="text-align: center;" | 183
 +
| style="text-align: center;" | 139
 +
| style="text-align: center;" | 15
 +
| style="text-align: center;" | 118
 +
|-
 +
| style="text-align: center;" | 564
 +
| style="text-align: center;" | 144
 +
| style="text-align: center;" | 561
 +
| style="text-align: center;" | 152
 +
| style="text-align: center;" | 26
 +
| style="text-align: center;" | 121
 +
|-
 +
| style="font-weight: bold;" | Průměr
 +
| style="text-align: center; font-weight: bold;" | 225,9
 +
| style="text-align: center; font-weight: bold;" | 137,6
 +
| style="text-align: center; font-weight: bold;" | 150,3
 +
| style="text-align: center; font-weight: bold;" | 136,8
 +
| style="text-align: center; font-weight: bold;" | 49,7
 +
| style="text-align: center; font-weight: bold;" | 128,8
 +
|}
 +
[[File:Kinosal-2.png||alt=Kinosál|'''Schéma 3'''. Kinosál je připravený na vpuštění lidí. Předem zakoupená sedadla jsou označena.]]
 +
 
 +
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
 +
 
 +
{| class="wikitable"
 +
! style="font-weight: bold;" | Popularita
 +
! colspan="2" style="text-align: center; font-weight: bold;" | 100%
 +
|-
 +
| rowspan="11" |
 +
| style="font-weight: bold;" | Návštěvnost
 +
| style="font-weight: bold;" | Doba obsazení
 +
|-
 +
| style="text-align: center;" | 343
 +
| style="text-align: center;" | 85
 +
|-
 +
| style="text-align: center;" | 134
 +
| style="text-align: center;" | 109
 +
|-
 +
| style="text-align: center;" | 792
 +
| style="text-align: center;" | 83
 +
|-
 +
| style="text-align: center;" | 4
 +
| style="text-align: center;" | 71
 +
|-
 +
| style="text-align: center;" | 603
 +
| style="text-align: center;" | 86
 +
|-
 +
| style="text-align: center;" | 186
 +
| style="text-align: center;" | 80
 +
|-
 +
| style="text-align: center;" | 10
 +
| style="text-align: center;" | 72
 +
|-
 +
| style="text-align: center;" | 111
 +
| style="text-align: center;" | 79
 +
|-
 +
| style="text-align: center;" | 10
 +
| style="text-align: center;" | 65
 +
|-
 +
| style="text-align: center;" | 9
 +
| style="text-align: center;" | 72
 +
|-
 +
| style="font-weight: bold;" | Průměr
 +
| style="text-align: center; font-weight: bold;" | 220,2
 +
| style="text-align: center; font-weight: bold;" | 80,2
 +
|}
 +
[[File:Kinosal-3.png||alt=Kinosál|'''Schéma 4'''. Kinosál je připravený na vpuštění lidí. Předem zakoupená sedadla jsou označena.]]
  
 
=Závěr=
 
=Závěr=
Bude doplněno.
+
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=
 
=Kód=
Bude doplněno.
+
Soubor NetLogo je dostupný zde. Kód je na příhodných místech hojně okomentován.
 +
 
 +
[[Media:Kinosál.nlogo]]

Latest revision as of 06:26, 22 June 2017

Kinosál

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
    1. Postavení rozložení sedadel a uliček v kinosálu
    2. Nastavení odhadu prodeje vstupenek, vytvoření vstupenek
    3. Prodání vstupenek na konkrétní místa v sálu
    4. Rezervace sedadel dle prodaných vstupenek. Rezervovaná místa se od volných liší vyplněním.
  2. Volba dveří v modelu - na výběr je 7 dveří ze všech stran, které lze libovolně využívat a schovávat
  3. Přivolání návštěvníků
    1. Návštěvníci přicházejí v různé náladě rozmístěni do použitých dveří v kinosálu
    2. 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.
  4. Otevření kinosálu
    1. Návštěvník zamíří ze dveří ke svému sedadlu
    2. V davu jsou jen velmi omezené možnosti pohybu
    3. V případě, že narazí na překážku, jako např. řada sedadel vyhne se vyhledáním uličky
    4. Návštěvník preferuje cestu v uličkách spíše než se prodírat mezi řadami sedadel
    5. Návštěvník může na své sedadlo usednout jedině ze správného směru
    6. 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
Popularita 100% 60% 20%
Návštěvnost Doba obsazení Návštěvnost Doba obsazení Návštěvnost Doba obsazení
140 46 43 46 1 18
42 44 7 37 26 46
94 45 34 48 4 45
120 46 8 36 7 45
2 43 1 34 4 28
72 46 4 36 8 39
5 43 76 47 11 41
19 42 6 34 10 37
24 45 1 24 5 37
14 41 36 43 4 41
21 42 6 34 7 41
134 46 48 46 31 43
59 47 69 45 4 41
10 40 80 48 3 26
51 46 27 46 1 25
74 43 53 47 5 37
46 43 111 45 1 29
84 46 14 41 37 45
17 46 6 41 2 39
88 46 1 20 3 32
Průměr 55,8 44,3 31,55 39,9 8,7 36,75

Kinosál Milevsko

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.

Popularita 100% 60% 20%
Návštěvnost Doba obsazení Návštěvnost Doba obsazení Návštěvnost Doba obsazení
528 139 21 135 17 129
25 128 95 137 83 137
63 94 102 139 147 102
368 142 79 138 45 129
329 151 42 130 72 138
58 144 58 138 32 143
17 128 185 129 40 134
242 132 177 131 20 137
65 174 183 139 15 118
564 144 561 152 26 121
Průměr 225,9 137,6 150,3 136,8 49,7 128,8

Kinosál

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
Popularita 100%
Návštěvnost Doba obsazení
343 85
134 109
792 83
4 71
603 86
186 80
10 72
111 79
10 65
9 72
Průměr 220,2 80,2

Kinosál

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