Optimalizace zaměstnanců McDonald's (Simprocess)

=Zadání=
 * Název simulace: Optimalizace zaměstnanců McDonald's
 * Předmět: 4IT495 Simulace systémů (LS 2016/2017)
 * Autor: Bc. Markéta Zukalová
 * Typ modelu: Teorie front, diskrétní simulace
 * Modelovací nástroj: SIMProcess 6.1

Abstrakt simulace
Cílem simulace je optimalizovat počet a rozmístění zaměstnanců vybrané pobočky McDonald's na jednotlivých provozních úsecích v rámci 8 hodinového úseku tak, aby každý požadavek (zákazník), který přichází do systému, byl co nejrychleji obsloužen. Pro obslužení jednoho zákazníka (vyřízení jednoho požadavku) je nutné zkoordinovat tři samostatné výrobní/výdejní úseky a reagovat na jejich vytížení. Stanovování jednotlivých parametrů a omezení simulace vychází z reálných dat vybrané pobočky - McDonald's Průhonice I, která se nachází na 4,5 km za Prahou na dálnici D1 směrem na Brno (hodinové tržby, počet zákazníků, počet vyrobených produktů, maximální počet zaměstnanců atd.). Vedlejším přínosem simulace je i reálné využití - optimalizaci pracovníků na úsecích na základě množství zákazníků je problém, který řešíme na každodenní bázi.

=Definice problému= Simulace zkoumá optimální rozmístění zaměstnanců na jednotlivých úsecích výroby provozu restaurace na základě složení (product mixu) objednávek. Každá objednávka zákazníka přichází do systému jako jeden požadavek z prodejního místa (standardní pokladna/samoobslužný kiosek - vzhledem k tomu, že požadavky jdou do systému seřazeny dle času zaplacení, nemá typ prodejního místa vliv na celkový čas strávený v systému). Požadavek je dále rozdělen na jednotlivé produkty, které jsou směrovány na příslušný výrobní úsek, kde jsou zpracovány zaměstnanci. Jakmile jsou připraveny všechny produkty objednávky, zaměstnanec, který zodpovídá za výdej objednávky, produkty zkompletuje a předá zákazníkovi, tím je ukončen celý požadavek a zákazník odchází ze systému. Tento typ vyřízení objednávek je nazýván SPA - Service Production Assembly (více informací můžete nalézt zde).

Zákazník tedy přijde do provozovny a vytvoří objednávku u prodejního místa. Objednávky se řadí za sebou dle okamžiku zaplacení a podle složení se postoupí na příslušný výrobní úsek; celý proces sestává ze 3 sekcí - příjem objednávky, příprava objednávky a výdej objednávky.

V příjmové zóně jsou pouze pokladny, výdejová zóna představuje zaměstnance, kteří objednávky kompletují (runneři) a předávají zákazníkům.

