• No results found

2.2 Problem, svårigheter och brister

6.6.1 Heltalsmodellen (HP)

Heltalsmodellen beskriver en given dag på mottagningen. Med hjälp av modellen försöker vi välja ut ett minimalt antal dagsscheman då antalet patientkontakter

på mottagningen maximeras samtidigt som bristen på patientkontakter förblir noll. Detta ska göras utan att överskrida mottagningens resurser.

En specik dag kan ha behov av ett givet antal patientkontakter, vilket betyder att variabeln B är xerad. I de fall används även bivillkor (6.6) där Bf är det

givna antalet patientkontakter. DEFINITIONSLISTA: Variabler:

xj: antalet gånger som dagsschema j används under dagen.

sb

k: brist på patientkontakt k under dagen.

so

k: överskott på patientkontakt k under dagen.

B: antalet patientkontakter under dagen. Parametrar:

ar

ij: antalet patientkontakter av typ i som dagsschema j innehåller.

ab

tj: antalet behandlingssängar som dagsschema j utnyttjar vid tidsenhet t.

ac

tj: beskriver antalet behandlingsstolar som dagsschema j utnyttjar vid tids-

enhet t.

aptj: antalet läkare som dagsschema j utnyttjar vid tidsenhet t.

br

i: procentuellt behovet av patientkontakter av typ i.

bb: antalet behandlingssängar som nns tillgängliga under dagen.

bc: antalet behandlingsstolar som nns tillgängliga under dagen.

bp: antalet läkare som är tillgängliga under samtliga läkartider.

bs: antalet sjuksköterskor som är tillgängliga under dagen.

Tp: mängden tillgängliga läkartider.

I: antalet typer av patientkontakter.

J: antalet tillåtna dagsscheman.

U (k): mängden av typer av patientkontakter som kan tillgodose behovet av patientkontakt k.

b

6.6. Matematiska modeller 39 min b K X k=1 106· sb k− 103· B + J X j=1 xj J X j=1 ³ X i∈U (k) arij ´ · xj+ sbk− sok = brk· B ∀k = 1, . . . , bK J X j=1 abtj· xj≤ bb ∀t J X j=1 ac tj· xj≤ bc ∀t J X j=1 aptj· xj≤ bp ∀t ∈ Tp J X j=1 xj≤ bs xj≥ 0, heltal ∀j sbk, sok ≥ 0 ∀k B ≥ 0 (B = Bf) (6.6)

Modellen (HP) beskriver problemet under en specik dag (då det kan nnas ett givet behov av patientkontakter). Men vi är ute efter att tillgodose beho- vet av patientkontakter under en längre period. Detta för att kunna utvärdera förändringar på lång sikt. För tillfället är vi alltså inte intresserade av hur en förändring påverkar en specik dag. En specik dag kan variera mycket när det gäller behovet av patientkontakter. Därför arbetar vi istället långsiktigt med medelvärden. Med hjälp av medelvärden kan vi konstruera en modell som tillgodoser genomsnittliga behovet av patientkontakter, under en genomsnittlig dag, eller likvärdigt, på lång sikt. Vi presenterar nedan medelvärdesmodellen av (HP).

6.6.2 Medelvärdesmodellen - (LP)

Genom att utnyttja medelvärden kan vi med vår matematiska modell beskriva hur en dag på mottagningen i genomsnitt ser ut. Vi försöker alltså uppfylla behovet av patientkontakter som i medel nns på mottagningen. När vi arbetar med medelvärden tas ingen hänsyn till tidpunkter för specika patientkontakter. I modellen (LP) väljer vi ut dagsscheman som uppfyller det genomsnittliga behovet av patientkontakter. Variabelvärdet beskriver hur många gånger det givna dagsschemat används i medel per dag. Självklart kan man i verkligheten inte använda ett halvt dagsschema, men man kan i medel under en tidsperiod exempelvis använda ett dagsschema 1,5 gånger per dag.

DEFINITIONSLISTA:

Denitionslistan för (LP) är nästan identisk med denitionslistan för (HP). Det enda som ändrar sig är denitionen för en variabel. Vi inför även dualvariabler i denna modell. Dualvariablerna kommer att användas i kapitel 7. Observera att vi nu arbetar med ej heltaliga dagsscheman.

Variabler:

¯

xj: medelvärdet för antalet gånger som dagsschema j används under en dag.

Dualvariabler:

vr

k: dualvariabel för villkoret på patientkontakter.

vb

t: dualvariabel för villkoret på behandlingssängar.

vc

t: dualvariabel för villkoret på behandlingsstolar.

vtp: dualvariabel för villkoret på läkare.

u: dualvariabel för villkoret på antalet sjuksköterskor.

