• Nebyly nalezeny žádné výsledky

Hlavní práce73933_trat10.pdf, 829.1 kB Stáhnout

N/A
N/A
Protected

Academic year: 2022

Podíl "Hlavní práce73933_trat10.pdf, 829.1 kB Stáhnout"

Copied!
41
0
0

Načítání.... (zobrazit plný text nyní)

Fulltext

(1)

Vysoká škola ekonomická v Praze

Fakulta informatiky a statistiky

Optimalizace směn v testovacím centru

BAKALÁŘSKÁ PRÁCE

Studijní program: Kvantitativní metody v ekonomice Studijní obor: Matematické metody v ekonomii

Autor: Tranová Truc Quynh

Vedoucí bakalářské práce: Ing. Veronika Skočdopolová, Ph.D.

Praha, Červen 2021

(2)

Prohlášení

Prohlašuji, že jsem bakalářskou práci Optimalizace směn v testovacím centru vypracovala samostatně za použití v práci uvedených pramenů a literatury.

V Praze dne 24. června 2021 ...

Truc Quynh Tranová

(3)

Poděkování

Chtěla bych poděkovat své vedoucí bakalářské práce Ing. Veronice Skočdopolové, Ph.D. za odborné vedení, cenné rady, trpělivost a ochotu, kterou mi v průběhu zpracování práce věnovala.

Dále bych chtěla poděkovat svým rodičům a blízkým za veškerou podporu, které se mi v průběhu studia nejen na vysoké škole dostalo. Děkuji i všem ostatním, kteří mi jiným způsobem pomohli při tvorbě této práce.

(4)

Abstrakt

Práce se zabývá matematickými modely, které přiřazují zaměstnance na směny v testovacích centrech firmy Váš praktik, s.r.o., která byla zřízena v době pandemie nemoci COVID-19. Obsah práce je rozdělen do dvou částí. První část je věnována definici pojmů v oblasti operačního výzkumu. Je zde také věnována část samotné nemoci COVID-19 a využití dalších matematických modelů v této oblasti. Druhá část je věnována formulaci matematických modelů pro různé případy přiřazování zaměstnanců na směny a obsahuje také zápis matematických modelů v programu MPL for Windows.

Formulace modelů pro přiřazování směn jsou odvozeny z dopravního problému.

V praktické části práce hledáme pouze libovolné přípustné řešení, které bude splňovat dané omezující podmínky. Při tvorbě modelů postupně doplňujeme další omezení a také účelovou funkci. Celkem je vytvořeno šest matematických modelů a jeden z modelů byl reálně nasazen na plánování směn pro firmu Váš praktik, s.r.o. na měsíc květen 2021.

Klíčová slova

Směny, přiřazování pracovníků, matematické modelování, dopravní problém, koronavirus, COVID-19, MPL for Windows

JEL klasifikace

C61 Optimalizační techniky; Programovací modely; Dynamická analýza

(5)

Abstract

This thesis deals with mathematical models that assign employees to different shifts in the testing centres of the company Váš praktik s.r.o., which was established during the Covid-19 pandemic. The content of the thesis is divided into two parts. The first part deals with the definition of terms used in the field of operations research. This part also discusses the COVID-19 disease itself and the use of other mathematical models in this area. Second part of the thesis is dedicated to the formulation of mathematical models for different cases of assigning employees to shifts and contains the notation of mathematical models in the program MPL for Windows.

The formulation of the models for shift assignment are derived from the transportation problem. In the practical part of the thesis, we are only looking for feasible solutions that meet the given criteria. When creating models, we gradually add other limitations as well as the objective function. A total of six mathematical models are created and one of the models was actually used for shift-planning for the company Váš praktik s.r.o. for the month of May 2021.

Keywords

shift, rostering shifts, mathematical modelling, transportation problem, coronavirus, COVID-19, MPL for Windows

JEL Classification

C61 Optimization Techniques; Programming Models; Dynamic Analysis

(6)

Obsah

Úvod... 8

1 Teoretická část... 9

1.1 Operační výzkum ... 9

1.2 Matematické modelování ... 10

1.2.1 Celočíselné programování ... 11

1.2.2 Přiřazovací problém/ rozvrhování pracovníků... 11

1.3 Dopravní problém ...12

1.4 Počítačové zpracování úloh lineárního programování MPL ...13

1.5 Koronavirus a nemoc COVID-19 ...15

1.6 Využití matematických metod ve spojení s nemocí COVID-19 ...16

2 Praktická část ...17

2.1 Představení firmy ...17

2.2 Úvod do problému ...17

2.3 Ekonomický model ... 18

2.4 Matematický model ...19

2.4.1 Matematický model bez požadavků zaměstnanců...19

2.4.2 Matematický model s požadavky zaměstnanců ... 22

2.4.3 Matematický model s podmínkou povinnosti pracovat alespoň 1 za týden... 24

2.4.4 Transformace matematického modelu bez binárních proměnných ... 26

2.5 Aplikace modelu v praxi... 28

2.5.1 Ekonomický model ... 28

2.5.2 Matematický model ... 29

2.5.3 Rozšířený matematický model ... 33

Závěr ... 36

Použitá literatura ... 38 Přílohy...I Příloha A: Tabulky požadavků zaměstnanců firmy Váš praktik, s.r.o. ...I Příloha B: Rozvržení směn zaměstnanců bez požadavků ...I Příloha C: Rozvržení směn zaměstnanců s požadavky ...I Příloha D: Rozvržení směn zaměstnanců s požadavky s doplňující podmínkou ...I Příloha E: Rozvržení směn zaměstnanců bez podmínky binární proměnné...I Příloha F: Požadavky asistentek na měsíc květen 2021 ...I Příloha G: Rozvržení směn asistentek na měsíc květen 2021 ...I

(7)

Příloha H: Rozvržení směn asistentek na měsíc květen 2021 ... II Příloha I: Tabulka preferencí asistentek na měsíc květen 2021 ... II Příloha J: Rozvržení směn asistentek na měsíc květen 2021 s preferencemi... II

(8)

8

Úvod

Vývoj výpočetní techniky je v dnešní době tak rychlý, že se všichni přesouváme do virtuálního světa. Všechna naše data jsou již vedena v digitální formě. Využíváme různé technologie k usnadnění naší práce a její efektivnosti, jako je například plánování směn zaměstnanců. Plánování směn zaměstnanců je potřeba v každé firmě či instituci. Dříve vedoucí pracovníci plánovali směny ručně to tabulek. Tvoření trvalo hodiny a kolikrát ve větších firmách i dny. Proto se vyvíjejí různé programy pro zjednodušení plánování směn.

Tématem mé bakalářské práce je aplikace matematických metod k vytvoření modelu pro optimalizaci směn zaměstnancům firmy Váš praktik, s.r.o., která poskytuje zdravotnické služby. Firma v květnu 2020 založila projekt Vyšetři.mě za účelem testování přítomnosti viru SARS-CoV-2. Tento vir byl objeven v roce 2019 a od té doby se rozšířil po celém světě včetně České republiky. Tento vir způsobuje nemoc COVID-19, která může mít u nakažených velmi těžký průběh a je vyžadována speciální zdravotní péče. Jelikož je nakažených pacientů více, je nutné mít dobře rozvržený zdravotnický personál.

O lékaře a studenty medicíny posledních ročníků byla v průběhu epidemie nouze, proto je důležité mít dobře naplánované směny i v testovacích centrech, kde dělají nad rámec své pracovní povinnosti v nemocnicích.

Cílem mé bakalářské práce je formulace matematického modelu, který nalezne libovolné přípustné řešení tak, aby byly dodrženy všechny požadavky zaměstnavatele i zaměstnanců.

Účelem není jen nalézt matematický model, který nalezne přípustné řešení na fiktivních datech, ale aplikovat model v reálných případech.

Plánování směn bude obsahovat několik fází plánování. Nejprve sesbírám data o zaměstnancích. Nezanedbatelnými požadavky při vytvoření matematického modelu jsou omezující podmínky, které berou v potaz požadavky zaměstnavatele a zaměstnanců. Poté si vytvořím podklady v MS Excel, odkud se budou importovat data do programu MPL.

V programu MPL si budu postupně vytvářet matematické modely, jehož výsledky budeme zpět exportovat do MS Excel.

Dále si v práci také uvedeme další využití matematického modelování v oblasti COVID-19, například predikce vývoje této nemoci apod.

(9)

9

1 Teoretická část

1.1 Operační výzkum

