Valósághű (?) sorbanállás szimulátor
Futtassunk szimulációkat Python-ban.
Az úgy volt, hogy elgondolkoztam azon, hogy vajon miért jó az, ha a kiszolgálás folyamatát több részre bontják. Ha egyáltalán jó az. Offline, bolti kiszolgálásról van szó, mielőtt bárki - a blog témáját figyelembe véve - jogosan másra gondolna.
Ha vesszük az értékesítő-pénztáros-árukiadó modellt, érzésre úgy tűnik, hogy a több sor végigjárása miatt többet is várunk. De a sorbanállás pszichológiája fura egy dolog. Jó példa erre a hipermarket, ahol N pénztárnak van N sora azért, mert az N pénztár 1 sor felállás zavaró lehet az embereknek a hosszú sor miatt, holott a várakozási idő úgy kevesebb lenne.
Itt az ideje szimulálni. Két eset lesz (meg talán egy bónusz :)). Az egyikben van 4 ember, aki értékesít, 1 kezeli a pénzt és 1 kiadja a vásárolt árut. A másikban 6 ember, aki a teljes vásárlási folyamatért felelős. Mindkét esetben ahány ember van, annyi sor is, valamint hirtelen nagyobb mennyiségű vásárló esik be a boltba, akik mindig a legrövidebb sort célozzák meg. A helyek közötti közlekedésre szánt időt figyelmen kívül hagyjuk. Nincsenek kezelve az olyan vásárlók, akik az értékesítés után "feladják" és hazamennek (csak érdeklődni jöttek be a boltba). Az egyes helyeken töltött időt random generáltam a következő intervallumokat használva:
- Értékesítés:
- 30 és 300 másodperc között
- Pénztár:
- 15 és 30 másodperc között
- Árukiadás:
- 30 és 120 másodperc között
Az első változat eredményei 4 különböző adathalmazra, 25 egyszerre érkező vásárlóval (az eredmények percben vannak):
A1 | A2 | A3 | A4 | |
---|---|---|---|---|
Átlagos sorbanállással töltött idő | 14.37 | 14.58 | 12.57 | 12.36 |
Az összes ember kiszolgálása | 33.79 | 34.44 | 32.15 | 30.46 |
A kettes számú verzió a 6 eladóval, aki nem specializálódott:
A1 | A2 | A3 | A4 | |
---|---|---|---|---|
Átlagos sorbanállással töltött idő | 7.28 | 6.90 | 6.91 | 7.61 |
Az összes ember kiszolgálása | 24.28 | 22.12 | 27.27 | 23.65 |
Ezzel úgy tűnik el is dőlt, hogy a többszörös sorbanállás nem csak lassabbnak érződik, de lassabb is. Már amennyire meg lehet bízni az általam írt szimulációkban. :)
A bónusz eset megegyezik a kettes verzióval annyi különbséggel, hogy nem eladónként van egy sor, hanem egy sor van összesen:
A1 | A2 | A3 | A4 | |
---|---|---|---|---|
Átlagos sorbanállással töltött idő | 7.05 | 6.80 | 6.43 | 7.45 |
Az összes ember kiszolgálása | 21.61 | 23.75 | 18.89 | 21.80 |
A különbség nem annyira látványos, de azért még sikerült lefaragni valamennyit az időkből (az A2 idejét leszámítva, az valamilyen rejtélyes oknál fogva több lett).
A kód egyébként Python-ban készült és a használt adathalmazokkal együtt letölthető itt. Kellemes szimulálást. :)