min b K X k=1 106· sb k− 103· B + J X j=1 ¯ xj J X j=1 ³ X i∈U (k) arij ´ · ¯xj+ sbk− sok= brk· B | vrk fria ∀k = 1, . . . , bK J X j=1 abtj· ¯xj≤ bb | vbt≤ 0 ∀t J X j=1 ac tj· ¯xj≤ bc | vtc≤ 0 ∀t J X j=1 aptj· ¯xj≤ bp | vpt ≤ 0 ∀t ∈ Tp J X j=1 ¯ xj≤ bs | u ≤ 0 ¯ xj≥ 0 ∀j sbk, sok≥ 0 ∀k B ≥ 0

Kapitel 7

Kolumngenerering

I de matematiska modellerna representeras ett tillåtet dagsschema av en vari- abel. En förutsättning i kapitel 6 var att vi hade tillgång till mängden av alla tillåtna dagsscheman (mängden ¯J). Låt mängden av alla dagsscheman (otillåt- na och tillåtna) betecknas med eJ. Denna mängd är mycket stor, | eJ| > 1017.

Det tar, om vi genererar ett dagsschema per sekund, minst en miljard år att generera hela mängden eJ.

Mängden av alla tillåtna dagsscheman innehåller en stor mängd dåliga dags- scheman, som med stor sannolikhet inte kommer att användas. Till exempel innehåller den dagsscheman med endast en behandling (se gur 7.1), och dessa kommer vi inte vilja använda på grund av att detta dagsschema utnyttjar en sjuksköterska och resulterar i endast en patientkontakt.

Vi vill lösa våra matematiska modeller med endast en delmängd av den totala mängden tillåtna dagsscheman, och denna delmängd ska innehålla bra dagssche- man. Frågan är: Hur ska denna delmängd genereras? Vi löser detta problem med hjälp av kolumngenerering.

7.1 Teori

Kolumngenerering är en princip för att generera variabler (i vårt fall dagssche- man), eller kolumner. Grundprincipen för kolumngenerering är att vi har ett huvudproblem och ett kolumngenereringsproblem. Huvudproblemet löses först med endast ett fåtal kolumner (tillåtenhet måste dock uppfyllas). Vid lösning- en av detta fås dualvariabler för bivillkoren. Dessa dualvariabler utnyttjar vi i vårt kolumngenereringsproblem. När vi löser kolumngenereringsproblemet re- sulterar detta i en ny kolumn, vilken läggs till i huvudproblemets uppsättning av kolumner, se gur 7.2. Huvudproblemet löses på nytt och de nya dualvariab- lerna utnyttjas i kolumngenereringsproblemet. Detta förfarandet upprepas tills vi inte längre kan skapa några nya bra kolumner i vårt kolumngenereringspro- blem. För att veta om en kolumn är bra beräknas den reducerade kostnaden för

Figur 7.1: Dåligt dagsschema som nns i mängden av alla tillåtna dagsscheman.

kolumnen. I kolumngenereringsproblem försöker vi nna den kolumn som har lägst reducerad kostnad (vid minimeringsproblem). Om vi nner en kolumn med negativ reducerad kostnad är kolumnen bra, vilket innebär att målfunktionsvär- det i huvudproblemet kommer att förbättras. Om den med minsta reducerade kostnaden inte är negativ kan vi sluta generera nya kolumner, eftersom huvud- problemet då lösts till optimalitet. För djupare läsning om kolumngenerering se referens [2].

I vårt problem är huvudproblemet samma som (LP) men, med endast ett fåtal dagsscheman. Huvudproblemet löses med hjälp av lösaren CPLEX version 6,5 (modellen är skriven i AMPL [4]). Kolumngenereringsproblemet löses med hjälp av SGP (som är ett program skrivet i C++ [5] med ca 1400 programrader) se nedan.

7.2 SGP - Schemagenereringsprogram

SGP är ett program som utifrån dualvariablerna genererar tillåtna dagsscheman (se gur 7.3). Syftet är att nna ett dagsschema med minimal reducerad kostnad. Detta gör vi inte med någon optimerande process utan vi använder en girig heuristik. Eftersom vi inte löser kolumngenereringsproblemet till optimalitet kan vi inte garantera att det dagsschema som genereras har lägst reducerad kostnad. Därför kan vi inte garantera att (LP) löses till optimalitet.

7.2. SGP - Schemagenereringsprogram 43

Figur 7.2: Kommunikationen mellan huvudproblemet och kolumngenererings- problemet

Den reducerade kostnaden kan ses som ett mått på hur mycket bättre målfunk- tionsvärdet i (LP) kommer att bli om det genererade dagsschemat används. Om den reducerade kostnaden är negativ kommer målfunktionsvärdet i (LP) att minska, men om den inte är negativ kommer (LP) inte att förändras, och vi kan då heller inte generera er kolumner på grund av att dualvariablerna kommer att bli identiska.

Den reducerade kostnaden, ¯cj, beräknas på följande sätt, då värdena på vr, vb,

vc, vp, u är givna. ¯cj= 1 − b K X k=1 vkr· ³ X i∈U (k) arij ´ X ∀t (vtb· abtj + vct· actj) − X ∀t∈Tp (vpt· aptj) − u (7.1) Här beskriver ar