Operační výzkum se zaměřuje na analýzu různých typů rozhodovacích problémů. Tato vědní disciplína je využita v systémech, kde se aplikuje analýza a koordinace operací. Cílem této disciplíny je dosáhnout co možná nejlepší fungování celého systému. Pro rozhodování je nutné si stanovit určitá kritéria pro posouzení funkčnosti systému. Základním nástrojem operačního výzkumu je matematické modelování, které si podrobněji rozebereme později.

(Jablonský a Lagová, 2014)

Modely operačního výzkumu se zabývají různými oblastmi ekonomického života. Postupem času byla potřeba specifických metod k řešení jednotlivých problémů a vytvořily se samostatné disciplíny operačního výzkumu. Mezi základní disciplíny patří například:

matematické programování, vícekriteriální rozhodování, teorie grafů, teorie zásob, teorie hromadné obsluhy, modely obnovy, Markovské rozhodovací procesy, teorie her a simulace.

Tato práce bude zaměřena pouze na jednu z těchto disciplín, a to na matematické programování. (Jablonský, 2007)

„Matematické programování je odvětví operačního výzkumu zabývající se řešením optimalizačních úloh, ve kterých se jedná o nalezení extrému daného kritéria, definovaného ve tvaru kriteriální funkce n proměnných, na množině variant určených soustavou omezujících podmínek, které jsou zadány ve tvaru lineárních či nelineárních rovnic či nerovnic.“ (Jablonský, 2007, str. 13)

Obecný model úlohy matematického programování zapíšeme následovně:

maximalizovat (minimalizovat)

𝑧 = 𝑓(𝑥1,𝑥2,… , 𝑥𝑛) za podmínek

𝑔1(𝑥1, 𝑥2, … , 𝑥𝑛) ≥ 0, 𝑔2(𝑥1, 𝑥2, … , 𝑥𝑛) ≥ 0,

(1.1) 𝑔𝑚(𝑥1, 𝑥2, … , 𝑥𝑛) ≥ 0,

𝑥𝑗≥ 0, 𝑗 = 1,2, … , 𝑛,

kde n je počet proměnných modelu, m je počet omezujících podmínek a f(x), gi(x), i=1, 2, … , m jsou obecné funkce n proměnných. (Jablonský a Lagová, 2014)

. .

(10)

10

Jedná se tedy o určení hodnot proměnných modelu xj tak, aby hodnoty odpovídaly všem omezujícím podmínkám a aby byl nalezen daný extrém kriteriální funkce. Pokud jsou všechny omezující podmínky a kriteriální rovnice, popřípadě nerovnice lineární, jedná se o lineární programování. Pokud se objeví alespoň jedna funkce nelineární, jedná se o nelineární programování. (Jablonský a Lagová, 2014)

Nelineární programování se kvůli problémům s jeho řešením využívá méně. Naopak lineární programování se velmi často aplikuje. Lineární programování používáme například při řešení optimalizace výroby, optimalizace portfolia, distribučních problémů atd.

(Jablonský a Lagová, 2014)

1.2 Matematické modelování

Matematické modelování proniklo do různých oborů technických, ekonomických či sociálních věd. Stalo se tak základním pomocníkem při modelování systémů, analýzách a předvídání různých procesů či jevů. Při analýze reálného systému může být problém příliš složitý, proto si ho pro naši potřebu zjednodušíme pomocí matematického modelování.

Proces se skládá z několika základních fází, které na sebe navazují, viz obrázek 1.1.

Obrázek 1.1: Fáze při aplikaci operačního výzkumu (Jablonský, 2007, str. 11)

Rozpoznání problému v rámci reálného systému je podstatným krokem k zahájení výzkumu. Následuje volba přístupu analýzy modelu a stanovení cíle jeho řešení.

Reálný systém definice problém u

Ekonom ický m odel

Matem atický m odel

Řešení m atematického

m odelu

Interpretace a v erifikace

Implementace

(11)

11

Formulace ekonomického modelu je dalším důležitým krokem analýzy. Ekonomický model je stručný popis reálného problému, který obsahuje nejdůležitější prvky a vazby mezi nimi.

Formulace matematického modelu je nedílnou součástí analýzy problému.

Ekonomický problém převedeme pomocí matematického zápisu na matematický model, který se dále využije k řešení daného problému.

Řešení matematického modelu je spíše technickou záležitostí. V dnešní době je spoustu dostupných programových systémů, ve kterých bychom mohli řešit tyto modely.

Interpretace výsledků a jejich verifikací je velmi důležitá pro výzkum. Pouze interpretace výsledků nestačí. Verifikace výsledků nám poskytuje informace o tom, zda byl ekonomický a matematický model sestaven správně. Kdybychom v modelech vynechali některé důležité informace, potom řešení může být i nadále optimální, ale v praxi je model nepoužitelný.

Přípustné řešení je takové řešení, které vyhovuje všem omezujícím podmínkám matematického modelu.

Optimální řešení je přípustné řešení, které má nejlepší hodnotu účelové funkce.

(Jablonský, 2007)

1.2.1 Celočíselné programování

Celočíselné programování je speciální případ lineárního programování. Matematický model úlohy lineárního programování je doplněn o tzv. podmínky celočíselnosti. To jsou podmínky, které zajistí to, aby všechny hodnoty nabývaly pouze celočíselných hodnot. Tato podmínka většinou vyplývá z ekonomického modelu, kde je jasně definováno, že mají být výsledkem procesu například počty kusů výrobku, či počet opakování nějaké aktivity.

Kromě celočíselných hodnot se v úlohách lineárního programování může objevit podmínka, aby hodnoty nabývaly pouze hodnoty 0 a 1. Tyto proměnné označujeme jako bivalentní proměnné. Tyto proměnné se často užívají v přiřazovacím, pokrývacím či okružním dopravním problému. Bivalentní programování je označení pro úlohy celočíselného programování, které obsahují pouze bivalentní proměnné. (Jablonský, 2007)

1.2.2 Přiřazovací problém/ rozvrhování pracovníků

Rozvrhování pracovníků je v praxi velmi často řešená úloha, jak budou daní pracovníci rozdělení na směny (služby). V těchto úlohách je řada omezujících podmínek, které vychází z kvalifikace pracovníků, počtu pracovníků na směně nebo jejich požadavků či časových možností práce. (Jablonský a Lagová, 2014)

Jak již bylo výše zmíněno, přiřazovací problém je speciální případ celočíselného programování, které označujeme jako bivalentní problém. Pro přiřazení pracovníků v konkrétním čase a daném dnu budeme využívat bivalentní proměnné. Kdy hodnota 1 bude značit, že pracovník je přiřazen, v opačném případě bude hodnota 0.

(12)

12

1.3 Dopravní problém

Dopravní problém je jedním ze základních typů distribučních úloh lineárního programování. Nejčastěji se jedná o rozvržení přepravy zboží nebo materiálu od dodavatelů k odběratelům tak, aby byly minimalizovány celkové náklady na přepravu, a aby byly dodrženy požadavky odběratelů a kapacity zdrojů. (Jablonský a Lagová, 2014)

„V dopravním problému je definováno m-zdrojů (dodavatelů) D1, D2, … , Dm s omezenými kapacitami a1, a2, … , am (množství, které je dodavatel schopen v uvažovaném období dodat) a n-cílových míst (odběratelů) O1, O2, … , On se stanovenými požadavky b1, b2,

