Difference between revisions of "User:Kubd06"

From Simulace.info
Jump to: navigation, search
(Metoda)
m (Výsledky)
Line 133: Line 133:
 
=Výsledky=
 
=Výsledky=
  
Díky možnosti dynamického nastavování vstupních parametrů pomocí sliderů lze v modelu flexibilně testovat různé scénáře a analyzovat jejich dopad na chování systému.
+
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 celé simulace jsou slidery nastavující pravděpodobnost příchodu nového zákazníka (%) a rychlost odbavení u pokladny (checkout-speed). V konzoli lze dále specifikovat parametry jednotlivých zákazníků, jako je jejich rychlost pohybu či kapacita nákupních košíků.
+
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.
  
  

Revision as of 18:40, 14 June 2025

Úvodní odstavec

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). Ty si lze představit jako 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), příznak impulzivního 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 pomocí slideru 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í.

  1. Vstupují zákazníci do obchodu
  2. Pohybují se mezi regály a plní nákupní seznam (+ impulzivní nákupy)
  3. Po dokončení se přesouvají k pokladně do nejkratší fronty
  4. Jsou odbavení a po zaplacení opouští frontu
  5. Míří k východu a opouští obchod

V průběhu se generují nový zákazníci a sbírají data.

Ostatní:

  1. Model by měl i základně zaznamenávat tržby.
  2. Model využívá náhodné generování (nákupní seznamy, rychlost zákazníků, příchod nových zákazníků,...).
  3. 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

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.

Prostředí1.jpg

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í scénáře testování.

Každý scénář by měl být navržen s jasně definovanými vstupními parametry a měřen v rámci určitého časového horizontu nebo na základě počtu obsloužených zákazníků. Pro zajištění srovnatelnosti výsledků byly scénáře vyhodnocovány po odbavení minimálně 200 zákazníků, což poskytuje dostatečně stabilní vzorek pro pozorování trendů bez výrazných výkyvů v počátečních fázích simulace.

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.

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í)

Výsledek1 1.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 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ě – 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


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.

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, delším frontám a možnému omezení doby samotného nákupu – zákazníci mohou být netrpěliví nebo ve stresu a opouštět obchod dříve, než původně zamýšleli.

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%


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

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 a umožňuje identifikovat doby, 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]