User:Kubd06

From Simulace.info
Revision as of 17:09, 14 June 2025 by Kubd06 (talk | contribs) (1. scénář)
Jump to: navigation, search

Ú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.

Funkce: 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. Chování: 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ží.

Rozložení: Regály jsou rozmístěny tak, aby vytvářely uličky a určovaly hlavní trasy pohybu zákazníků. Chování: 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í.

Funkce: Slouží jako "cesty", po kterých se zákazníci pohybují mezi vchodem, regály a pokladnami. Chování: 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í.

Funkce: Zákazníci zde čekají ve frontě, jsou odbaveni a platí za nákup. Fronty: Každá pokladna má vlastní frontu, zákazníci si vybírají tu nejkratší. Chování: 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).

Funkce: Po zaplacení zákazníci směřují k východu, kde opouštějí obchod a jsou odstraněni ze simulace. Chování: Zákazník po odbavení automaticky vyhledá východ a pohybuje se k němu nejkratší cestou.

2. 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

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.

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ů.

Proto jsem si určil 3 základní scénáře testování.

1. scénář

nebo též Základní scénář. Testován pro odbavení přibližně 300 zákazníků.

Parametry:

  • Rychlost odbavování: 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ář

1. scénář

nebo též Základní scénář. Testován pro odbavení přibližně 300 zákazníků.

Parametry:

  • Rychlost odbavování: 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: popisuje vývoj zákazníků v čase (černě - celkový počet zákazníků v čase, šedě - počet zákazníků, kteří nakupují, červeně - počet zákazníků ve frontě)

Graf2: popisuje vývoj front v čase, kdy černá tvoří průměrné množství zákazníků ve frontě, šeda největší množství zákazníků ve frontě.

Graf3: ukazují vývoj tržby v čase.

Interpretace:

Z výpisu je zřejmé, že v základním nastavení je systém stabilní, fronty se tvoří (v maximální délce 2 zákazníků, což je obstojný výsledek), ale nejsou extrémně dlouhé. Průchodnost supermarketu je dobrá, zákazníci nejsou zbytečně zdržováni. Průměrně se utrží na zákazníka 344,86 Kč, což je na malý obchod reálné.

Z grafů je patrné, že simulace je nastavená optimálně zákazníci nestojí dlouhé fronty, zároveň zisk roste a v čase neklesá, což je správný vývoj pro business.

3. scénář

Závěr

Analýza scénářů ukazuje, že

K vyřešení okamžité implementace lze doporučit dynamické řízení frekvence s vynikajícím poměrem cena/výkon.

Kód