… , bn (množství, které odběratel v uvažovaném období požaduje. Vztah každé dvojice zdroj-cílové místo je nějakým způsoben oceněn. Kvalifikované ocenění vztahu zdrojů a cílových míst označíme cij, i=1,2, … , m, j=1,2, … ,n.“ (Jablonský a Lagová, 2014, str. 60) Dopravní problém dělíme na dva typy: vyrovnaný a nevyrovnaný dopravní problém.

O vyrovnaném dopravním problému mluvíme tehdy, když všechny kapacity budou vyčerpány a všechny požadavky dodrženy. V druhém případě se jedná o nevyrovnaný dopravní problém, kdy se součet kapacit nerovná součtu požadavků. Jelikož budeme odvozovat v praktické části modely od nevyrovnaného dopravního problému, uvedeme si pouze tento matematický model, který bude vypadat následovně:

minimalizovat

𝑧 = ∑ ∑ 𝑐𝑖𝑗𝑥𝑖𝑗

𝑛

𝑗=1 𝑚

𝑖=1

(1.2) za podmínek

∑ 𝑥𝑖𝑗≤ 𝑎𝑖 𝑖 = 1, 2,

𝑛

𝑗=1

… , 𝑚,

∑ 𝑥𝑖𝑗= 𝑏𝑗 𝑗 = 1, 2,

𝑚

𝑖=1

… , 𝑛,

𝑥𝑖𝑗≥ 0 𝑖 = 1, 2, … , 𝑚, 𝑗 = 1, 2, … , 𝑛,

kde bude m.n proměnných, xij vyjadřuje objem přepravy mezi i-tým dodavatelem a j-tým odběratelem, cij, i=1,2, … , m, j=1,2, … ,n ocenění nákladu na přepravu zboží či materiálu přepravy mezi i-tým dodavatelem a j-tým odběratelem, ai je kapacita i-tého dodavatele a bj

je požadavek j-tého odběratele.

Význam účelové funkce a omezujících podmínek modelu:

- Účelová funkce (1.2) zajištuje, aby byly minimalizovány náklady na přepravu zboží.

- Omezující podmínka (1.3) zajištuje, aby i-tý dodavatel při přepravě nepřekročil svou maximální (ai) kapacitu.

(1.3)

(1.4) (1.5)

(13)

13

- Omezující podmínka (1.4) zajištuje, aby byly dodrženy všechny požadavky j-tých odběratelů.

- Omezující podmínka (1.5) zajištuje, aby hodnota objemu přepravy mezi i-tým dodavatelem a j-tým odběratelem byla větší nebo rovno nule.

1.4 Počítačové zpracování úloh lineárního programování MPL

Program MPL for Windows je produktem firmy Maximal Software. MPL je program, který využíváme pro formulace modelu a jeho následné řešení. Je to otevřený systém, což znamená, že umožňuje spolupracovat s dalšími optimalizačními řešiteli, krom výchozího v programu. V programu MPL je řešitel CPLEX300, který je nejvýkonnější optimalizační řešitel pro lineární a celočíselné modely. Tento řešitel je omezen pro řešení modelu s maximální kapacitou 300 proměnných. Pro rozsáhlejší modely je nutné si zakoupit licenci a v případě potřeby si zajistit jiné řešitele jakou je například GUROBI (Jablonský, 2011), který jsem využívala v této práci.

Součástí MPL je knihovna OptiMax 2000, která je přizpůsobena ke snadnému vkládání MPL modelů do různých aplikací jako je například C++, Visual Basic, MS Excel či MS Access.

Systém obsahuje modelovací jazyk, pomocí něhož vytvoříme model řešené úlohy. Základní struktura modelu je uvedena v následujícím obrázku 1.2. Tato základní struktura je pouze obecná. Všechny uvedené sekce nejsou povinné.

Obrázek 1.2 Struktura modelovacího jazyka programu MPL

•název /označení modelu Title

•nastavení parametrů Options

•definice indexů a dimenze modelu Index

•specifikace vstupních dat (skaláry, vektory, m atice, datové soubory) Data

•ty p proměnných Variables (integer, binary, free)

•deinice vlastních funkcí a maker Macros

•zápis m odelu Model

•kriteriální funkce Max /Min

•om ezující podm ínky Subject to

•horní a dolní m eze Bounds

END

(14)

14

Pracovní plocha viz obrázek 1.3 může být tvořena třemi základními okny. Ne všechna musí být aktivní. Do prvního okna zapisujeme model a je typicky označen názvem souboru s příponou .mpl. Druhé okno nese název Model Definitions a zobrazuje sktrukturu modelu jako jsou proměnné, omezující podmínky, parametry atd. Poslední okno Messages nám zobrazuje zprávy o průběhu řešení modelu.

Obrázek 1.3 Prostředí systému MPL for Windows, zdroj: vlastní zpracování

Pro práci v tomto systému využíváme příkazy z hlavního menu. Ty nejpoužívanější příkazy jsou pomocí ikon zobrazeny v nástrojové liště. Při práci budeme využívat pouze šestou ikonu zleva viz obrázek 1.3. Tato ikona spustí optimalizační běh pomocí řešitele, kterého jsme si nastavili v menu jako výchozí. Zobrazí se nám zároveň nové okno Status Window, viz obrázek 1.4. V tomto okně se dozvíme řadu informací, například zda se povedlo nalézt optimální řešení daného modelu, kolik času trvalo systému vyřešit zadaný model, počet iterací apod. Pomocí tlačítka vpravo dole View si můžeme zobrazit nalezené výsledky.

(15)

15

Obrázek 1.4 Status Window systému MPL for Windows, zdroj: vlastní zpracování

1.5 Koronavirus a nemoc COVID-19

Onemocnění COVID-19 je nakažlivá nemoc způsobená koronavirem, který spadá do podčeledi Coronaviridae. Tento virus hledá hostitele mezi zvířaty a některé typy viru mohou infikovat i lidi. Toto onemocnění má několik základních příznaků a to je: kašel, dýchací potíže a teploty. Nemoci způsobené koronaviry zahrnují také smrtící chorobu, jako je dýchací onemocnění nazývané akutní respirační syndrom (SARS) či infekci MERS.

(vlada.cz, 2020; ECDC, 2021)

Nový typ koronaviru byl odhalen v Číně roku 2019. Tento typ koronaviru je geneticky příbuzný k viru SARS-CoV-1. Tento virus se objevil v roce 2002 v Číně. Rozšířil se do více než 33 zemí během 8 měsíců. Z průzkumu ECDC je známo, že každý desátý člověk nakažený tímto virem zemřel. Jelikož je nový koronavirus úzce spjatý s koronavirem SARS-CoV-1, s dostal oficiální název SARS-CoV-2. (ECDC, 2021)

1. března 2020 byli v České republice potvrzeny první tři případy nákazy novým koronavirem SARS-CoV-2. Všichni tři nakažení se vrátili z pobytu v Itálii. Dva z nich byli české národnosti a jedna byla americká studentka, která přijela do České republiky jako turistka. Od té doby vznikaly různá protiepidemická opatření, která bohužel nezabránila šíření koronaviru SARS-CoV-2 (dále jen koronavirus). Ke dni 8. 5. 2021 bylo v České republice potvrzeno celkem 1 644 355 případů nákazy a 29 831 úmrtí spojených s nákazou COVID-19. (Boublík, 2020; MZCR, 2021)

U lidských hostitelů koronaviru jsou nejčastějšími příznaky: teplota, suchý kašel, únava, ztráta čichu a chuti, problém s dýcháním a další. Příznaky jsou individuální. Vyskytly se hostitelské osoby bez příznaků. Tito lidé tedy neměli nemoc COVID-19, ale byli pouze hostiteli koronaviru. Mezi těmi, u kterých se objeví příznaky, se většina případů (80 %) uzdraví bez lékařské pomoci. Přibližně 15 % nakažených jsou vážně nemocní a vyžadují kyslík a přibližně 5 % hostitelů jsou kriticky nemocní a vyžadují intenzivní péči lékařů.

(WHO, 2020)

(16)

16

K prokázání přítomnosti koronaviru se používají 2 druhy testů. Prvním typem testu je RT-PCR test. Tento test se zpracovává v laboratořích a odhaluje přítomnost virové RNA. Je schopný odhalit nakažené koronavirem i předtím, než jsou infekční a tím umožní včasnou izolaci nakaženého. Výhodou tohoto testu je přesnost a nevýhodou jsou vysoké náklady a časová náročnost. Druhým typem testu je Rapid Antigen test (dále jen antigenní test).

Antigenní test detekuje virové bílkoviny, odhaluje nakažené pouze na vrcholu infekce, kdy se v těle nejvíce koncentrují tyto bílkoviny. Výhodou tohoto testu jsou nízké náklady a časové zpracování. Výsledky těchto testů jsou obvykle do 15 minut, není k tomu potřeba odborné zpracování. Velkou nevýhodou je nízká průkaznost. (Ministerstvo vnitra, 2020)

1.6 Využití matematických metod ve spojení s nemocí

COVID-19

V této části uvedu příklad využití jiného matematického modelu v souvislosti s nemocí COVID-19. Modely, které jsou využity ve spojení s touto nemocí nejsou modely, které jsme si popisovali výše. Jsou to matematicko-statistické modely. Jedná se spíše o oblast ekonometrie a stochastiky než o oblast operačního výzkumu. Tyto modely se využívají nejčastěji k predikci vývoje nemoci po celém světě.

K predikci vývoje se nejčastěji užívá model S(E)IR. Tento model je rozšířená verze epidemiologického modelu SIR, který se využívá k modelování vývoje akutních infekčních onemocnění. S(E)IR je stavový model:

• S náchylní jedinci,

• I infikovaní jedinci,

• R jedinci po konci infekčnosti

K sestavení takového modelu je potřeba mít určitá vstupní data, jako je inkubační doba, infekční doba, sériový interval, efektivita testování, importované případy apod. Klíčová výstupní data, která očekáváme, jsou počet nově nakažených anebo kumulativní počet potvrzených případů onemocněním COVID-19. Další zajímavý výstup z tohoto modelování je tzv. reprodukční číslo označováno jako R. Tato hodnota udává průměrnou hodnotu, kolik osob přímo nakazí jedinec, u kterého je prokázána přítomnost viru SARS-CoV-2. Tento model využili k predikci vývoje onemocnění COVID-19 v letech 2020-2021 například tyto státy: Jižní Korea, Spojené arabské emiráty, Německo, Velká Británie a další. Existuje řada dalších modelů, které se využívají k predikci šíření nákazy. (KUCHARSKI, Adam J., a jiné, 2020; Ondřej Májek, Ondřej Ngo, Jiří Jarkovský a Monika Ambrožová, 2020; Md Nazmul Hassan, Md. Shahriar Mahmud, Kaniz Fatema Nipa, a Md. Kamrujjaman, 2021; Mostafa, Mohamed A. a Messaoud, 2021)

• S náchylní jedinci,

• E latentní onemocnění,

• I infekční jedinci,

• R jedinci po konci infekčnosti

(17)

17

2 Praktická část

2.1 Představení firmy

Firma Váš praktik s.r.o. byla založena v roce 2019 dvěma mladými lékaři za účelem poskytování zdravotních služeb. Firma disponuje v tuto chvíli dvěma ordinacemi praktického lékaře v hl. m. Praha (Praha 15 a Praze 8).

Od května roku 2020 začala firma poskytovat další službu, a to je testování přítomnosti viru SARS-CoV-2. Situace okolo koronaviru vyvolává mezi lidmi spoustu nejistot. Proto se firma rozhodla založit tento projekt. Projekt nese název VYŠETŘI.MĚ a nabízí vyšetření protilátek i testování přítomnosti samotného viru pomocí dvou testů RT-PCR (dále jen PCR) a Rapid Antigen test (dále jen antigenní test). Jeho cílem je poskytnout lidem potřebnou péči a hlavně informace, jak se chovat při nakažení. (Novák a Borský, 2021)

Obrázek 2.1 Logo firmy Váš Praktik s.r.o. zdroj: (Novák a Borský, 2021)

2.2 Úvod do problému

V této práci se budu zabývat optimalizací směn v testovacím centru, kde se testuje přítomnost viru SARS-CoV-2 (dále jen koronavirus). Pro tuto práci jsem si vybrala firmu Váš praktik s.r.o., která založila projekt VYŠETŘI.MĚ k poskytování služeb testování koronaviru pomocí PCR a antigenního testu. Testování se provádí na dvou odběrových místech.

(18)

18

Rozsah nákazy obyvatel koronavirem byl v jarních měsících 2021 tak velký, že nemocnice neměly dostatek lůžek pro nakažené s těžkým průběhem a klienti na testování často čekali dlouho z nedostatku kapacit testovacích center. Cílem projektu VYŠETŘI.MĚ je rychle odbavovat klienty, vyhnout se shlukování osob před testovacím centrem a mít k dispozici dostatek termínů. Z těchto důvodů se snaží pokrýt všechny požadované směny, aby dokázali odbavit co největší počet testovaných osob denně.

Pro tuto práci jsem si vybrala obě odběrová centra sídlící v hl. m. Praze. Ve firmě Váš Praktik s.r.o. přímo pracuji, tudíž data získávám „z první ruky“. Moje pozice je asistentka v odběrovém centru v hl. m. Praze v městské části Horní Měcholupy.

2.3 Ekonomický model

Projekt VYŠETŘI.MĚ provádí testování osob, zda jsou hostitelé koronaviru. Testování probíhá ve dvou odběrových centrech každý den od pondělí do neděle. Obě odběrová centra se nachází v hl. m. Praze. První se nachází v městské části Horní Měcholupy (dále jen HM) a druhé odběrové centrum se nachází nedaleko letiště Václava Havla (dále jen Ruzyně).

Směny fungují na principu dvousměnného provozu. První směna (ranní) začíná v 8 hodin ráno a končí ve 3 hodiny odpoledne. Od 3 hodin odpoledne do 4 hodin odpoledne je tzv.

technická pauza. Druhá směna (odpolední) začíná ve 4 hodin odpoledne a trvá do 8 hodin večer (s možností prodloužení dle poptávky).

K provozu je potřeba mít na každou směnu od pondělí do neděle 3 lékaře či 3 studenty medicíny 4. a 5. ročníku (dále jen tester) a 3 asistentky či sestry k administrativě (dále jen asistent). Celkem má projekt k dispozici na tato testovací místa 18 testerů a 13 asistentů.

Cílem je rozvrhnout pracovníky na směny tak, aby to vyhovovalo veškerým požadavkům zaměstnanců a zároveň aby byly všechny směny pokryty potřebným počtem testerů a asistentů. V dnešní epidemiologické situaci je přítomnost lékařů v nemocnicích velmi důležitá. Přesto se najdou lékaři, kteří ve svém volnu jdou testovat do takovýchto center. Je nutné splnit všechny poskytnuté požadavky, protože lékaři mají službu v nemocnicích nebo studenti medicíny studují a zároveň mají stáže v nemocnicích. Požadavky jsem získala přímo od kolegů. Následně jsem požadavky zpracovala a vytvořila přehlednou tabulku požadavků v MS Excel. Níže v tabulce 2.1 a v tabulce 2.2 jsou uvedeny některé požadavky pro ilustraci. Celá tabulka je uvedena v příloze A.

Tabulka 2.1 Ukázka požadavků testerů (zdroj: vlastní zpracování)

Pondělí Úterý Středa

Medik /lékař Ranní Odpolední Ranní Odpolední Ranní Odpolední

T1 0 0 0 1 1 0

T2 1 0 1 0 0 0

T3 1 0 0 1 0 1

(19)

19

Tabulka 2.2 Ukázka požadavků asistentů (zdroj: vlastní zpracování)

Pondělí Úterý Středa

Asistent /sestra Ranní Odpolední Ranní Odpolední Ranní Odpolední

A1 1 0 0 0 1 0

A2 1 0 1 0 1 1

A3 0 1 1 0 1 1

V tabulce 2.1 a v tabulce 2.2 jsou použité binární hodnoty, kde hodnota 1 znamená, že zaměstnanec může být přiřazen na směnu a hodnota 0 znamená, že zaměstnanec přiřazen být nemůže. Tímto způsobem jsem zapsala všechny požadavky zaměstnanců do tabulek, s nimiž budu dále pracovat.

2.4 Matematický model

Matematických modelů při řešení této úlohy budu mít několik. První matematický model bude řešit pouze rozvržení pracovníků bez ohledu na jejich požadavky. Do matematických modelů budu postupně přidávat omezující podmínky, které budou měnit výsledné rozvržení směn zaměstnanců. Nejdříve přidám podmínku, která zajistí splnění požadavků a poté přidám ještě podmínku, která zajistí, že každý zaměstnanec bude přiřazen alespoň jednou na směnu za daný týden. Pro zajímavost se podívám i na další rozšířené modely.

Při rozvržení zaměstnanců mám za cíl pouze rozdělit zaměstnance na konkrétní směny v konkrétních dnech. Zaměstnanci jsou placeni fixním platem, proto jsou náklady konstantní. Tudíž v následujících modelech nebudu brát v potaz účelovou funkci. Mým cílem je tedy nalézt libovolné přípustné řešení tohoto modelu.

Matematický model, který budu níže formulovat, vychází z modelu dopravního problému.

2.4.1 Matematický model bez požadavků zaměstnanců

Nyní si naformuluji matematický model, který nebude brát v potaz požadavky zaměstnanců, kdy mohou pracovat. Jediná omezující podmínka ze strany zaměstnanců, kterou budeme brát v potaz v tomto modelu je počet dní, který jsou schopni odpracovat.

Mým cílem je nyní pouze rozdělit zaměstnance na dané směny. Jak jsem již zmiňovala výše, první matematický model bude formulován pouze pomocí omezujících podmínek. Účelovou funkci nyní nebudu potřebovat. Celý model bude vypadat následovně:

Za podmínek

∑ 𝑡𝑖𝑗≤ 𝑎𝑖, 𝑖 = 1,2, . . . , 18 ,

14

𝑗=1

(2. 1)

(20)

20

∑𝑡𝑖𝑗 = 𝑏𝑗, 𝑗 = 1,2, . . . , 14 ,

18

𝑖=1

(2. 2)

∑ 𝑠𝑘𝑗≤ 𝑐𝑘, 𝑘 = 1,2, . . . , 13

14

𝑗=1

, (2. 3)

∑𝑠𝑘𝑗

13

𝑖=1

= 𝑑𝑗, 𝑗 = 1,2, . . . , 14 , (2. 4)

𝑡𝑖𝑗= {0,1}, 𝑖 = 1,2, . . . , 18, 𝑗 = 1,2, . . . , 14, (2. 5) 𝑠𝑘𝑗= {0,1}, 𝑘 = 1,2, . . . , 13, 𝑗 = 1,2, . . . , 14, (2. 6)

kde i je počet testerů, j je počet směn, k je počet asistentů, tij představuje přiřazení i-tého testera na j-tou směnu, ai je počet požadovaných směn i-tých testerů, bj je počet požadovaných testerů na j-tou směnu, skj představuje přiřazení k-tého asistenta na j-tou směnu, ck je počet požadovaných směn k-tých asistentů, dj je počet požadovaných asistentů na j-tou směnu.

Význam omezujících podmínek modelu:

- Nerovnice (2.1) zajištuje, že i-tý tester bude mít maximálně ai směn.

- Rovnice (2.2) zajištuje, aby byl přiřazen na j-tou směnu požadovaný počet bj testerů.

- Nerovnice (2.3) zajištuje, že k-tý asistent bude mít maximálně ck směn.

- Rovnice (2.4) zajištuje, aby byl přiřazen na j-tou směnu požadovaný počet dj asistentů.

- Podmínky (2.5) a (2.6) zajištují, aby proměnné tij a skj byly binární.

Před samotným řešením tohoto modelu si připravím data do souboru MS Excel, ve kterém jsem si už připravila požadavky zaměstnanců. Připravím si vstupní data, kam se mi budou poté exportovat výsledky z MPL for Windows. Důležitý krok pro propojení práce těchto dvou systémů je pojmenování oblastí v listech v sešitu MS excel. Tento krok mi určuje, kde systém nalezne vstupní hodnoty a kam přesně se budou přepisovat výsledné hodnoty. Nyní si přepíšu dle požadované syntaxe uvedené omezující podmínky (2.1)—(2.6) do programu MPL for Windows. Celý kód je uveden ve výpisu 2.1.

Výpis 2.1 Kód v MPL pro rozvržení všech pracovníků na směny 1 TITLE Tranova_BP;

2 OPTIONS

3 ExcelWorkBook="Tranová BP.xlsx";

4 INDEX

5 i:=1..18;

6 j:=1..14;

7 k:=1..13;

7 DATA

8 a[i]:=ExcelRange("vychozi_tab_kriteria!a");

(21)

21

9 b[j]:=ExcelRange("vychozi_tab_kriteria!b");

10 c[k]:=ExcelRange("vychozi_tab_kriteria!ck");

11 d[j]:=ExcelRange("vychozi_tab_kriteria!dj");

12 BINARY VARIABLES

13 t[i,j] Export to ExcelRange("reseni_bez_pozd_zam!tij");

14 s[k,j] Export to ExcelRange("reseni_bez_pozd_zam!skj");

15 SUBJECT TO

16 pocetsměnT[i]:sum(j:t[i,j])<=a[i];

17 pocetzamT[j]:sum(i:t[i,j])=b[j];

18 pocetsměnS[k]:sum(j:s[k,j])<=c[k];

19 pocetzamS[j]:sum(k:s[k,j])=d[j];

20 END

Po nalezení přípustného řešení jsem získala první podobu rozvržení směn zaměstnanců.

Níže v tabulce 2.3 a v tabulce 2.4 je uvedena část řešení. Celé řešení je uvedeno v příloze B.

Z níže uvedeného výstupu v tabulce 2.3 lze vyčíst, že tester 1 nemá přidělenou ani jednu směnu, tester 2 má přidělenou ranní směnu v úterý a tester 3 je přidělen na ranní směnu v pondělí a zároveň na odpolední směnu ve středu. Tabulka 2.4 ukazuje, že asistent 1 má přidělenou ranní směnu ve středu, asistenti 1 a 2 mají zároveň přidělenou odpolední směnu ve středu, asistent 3 má přidělenou ranní směnu jak v pondělí, tak i v úterý.

Tabulka 2.3 Ukázka výstupu řešení – rozvržení testerů, Zdroj: vlastní zpracování

Pondělí Úterý Středa

Medik /lékař Ranní Odpolední Ranní Odpolední Ranní Odpolední

T1 0 0 0 0 0 0

T2 0 0 1 0 0 0

T3 1 0 0 0 0 1

Tabulka 2.4 Ukázka výstupu řešení – rozvržení asistentů, Zdroj: vlastní zpracování

Pondělí Úterý Středa

Asistent /sestra Ranní Odpolední Ranní Odpolední Ranní Odpolední

A1 0 0 0 0 1 1

A2 0 0 0 0 0 1

A3 1 0 1 0 0 0

(22)

22

2.4.2 Matematický model s požadavky zaměstnanců

Formulace matematického modelu s požadavky zaměstnanců bude obsahovat všechny omezující podmínky z předchozího modelu, tj. rovnice (2.1)—(2.6). Pro splnění požadavků zaměstnanců přidám ještě dvě omezující podmínky, které jsou následující:

𝑡𝑖𝑗≤ 𝑝𝑜𝑧𝑑𝑡𝑖𝑗 , 𝑖 = 1,2, . . . , 18, 𝑗 = 1,2, . . . , 14, (2. 7) 𝑠𝑘𝑗≤ 𝑝𝑜𝑧𝑑𝑎𝑘𝑗 , 𝑘 = 1,2, . . . , 13, 𝑗 = 1,2, . . . , 14. (2. 8) Označení je shodné jako v prvním modelu, pozdtij je binární parametr a znázorňuje, zda chce být i-tý tester na j-tou směnu přiřazen a pozdaij je binární parametr a znázorňuje, zda chce být k-tý asistent přiřazen na j-tou směnu.

Význam omezujících podmínek modelu:

- Nerovnice (2.7) zajištuje, aby byl i-tý tester přiřazen na j-tou směnu dle jeho časových možností.

- Nerovnice (2.8) zajištuje, aby byl k-tý asistent přiřazen na j-tou směnu dle jeho časových možností.

Postupuji stejně jako u prvního modelu. Připravím si v datovém souboru nový list. Do tohoto listu si připravím tabulku a nadefinuji si oblasti, kam se mi budou importovat data z programu MPL for Windows. Požadavky dvou skupin zaměstnanců mám již připravené.

Opět zapíšu matematický model do programu MPL for Windows. Matematický model, jak již bylo zmíněno má totožný zápis jako předchozí model, obsahující navíc dvě omezující podmínky. Kompletní výpis kódu modelu je uveden ve výpisu 2.2.

Výpis 2.2 Kód v MPL pro rozvržení všech pracovníků na směny s požadavky 1 TITLE Tranova_BP;

2 OPTIONS

3 ExcelWorkBook="Tranová BP.xlsx";

4 INDEX

5 j:=1..14;

6 i:=1..18;

7 k:=1..13;

8 DATA

9 a[i]:=ExcelRange("vychozi_tab_kriteria!ai");

10 b[j]:=ExcelRange("vychozi_tab_kriteria!bj");

11 c[k]:=ExcelRange("vychozi_tab_kriteria!ck");

12 d[j]:=ExcelRange("vychozi_tab_kriteria!dj");

13 pozt[i,j]:=ExcelRange("reseni_s_pozad_zam!ptij");

14 poza[k,j]:=ExcelRange("reseni_s_pozad_zam!pskj");

15 BINARY VARIABLES

16 t[i,j] Export to ExcelRange("reseni_s_pozad_zam!s_tij");

17 s[k,j] Export to ExcelRange("reseni_s_pozad_zam!s_skj");

18 SUBJECT TO

19 početsměnT[i]:sum(j:t[i,j])<=a[i];

(23)

23 20 pocetzamT[j]:sum(i:t[i,j])=b[j];

21 početsměnS[k]:sum(j:s[k,j])<=c[k];

22 pocetzamS[j]:sum(k:s[k,j])=d[j];

23 pozadavkyt[i,j]:t[i,j]<=pozt[i,j];

24 pozadavkys[k,j]:s[k,j]<=poza[k,j];

25 END

Po nalezení přípustného řešení jsem získala další podobu rozvržení směn zaměstnanců.

Níže v tabulce 2.5 a v tabulce 2.6 je uvedena část řešení. Celé řešení je uvedeno v příloze C.

Nově nalezené výsledky se významně liší od předchozích. Směny už nyní nejsou náhodně přidělovány zaměstnancům pouze s účelem splnění počtu zaměstnanců na daný den v danou směnu, ale také nyní vyhovují časovým možnostem zaměstnanců. Proto když si porovnám např. tabulku 2.3 a tabulku 2.5, tak tester 3 má v tabulce 2.3 přidělenou směnu v pondělí ráno a směnu ve středu odpoledne. Tester 3 do požadavků zadal, že ve středu na odpolední směnu nemůže, proto moje nové řešení v tabulce 2.5 přidělilo testerovi 3 pouze směnu v pondělí ráno. A takto model zajistil, aby požadavky u všech zaměstnanců byly splněny. Systém nalezl přípustné řešení, které vyhovovalo všem požadavkům.

Tabulka 2.5 Ukázka výstupu řešení – rozvržení testerů, Zdroj: vlastní zpracování

Pondělí Úterý Středa

Medik /lékař Ranní Odpolední Ranní Odpolední Ranní Odpolední

T1 0 0 0 0 0 0

T2 0 0 1 0 0 0

T3 1 0 0 0 0 0

Tabulka 2.6 Ukázka výstupu řešení – rozvržení asistentů, Zdroj: vlastní zpracování

Pondělí Úterý Středa

Asistent /sestra Ranní Odpolední Ranní Odpolední Ranní Odpolední

A1 0 0 0 0 0 0

A2 0 0 1 0 0 0

A3 0 1 0 0 0 0

(24)

24

2.4.3 Matematický model s podmínkou povinnosti pracovat alespoň 1 za týden

Jelikož můj matematický model je počítán bez účelové funkce, tak řešení, které mi nalezne MPL for Windows je pouze jedno z mnoha přípustných. Může se stát, že nastane situace, kde nebude zaměstnanci přidělena žádná směna. Je tedy vhodné přidat ještě omezující podmínky (2.9) a (2.10), které zajistí, že každý zaměstnanec bude mít alespoň jednou týdně přidělenou směnu.

∑𝑡𝑖𝑗 ≥ 1, 𝑖 = 1,2, . . . , 18

14

𝑗=1

(2. 9)

∑𝑠𝑘𝑗≥ 1, 𝑘 = 1,2, . . . , 13

14

𝑗=1

(2. 10)

Značení indexů je shodné jako v předchozích modelech. K řešení tohoto modelu použiji stejný datový soubor jako v předchozím modelu. Přidám nový list, kde si opět připravím tabulku a nadefinuji si oblasti pro import dat. Dále si do MPL for Windows přepíšu omezující podmínky (2.1)—(2.10) a spustím řešitele. Celý zápis v MPL je uveden níže ve výpisu 2.3.

Výpis 2.3 Kód v MPL for Windows – přidání omezující podmínky pro zajištění přidělení alespoň 1 směny týdně

1 TITLE Tranova_BP;

2 OPTIONS

3 ExcelWorkBook="Tranová BP.xlsx";

4 INDEX

5 j:=1..14;

6 i:=1..18;

7 k:=1..13;

8 DATA

9 a[i]:=ExcelRange("vychozi_tab_kriteria!ai");

10 b[j]:=ExcelRange("vychozi_tab_kriteria!bj");

11 c[k]:=ExcelRange("vychozi_tab_kriteria!ck");

12 d[j]:=ExcelRange("vychozi_tab_kriteria!dj");

13 pozt[i,j]:=ExcelRange("reseni_s_pozad_zam!ptij");

14 poza[k,j]:=ExcelRange("reseni_s_pozad_zam!pskj");

15 BINARY VARIABLES

16 t[i,j] Export to ExcelRange

("reseni_s_pozad_zam_min_1_smena!s1_tij");

17 s[k,j] Export to ExcelRange

("reseni_s_pozad_zam_min_1_smena!s1_skj");

18 SUBJECT TO

19 početsměnT[i]:sum(j:t[i,j])<=a[i];

20 pocetzamT[j]:sum(i:t[i,j])=b[j];

21 početsměnS[k]:sum(j:s[k,j])<=c[k];

(25)

25 22 pocetzamS[j]:sum(k:s[k,j])=d[j];

23 pozadavkyt[i,j]:t[i,j]<=pozt[i,j];

24 pozadavkys[k,j]:s[k,j]<=poza[k,j];

25 minpočetsměnT[i]:sum(j:t[i,j])>=1;

26 minpočetsměnS[k]:sum(j:s[k,j])>=1;

27 END

Po nalezení přípustného řešení jsem získala další podobu rozvržení směn zaměstnanců.

Níže v tabulce 2.7 a v tabulce 2.8 je uvedena část řešení. Celé řešení je uvedeno v příloze D.

Nyní si porovnám nové výsledky s předchozími, tj. tabulky 2.5—2.8. Systém nalezl nové přípustné řešení rozvržení směn. Řešení se opět trochu odlišuje od předchozího. Porovnám si nyní testera 1 z tabulky 2.5 a z tabulky 2.7. V tabulce 2.5 nemá tester přiřazenou ani jednu směnu, zatímco v tabulce 2.7 má tester přiřazenou směnu v úterý odpoledne. Jelikož jsou to pouze přípustná řešení, tak kombinací rozvržení zaměstnanců, které splňují zadané požadavky je velké množství. Toto řešení, které nám systém nalezl je pouze jedním z možných.

Tabulka 2.7 Ukázka výstupu řešení – rozvržení testerů s doplňující podmínkou, Zdroj: vlastní zpracování

Pondělí Úterý Středa

Medik /lékař Ranní Odpolední Ranní Odpolední Ranní Odpolední

T1 0 0 0 1 0 0

T2 0 0 1 0 0 0

T3 1 0 0 0 0 0

Tabulka 2.8 Ukázka výstupu řešení – rozvržení asistentů s doplňující podmínkou, Zdroj: vlastní zpracování

Pondělí Úterý Středa

Asistent /sestra Ranní Odpolední Ranní Odpolední Ranní Odpolední

A1 0 0 0 0 0 0

A2 0 0 1 0 1 0

A3 0 1 0 0 0 0

(26)

26

2.4.4 Transformace matematického modelu bez binárních proměnných Jelikož je to dopravní problém, zkusím předešlý model řešit bez podmínek binárních proměnných. Kapacity a požadavky jsou zadány jako celočíselné hodnoty, a tak místo podmínky binární proměnné napíšu podmínku, že proměnné budou menší nebo rovno jedné, a tím bych měla dojít ke stejným výsledkům. Transformací tohoto modelu očekávám zrychlení výpočtu matematického modelu. Změna omezujících podmínek je vidět v rovnici (2.15) a (2.16). Celý matematický model bude vypadat následovně:

∑ 𝑡𝑖𝑗≤ 𝑎𝑖, 𝑖 = 1,2, . . . , 18 ,

14

𝑗=1

(2. 11)

∑ 𝑡𝑖𝑗= 𝑏𝑗, 𝑗 = 1,2, … , 14 ,

18

𝑖=1

(2. 12)

∑ 𝑠𝑘𝑗≤ 𝑐𝑘, 𝑘 = 1,2, . . . , 13

14

𝑗=1

, (2. 13)

∑ 𝑠𝑘𝑗

13

𝑖=1

= 𝑑𝑗, 𝑗 = 1,2, . . . , 14 , (2. 14)

𝑡𝑖𝑗≤ 1, 𝑖 = 1,2, . . . , 18, 𝑗 = 1,2, . . . , 14, (2. 15) 𝑠𝑘𝑗≤ 1, 𝑘 = 1,2, . . . , 13, 𝑗 = 1,2, . . . , 14, (2. 16)

∑ 𝑡𝑖𝑗≥ 1, 𝑖 = 1,2, . . . , 18

14

𝑗=1

(2. 17)

𝑠𝑘𝑗≥ 1, 𝑘 = 1,2, . . . ,13

14

𝑗=1

(2. 18)

𝑡𝑖𝑗≤ 𝑝𝑜𝑧𝑑𝑡𝑖𝑗 , 𝑖 = 1,2, . . . , 18, 𝑗 = 1,2, . . . , 14, (2. 19) 𝑠𝑘𝑗≤ 𝑝𝑜𝑧𝑑𝑎𝑘𝑗 , 𝑘 = 1,2, . . . , 13, 𝑗 = 1,2, . . . , 14, (2. 20) Značení indexů a interpretace proměnných je shodné jako v předchozím modelu.

Dalším krokem bude přepis omezujících podmínek (2.11)—(2.20) do MPL a spustím řešitele. Výpis celého kódu z MPL můžeme naleznout níže ve výpisu 2.4.

Výpis 2.4 Kód v MPL for Windows – rozvržení zaměstnanců bez podmínek binarity 1 TITLE Tranova_BP;

2 OPTIONS

3 ExcelWorkBook="Tranová BP.xlsx";

4 INDEX

5 j:=1..14;

6 i:=1..18;

(27)

27 7 k:=1..13;

8 DATA

9 a[i]:=ExcelRange("vychozi_tab_kriteria!ai");

10 b[j]:=ExcelRange("vychozi_tab_kriteria!bj");

11 c[k]:=ExcelRange("vychozi_tab_kriteria!ck");

12 d[j]:=ExcelRange("vychozi_tab_kriteria!dj");

13 pozt[i,j]:=ExcelRange("reseni_s_pozad_zam!ptij");

14 poza[k,j]:=ExcelRange("reseni_s_pozad_zam!pskj");

15 VARIABLES

16 t[i,j] Export to ExcelRange

("reseni reseni_bez_podm_bin!s1_tij");

17 s[k,j] Export to ExcelRange

("reseni reseni_bez_podm_bin!s1_skj");

18 SUBJECT TO

19 početsměnT[i]:sum(j:t[i,j])<=a[i];

20 pocetzamT[j]:sum(i:t[i,j])=b[j];

21 početsměnS[k]:sum(j:s[k,j])<=c[k];

22 pocetzamS[j]:sum(k:s[k,j])=d[j];

23 promBinzams[k,j]:s[k,j]<=1;

24 promBintestt[i,j]:t[i,j]<=1;

25 minpočetsměnT[i]:sum(j:t[i,j])>=1;

26 minpočetsměnS[k]:sum(j:s[k,j])>=1;

27 pozadavkyt[i,j]:t[i,j]<=pozt[i,j];

28 pozadavkys[k,j]:s[k,j]<=poza[k,j];

29 END

Po nalezení přípustného řešení jsem získala další podobu rozvržení směn zaměstnanců.

Níže v tabulce 2.9 a v tabulce 2.10 je uvedena část řešení. Celé řešení je uvedeno v příloze E.

Tabulka 2.9 Ukázka výstupu řešení – rozvržení testerů bez podmínky binarity, Zdroj: vlastní zpracování

Pondělí Úterý Středa

Medik /lékař Ranní Odpolední Ranní Odpolední Ranní Odpolední

T1 0 0 0 0 1 0

T2 1 0 1 0 0 0

T3 0 0 0 0 0 0

Tabulka 2.10 Ukázka výstupu řešení – rozvržení asistentů bez podmínky binarity, Zdroj: vlastní zpracování

Pondělí Úterý Středa

Asistent /sestra Ranní Odpolední Ranní Odpolední Ranní Odpolední

A1 0 0 0 0 0 0

A2 1 0 1 0 0 1

A3 0 1 0 0 1 1

(28)

28

Nyní si porovnám nové výsledky s předchozími, tj. tabulky 2.7—2.10. Systém nalezl nové přípustné řešení rozvržení směn. Nyní se řešení trochu odlišuje od předchozího. Porovnám si nyní testera 1 z tabulky 2.7 a tabulky 2.9. V tabulce 2.7 má tester přiřazenou jednu směnu v úterý odpoledne a v tabulce 2.9 má tester přiřazenou směnu ve středu ráno. V tomto případě jsme nevyužili podmínky binárních proměnných, ale pouze podmínku celočíselnosti, tak i způsob výpočtu se lišil. Jelikož jsou to pouze přípustná řešení, tak kombinací rozvržení zaměstnanců, které splňují zadané požadavky je velké množství.

Řešení mohlo vyjít shodné, ale z výstupu vidíme, že systém nalezl nové přípustné řešení.

Toto řešení, které nám systém nalezl je pouze jedním z možných.

Cílem bylo pokusit se o úsporu času při řešení matematického modelu. Informace o průběhu řešení nalezneme v okně Messages. Potřebný čas k řešení modelu s binárními proměnnými byl 0,04 sekund a pro model bez binárních proměnných bylo potřeba 0,03 sekund. Jelikož je to poměrně malý model, tak úspora času není tak výrazná, ale alespoň jsem si potvrdila, že změnou vlastností proměnných při zpracování většího modelu dojde k úspoře času.

2.5 Aplikace modelu v praxi

Dostala jsem možnost využít svůj model k rozvržení směn na celý měsíc květen 2021. Bylo potřeba model trošku poupravit na základě požadavků zaměstnavatele. Model vychází z předchozích modelů, tj. využiji omezující podmínky (2.1)—(2.10). K modelu doplním tentokrát i účelovou funkci.

2.5.1 Ekonomický model

Firma Váš praktik s.r.o. potřebuje na měsíc květen naplánovat směny šestnácti asistentům na dvě různá pracoviště odběrového centra COVID-19. Tato centra se nachází v hl. m. Praha.

První odběrové místo se nachází v městské části Horní Měcholupy (dále jen HM) a druhé se nachází nedaleko letiště Václava Havla, nese pracovní název Ruzyně (dále jen Ruzyň).

Těmto šestnácti asistentům je potřeba naplánovat směny tak, aby měli přiděleno co nejvíce směn v měsíci. Ty směny, které nebudou přiděleny šestnácti asistentům firmy Váš praktik s.r.o., budou přiděleny dvěma externím asistentům, kteří jsou velmi flexibilní, tudíž nemají žádné požadavky. Asistenti jsou rozděleni do dvou skupin kvůli dvěma různým pracovištím.

Skrze sociální sítě mi kolegové z odběrového centra poslali své požadavky. V požadavcích jsou uvedené následující informace: místo odběrového centra, kde chtějí pracovat, kolik směn v měsíci chtějí mít přiděleno, a jaké dny mohou pracovat. Tyto požadavky jsem si zpracovala do souboru MS Excel.

V datovém souboru jsou uvedeny jak požadavky zaměstnavatele, tak zaměstnanců.

Požadavek z hlediska zaměstnavatele je počet osob, které musí být přiřazeny na směnu.

Požadavky poskytnuty zaměstnanci obsahují počet směn, který by chtěli v měsíci odpracovat a jaké dny mohou pracovat. Cílem mého modelování je přiřadit co nejvíce směn.

(29)

29 2.5.2 Matematický model

Matematický model pro odběrové místo Horní Měcholupy a Ruzyně bude vypadat následovně:

maximalizovat

𝑧 = ∑ ∑ 𝑟𝑖𝑗𝑘𝑗

62

𝑗=1

+

6

𝑘=1

∑ ∑ ℎ𝑚𝑖𝑗𝑖𝑗

62

𝑗=1

10

𝑖=1

(2. 21) za podmínek

∑ ℎ𝑚𝑖𝑗𝑖𝑗≤ 𝑎ℎ𝑚𝑖, 𝑖 = 1,2, . . . , 10 ,

62

𝑗=1

(2. 22)

∑ ℎ𝑚𝑖𝑗𝑖𝑗≤ 𝑏ℎ𝑚𝑗, 𝑗 = 1,2, . . . , 62 ,

10

𝑖=1

(2. 23)

ℎ𝑚𝑖𝑗𝑖𝑗 ≤ 𝑝𝑜𝑧𝑑ℎ𝑚𝑖𝑗, 𝑖 = 1,2, . . . , 10, 𝑗 = 1,2, . . . , 62, (2. 24) ℎ𝑚𝑖𝑗𝑖𝑗= {0,1}, 𝑖 = 1,2, . . . , 10, 𝑗 = 1,2, . . . , 62, (2. 25)

∑𝑟𝑖𝑗𝑘𝑗≤ 𝑎𝑟𝑢𝑧𝑦𝑛𝑘, 𝑘 = 1,2, . . . , 6 ,

62

𝑗=1

(2. 26)

∑ 𝑟𝑖𝑗𝑘𝑗≤ 𝑏𝑟𝑢𝑧𝑦𝑛𝑗, 𝑗 = 1,2, . . . , 62 ,

6

𝑘=1

(2. 27)

𝑟𝑖𝑗𝑘𝑗≤ 𝑝𝑜𝑧𝑑𝑟𝑢𝑧𝑦𝑛𝑘𝑗, 𝑘 = 1,2, . . . , 6, 𝑗 = 1,2, . . . , 62 (2. 28) 𝑟𝑖𝑗𝑘𝑗= {0,1}, 𝑘 = 1,2, . . . , 6, 𝑗 = 1,2, . . . , 62, (2. 29) kde i je počet asistentů pracujících v prvním odběrovém centru, j je počet směn během měsíce května 2021, k je počet asistentů pracujících v druhém odběrovém centru, hmijij představuje přiřazení i-tého asistenta na j-tou směnu prvního odběrového místa, ahmi je maximální možný počet přidělených směn i-tých asistentů prvního odběrového místa, bhmj je počet požadovaných asistentů na j-tou směnu prvního odběrového centra, pozdhmij

představuje, zda i-tý asistent může být přidělen na j-tou směnu prvního odběrového místa, rijkj představuje přiřazení i-tého asistenta na j-tou směnu druhého odběrového centra, aruzyni je maximální možný počet přidělených směn i-tých asistentů druhého odběrového místa, bruzynj je počet požadovaných asistentů na j-tou směnu druhého odběrového centra, pozdruzynkj představuje, zda i-tý asistent může být přidělen na j-tou směnu druhého odběrového místahmijij arijkj jsou binární proměnné.

Význam účelové funkce a omezujících podmínek modelu:

- Účelová funkce (2.21) zajištuje, aby bylo přiřazeno co nejvíce asistentů na požadované směny.

(30)

30

- Omezující podmínka (2.22) obstarává to, aby neměl i-tý asistent v Horních Měcholupech přiřazeno více směn, než je stanovený maximální počet. Podmínka (2.26) vyjadřuje totéž pro odběrové místo Ruzyň.

- Omezující podmínky (2.23) se stará o to, aby na j-tou směnu v Horních Měcholupech byl přiřazen požadovaný počet i-tých asistentů. Podmínka (2.27) vyjadřuje totéž pro odběrové místo Ruzyň.

- Nerovnice (2.24) zajištuje, aby byla splněna podmínka, zda i-tý asistent může být přiřazen na j-tou směnu v Horních Měcholupech. Nerovnice (2.28) vyjadřuje totéž pro odběrové místo Ruzyň. Je to podmínka <= a ne rovnice z důvodu úpravy dopravního problému. V klasickém dopravním problému by to vedlo k nulovým hodnotám proměnných, kde minimalizujeme účelovou funkci. V tomto upraveném modelu máme maximalizační účelovou funkci. Proto je možné využít podmínku nerovnosti.

- Omezující podmínka (2.25) zajištuje, aby proměnné hmijij byly binární.

- Omezující podmínka (2.29) zajištuje, aby proměnné rijkj byly binární.

K řešení budu využívat stejný datový soubor jako v předchozích modelech. V souboru jsou připravené požadavky zaměstnanců a zaměstnavatele. Pro ilustraci je uvedena část požadavků v tabulce 2.11. Celá tabulka požadavků obou odběrných míst je uvedeno v příloze F.

Tabulka 2.11 Ukázka požadavků odběrového místa Ruzyně, zdroj: vlastní zpracování

Ruzyně 29.5.2021 30.5.2021 31.5.2021

Počet požadovaných směn

Jméno R O R O R O

Michaela 0 0 0 0 1 1 27

Terezie 0 0 0 0 0 0 3

Quang 1 1 1 1 1 1 12

Dana 1 1 1 1 0 1 6

Alexandra 1 1 1 1 0 0 3

Počet osob na

směnu 1 1 1 1 1 1 -

Do daného listu si připravím tabulku a nadefinuji si oblasti, kam se mi budou importovat data ze systému MPL for Windows. Dalším krokem bude přepis celého modelu (2.21)—(2.29) dle syntaxe do systému. Níže ve výpisu 2.5 je uveden celý kód.

Výpis 2.5 Kód v MPL pro rozvržení všech pracovníků na směnu za měsíc květen 2021 1 TITLE Tranova_BP;

2 OPTIONS

3 ExcelWorkBook="Tranová BP.xlsx";

4 INDEX

5 i:=1..10;

6 j:=1..62;

7 k:=1..6;

(31)

31 8 DATA

9 ahm[i]:=ExcelRange("smeny_vysetrime_kveten!ahm");

10 bhm[j]:=ExcelRange("smeny_vysetrime_kveten!bhm");

11 pozdhm[i,j]:=ExcelRange("smeny_vysetrime_kveten!pozdhm");

12 aruzyn[k]:=ExcelRange("smeny_vysetrime_kveten!aruzyn");

13 bruzyn[j]:=ExcelRange("smeny_vysetrime_kveten!bruzyn");

14 pozdruzyn[k,j]:=ExcelRange

("smeny_vysetrime_kveten!pozdruzyn");

15 BINARY VARIABLES

16 hmij[i,j]Exportto ExcelRange("smeny_vysetrime_kveten!hmij");

17 rij[k,j] Export to ExcelRange("smeny_vysetrime_kveten!rij");

18 MODEL

19 max z=sum(k,j:rij[k,j])+ sum(i,j:hmij[i,j]);

20 SUBJECT TO

21 početsměnS[i]:sum(j:hmij[i,j])<=ahm[i];

22 pocetzamS[j]:sum(i:hmij[i,j])<=bhm[j];

23 pozadavkys[i,j]:hmij[i,j]<=pozdhm[i,j];

24 početsměnS[k]:sum(j:rij[k,j])<=aruzyn[k];

25 pocetzamS[j]:sum(k:rij[k,j])<=bruzyn[j];

26 pozadavkys[k,j]:rij[k,j]<=pozdruzyn[k,j];

27 END

Po nalezení optimálního řešení jsem získala podobu rozvržení směn asistentů. Níže v tabulce 2.12 je uvedena část řešení. Celé řešení je uvedeno v příloze G.

Cílem tohoto modelu bylo přidělit asistentům maximální možný počet směn. Optimální řešení této úlohy je přiřazení 139 směn ze 162. Neobsazené směny se přidělí dvěma externím asistentům. Níže v tabulce 2.12 je vidět, že pomocí binárních proměnných systém přiřazoval směny konkrétním asistentům na základě jejich požadavků. V ukázkové tabulce má asistentka Michaela přidělené tři směny, zatímco asistentka Terezie nemá přidělenou žádnou. V této tabulce se nemusí každý vyznat, proto jsem transformovala tuto tabulku s binárními hodnotami do přehlednější tabulky, kde je zobrazeno pouze datum, jméno asistenta a místo pracoviště. Ukázku výstupu můžeme nalézt v tabulce 2.13. Celé řešení je uvedeno v příloze H.

Odkazy

Související dokumenty

Cílem bakalářské práce je analyzovat finanční ukazatele rentability a intenzity využití majetku v akciové společnosti v letech 2006 – 2008.. Teoretická část je vypracována

Bakalářská práce je věnovaná zhodnocení finančního zdraví společnosti SWS a. doporučené hodnoty ukazatele okamžité likvidity – str. 18) mnoho vytknout, je

Cílem bakalářské práce je pomocí finanční analýzy zhodnotit vývoj ve společnosti Visimpex a.s.. v letech 2004 – 2007 a navrhnout opatření pro zlepšení

Co bylo v roce 2008 příčinou velkého nárůstu krátkodobých pohledávek (téměř 2x) ve srovnáním s rokem 2007 a vysvětlete v roce 2008 srovnání inkas pohledávek a

Teoretická část je zaměřena na charakteristiku finanční analýzy, dále pak na rozbor výkazů pro finanční analýzu – výkaz zisku a ztráty, rozvaha, příloha a

Studentka si jako téma své práce zvolila vyhodnocení výkonnosti firmy prostřednictvím metod finanční analýzy s cílem navrhnout doporučení vedoucí

Cílem předložené BP bylo na základě analýzy doporučit obci Veselá implementaci terminálu Czech POINT a obeznámit občany s výhodami, které jim jeho užívání přinese..

Součet hodnocení kritérií vypočtěte vydělením součtu stupňů hodnocení šesti... Práce je přehledná a výstižná, cíle práce je