Výrobní úseky jsou celkem 3 (sekce příprava objednávky):


 * Kuchyň - skládá se celkem ze 4 výrobních linek MFY (Made for You), kde jsou připravovány core a kampaňové sendviče (burgery, wrapy, sendviče, finger food položky apod.). Reálně je každá linie schopna vyrobit maximálně 125 produktů za hodinu; pokud hodinový obrat překročí toto číslo, dochází k otevření další výrobní linky; tzn. v případě, pokud je hodinový obrat produktů (dále označován SN# - sendwich count) 350 ks, je potřeba mít otevřené 3 linie, aby byly produkty připraveny včas.
 * Beverage Cell Unit (BCU) - skládá se celkem ze 2 linií a dochází zde k přípravě nápojů (studených i teplých), zmrzlin, salátů, balených vod a ostatních dezertů.
 * Frech Fries production - hranolková stanice, zde jsou připravovány 3 velikostní porce hranolek.

Jakmile jsou připraveny všechny položky objednávky, objednávka může být expedována a zkompletována, poté je předána zákazníkovi dle čísla na účtence. Zaměstnanci ve výdejové zóně mají informaci z expo monitorů (expediční monitory), jaké položky objednávky obsahují, aby je mohli sestavit (viz. obrázek níže). Schéma výrobního a kompletačního procesu je znázorněno na obrázku:





Výše zmíněné úseky obsahují jednotlivá stanoviště, kam mohou být zaměstnanci přidělováni. Tabulka níže obsahuje seznam stanovišť a jejich maximální kapacitu (s ohledem na dispoziční možnosti provozu):

Kapacita jedné kuchyňské linie jsou 3 zaměstnanci, při 4 liniích je tedy maximální kapacita celé kuchyně 16 zaměstnanců.

Simulace zachycuje 8 hodinový úsek 11-19, kdy je provoz restaurace nejsilnější; simulace abstrahuje od ranních a nočních hodin, které jsou provozně specifické (zaměstnanci jsou využíváni i na ostatní aktivity mimo přípravy jídel, např. úklid, doplňování surovin apod., cílem tedy není nejkratší možné obsloužení zákazníka s využitím všech dostupných zdrojů). Množství dostupných zaměstnanců v toto časové období pro tyto úseky je vždy minimálně 22 pro každý den.

=Metoda= Pro provedení simulace jsem využila program SIMPROCESS, který umožňuje provádět diskrétní simulace a řešení problémů spojených s teorií front. Program je procesně orientovaný, je v něm možné zmapovat celý proces řešení požadavku a nabízí také podrobné analytické reporty. Celá práce s aplikací je jednodušší i díky poměrně přehlednému uživatelskému rozhraní.

Data pro simulaci jsem čerpala z IT systémů a reportů restaurace; přesná data (za období květen 2017) je možné zobrazit v tabulce zde (tabulka slouží pouze pro informativní účely manažerů restaurace, nepředstavuje výstup ze systémů restaurace).

=Model - detailní vlastnosti=

Entity
Jak jsem zmínila výše, každá objednávka přichází do systému jako výrobní požadavek na jednotlivé výrobní linie. Entity vstupující do systému jsou tedy trojího charakteru:


 * Požadavek na produkt z kuchyně
 * Požadavek na hranolky
 * Požadavek na produkt z BCU

Zdroje
Zdroje představují zaměstnanci na jednotlivých stanovištích, jako výchozí jsou nastavena následující obsazení stanovišť (minimální obsazení směny):


 * BCU - 3 zaměstnanci
 * FFP - 1 zaměstnanec
 * Kuchyň - 6 zaměstnanců
 * Runner - 5 zaměstnanců

SN#
Na obrázcích níže jsou uvedeny průměrné počty produktů v objednávkách pro jednotlivé výrobní úseky, které vychází z dat za období 1.5.2017 - 31.5.2017 v časovém intervalu 11:00-19:00 (odkaz na data jsem uváděla v úvodu simulace). Při výpočtu jsem vycházela z indexu Item per order, který nám říká průměrný počet produktů v objednávce pro danou linii a průměrným počtem zákazníků v dané časové intervaly.







Procesy
Celý systém vyřízení požadavku sestává z následujících 4 procesů:



Proces Příjem požadavku
Proces příjem požadavků sestává ze tří generátorů entit - požadavky na MFY, BCU a FFP. Množství požadavků je dáno Poissonovým rozdělením s parametrem rozdělení, který odpovídá průměrnému počtu produktů pro každou hodinu v intervalu 11:00-19:00 (viz tabulky výše), tedy množství objednávek na dané výrobní úseky (pro účely simulace jsem vytvořila 8 časových úseků, přičemž každý obsahuje odpovídající distribuci). Ty dohromady tvoří objednávky zákazníků. Zároveň za každým generátorem bylo nezbytné přidat prodlevu, která odpovídá průběžnému příchodu požadavků do systému (zákazníci přicházejí postupně). Využila jsem tedy vztahu mezi Poissonovým a exponenciálním rozdělením a prodlevy jsem nastavila tak, aby bylo zajištěno co nejpřesnější rozdělení během časového úseku.



Proces Příprava produktů


V tomto procesu je objednávka rozdělena a přiřazena na tři výrobní úseky. Na každý výrobní úsek jsou přiřazeny zdroje v podobě počtu zaměstnanců, kteří je obsluhují. Průměrná doba výroby produktu vychází z dat, která jsem získala z pokladního systému restaurace (report poskytuje průměrné časy obsluhy v sekundách pro každou linii za vybraný den); vzorek reportu, ze kterého jsem vycházela, se nachází na obrázku vedle a na jeho základě jsem stanovila údaje takto (od průměrných dat z reportu o délce přípravy produktu bylo zároveň nutné odečíst průměrný čas, po který zákazník objednávku vytváří):


 * doba přípravy produktů na MFY = exponenciální rozdělení se střední hodnotou 48
 * doba přípravy produktů na BCU = exponenciální rozdělení se střední hodnotou 34
 * doba přípravy produktů na FFP = exponenciální rozdělení se střední hodnotou 10



Na závěr celého procesu probíhá závěrečná kontrola, že všechny produkty jsou připraveny, před vlastní kompletací objednávky.

Proces Kompletace objednávky
Tento proces zahrnuje kompletaci objednávky runnery ve výdejové zóně; jakmile jsou připraveny veškeré produkty objednávky, runner zahájí přípravu. Průměrná doba kompletace opět odpovídá exponenciálnímu rozložení se střední hodnotou 7.



Proces předání objednávky
Proces předání objednávky obsahuje aktivitu "Čekání na zákazníka", a to z toho důvodu, že zákazníkům často trvá, než si objednávku vyzvednou. Runner nesmí objednávku nechat ležet na pultu, ale musí počkat, až si ji zákazník přijde vyzvednout a předat mu ji, aby nedošlo k záměně objednávek. Během čekání se nemůže věnovat přípravě další objednávky. Tomuto procesu jsou také přiřazeny zdroje v podobě zaměstnanců - runnerů. U stanovení střední hodnoty jsem vycházela z vlastního pozorování - měřila jsem střední hodnotu 30 časů, do kdy si zákazník přišel vyzvednout objednávku.



=Výsledky simulace=

Z vygenerovaného reportu jsem získala následující informace o průběhu procesu:

Z výše uvedeného je vidět, že průměrná délka řešení požadavku skutečně odpovídá realitě (datům z reportů); příležitost vidím ve faktu, že SIMPROCESS ukazuje veškeré časové úseky pouze v hodinách, a proto bylo nutné převést přepočet na sekundy (vzhledem k zaokrouhlení nebylo možné zjistit přesný čas řešení požadavku.

Doba čekání - výchozí situace
Průměrná doba čekání byla ve výchozím nastavení následující:

Z výše uvedených výsledků je patrné na první pohled, že minimální počet zaměstnanců na směně není dostatečný, protože časy čekání překračují na všech výrobních úsecích únosnou dobu; výchozí počet vychází z minimálního počtu, při kterém jsou stanoviště otevřena, nicméně při takto vysokém plánovaném počtu produktů je směna standardně obsazena větším počtem zaměstnanců. Pokud by nastala současná situace při aktuálním obsazení stanovišť, i přes relativně rychlou výrobu by požadavky zůstávaly dlouhou dobu. Ve druhé fázi tedy doplním stanoviště dle standardního počtu zaměstnaců přes provozní špičku.

Simulace č. 1 - doplnění zaměstnanců
Jak jsem zmínila výše, v dalším kroku doplním počet zaměstnanců při zachování maximálních kapacit stanovišť, a to následovně:


 * Produkce MFY - 7 zaměstnanců
 * Produkce BCU - 4 zaměstnanci
 * Produkce FFP - 2 zaměstnanci
 * Kompletace objednávek a výdej - 8 zaměstnanců

Výsledky jsou uvedeny v následující tabulce:

Je patrné, že časy čekání na kompletaci a výdej jsou minimální; celkové doby čekání jsou absolutně nižší než v prvním případě, což je dáno lepším obsazením jednotlivých stanovišť. Zároveň nejdelší čas čekání je zastoupen u produktů linie MFY - v dalším kroku tedy přemístím zaměstnance tak, abych podpořila tento úsek na úkor zaměstnanců, kteří objednávky kompletují.

Simulace č. 2 - posílení MFY

 * Produkce MFY - 9 zaměstnanců
 * Produkce BCU - 4 zaměstnanci
 * Produkce FFP - 2 zaměstnanci
 * Kompletace objednávek a výdej - 6 zaměstnanců

Z výsledků je vidět, že došlo ke snížení celkového času ve výrobním procesu (z původních 1363 hodin na 1164). Vzhledem k tomu, že jsme ale omezili výdej a kompletaci, přes kterou musí projít všechny požadavky, celková doba čekání se navýšila o 344 hodin. Tato varianta je tedy méně příznivá. V dalším kroku je tedy nutné optimalizovat zónu výdeje, do které zaměstnance přidám a zároveň otestuji variantu, kdy linie BCU bude obsazena pouze 2 zaměstnanci - zpracovává totiž nejméně požadavků.

Simulace č. 3 - posílení výdejové zóny
Obsazení tedy bude následující:


 * Produkce MFY - 8 zaměstnanců
 * Produkce BCU - 3 zaměstnanci
 * Produkce FFP - 2 zaměstnanci
 * Kompletace objednávek a výdej - 8 zaměstnanců

Doba čekání u kompletace a výdeje je tedy zpět na původních hodnotách (vzhledem k vysokému vlivu na dobu čekání požadavku). Celková doba čekání je v při tomto rozložení 1371, což je obdobný výsledek jako v první simulaci.

Simulace č. 4 - posílení BCU
Zbývá ještě možnost vyzkoušet opětovné posílení BCU a oslabení výdeje o 1 zaměstnance:


 * Produkce MFY - 8 zaměstnanců
 * Produkce BCU - 4 zaměstnanci
 * Produkce FFP - 2 zaměstnanci
 * Kompletace objednávek a výdej - 7 zaměstnanců

Celkový čas čekání je vyšší než v předchozích simulacích (celkem 1408).

V případě, kdy by došlo ke oslabení produkce FFP, se průměrný čas čekání posune minimálně na hranici 0,415, což představuje celkovou dobu čekání cca 935, a proto jsem tuto možnost reálně nesimulovala - výdejovou zónu není dále nutné posílit, a pokud by došlo k posílení MFY, nebo BCU, celková doba čekání by nebyla dostatečně kompenzována.

=Závěr= Z výsledků simulací je patrné, že základem je dostatečně obsazená směna. Pokud budu vycházet z předpokladu, že na směně je dostatek zaměstnanců, nejvhodnější řešení představuje '''simulace č. 2''', kde jsou celkové časy čekání nejkratší (i když pouze v malém měřítku).

I přes možnost reálného využití simulace v praxi musím konstatovat, že do simulace nebylo možné zahrnout některé faktory, se kterými se na směnách potýkáme na denní bázi, např. úroveň vytrénovanosti zaměstnanců, jejich zkušenosti, znalost jednotlivých stanovišť. Tyto faktory často rozmístění směny výrazně ovlivní - zkušenější zaměstnanec je schopen pracovat rychleji a lépe než nový zaměstnanec; zároveň dochází také k situaci, kdy zaměstnanci neovládají veškerá stanoviště, a vedoucí směny je tak nucen stanoviště obsadit dle jejich znalostí. Rozdíly mezi jednotlivými simulacemi jsou sice minimální, ale vzhledem k těmto vlivům může být optimální rozmístění rozhodující.

Z mého hlediska pro mě byla simulace velmi přínosná, zejména díky možnosti vidět reálný dopad na celý systém, pokud extrahuji od výše uvedených faktorů - klíčovým místem celého systému je kompletace a výdej, jeho posílení/oslabení mělo v každé simulaci výrazný vliv na celkovou dobu čekání; v reálné praxi se ale často setkávám s případy, kdy manažer preferuje oslabení tohoto stanoviště za účelem podpory ostatních úseků. Produkty jsou sice připraveny rychleji, ale jejich kvalita klesá, protože k zákazníkům se dostanou s větším časovým zpožděním. =Soubory ke stažení= Na tomto odkazu je možné nalézt zdrojový soubor pro simulaci s výchozím nastavením -

--Xzukm00 (talk) 21:58, 9 June 2017 (CEST)