ij, abtj, actj och aptj det genererade dagsschemat (se avsnitt 6.2

för denitioner). Det nns dualvariabler för varje tidsenhet i modellen. Dualva- riablerna kan tolkas som knappheten på en resurs. Vid överskott på en resurs (behandlingsplatser, sjuksköterskor eller läkare) kommer motsvarande dualvari- abeln att vara noll. Vid brist på en resurs kommer motsvarande dualvariabeln att vara negativ. Ju mer negativ dualvariabeln är desto större är bristen på resursen. Dualvariabeln, vr

k, för behovsbivillkoret beskriver bristen (och över-

skottet) av patientkontakt k. Ju mer positiv dualvariabeln är desto större är bristen av patientkontakten.

Dualvariabeln, vr

i, för behovsbivillkoret blir positiv för varje typ av patientkon-

takt.

7.2.1 Girig heuristik

Målet med heuristiken är att nna ett tillåtet dagsschema med negativ reducerad kostnad. Detta får vi genom att fylla ett dagsschema med patientkontakter. När patientkontakterna schemaläggs undviks, via dualvariabelvärdena, tider då mycket av mottagningens resurser används.

Heuristiken börjar med ett dagsschema utan patientkontakter. Dagsschemat in- nehåller från början endast förberedelsetiden. Under heuristikens gång kommer dagsschemat att fyllas med en patientkontakten i taget. När dagsschemat ska fyllas på med en patientkontakt måste vi veta vilken typ av patientkontakt som ska väljas och under vilken tid de ska schemaläggas. Vi vill schemalägga den typ av patientkontakt som, i kombination med tiden den schemaläggs på, ger mest negativt bidrag till den reducerade kostnaden. För att veta vilken typ av patientkontakt och under vilken tid den ska schemaläggas undersöks alla typer av patientkontakter vid alla möjliga tidsenheter i dagsschemat. Dagsschemat måste vara tillåtet. Detta kontrolleras genom att uppfyllandet av de lokala vill- koren (se avsnitt 6.1.2) undersöks. Det är därför lätt att ta hänsyn till att de lokala villkoren förändras.

7.3. Genereringen av dagsscheman 45 I heuristiken kommer temporära patientkontakter och permanenta patientkon- takter att läggas in i dagsschemat. En temporär patientkontakt kan ändra dess egenskaper som exempelvis start- och sluttid och behandlingsplats. En perma- nent patientkontakt ändrar aldrig egenskaper.

Heuristiken fungerar på följande sätt. (Se gur 7.4 för ödesdiagram över SGP.) Vi börjar med att lägga in den tidigaste och kortaste möjliga temporära patient- kontakten i dagsschemat. Detta görs genom att vi väljer första möjliga starttid och första möjliga sluttid för den temporära patientkontakten. Sedan väljs den temporära patientkontaktens egenskaper, det vill säga om det är en patientkon- takt med enbart behandling, behandling med läkarbesök eller enbart läkarbesök. Om patientkontakten innefattar en behandling väljs även behandlingsplatsen (se alternativ 15 i ödesdiagrammet). Dagsschemats tillåtenhet kontrolleras med avseende på de lokala villkoren. Om dagsschemat är tillåtet beräknas föränd- ringen av den reducerade kostnaden som den temporära patientkontakten bidrar med och information om den bästa tillåtna temporära patientkontakt, som hit- tills har påträats, sparas. Nästa alternativ av egenskaper för den temporära patientkontakten undersöks. När alla alternativ har undersökts ändras patient- kontaktens sluttid. Återigen undersöks alla olika alternativ av egenskaper för patientkontakten. När alla sluttider har undersökt väljer vi nästa möjliga start- tid och första möjliga sluttid, utifrån den nya starttiden. Detta upprepas till det att vi undersökt alla möjliga starttider och alla dess sluttider.

På detta sätt har vi nu undersökt alla möjliga typer av patientkontakter un- der alla möjliga tider i dagsschemat. Under förfarandet sparas information om den hittills bästa tillåtna temporära patientkontakt, alltså vet nu vilken typ av patientkontakt som ska schemaläggas och under vilken tidsenhet. Den bästa temporära patientkontakten läggs in permanent i dagsschemat, den blir alltså en permanent patientkontakt. En ny temporär patientkontakt läggs nu in i dags- schemat och samma förfarande görs för denna. Heuristiken avslutas när det inte längre är möjligt att lägga till någon permanent patientkontakt i dagsschemat. Den reducerade kostnaden för det slutliga dagsschemat beräknas genom att summera bidragen från samtliga permanenta patientkontakter i dagsschemat och subtrahera dualvariabeln för sjuksköterskorna, se (7.1).

7.3 Genereringen av dagsscheman

Vid genereringen av dagsscheman har vissa problem upptäckts. Dessa diskuteras och löses i de två följande avsnitten.

Related documents