Difference between revisions of "User:Kubd06"
(→Výsledky) |
m (→Závěr: - oprava pravopisu) |
||
| (29 intermediate revisions by the same user not shown) | |||
| Line 16: | Line 16: | ||
Alternativní metodologické přístupy zahrnují: | Alternativní metodologické přístupy zahrnují: | ||
| − | ''Tradiční matematické modely'', které používají analytické nástroje, avšak často vyžadují zjednodušené předpoklady a obtížně zachycují interakce mezi prvky systému. | + | * ''Tradiční matematické modely'', které používají analytické nástroje, avšak často vyžadují zjednodušené předpoklady a obtížně zachycují interakce mezi prvky systému. |
| − | ''Discrete Event Simulation (DES)'', která modeluje systém jako posloupnost diskrétních událostí v čase. Tento přístup však méně efektivně zachycuje prostorové interakce mezi agenty. | + | * ''Discrete Event Simulation (DES)'', která modeluje systém jako posloupnost diskrétních událostí v čase. Tento přístup však méně efektivně zachycuje prostorové interakce mezi agenty. |
=Model= | =Model= | ||
| Line 33: | Line 33: | ||
Vchod určuje startovní bod pohybu a ovlivňuje rozložení toku zákazníků v prostoru. | Vchod určuje startovní bod pohybu a ovlivňuje rozložení toku zákazníků v prostoru. | ||
| − | + | * Slouží jako vstupní bod pro nové zákazníky. Každý nově generovaný agent (zákazník) se zde objeví na začátku své cesty. | |
| − | + | * Pokud je vchod obsazen, noví zákazníci čekají, dokud se místo neuvolní, což zabraňuje "přetékání" zákazníků do obchodu. | |
'''Regály''' (Shelves): 6 barevně odlišených regálů, každý reprezentuje jednu kategorii zboží. | '''Regály''' (Shelves): 6 barevně odlišených regálů, každý reprezentuje jednu kategorii zboží. | ||
| − | + | * Regály jsou rozmístěny tak, aby vytvářely uličky a určovaly hlavní trasy pohybu zákazníků. | |
| − | + | * Zákazníci navštěvují regály podle svého nákupního seznamu a u každého regálu mohou strávit určitý čas (simulace výběru zboží). | |
'''Uličky''' (Aisles): Prostory mezi regály, kudy se zákazníci pohybují. | '''Uličky''' (Aisles): Prostory mezi regály, kudy se zákazníci pohybují. | ||
| − | + | * Slouží jako "cesty", po kterých se zákazníci pohybují mezi vchodem, regály a pokladnami. | |
| − | + | * Zákazníci v uličkách volí nejkratší cestu ke svému cíli a vyhýbají se překážkám (regálům a ostatním zákazníkům). | |
'''Pokladny''' (Checkouts): Speciální pole (patches), kde zákazníci čekají ve frontě a platí. | '''Pokladny''' (Checkouts): Speciální pole (patches), kde zákazníci čekají ve frontě a platí. | ||
Pokladny jsou často hlavním úzkým místem v systému, kde se tvoří fronty a může docházet ke zpoždění. | Pokladny jsou často hlavním úzkým místem v systému, kde se tvoří fronty a může docházet ke zpoždění. | ||
| − | + | * Zákazníci zde čekají ve frontě, jsou odbaveni a platí za nákup. | |
| − | + | * Každá pokladna má vlastní frontu, zákazníci si vybírají tu nejkratší. | |
| − | + | * Délka čekání závisí na počtu položek v košíku a rychlosti odbavování (což je nastavitelný parametr). | |
'''Východ''' (Exit): | '''Východ''' (Exit): | ||
Východ uzavírá cestu zákazníka a umožňuje sledovat průchodnost systému (kolik zákazníků bylo obslouženo za časový úsek). | Východ uzavírá cestu zákazníka a umožňuje sledovat průchodnost systému (kolik zákazníků bylo obslouženo za časový úsek). | ||
| − | + | * Po zaplacení zákazníci směřují k východu, kde opouštějí obchod a jsou odstraněni ze simulace. | |
| − | + | * Zákazník po odbavení automaticky vyhledá východ a pohybuje se k němu nejkratší cestou. | |
| − | === | + | === Agenti === |
'''a. Zákazníci''' (Customers) | '''a. Zákazníci''' (Customers) | ||
| Line 66: | Line 66: | ||
''Typy:'' | ''Typy:'' | ||
| − | Velkonákupčí (pomalejší) a Běžní nákupčí (rychlejší) (liší se rychlostí pohybu a délkou pobytu). | + | Velkonákupčí (pomalejší) a Běžní nákupčí (rychlejší) (liší se rychlostí pohybu a délkou pobytu). Delší nákupčí jsou ti, kteří přišli například pro větší rodinný nákup a běžné nákupčí, kteří dorazili například pro svačinu a většinou spěchají. |
* Každý zákazník má náhodně generovaný nákupní seznam (shopping list) s 3–6 položkami. | * Každý zákazník má náhodně generovaný nákupní seznam (shopping list) s 3–6 položkami. | ||
* Mohou provádět impulzivní nákupy (pravděpodobnost se nastavuje na slideru). | * Mohou provádět impulzivní nákupy (pravděpodobnost se nastavuje na slideru). | ||
| Line 80: | Line 80: | ||
''Atributy:'' | ''Atributy:'' | ||
| − | Položky v košíku, čas strávený v obchodě, aktuální cíl (regál, pokladna, východ) | + | Položky v košíku, čas strávený v obchodě, aktuální cíl (regál, pokladna, východ) a impulzivitu nákupu. |
''Další:'' | ''Další:'' | ||
* V průběhu nákupu mohou dělat impulzivní nákupy podle zvolené pravděpodobností, tento nákup je navýšení běžného počtu produkt. | * V průběhu nákupu mohou dělat impulzivní nákupy podle zvolené pravděpodobností, tento nákup je navýšení běžného počtu produkt. | ||
| − | * V modelu jde | + | * V modelu jde rovněž navolit i pravděpodobnost příchodu dalších zákazníků, ta ovlivňuje zatížení obchodu. |
popis rychlí nákupčí: | popis rychlí nákupčí: | ||
| Line 95: | Line 95: | ||
* Běžný nákup: Doba v obchodě 10–20 minut (lze upravit dle potřeby) | * Běžný nákup: Doba v obchodě 10–20 minut (lze upravit dle potřeby) | ||
| − | |||
* Počet produktů, které potřebuje pořídit 3-6 (lze upravit dle potřeby) | * Počet produktů, které potřebuje pořídit 3-6 (lze upravit dle potřeby) | ||
'''b. Regály''' (Shelves) | '''b. Regály''' (Shelves) | ||
Statické objekty, reprezentují kategorie zboží. Každý má přiřazenou barvu, produkty a pozici v prostoru. | Statické objekty, reprezentují kategorie zboží. Každý má přiřazenou barvu, produkty a pozici v prostoru. | ||
| − | V tuto chvíli je v modelu 6 regálů (ovoce, zelenina, pečivo, nápoje, maso, drogerie). Tvoří překážky, které ovlivňují pohyb zákazníků, zároveň představuje cíl, ke kterému zákazníci směřují podle svého nákupního seznamu | + | V tuto chvíli je v modelu 6 regálů (ovoce, zelenina, pečivo, nápoje, maso, drogerie). Tvoří překážky, které ovlivňují pohyb zákazníků, zároveň představuje cíl, ke kterému zákazníci směřují podle svého nákupního seznamu. |
'''c. Pokladny''' (Checkouts) | '''c. Pokladny''' (Checkouts) | ||
| Line 114: | Line 113: | ||
# Jsou odbavení a po zaplacení opouští frontu | # Jsou odbavení a po zaplacení opouští frontu | ||
# Míří k východu a opouští obchod | # Míří k východu a opouští obchod | ||
| − | V průběhu se generují nový zákazníci a sbírají data. | + | V průběhu se generují nový zákazníci a sbírají se data. |
=== Ostatní: === | === Ostatní: === | ||
| Line 129: | Line 128: | ||
* Pohyb zákazníků je založen na jednoduchých pravidlech, chybí komplexnější rozhodovací procesy, sociální interakce, nebo reakce na přeplněnost určitých zón. | * Pohyb zákazníků je založen na jednoduchých pravidlech, chybí komplexnější rozhodovací procesy, sociální interakce, nebo reakce na přeplněnost určitých zón. | ||
* Absence směn zaměstnanců a tím omezení chodu pokladen. | * Absence směn zaměstnanců a tím omezení chodu pokladen. | ||
| − | * Absence faktoru denní doby | + | * Absence faktoru denní doby a ročních období |
=Výsledky= | =Výsledky= | ||
| − | + | Model supermarketu umožňuje flexibilní testování různých provozních scénářů díky možnosti dynamického nastavování vstupních parametrů pomocí interaktivních sliderů. Tato funkcionalita umožňuje uživateli simulovat různé situace, sledovat jejich dopady na chování systému a analyzovat průběh i výsledky bez potřeby zásahů do samotného kódu. | |
[[File:Prostředí1.jpg]] | [[File:Prostředí1.jpg]] | ||
| − | Nejzásadnějšími prvky ovlivňujícími chod | + | Nejzásadnějšími prvky ovlivňujícími chod simulace jsou slidery pro nastavení pravděpodobnosti příchodu nového zákazníka (%) a rychlosti odbavení u pokladny (checkout-speed). V kódu konzole pak lze podrobně specifikovat parametry jednotlivých zákazníků, jako je jejich rychlost pohybu nebo velikost nákupního košíku, což zvyšuje úroveň detailu a věrohodnosti simulace. |
| + | |||
| + | |||
| + | == Scénáře == | ||
| − | + | Pro interpretaci výsledků jsem si určil 3 základní možné scénáře testování. | |
| + | * Běžný provoz prodejen | ||
| + | * Víkendový provoz | ||
| + | * Sváteční/Vánoční provoz | ||
| − | + | Aby byly výsledky scénářů vzájemně srovnatelné, byly všechny vyhodnocovány až po odbavení alespoň 200 zákazníků. Tento počet poskytuje dostatečně stabilní vzorek, který eliminuje výrazné výkyvy typické pro počáteční fáze simulace a umožňuje spolehlivější pozorování dlouhodobých trendů. | |
| − | Pro každý scénář | + | '''Pro každý scénář bylo sledováno:''' |
* Rychlost odbavování pokladním: v sekund/položka | * Rychlost odbavování pokladním: v sekund/položka | ||
* Pravděpodobnost impulzivního nákupu: v % | * Pravděpodobnost impulzivního nákupu: v % | ||
| Line 157: | Line 162: | ||
=== 1. scénář === | === 1. scénář === | ||
| − | Parametry: | + | Běžný provoz prodejen - představuje standardní každodenní chod obchodu, kdy se návštěvnost zákazníků pohybuje v obvyklých mezích bez výrazných špiček či sezónních výkyvů. |
| + | |||
| + | '''Parametry:''' | ||
*Rychlost odbavování pokladním: 5 sekund/položka | *Rychlost odbavování pokladním: 5 sekund/položka | ||
| Line 185: | Line 192: | ||
Graf 3 ilustruje vývoj tržeb v čase.'' | Graf 3 ilustruje vývoj tržeb v čase.'' | ||
| − | Interpretace: | + | '''Interpretace:''' |
Z výstupů simulace vyplývá, že v základním nastavení je systém relativně stabilní. Fronty u pokladen se sice tvoří, avšak jejich délka nepřesahuje dva zákazníky, což lze považovat za uspokojivý výsledek. Průchodnost supermarketu je plynulá, zákazníci nejsou zdržováni nadměrně dlouhou čekací dobou, což přispívá k pozitivní zákaznické zkušenosti i efektivnímu provozu. | Z výstupů simulace vyplývá, že v základním nastavení je systém relativně stabilní. Fronty u pokladen se sice tvoří, avšak jejich délka nepřesahuje dva zákazníky, což lze považovat za uspokojivý výsledek. Průchodnost supermarketu je plynulá, zákazníci nejsou zdržováni nadměrně dlouhou čekací dobou, což přispívá k pozitivní zákaznické zkušenosti i efektivnímu provozu. | ||
| Line 191: | Line 198: | ||
Simulace rovněž ukazuje, že průměrná útrata na zákazníka činí 344,86 Kč, což odpovídá očekávané hodnotě pro menší maloobchodní provoz. Tento údaj může sloužit jako referenční bod při nastavování cílových metrik výkonnosti modelu. | Simulace rovněž ukazuje, že průměrná útrata na zákazníka činí 344,86 Kč, což odpovídá očekávané hodnotě pro menší maloobchodní provoz. Tento údaj může sloužit jako referenční bod při nastavování cílových metrik výkonnosti modelu. | ||
| − | Z přiložených grafů je patrné, že simulace byla nastavena efektivně | + | Z přiložených grafů je patrné, že simulace byla nastavena efektivně, jelikož nedochází k výraznému hromadění zákazníků ve frontách, současně však celkový zisk kontinuálně roste a nevykazuje známky stagnace či poklesu. Tento trend je z hlediska podnikové udržitelnosti a profitability pozitivní a nasvědčuje tomu, že model v základní konfiguraci představuje optimálně fungující provozní nastavení. |
=== 2. scénář === | === 2. scénář === | ||
| − | + | Vysoká návštěvnost - aneb víkendový provoz, Tento scénář se od původního liší v možnosti množství příchodu nový zákazníků. | |
| − | Parametry: | + | '''Parametry:''' |
| − | *Rychlost odbavování: 5 sekund/položka | + | *Rychlost odbavování pokladním: 5 sekund/položka |
*Pravděpodobnost impulzivního nákupu: 15 % | *Pravděpodobnost impulzivního nákupu: 15 % | ||
| − | *Příchod nových zákazníků: | + | *Příchod nových zákazníků: 25 % každý tick |
| Line 209: | Line 216: | ||
* Obsloužených zákazníků: 200 | * Obsloužených zákazníků: 200 | ||
| − | * Průměrná délka fronty: | + | * Průměrná délka fronty: 1.2 |
| − | * Maximální délka fronty: | + | * Maximální délka fronty: 5 |
| − | * Celkové tržby: | + | * Celkové tržby: 70725 Kč |
| − | * Průměrné tržby na zákazníka: | + | * Průměrné tržby na zákazníka: 327.43 Kč |
* Interval příchodu: 20 | * Interval příchodu: 20 | ||
* Průměrný čas odbavení: 15 | * Průměrný čas odbavení: 15 | ||
| − | |||
| − | [[File: | + | |
| + | [[File:Výsledek1_2.jpg]] | ||
''Graf1: zachycuje vývoj počtu zákazníků v čase. Černá linie představuje celkový počet zákazníků přítomných v systému (včetně těch, kteří nakupují či čekají ve frontě). Šedá linie ukazuje počet zákazníků aktuálně pohybujících se po obchodě a nakupujících. Červená linie znázorňuje počet zákazníků čekajících ve frontě u pokladny. | ''Graf1: zachycuje vývoj počtu zákazníků v čase. Černá linie představuje celkový počet zákazníků přítomných v systému (včetně těch, kteří nakupují či čekají ve frontě). Šedá linie ukazuje počet zákazníků aktuálně pohybujících se po obchodě a nakupujících. Červená linie znázorňuje počet zákazníků čekajících ve frontě u pokladny. | ||
| Line 225: | Line 232: | ||
Graf 3 ilustruje vývoj tržeb v čase.'' | Graf 3 ilustruje vývoj tržeb v čase.'' | ||
| − | Interpretace: | + | '''Interpretace:''' |
| − | Z výstupů simulace vyplývá, že v | + | Z výstupů simulace vyplývá, že i v tomto scénáři zůstává systém relativně stabilní. Fronty u pokladen se sice opět tvoří, avšak v porovnání s předchozím modelem jsou znatelně delší, což může signalizovat částečné přetížení systému. Přestože průchodnost supermarketu jako celku je zachována, prodlužující se čekací doby mohou negativně ovlivnit zákaznickou zkušenost, a tím i chování návštěvníků. |
| − | + | Průměrná útrata na jednoho zákazníka činí 327,43 Kč, což je oproti předchozímu scénáři mírný pokles. Tento výsledek lze interpretovat jako důsledek vyšší návštěvnosti, která vede k přetížení pokladen a delším frontám. | |
| + | Z přiložených grafů je patrné, že v tomto scénáři dochází k výraznějšímu hromadění zákazníků ve frontách, což potvrzuje dříve uvedené závěry. Celkový zisk v čase sice nadále roste, ale pomalejším tempem než v předchozím nastavení, pravděpodobně v důsledku nižší průměrné útraty a zpomaleného odbavování. | ||
| − | Z | + | Z prvního grafu je dále patrné, že se v tomto scénáři nachází vyšší počet zákazníků v obchodě, což odpovídá zvýšené pravděpodobnosti jejich příchodu. Tento výsledek je konzistentní s očekáváním – vyšší frekvence příchodů logicky vede k většímu okamžitému zatížení systému. Lze přirovnat k víkendovým výkyvům, kdy je příliv zákazníku větší. |
=== 3. scénář === | === 3. scénář === | ||
| + | |||
| + | Scénář s vysokými hodnotami impulzivních nákupů, pomalejší rychlostí odbavení zákazníků a zvýšenou pravděpodobností příchodu zákazníků lze interpretovat jako scénář, který odráží situaci typickou pro závěr roku, kdy vlivem sváteční atmosféry a časového tlaku dochází ke zvýšení jak počtu návštěvníků, tak jejich tendence k impulzivnímu nákupnímu chování. Z pohledu simulace je tento stav cenný pro testování robustnosti systému vůči nárazovému přetížení. Pomalejší rychlostí odbavení zákazníků lze interpretovat vyšším vytížením zaměstnanců při vánocích, a díky tomu zpomalení jejich výkonnosti. | ||
| + | |||
| + | '''Parametry:''' | ||
| + | |||
| + | *Rychlost odbavování pokladním: 10 sekund/položka | ||
| + | |||
| + | *Pravděpodobnost impulzivního nákupu: 30 % | ||
| + | |||
| + | *Příchod nových zákazníků: 20 % | ||
| + | |||
| + | |||
| + | '''Výsledky''' (Výpis z Command centra): | ||
| + | |||
| + | * Obsloužených zákazníků: 200 | ||
| + | * Průměrná délka fronty: 11 | ||
| + | * Maximální délka fronty: 14 | ||
| + | * Celkové tržby: 73576 Kč | ||
| + | * Průměrné tržby na zákazníka: 350.36 Kč | ||
| + | * Interval příchodu: 20 | ||
| + | * Průměrný čas odbavení: 10 | ||
| + | * Využití systému: 50% | ||
| + | |||
| + | |||
| + | |||
| + | [[File:Výsledek1_4.jpg]] | ||
| + | |||
| + | ''Graf1: zachycuje vývoj počtu zákazníků v čase. Černá linie představuje celkový počet zákazníků přítomných v systému (včetně těch, kteří nakupují či čekají ve frontě). Šedá linie ukazuje počet zákazníků aktuálně pohybujících se po obchodě a nakupujících. Červená linie znázorňuje počet zákazníků čekajících ve frontě u pokladny. | ||
| + | |||
| + | Graf2: zobrazuje vývoj front v čase, Černá linie vyjadřuje průměrnou délku fronty napříč pokladnami, zatímco šedá linie ukazuje maximální zaznamenanou délku fronty v daném časovém úseku. | ||
| + | |||
| + | Graf 3 ilustruje vývoj tržeb v čase.'' | ||
| + | |||
| + | '''Interpretace:''' | ||
| + | |||
| + | Z výstupů simulace vyplývá, že s rostoucí návštěvností supermarketu dochází k výraznému nárůstu front u pokladen, což signalizuje vyšší zatížení systému. Přestože celková průchodnost supermarketu zůstává funkční, prodlužující se čekací doby negativně ovlivňují komfort zákazníků. Tento jev je však v kontextu předvánoční nákupní špičky očekávatelný a reálně odráží běžnou situaci v obchodech během vrcholu sezóny. | ||
| + | |||
| + | Průměrná útrata na zákazníka dosahuje 350,36 Kč, což představuje výrazný nárůst oproti scénáři 1. Přesto lze na základě charakteru vánočních nákupů – často impulzivních a nadprůměrně vysokých – očekávat ještě vyšší hodnoty. Model však nezohledňuje sezónní proměnné či změny v sortimentu, což výsledky částečně zkresluje. V porovnání se scénářem 2 je ovšem nárůst útrat výrazný, což potvrzuje, že zvýšený počet zákazníků a jejich větší ochota utrácet se promítá i do výše tržeb. | ||
| + | |||
| + | Celkové tržby vykazují stabilní růst a jsou výrazně vyšší, nicméně z pohledu autora neodpovídají plně reálnému průběhu vánoční sezóny, ve které by byl očekáván ještě výraznější ekonomický růst. | ||
| + | |||
| + | Grafy dále potvrzují očekávaný vývoj: dochází k výraznému nárůstu počtu zákazníků ve frontách, čímž se potvrzuje hypotéza o přetížení systému během špičky. Z prvního grafu je patrné, že počet zákazníků v obchodě se postupně přibližuje počtu těch, kteří čekají u pokladen – až do bodu, kdy fronty začínají převyšovat počet aktivně nakupujících. Při delší simulaci lze pozorovat, že dochází k dalšímu růstu čekajících a současnému poklesu zákazníků v prostoru prodeje. Tento vývoj je konzistentní s typickým předvánočním scénářem, kdy vysoká frekvence příchodů a omezená kapacita pokladen vedou k přehlcení systému. | ||
=Závěr= | =Závěr= | ||
| − | + | Na základě provedených simulací lze konstatovat, že navržený model supermarketu poměrně věrně zachycuje hlavní charakteristiky chování zákazníků v různých provozních scénářích. Ukázalo se, že i drobné změny v parametrech, jako je frekvence příchodu nebo míra impulzivního chování, mohou zásadně ovlivnit výslednou efektivitu systému, výši tržeb, průměrnou výši nákup i zákaznickou zkušenosti. Model odhaluje limity systému, kdy může docházet k přetížení. Přestože některé výstupy nejsou plně v souladu s realitou a autorovým přesvědčením (například v oblasti sezónních výkyvů spotřeby), simulace nabízí užitečný nástroj pro testování dopadů provozních změn v podmínkách, které by jinak bylo obtížné ověřit. | |
| − | + | =Kód= | |
| − | = | + | '''[[File:Funční_model1.nlogo]]''' |
| + | |||
| + | = Reference = | ||
| + | |||
| + | |||
| + | * Simulace-info [https://www.simulace.info/ Simulace.info] | ||
| + | * Prostředí supermarketu [https://www.zboziaprodej.cz/2023/04/04/jak-ovlivnuje-zakazniky-prostredi-ve-kterem-nakupuji/] | ||
| + | * Kapacita/rychlost pokladen [https://www.millsshelving.com.au/how-to-create-an-inviting-retail-store-layout/] | ||
| + | * How to Create an Inviting Retail Store Layout [https://www.millsshelving.com.au/how-to-create-an-inviting-retail-store-layout/?] | ||
| + | * How Understanding Your Grocery Store’s Layout Can Save You Money [https://www.goodrx.com/well-being/diet-nutrition/grocery-store-layout?] | ||
| + | * Typy zákazníků [https://strate9y.com/analyza-zakazniku-tajemstvi-uspechu-podnikani/?] | ||
| + | * Strávený čas zákazník v prodejně [Procedia-computer-science] | ||
| + | * Pochopení práce s NetLogo [https://ccl.northwestern.edu/netlogo/] | ||
Latest revision as of 23:07, 15 June 2025
Úvodní odstavec
Contents
Definice problému
Supermarkety v současné době čelí komplexním výzvám při optimalizaci rozložení regálů a organizaci prostoru s cílem maximalizovat zisk a zároveň zkrátit dobu nákupu tak, aby se prostory nepřeplnily. Různorodost nákupního chování zákazníků významně komplikuje tuto optimalizaci, kdy někteří zákazníci nakupují plánovaně podle předem připraveného seznamu, zatímco jiní se rozhodují impulzivně.
Moderní maloobchodní prodejny používají různé strategie pro optimalizaci toku zákazníků, přičemž výzkumy ukazují, že rozložení zboží v regálech má přímý dopad na prodejnost zboží. Strategické umístění impulzivně nakupovaných položek může zvýšit celkové tržby o 15-45% v závislosti na typu produktů a rozložení obchodu. Problém je umocněn skutečností, že zákazníci v průměru procházejí pouze jednu třetinu obchodu, což znamená, že velké množství produktů zůstává bez povšimnutí.
Metoda
Pro řešení problému supermarketu existuje několik metodologických přístupů, z nichž každý má své specifické výhody a omezení.
V této práci byl zvolen agent-based modeling (ABM), jenž byl implementován v prostředí aplikace NetLogo. Prostředí umožňuje simulovat jednotlivé agenty a jejich rozhodovací procesy. To je zásadní při modelování interakcí mezi zákazníky a prostředím. Oproti alternativním přístupům umožňuje ABM zachytit komplexní dynamiku systému v čase a prostoru a poskytuje vysokou flexibilitu při testování různých scénářů.
Prostředí NetLogo nabízí přehlednou syntaxi, intuitivní grafické rozhraní a silnou podporu díky rozsáhlé dokumentaci. Tyto vlastnosti významně usnadnily vývoj i vizualizaci modelu.
Alternativní metodologické přístupy zahrnují:
- Tradiční matematické modely, které používají analytické nástroje, avšak často vyžadují zjednodušené předpoklady a obtížně zachycují interakce mezi prvky systému.
- Discrete Event Simulation (DES), která modeluje systém jako posloupnost diskrétních událostí v čase. Tento přístup však méně efektivně zachycuje prostorové interakce mezi agenty.
Model
Prostředí supermarketu (Layout)
Model představuje plán supermarketu o rozměrech 33x33 a každý patch je velký 10px. Svět je uzavřený (World wraps horizontally/vertically).
Je rozděleno do sekcí:
Zeď (Wall): Ohraničuje supermarket.
Vchod (Entrance): Místo, kde zákazníci vstupují do obchod. Vchod určuje startovní bod pohybu a ovlivňuje rozložení toku zákazníků v prostoru.
- Slouží jako vstupní bod pro nové zákazníky. Každý nově generovaný agent (zákazník) se zde objeví na začátku své cesty.
- Pokud je vchod obsazen, noví zákazníci čekají, dokud se místo neuvolní, což zabraňuje "přetékání" zákazníků do obchodu.
Regály (Shelves): 6 barevně odlišených regálů, každý reprezentuje jednu kategorii zboží.
- Regály jsou rozmístěny tak, aby vytvářely uličky a určovaly hlavní trasy pohybu zákazníků.
- Zákazníci navštěvují regály podle svého nákupního seznamu a u každého regálu mohou strávit určitý čas (simulace výběru zboží).
Uličky (Aisles): Prostory mezi regály, kudy se zákazníci pohybují.
- Slouží jako "cesty", po kterých se zákazníci pohybují mezi vchodem, regály a pokladnami.
- Zákazníci v uličkách volí nejkratší cestu ke svému cíli a vyhýbají se překážkám (regálům a ostatním zákazníkům).
Pokladny (Checkouts): Speciální pole (patches), kde zákazníci čekají ve frontě a platí. Pokladny jsou často hlavním úzkým místem v systému, kde se tvoří fronty a může docházet ke zpoždění.
- Zákazníci zde čekají ve frontě, jsou odbaveni a platí za nákup.
- Každá pokladna má vlastní frontu, zákazníci si vybírají tu nejkratší.
- Délka čekání závisí na počtu položek v košíku a rychlosti odbavování (což je nastavitelný parametr).
Východ (Exit): Východ uzavírá cestu zákazníka a umožňuje sledovat průchodnost systému (kolik zákazníků bylo obslouženo za časový úsek).
- Po zaplacení zákazníci směřují k východu, kde opouštějí obchod a jsou odstraněni ze simulace.
- Zákazník po odbavení automaticky vyhledá východ a pohybuje se k němu nejkratší cestou.
Agenti
a. Zákazníci (Customers) Mají určenou rychlost pohybu, seznam zboží a cíl.
Typy:
Velkonákupčí (pomalejší) a Běžní nákupčí (rychlejší) (liší se rychlostí pohybu a délkou pobytu). Delší nákupčí jsou ti, kteří přišli například pro větší rodinný nákup a běžné nákupčí, kteří dorazili například pro svačinu a většinou spěchají.
- Každý zákazník má náhodně generovaný nákupní seznam (shopping list) s 3–6 položkami.
- Mohou provádět impulzivní nákupy (pravděpodobnost se nastavuje na slideru).
Stavy:
Mají 4:
- Shopping (nakupuje podle seznamu)
- Queuing (čeká ve frontě)
- Checkout (probíhá odbavení)
- Leaving (odchází z obchodu)
Atributy: Položky v košíku, čas strávený v obchodě, aktuální cíl (regál, pokladna, východ) a impulzivitu nákupu.
Další:
- V průběhu nákupu mohou dělat impulzivní nákupy podle zvolené pravděpodobností, tento nákup je navýšení běžného počtu produkt.
- V modelu jde rovněž navolit i pravděpodobnost příchodu dalších zákazníků, ta ovlivňuje zatížení obchodu.
popis rychlí nákupčí:
- Nákup vybraný náhodně z intervalu (Doba v obchodě 2–10 minut)
- Počet produktů, které potřebuje pořídit 1-3 (lze upravit dle potřeby)
Pomalý nákupčí:
- Běžný nákup: Doba v obchodě 10–20 minut (lze upravit dle potřeby)
- Počet produktů, které potřebuje pořídit 3-6 (lze upravit dle potřeby)
b. Regály (Shelves) Statické objekty, reprezentují kategorie zboží. Každý má přiřazenou barvu, produkty a pozici v prostoru. V tuto chvíli je v modelu 6 regálů (ovoce, zelenina, pečivo, nápoje, maso, drogerie). Tvoří překážky, které ovlivňují pohyb zákazníků, zároveň představuje cíl, ke kterému zákazníci směřují podle svého nákupního seznamu.
c. Pokladny (Checkouts) Objekty, každá má vlastní frontu zákazníků. Sleduje délku fronty v reálném čase, sleduje počet obsloužených zákazníků a je místem, kde zákazníci platí a čekají na odbavení (doba odbavení závisí na počtu položek a rychlosti pokladny - nastavitelné za pomocí sliderů).
Průběh simulace:
Simulační proces probíhá na základě jednoduchého modelu. Po Inicializaci prostředí.
- Vstupují zákazníci do obchodu
- Pohybují se mezi regály a plní nákupní seznam (+ impulzivní nákupy)
- Po dokončení se přesouvají k pokladně do nejkratší fronty
- Jsou odbavení a po zaplacení opouští frontu
- Míří k východu a opouští obchod
V průběhu se generují nový zákazníci a sbírají se data.
Ostatní:
- Model by měl i základně zaznamenávat tržby.
- Model využívá náhodné generování (nákupní seznamy, rychlost zákazníků, příchod nových zákazníků,...).
- Slidery a globální proměnné umožňují snadno měnit parametry simulace a pozorovat jejich vliv na výsledky.
Možné omezení
- Zjednodušené nákupní vzorce zákazníků
- Model nebere v potaz krádeže
- Model rozlišuje pouze dva základní typy zákazníků
- Všechny produkty jsou v modelu stejně cenné a vždy dostupné, neřeší se vyprodání zboží, omezené zásoby ani rozdíly v cenách a maržích
- Pohyb zákazníků je založen na jednoduchých pravidlech, chybí komplexnější rozhodovací procesy, sociální interakce, nebo reakce na přeplněnost určitých zón.
- Absence směn zaměstnanců a tím omezení chodu pokladen.
- Absence faktoru denní doby a ročních období
Výsledky
Model supermarketu umožňuje flexibilní testování různých provozních scénářů díky možnosti dynamického nastavování vstupních parametrů pomocí interaktivních sliderů. Tato funkcionalita umožňuje uživateli simulovat různé situace, sledovat jejich dopady na chování systému a analyzovat průběh i výsledky bez potřeby zásahů do samotného kódu.
Nejzásadnějšími prvky ovlivňujícími chod simulace jsou slidery pro nastavení pravděpodobnosti příchodu nového zákazníka (%) a rychlosti odbavení u pokladny (checkout-speed). V kódu konzole pak lze podrobně specifikovat parametry jednotlivých zákazníků, jako je jejich rychlost pohybu nebo velikost nákupního košíku, což zvyšuje úroveň detailu a věrohodnosti simulace.
Scénáře
Pro interpretaci výsledků jsem si určil 3 základní možné scénáře testování.
- Běžný provoz prodejen
- Víkendový provoz
- Sváteční/Vánoční provoz
Aby byly výsledky scénářů vzájemně srovnatelné, byly všechny vyhodnocovány až po odbavení alespoň 200 zákazníků. Tento počet poskytuje dostatečně stabilní vzorek, který eliminuje výrazné výkyvy typické pro počáteční fáze simulace a umožňuje spolehlivější pozorování dlouhodobých trendů.
Pro každý scénář bylo sledováno:
- Rychlost odbavování pokladním: v sekund/položka
- Pravděpodobnost impulzivního nákupu: v %
- Příchod nových zákazníků: v %
- Obsloužených zákazníků: v zákaznících
- Průměrná délka fronty: v zákaznících
- Maximální délka fronty: v zákaznících
- Celkové tržby: v Kč
- Průměrné tržby na zákazníka: v Kč
- Celkové využití systému: v % -> čili, zda většina zákazníků je odbavena bez dlouhého čekání.
1. scénář
Běžný provoz prodejen - představuje standardní každodenní chod obchodu, kdy se návštěvnost zákazníků pohybuje v obvyklých mezích bez výrazných špiček či sezónních výkyvů.
Parametry:
- Rychlost odbavování pokladním: 5 sekund/položka
- Pravděpodobnost impulzivního nákupu: 15 %
- Příchod nových zákazníků: 15 % každý tick
Výsledky (Výpis z Command centra):
- Obsloužených zákazníků: 200
- Průměrná délka fronty: 0.6
- Maximální délka fronty: 2
- Celkové tržby: 69662 Kč
- Průměrné tržby na zákazníka: 344.86 Kč
- Interval příchodu: 20
- Průměrný čas odbavení: 15
- Využití systému: 25% (většina zákazníků je odbavena bez dlouhého čekání)
Graf1: zachycuje vývoj počtu zákazníků v čase. Černá linie představuje celkový počet zákazníků přítomných v systému (včetně těch, kteří nakupují či čekají ve frontě). Šedá linie ukazuje počet zákazníků aktuálně pohybujících se po obchodě a nakupujících. Červená linie znázorňuje počet zákazníků čekajících ve frontě u pokladny.
Graf2: zobrazuje vývoj front v čase, Černá linie vyjadřuje průměrnou délku fronty napříč pokladnami, zatímco šedá linie ukazuje maximální zaznamenanou délku fronty v daném časovém úseku.
Graf 3 ilustruje vývoj tržeb v čase.
Interpretace:
Z výstupů simulace vyplývá, že v základním nastavení je systém relativně stabilní. Fronty u pokladen se sice tvoří, avšak jejich délka nepřesahuje dva zákazníky, což lze považovat za uspokojivý výsledek. Průchodnost supermarketu je plynulá, zákazníci nejsou zdržováni nadměrně dlouhou čekací dobou, což přispívá k pozitivní zákaznické zkušenosti i efektivnímu provozu.
Simulace rovněž ukazuje, že průměrná útrata na zákazníka činí 344,86 Kč, což odpovídá očekávané hodnotě pro menší maloobchodní provoz. Tento údaj může sloužit jako referenční bod při nastavování cílových metrik výkonnosti modelu.
Z přiložených grafů je patrné, že simulace byla nastavena efektivně, jelikož nedochází k výraznému hromadění zákazníků ve frontách, současně však celkový zisk kontinuálně roste a nevykazuje známky stagnace či poklesu. Tento trend je z hlediska podnikové udržitelnosti a profitability pozitivní a nasvědčuje tomu, že model v základní konfiguraci představuje optimálně fungující provozní nastavení.
2. scénář
Vysoká návštěvnost - aneb víkendový provoz, Tento scénář se od původního liší v možnosti množství příchodu nový zákazníků.
Parametry:
- Rychlost odbavování pokladním: 5 sekund/položka
- Pravděpodobnost impulzivního nákupu: 15 %
- Příchod nových zákazníků: 25 % každý tick
Výsledky (Výpis z Command centra):
- Obsloužených zákazníků: 200
- Průměrná délka fronty: 1.2
- Maximální délka fronty: 5
- Celkové tržby: 70725 Kč
- Průměrné tržby na zákazníka: 327.43 Kč
- Interval příchodu: 20
- Průměrný čas odbavení: 15
Graf1: zachycuje vývoj počtu zákazníků v čase. Černá linie představuje celkový počet zákazníků přítomných v systému (včetně těch, kteří nakupují či čekají ve frontě). Šedá linie ukazuje počet zákazníků aktuálně pohybujících se po obchodě a nakupujících. Červená linie znázorňuje počet zákazníků čekajících ve frontě u pokladny.
Graf2: zobrazuje vývoj front v čase, Černá linie vyjadřuje průměrnou délku fronty napříč pokladnami, zatímco šedá linie ukazuje maximální zaznamenanou délku fronty v daném časovém úseku.
Graf 3 ilustruje vývoj tržeb v čase.
Interpretace:
Z výstupů simulace vyplývá, že i v tomto scénáři zůstává systém relativně stabilní. Fronty u pokladen se sice opět tvoří, avšak v porovnání s předchozím modelem jsou znatelně delší, což může signalizovat částečné přetížení systému. Přestože průchodnost supermarketu jako celku je zachována, prodlužující se čekací doby mohou negativně ovlivnit zákaznickou zkušenost, a tím i chování návštěvníků.
Průměrná útrata na jednoho zákazníka činí 327,43 Kč, což je oproti předchozímu scénáři mírný pokles. Tento výsledek lze interpretovat jako důsledek vyšší návštěvnosti, která vede k přetížení pokladen a delším frontám. Z přiložených grafů je patrné, že v tomto scénáři dochází k výraznějšímu hromadění zákazníků ve frontách, což potvrzuje dříve uvedené závěry. Celkový zisk v čase sice nadále roste, ale pomalejším tempem než v předchozím nastavení, pravděpodobně v důsledku nižší průměrné útraty a zpomaleného odbavování.
Z prvního grafu je dále patrné, že se v tomto scénáři nachází vyšší počet zákazníků v obchodě, což odpovídá zvýšené pravděpodobnosti jejich příchodu. Tento výsledek je konzistentní s očekáváním – vyšší frekvence příchodů logicky vede k většímu okamžitému zatížení systému. Lze přirovnat k víkendovým výkyvům, kdy je příliv zákazníku větší.
3. scénář
Scénář s vysokými hodnotami impulzivních nákupů, pomalejší rychlostí odbavení zákazníků a zvýšenou pravděpodobností příchodu zákazníků lze interpretovat jako scénář, který odráží situaci typickou pro závěr roku, kdy vlivem sváteční atmosféry a časového tlaku dochází ke zvýšení jak počtu návštěvníků, tak jejich tendence k impulzivnímu nákupnímu chování. Z pohledu simulace je tento stav cenný pro testování robustnosti systému vůči nárazovému přetížení. Pomalejší rychlostí odbavení zákazníků lze interpretovat vyšším vytížením zaměstnanců při vánocích, a díky tomu zpomalení jejich výkonnosti.
Parametry:
- Rychlost odbavování pokladním: 10 sekund/položka
- Pravděpodobnost impulzivního nákupu: 30 %
- Příchod nových zákazníků: 20 %
Výsledky (Výpis z Command centra):
- Obsloužených zákazníků: 200
- Průměrná délka fronty: 11
- Maximální délka fronty: 14
- Celkové tržby: 73576 Kč
- Průměrné tržby na zákazníka: 350.36 Kč
- Interval příchodu: 20
- Průměrný čas odbavení: 10
- Využití systému: 50%
Graf1: zachycuje vývoj počtu zákazníků v čase. Černá linie představuje celkový počet zákazníků přítomných v systému (včetně těch, kteří nakupují či čekají ve frontě). Šedá linie ukazuje počet zákazníků aktuálně pohybujících se po obchodě a nakupujících. Červená linie znázorňuje počet zákazníků čekajících ve frontě u pokladny.
Graf2: zobrazuje vývoj front v čase, Černá linie vyjadřuje průměrnou délku fronty napříč pokladnami, zatímco šedá linie ukazuje maximální zaznamenanou délku fronty v daném časovém úseku.
Graf 3 ilustruje vývoj tržeb v čase.
Interpretace:
Z výstupů simulace vyplývá, že s rostoucí návštěvností supermarketu dochází k výraznému nárůstu front u pokladen, což signalizuje vyšší zatížení systému. Přestože celková průchodnost supermarketu zůstává funkční, prodlužující se čekací doby negativně ovlivňují komfort zákazníků. Tento jev je však v kontextu předvánoční nákupní špičky očekávatelný a reálně odráží běžnou situaci v obchodech během vrcholu sezóny.
Průměrná útrata na zákazníka dosahuje 350,36 Kč, což představuje výrazný nárůst oproti scénáři 1. Přesto lze na základě charakteru vánočních nákupů – často impulzivních a nadprůměrně vysokých – očekávat ještě vyšší hodnoty. Model však nezohledňuje sezónní proměnné či změny v sortimentu, což výsledky částečně zkresluje. V porovnání se scénářem 2 je ovšem nárůst útrat výrazný, což potvrzuje, že zvýšený počet zákazníků a jejich větší ochota utrácet se promítá i do výše tržeb.
Celkové tržby vykazují stabilní růst a jsou výrazně vyšší, nicméně z pohledu autora neodpovídají plně reálnému průběhu vánoční sezóny, ve které by byl očekáván ještě výraznější ekonomický růst.
Grafy dále potvrzují očekávaný vývoj: dochází k výraznému nárůstu počtu zákazníků ve frontách, čímž se potvrzuje hypotéza o přetížení systému během špičky. Z prvního grafu je patrné, že počet zákazníků v obchodě se postupně přibližuje počtu těch, kteří čekají u pokladen – až do bodu, kdy fronty začínají převyšovat počet aktivně nakupujících. Při delší simulaci lze pozorovat, že dochází k dalšímu růstu čekajících a současnému poklesu zákazníků v prostoru prodeje. Tento vývoj je konzistentní s typickým předvánočním scénářem, kdy vysoká frekvence příchodů a omezená kapacita pokladen vedou k přehlcení systému.
Závěr
Na základě provedených simulací lze konstatovat, že navržený model supermarketu poměrně věrně zachycuje hlavní charakteristiky chování zákazníků v různých provozních scénářích. Ukázalo se, že i drobné změny v parametrech, jako je frekvence příchodu nebo míra impulzivního chování, mohou zásadně ovlivnit výslednou efektivitu systému, výši tržeb, průměrnou výši nákup i zákaznickou zkušenosti. Model odhaluje limity systému, kdy může docházet k přetížení. Přestože některé výstupy nejsou plně v souladu s realitou a autorovým přesvědčením (například v oblasti sezónních výkyvů spotřeby), simulace nabízí užitečný nástroj pro testování dopadů provozních změn v podmínkách, které by jinak bylo obtížné ověřit.
Kód
File:Funční model1.nlogo
Reference
- Simulace-info Simulace.info
- Prostředí supermarketu [1]
- Kapacita/rychlost pokladen [2]
- How to Create an Inviting Retail Store Layout [3]
- How Understanding Your Grocery Store’s Layout Can Save You Money [4]
- Typy zákazníků [5]
- Strávený čas zákazník v prodejně [Procedia-computer-science]
- Pochopení práce s NetLogo [6]



