OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG UNIVERSITEIT LEIDEN
VOORJAAR 2003
Inhoudsopgave 1 Inleiding
1
1.1
Wat is Operations Research? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1
1.2
Overzicht van de te behandelen technieken . . . . . . . . . . . . . . . . . . . . . . .
3
2 Transportprobleem
6
2.1
Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.2
LP-formulering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
2.3
Tableau en startoplossing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
2.4
Algemene iteratiestap . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.5
Gevoeligheidsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.6
Toepassing
2.7
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
3 Toewijzingsprobleem
18
3.1
Probleemstelling en LP-formulering . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
3.2
De Hongaarse methode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.3
Eindigheid en gevoeligheidsanalyse . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
3.4
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
4 Project Planning
25
4.1
Probleemstelling en modellering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25
4.2
Berekening van het kritieke pad . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
4.3
Bepaling van het kritieke pad met lineaire programmering . . . . . . . . . . . . . . 29
4.4
Het PERT-model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.5
Projectplanning met kosten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.6
Een alternatief model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
4.7
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
5 Minimale opspannende boom
42
5.1
Probleemstelling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
5.2
De methode van Prim . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
5.3
De methode van Kruskal . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
5.4
Steiner bomen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
5.5
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 i
6 Voorraadtheorie
50
6.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
6.2
Continue deterministische modellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
6.3
Periodieke deterministische modellen . . . . . . . . . . . . . . . . . . . . . . . . . . 57
6.4
Continue stochastische modellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
6.5
Periodieke stochastische modellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
6.6
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
7 Wachttijdtheorie
78
7.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
7.2
Wachttijdparadox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
7.3
De formule van Little en PASTA . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
7.4
Geboorte-sterfte processen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
7.5
Wachttijdmodellen gebaseerd op het geboorte-sterfte proces . . . . . . . . . . . . . 87
7.6
Het M/G/1 model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.7
Netwerken van wachtrijen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
7.8
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102
8 Beslissingstheorie
108
8.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.2
Beslissen zonder kansen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.3
Beslissen met kansen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110
8.4
Beslissingsbomen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
8.5
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
9 Simulatie
117
9.1
Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
9.2
Statistische verwerking van gegevens . . . . . . . . . . . . . . . . . . . . . . . . . . 119
9.3
Voorbeelden van simulaties . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
9.4
Aselecte getallen en aselecte trekkingen . . . . . . . . . . . . . . . . . . . . . . . . 126
9.5
Variantie reducerende technieken . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
9.6
Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134
10 Dynamische programmering
137
10.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137 10.2 Terminologie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 10.3 Deterministische dynamische programmering . . . . . . . . . . . . . . . . . . . . . 140 10.4 Stochastische dynamische programmering . . . . . . . . . . . . . . . . . . . . . . . 143 10.5 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145 11 Geheeltallige programmering
148
11.1 Inleiding . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148 11.2 Branch-and-bound . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150
ii
11.3 Afkapmethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155 11.4 Lagrange relaxatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164 11.5 Andere technieken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171 11.6 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173
iii
Hoofdstuk 1
Inleiding 1.1
Wat is Operations Research?
De naam Operations Research (afgekort OR) dateert van vlak voor de Tweede Wereldoorlog. Het Bawdsey Research Station in Engeland kreeg in 1939 de opdracht te onderzoeken hoe de tijdsduur tussen de eerste radarmelding van vijandelijke vliegtuigen en het moment waarop de Engelse luchtmacht in actie kwam, kon worden verkort. Aan dit soort onderzoekingen werd de naam Operations Research gegeven. Het is niet eenvoudig om een definitie van OR te geven: de in de literatuur gegeven definities lopen dan ook sterk uiteen. De OR is te beschouwen als een verzameling van technieken die kunnen worden toegepast om de kwaliteit van kwantitatieve beslissingen te verbeteren. Vandaar de Nederlandse benaming: Besliskunde. In de OR houdt men zich bezig met het toepassen van kwantitatieve methoden om de doelmatigheid van een bepaald systeem te vergroten. In het meest ideale geval wordt een optimale oplossing bepaald. Vaak kan dit echter niet, of vindt men dat te kostbaar. Men volstaat dan met een benaderende oplossing of met een kwantitatieve analyse. In de praktijk worden bij het oplossen van een OR-probleem de volgende stadia onderscheiden: 1. Formulering van het probleem. 2. Constructie van het mathematisch model. 3. Bepaling van een (optimale) oplossing of van een analyse. 4. Onderzoek naar de robuustheid en betrouwbaarheid van de oplossing of van de analyse. 5. Het voorleggen van de uitkomsten aan de opdrachtgever. We zullen deze vijf stadia nader toelichten. Probleemformulering Een probleem dat tot de OR behoort heeft de volgende structuur: a. Er is een beslisser (persoon of groep) die een doel heeft dat nagestreefd wordt. b. De beslisser kan het systeem sturen door het kiezen van acties. c. Onderzocht wordt wat goede of optimale acties zijn, d.w.z. mogelijke acties moeten met elkaar vergeleken kunnen worden.
1
Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen in onzekerheid, in tegenstelling tot beslissen in zekerheid, waarbij het resultaat van de acties wel met zekerheid bekend is. Constructie van het model Een model is een, meestal vereenvoudigde, voorstelling van de werkelijkheid. Het doel van een model is om het gedrag van een systeem te beschrijven. In een mathematisch model voor een OR-probleem komen de acties (de bestuurbare componenten) voor als beslissingsvariabelen of als strategie¨en. Daarnaast kunnen er ook andere grootheden zoals stochastische variabelen, parameters of constanten in voorkomen. Het gedrag van het systeem wordt weergegeven door relaties tussen bovengenoemde grootheden in de vorm van functies, vergelijkingen en restricties. Ook de doelstelling wordt vertaald in termen van de variabelen van het model. Het model heet deterministisch als het correspondeert met het beslissen in zekerheid; bij beslissen in onzekerheid noemen we het model stochastisch. Nadat het model is opgesteld moet worden nagegaan of dit model voldoet (validatie), d.w.z. of het een geschikte voorstelling van de werkelijkheid is. Dit kan vaak worden gedaan door gegevens die uit het verleden of heden bekend zijn met dit model te ”berekenen”, waarna de berekende waarden met de bekende waarden vergeleken kunnen worden. Oplossen of analyseren van het model Er zijn vele manieren mogelijk om een model op te lossen of te analyseren. De keuze van de methode is uiteraard sterk afhankelijk van het model. De methoden om een OR-probleem op te lossen kunnen ruwweg als volgt worden onderverdeeld: 1. analytische methoden; 2. algoritmische methoden; 3. heuristische methoden. Bij een analytische methode wordt een oplossing afgeleid in de vorm van een formule. Door de gegevens van een specifiek probleem in deze formule in te vullen krijgen we de oplossing. Een voorbeeld van deze methode is de zogenaamde wortelformule uit de voorraadtheorie. Bij een algoritmische methode wordt meestal gestart met een bepaalde beginoplossing, waarna het algoritme een nieuwe oplossing bepaalt; deze neemt dan de plaats in van de beginoplossing en vervolgens wordt er weer een nieuwe oplossing bepaald, etc. Een dergelijk iteratief procwdw is geschikt om een OR-model op te lossen als een startoplossing eenvoudig te vinden is en als de rij tussentijdse oplossingen convergeert naar de gewenste oplossing. Een voorbeeld van een algoritmische methode is de simplex-methode voor het model van de lineaire programmering. Als bovenstaande methoden niet kunnen worden toegepast of als er redenen zijn om ze niet toe te willen passen, dan kan vaak gebruik gemaakt worden van een heuristische methode. Hierbij wordt een proc´ed´e voorgesteld, vaak een algoritme, om een goede oplossing te vinden of om elementen van het systeem te analyseren. Een voorbeeld van een techniek om elementen van een systeem te analyseren is simulatie. Bij simulatie wordt de werking van een systeem vele malen nagebootst en waargenomen. Deze waarnemingen vormen dan de informatie op grond waarvan statistische uitspraken over het systeem worden gedaan. 2
Robuustheid en betrouwbaarheid Hierbij gaan we na wat de gevolgen voor de oplossing zijn als de invoer van het probleem wat verandert. Deze evaluatie heet gevoeligheidsanalyse. Het uitvoeren van een dergelijke analyse heeft tot doel om te bepalen hoe nauwkeurig de invoer moet zijn en voor welke veranderingen van de gegevens de huidige oplossing nog voldoet. Bijna nooit zijn we in staat om deze aspecten volledig te beantwoorden. Maar ook informatie over een deel van deze zaken is van belang. Overleg met de opdrachtgever Na het berekenen van een oplossing of het analyseren van het model moeten de resultaten worden besproken met de opdrachtgever. Hierbij komen de volgende zaken aan de orde: a. Welke nieuwe acties moeten door de beslisser gebruikt gaan worden? b. Wat is het effect van de nieuwe acties? c. Is de opdrachtgever bereid de veranderingen door te voeren? Allereerst is er de vertaling van de uitkomst van de beslissingsvariabelen naar nieuwe acties voor de beslisser. Voordat men er toe over zal gaan om de voorstellen ook werkelijk operationeel te maken, moet men er van worden overtuigd dat ze een verbetering inhouden. Soms kan dit in de praktijk worden aangetoond. Vaak is dit ook niet het geval, bijv. als het een ´e´enmalige operatie betreft die niet is te testen of te duur is om te testen. In die situatie kan simulatie een uitkomst zijn om aannemelijk te maken dat het voorstel een verbetering inhoudt. Zelfs als de opdrachtgever er van overtuigd is dat de voorstellen een verbetering zijn, dan kan hij desondanks niet bereid zijn om deze te implementeren, bijv. op grond van de sociale of maatschappelijke gevolgen er van. In een dergelijke overlegsituatie komt men er soms achter dat het gehanteerde model onvoldoende geschikt is, of dat de probleemformulering niet correct is geweest. In dat geval zullen een aantal stappen opnieuw moeten worden uitgevoerd. Dit kan zich dan zo herhalen totdat, bij succes, de implementatie werkelijkheid wordt.
1.2
Overzicht van de te behandelen technieken
In dit college zullen we aandacht besteden aan een groot aantal technieken om OR-problemen op te lossen. Naast het bespreken van de theorie van deze technieken zal ook het oplossen van vraagstukken aan bod komen, zowel met de hand als met de computer. Bij dit laatste kan gebruik worden gemaakt van beschikbare programmatuur. De onderwerpen die aan bod komen zijn: A. Speciale lineaire modellen 1. Het transportprobleem Een bepaald product moet van een aantal depots naar een aantal bestemmingen worden getransporteerd. Er is bekend wat er in ieder depot in voorraad is en wat iedere bestemming nodig heeft. Aan iedere route van depot naar bestemming zijn transportkosten per eenheid van vervoer verbonden. Welk transportschema minimaliseert de totale kosten?
3
2. Het toewijzingsprobleem Een aantal taken moet door een even groot aantal personen worden uitgevoerd (iedere persoon ´e´en taak). Met iedere toewijzing corresponderen bepaalde kosten. Welke toewijzing minimaliseert de totale kosten? B. Netwerk modellen 1. Projectplanning Een project bestaat uit een aantal activiteiten, waarbij sommige activiteiten pas gestart kunnen worden als bepaalde andere activiteiten klaar zijn. Iedere activiteit heeft een zekere tijdsduur die deterministisch of stochastisch kan zijn. We zijn o.a. ge¨ınteresseerd in de volgorde waarin de activiteiten moeten worden uitgevoerd opdat het project zo snel mogelijk klaar is. 2. Minimale opspannende boom Een aantal plaatsen moet met elkaar worden verbonden (bijv. met telefoonkabels), zodat het netwerk dat ontstaat samenhangend is. Hoe moet dit worden gedaan opdat de totale lengte van de verbindingen minimaal is? C. Stochastische modellen 1. Voorraadtheorie Een product wordt in voorraad gehouden om het aan klanten te verkopen. Deze verkoop levert een zekere opbrengst op. Daarnaast komen kosten voor, zoals: - bestelkosten als nieuwe exemplaren worden besteld; - voorraadkosten voor het in voorraad hebben van het product; - naleveringskosten indien er geen voorraad is maar wel vraag. Welke inkoopstrategie maximaliseert de opbrengst bij een gegeven vraag? 2. Wachttijdtheorie Beschouw een systeem waarin klanten volgens een bepaald proces binnenkomen en door een aantal bedienden worden geholpen, waarbij de bedieningsduur een zekere kansverdeling heeft. Van een dergelijk systeem analyseren we o.a. het gemiddeld aantal klanten in het systeem en de gemiddelde wachttijd. 3. Beslissingstheorie In dit model beschouwen we een systeem waarin verschillende alternatieven zijn en waarbij de uitkomst van een beslissing niet met zekerheid bekend is, maar bijv. door een kansverdeling wordt gegeven. Een van de vragen bij dit model is: welke strategie moet gevolgd worden om de verwachte opbrengst te maximaliseren? 4. Simulatie Het probleem dat we willen analyseren wordt vele malen nagebootst. De aldus experimenteel verkregen resultaten worden bestudeerd. Met behulp van dit cijfermateriaal worden statistische uitspraken gedaan over karakteristieke grootheden van het systeem. 4
D. Overige technieken 1. Dynamische programmering Dynamische programmering is een mathematische techniek om beslissingsproblemen op te lossen die een systeem betreffen dat een sequenti¨eel karakter heeft, of dat als zodanig gemodelleerd kan worden. Dergelijke problemen zijn vaak met een recursieve aanpak op te lossen. 2. Geheeltallige lineaire programmering In dit model wordt gezocht naar het optimum van een lineaire functie onder lineaire nevenvoorwaarden, waarbij de variabelen geheeltalige waarden moeten aannemen. 3. Heuristieken In situaties waarin technieken om een optimale oplossing te vinden niet beschikbaar of te kostbaar zijn, kan een heuristische methode uitkomst bieden. We hopen dan met ad hoc regels in vrij korte tijd een goede oplossing te kunnen vinden. 4. Speltheorie In de speltheorie houdt men zich bezig met modellen die conflictsituaties beschrijven. Niet alle conflictsituaties zijn in ´e´en model te vangen. We onderscheiden bijvoorbeeld: a. Het aantal deelnemers (tweepersoonsspelen of spelen met meer personen); b. Het al dan niet geoorloofd zijn van combines (wel of niet co¨operatieve spelen); c. Regelen van de uitbetalingen (wel of geen nulsomspel). 5. Scheduling In de scheduling moet een aantal taken bewerkingen op machines ondergaan. Van iedere taak is gegeven op welke machines deze moet worden uitgevoerd, eventueel ook in welke volgorde, en hoe lang iedere bewerking duurt. De probleemstelling luidt: hoe deze taken te schedulen opdat een bepaalde functie ge-optimaliseerd wordt, bijv. minimaliseer het tijdstip waarop alle taken klaar zijn.
5
Hoofdstuk 2
Transportprobleem 2.1
Probleemstelling
Er is een aantal, zeg m, depots van waaruit naar diverse, zeg n, bestemmingen goederen vervoerd moeten worden. De vraag kan dan gesteld worden hoeveel er vanuit de diverse depots naar de verschillende bestemmingen verzonden moet worden opdat de totale transportkosten minimaal zijn. We veronderstellen dat de transportkosten evenredig zijn met de te transporteren hoeveelheden. Laat cij de kosten voorstellen die gemaakt worden als ´e´en eenheid van depot i naar bestemming j wordt vervoerd, ai de totale voorraad in depot i en bj het totaal dat in bestemming j moet worden bezorgd. Voorbeeld 2.1 Beschouw een transportprobleem met 3 depots, 4 bestemmingen en verder de volgende gegevens:
30
15 3 7 3 4 10 C= 5 7 2 6 , a = 30 en b = 15 . 55 8 13 9 3 45
2.2
LP-formulering
Laat xij de hoeveelheid zijn die van depot i naar bestemming j verzonden wordt. Het transportprobleem kan nu als volgt worden geformuleerd: P n xij ≤ ai , 1 ≤ i ≤ m n m X X Pj=1 m cij xij min i=1 xij ≥ bj , 1 ≤ j ≤ n i=1 j=1 x ≥ 0 voor alle (i, j) ij
(2.1)
Wil het probleem een toegelaten oplossing hebben, dan moet de totale vraag niet groter zijn n m n dan het totale aanbod, d.w.z. Σm i=1 ai ≥ Σj=1 bj . We mogen aannemen dat Σi=1 ai = Σj=1 bj ,
immers: als namelijk het aanbod groter is dan de vraag, dan voegen we een extra bestemming
6
n n + 1 toe, en nemen we bn+1 = Σm i=1 ai − Σj=1 bj met bijbehorende kosten c i,n+1 = 0 voor alle i,
d.w.z. dat het overschot zonder kosten naar de extra bestemming wordt afgevoerd.
Als de totale vraag Σnj=1 bij gelijk is aan het totale aanbod Σm i=1 ai , dan geldt voor iedere toegelaten oplossing x dat de ongelijkheden in (2.1) gelijkheden zijn. Vandaar dat we als standaardformulering nemen:
min
m X n X i=1
Voorbeeld 2.1 (vervolg)
cij xij
j=1
P n xij = ai , 1 ≤ i ≤ m Pj=1 m i=1 xij = bj , 1 ≤ j ≤ n xij ≥ 0 voor alle (i, j)
(2.2)
n In ons voorbeeld geldt Σm i=1 ai = Σj=1 bj , zodat de standaardformulering is:
min 3x11 + 7x12 + 3x13 + 4x14 + 5x21 + 7x22 + 2x23 + 6x24 + 8x31 + 13x32 + 9x33 + 3x34 onder de voorwaarden: x11 + x12 + x13 + x14
= 15 x21 + x22 + x23 + x24
= 30 x31 + x32 + x33 + x34 = 55
x11
+ x21 x12
+ x31 + x22
x13
= 30 + x32
+ x23 x14
= 10 + x33
+ x24
+ x34
= 15 = 45
x11 , x12 , x13 , x14 , x21 , x22 , x23 , x24 , x31 , x32 , x33 , x34 ≥ 0 De formulering van het duale probleem is: max 15u1 + 30u2 + 55u3 + 30v1 + 10v2 + 15v3 + 45v4 onder de voorwaarden: u1 +v1 u1
u2
+v1
u2
u3 +v1 u3 u3
≤
5
≤
2
≤
8
≤
9
4
≤
7
+v4 ≤
6
+v3
u2
3
+v4 ≤ +v2
u2
≤
7
+v3
u1
3
≤
+v2
u1
≤
≤ 13
+v2 +v3
+v4 ≤
u3
3
Het duale probleem bij de algemene formulering (2.2) luidt: max {
m X i=1
ai ui +
n X j=1
bj vj | ui + vj ≤ cij voor alle (i, j) } 7
(2.3)
Het transport probleem is een LP-probleem met een speciale structuur. Zonder bewijs 1 vermelden we de volgende eigenschappen: (i) Ieder pivotelement is gelijk aan 1, en, als alle a i en bj geheeltallig zijn, dan zijn in iedere basisoplossing x alle xij geheeltallig. (ii) De rang van het stelsel vergelijkingen in de standaardformulering (2.3) is m + n − 1, dus een basis bevat m + n − 1 x-variabelen.
(iii) Beschouw de bipartiete graaf die op natuurlijke wijze behoort bij het transportprobleem. Er is een ´e´en-´e´enduidig verband tussen de verz. van de bases van probleem (2.3) en de verz. van de opspannende bomen in de graaf, die corresponderen met een toelaatbaar vervoersschema.
2.3
Tableau en startoplossing
In plaats van in een simplex tableau zullen we oplossingen van het transport probleem representeren in het volgende tableau: b1
b2
c1n
x1n
c2n
x2n
·
···
··· ···
·
·
·
···
· ·
·
c11
x11
c12
x12
a2
c21
x21
c22
x22
·
·
·
·
·
·
·
·
am
· cm1
· xm1
·
·
cm2
bn
···
a1
·
···
xm2
···
cmn
· xmn
Dit tableau heeft m + 1 rijen en 2n + 1 kolommem en is dus veel compacter dan het simplextableau dat m+n+1 rijen en mn+1 kolommen bevat. We zullen laten zien dat we alle benodigde informatie uit bovenstaand kunnen halen. We moeten starten met een basisoplossing, d.w.z. met een opspannende boom waarover alles vervoerd kan worden. We zullen hier drie gebruikelijke keuzes bespreken en aan de hand van ons voorbeeld toelichten. a. De Noord-West regel Hierbij gebruiken we routes die in het tableau zoveel mogelijk in de Noord-West hoek (linksboven) staan. We beginnen te kijken wat van depot 1 naar bestemming 1 vervoerd kan worden: het minimum van a1 en b1 . In het voorbeeld is dit 15. Alles wat beschikbaar is in depot 1 is nu op. Daarom kijken we vervolgens wat van depot 2 naar bestemming 1 kan worden vervoerd. Deze hoeveelheid is 15, want daarmee is aan de vraag van 30 voldaan. Vervolgens kan er 10 van depot 2 naar bestemming 2 en 5 van depot 2 naar bestemming 3. Tenslotte wordt er van depot 3 een hoeveelheid 10 vervoerd naar bestemming 3 en 45 naar bestemming 4. Bij deze regel hoort dus het starttableau: 1
Voor het bewijs verwijzen we naar het College Grafentheorie.
8
30
10
15
3
15
7
30
5
15
7
55
8
15
45
3 10
13
4
2
5
6
9
10
3
45
Kosten: 3 × 15 + 5 × 15 + 7 × 10 + 2 × 5 + 9 × 10 + 3 × 45 = 425. Omdat we in het tableau iedere keer ofwel een stap naar rechts, ofwel een stap naar omlaag gaan, komen we nooit in reeds bezochte punten terug. In de bijbehorende graaf zijn dus geen kringen en we krijgen dus een opspannende boom. Een nadeel van deze regel is dat er geen enkele rekening wordt gehouden met de kosten. De volgende regel komt aan dit bezwaar tegemoet. b. De minimale-kosten regel Vervoer zoveel mogelijk over het goedkoopste traject (in het voorbeeld van depot 2 naar bestemming 3), vervolgens over het op ´e´en na goedkoopste traject, etc. Om een opspannende boom te krijgen, moet per stap precies ´e´en bestemming of depot worden ’afgesloten’, behalve in de laatste iteratie waar we zowel ´e´en bestemming als ´e´en depot afsluiten. Door deze afsluitingen kunnen we geen kringen krijgen. Na n + m − 1 toekenningen hebben we dus een opspannende boom. Met
deze regel krijgen we voor het voorbeeld als starttableau: 30
10
15
15
3
15
7
3
30
5
15
7
0
2
55
8
13
10
9
45 4
15
6 3
45
Kosten: 2 × 15 + 3 × 15 + 3 × 45 + 5 × 15 + 7 × 0 + 13 × 10 = 415. Nadat in de vierde stap over het traject depot 2 - bestemming 1 15 is vervoerd zijn tegelijk de eisen van depot 2 en bestemming 1 vervuld. We mogen echter maar ´e´en bestemmimg of depot afsluiten; in dit geval is gekozen om bestemming 1 af te sluiten. In de volgende stap wordt daarom 0 toegewezen aan de route depot 2 - bestemming 2 waarna depot 2 wordt afgesloten. Een toewijzing 0 betekent in termen van de lineaire programmering dat de bijbehorende basisoplossing gedegenereerd is. Een dergelijke degeneratie kan voorkomen als X X ai = bj met I1 en J1 echte deelverzamelingen van {1, 2, . . . , m} resp. {1, 2, . . . , n}. i∈I1
j∈J1
(2.4)
De minimale-kosten regel kan als nadeel hebben dat een goede keuze aan het begin leidt tot hoge kosten aan het eind. Er is dan geen afweging van alternatieven. Deze afweging vindt in de volgende meer geavanceerde regel wel plaats. c. De regel van Vogel In de eerste stap wordt een boete gegeven aan ieder depot of iedere bestemming. Deze boetes zijn de extra kosten als niet de goedkoopste maar de op ´e´en na goedkoopste route vanuit het desbetreffende depot of naar de desbetreffende bestemming wordt gekozen. In ons voorbeeld zijn de boetes: 9
bestemming
boete
depot
boete
1
5-3=2
1
3-3=0
2
7-7=0
2
5-2=3
3
3-2=1
3
8-3=5
4
4-3=1
Vervolgens wordt die bestemming of dat depot gekozen waarvoor de boete maximaal is (in het voorbeeld: depot 3), en wijzen we zo veel mogelijk toe aan de goedkoopste route in de betreffende kolom of rij (in het voorbeeld: 45 aan route depot 3 - bestemming 4), waarna een depot of een bestemming wordt afgesloten (in het voorbeeld: bestemming 4). We kiezen dus dat traject waarvan het alternatief zo ongunstig mogelijk is. Deze procedure wordt herhaald met inachtneming van de afgesloten bestemmingen en depots. In elke stap moeten de boetes worden aangepast. Om ook hier een opspannende boom te krijgen moet in iedere stap precies ´e´en bestemming of depot worden afgesloten. Voeren we deze regel uit in ons voorbeeld, dan krijgen we: stap 1: 45 toewijzen aan depot 3 - bestemming 4; stap 2: 15 toewijzen aan depot 2 - bestemming 3; stap 3: 10 toewijzen aan depot 3 - bestemming 1; stap 4: 15 toewijzen aan depot 1 - bestemming 1; stap 5: 10 toewijzen aan depot 2 - bestemming 2; stap 6: 5 toewijzen aan depot 2 - bestemming 1. Bij deze toewijzing hoort dus het tableau: 30
10
15
3
15
7
30
5
5
7
55
8
10
13
15 3 10
2 9
45 4
15
6 3
45
Kosten: 3 × 45 + 2 × 15 + 8 × 10 + 3 × 15 + 5 × 5 + 7 × 10 = 385.
2.4
Algemene iteratiestap
Hebben we een basisoplossing x, dan gaan we de bijbehorende vectoren u en v van het duale probleem berekenen. Omdat voor een x in de basis de bijbehorende verschilvariabele van het duale probleeem 0 is, geldt: ui + vj = cij voor alle (i, j) met xij in de basis. Uit (2.3) blijkt dat een duale oplossing toelaatbaar blijft en dat de waarde van de doelfunctie niet verandert als bij alle ui hetzelfde getal wordt opgeteld en van iedere v j dat getal wordt afgetrokken (ga dit zelf na). E´en der variabelen kan dus willekeurig worden gekozen. We spreken af dat we u1 = 0 zullen nemen. Beschouw de bij de basis x behorende boom en neem het knooppunt 10
dat behoort bij u1 als wortel, zeg knooppunt 1. De waarden van de andere u i ’s en vj ’s zijn te bepalen door in de boom vanuit knooppunt 1 naar de eindpunten te lopen, immers: voor tak (i, j) geldt: vj = cij − ui , zodat we vj kunnen uitrekenen als ui bekend is; omgekeerd kunnen we via ui = cij − vj , ui uitrekenen als vj bekend is.
Vervolgens gaan we na of deze (u, v) toelaatbaar is voor (2.3). Is dit het geval, dan weten we uit de lineaire programmering dat x een optimale oplossing is van (2.2) en dat (u, v) een optimale oplossing van (2.3) is. Als (u, v) niet toelaatbaar is voor (2.3)), dan gaan we als volgt te werk. De variabelen x ij met ui + vj > cij zijn de kandidaten om in de basis te komen (pivotkolom): de bijbehorende verschilvariabelen van het duale probleem (deze staan in het simplex-tableau in de getransformeerde doelfunctie) zijn dan negatief. Toevoegen van de corresponderende tak aan de boom doet een kring ontstaan. Deze is in het tableau op te sporen en we geven de takken er van afwisselend een + en een - (de toegevoegde tak krijgt een +). Over de + takken zal meer vervoerd gaan worden en over de - takken evenveel minder. De hoeveelheid die we gaan vervoeren is het minimum van de waarden van de takken met een -; noem deze hoeveelheid d. Hierdoor krijgt een der - takken de waarde 0 en deze tak verlaat de boom (pivotrij). Als de hoeveelheid d vervoerd gaat worden over de toegevoegde tak, dan nemen - omdat ieder pivotelement gelijk is aan 1 - de totale kosten met d · [u i + vj − cij ] af. Een goede keuze lijkt dus
om die tak (i, j) te kiezen waarvoor u i + vj − cij maximaal is. Dit komt overeen met de meest
gebruikelijke keuze van de pivotkolom in de simplexmethode, nl. die kolom waarvan de co¨effici¨ent in de getransformeerde doelfunctie het meest negatief is. De hier beschreven methode is dan ook een speciale implementatie van de simplex-methode voor een LP probleem van de vorm (2.2). Voorbeeld 2.1 (vervolg) Uitgaande van de startoplossing volgens de Noord-West regel wordt de oplossing van ons voorbeeld als volgt verkregen (in de voorste kolom staat u en in de bovenste rij v): 3 0 2 9
5
3
15
5
5−
8
+
c = 425
0
7 7 13
5
4
0
3
15
7
2
5+
6
2
5
5
7
9
10−
3
var 5
8
3 10
3
-6
45
c = 385
d = 10.
13
0
-2
3 10
2
4 15
9
6 3
45
optimaal
Eindigheid Als d = 0, dan is er sprake van degeneratie en geldt (2.4) voor zekere deelverz. I 1 en J1 . In dat geval kan de eindigheid in gevaar komen. Het is mogelijk dit te voorkomen met de zogenaamde ε-perturbatie, d.w.z. in plaats van 0 nemen we een klein getal ε. Aan het einde vervangen we ε weer door 0. Indien voor geen enkele deelverz. I 1 en J1 (2.4) niet geldt, dan is er geen degeneratie en is de eindigheid van de methode zonder meer gegarandeerd.
11
2.5
Gevoeligheidsanalyse
We zullen de volgende veranderingen van het probleem onderzoeken: (i) veranderingen in de doelfunctie; (ii) veranderingen van de voorraad en de vraag. (i)Veranderingen in de doelfunctie Veronderstel eerst dat de co¨effici¨ent cij van een niet-basis-variabele xij wordt gewijzigd. Uit het voorafgaande volgt dat de huidige basis optimaal blijft zolang c ij ≥ ui + vj . Voorbeeld 2.1 (vervolg) Beschouw de waarde van c32 (de huidige waarde is 13). Omdat u3 = 5 en v2 = 5,is de huidige oplossing optimaal voor c32 ≥ 10. Veronderstel vervolgens dat de co¨effici¨ent cij van een basis-variabele xij wordt gewijzigd. Stel cij = λ en bereken opnieuw de ui en vj waarden als functie van λ. Door te eisen dat c ij ≥ ui + vj
voor alle (i, j) met xij niet in de basis, krijgen we het bereik van c ij waarvoor de huidige oplossing optimaal is. Voorbeeld 2.1 (vervolg) Beschouw de waarde van c31 (de huidige waarde is 8). De berekening van de u i ’s en de vj ’s doen we in onderstaand tableau. 3
5
0
3
15
7
2
5
5
7
λ−3
λ
10
13
0 3 10
2 9
15
6-λ
Er moet gelden:
4
13 ≥ λ + 2; 9 ≥ λ − 3; 4 ≥ 6 − λ; 6 ≥ 8 − λ.
Hieruit volgt: 2 ≤ λ ≤ 11, zodat de huidige
6 3
oplossing optimaal blijft voor 2 ≤ c 31 ≤ 11.
45
(ii) Veranderingen van de voorraad en de vraag We beschouwen het geval dat de voorraad in ´e´en depot, zeg depot i, met λ verandert en dat de vraag in ´e´en bestemming, zeg bestemming j, met eveneens λ verandert (λ mag zowel positief als negatief zijn). n Merk op dat Σm i=1 ai = Σj=1 bj blijft gelden en dat volgens de dualiteitsstelling van de lineaire
programmering geldt: n nieuw optimum (2.2) = nieuw optimum (2.3) = Σ m i=1 ai ui + Σj=1 bj vj + λ(ui + vj )
= oude optimum +λ(ui + vj ), zolang (u, v) de optimale oplossing van (2.3) blijft. Een optimale oplossing van het gewijzigde probleem wordt nu als volgt verkregen: Beschouw eerst het geval dat xij een basis-variabele is: Vervang xij door xij +λ mits λ zdd. xij +λ ≥ 0. Het is duidelijk dat x toelaatbaar is en optimaal,
want (u, v) blijft optimaal.
12
Voorbeeld 2.1 (vervolg) Neem het eerste depot en ook de eerste bestemming. Voor λ ≥ −15 is de verandering in de
optimale oplossing: x11 = 15 + λ en het optimum = 385 + λ(0 + 3) = 385 + 3λ. Beschouw vervolgens het geval dat x ij een niet-basis-variabele is:
In de boom is een unieke keten van i naar j. Doorloop deze keten, beginnend met (i, k) en vermeerder en verminder afwisselend de bijbehorende basisvariabelen met λ, beginnend door xik te vermeerderen met λ. Ga door tot knooppunt j is bereikt. Omdat een oneven aantal veranderingen heeft plaats gehad, is er in rij i en kolom j een hoeveelheid λ bijgekomen, d.w.z. de voorraad in depot i en de vraag in bestemming j is met λ toegenomen. λ moet nu nog wel voldoen aan de eis dat de nieuwe variabelen niet-negatief zijn. De verkregen oplossing is dan weer toelaatbaar en ook optimaal, omdat (u, v) optimaal is voor (2.3). Voorbeeld 2.1 (vervolg) Neem het eerste depot en de tweede bestemming. De keten is: depot 1 → bestemming 1 → depot
2 → bestemming 2. De veranderingen zijn: x 11 = 15 + λ, x21 = 5 − λ, x21 = 10 + λ. Voor
−10 ≤ λ ≤ 5 blijven dezelfde variabelen in de basis. Het optimale tableau voor λ = 4 staat hieronder:
3
2.6
5
0
3
19
7
2
5
1
7
5
8
10
13
0
-2
3 14
2
4 15
9
6 3
45
Toepassing
Er is vraag naar een aantal, zeg n, producten die gemaakt moeten worden uit nieuw materiaal en uit gerecyclede materialen, zeg de gerecyclede materialen 1, 2, . . . , m. Van gerecycled materiaal i is een hoeveelheid ai beschikbaar, i = 1, 2, . . . , m. Naar product j is een vraag dj die moet worden gemaakt uit minstens m j nieuw materiaal en verder uit gerecyclede materialen. Als gerecycled materiaal wordt gebruikt voor product j, dan kan van iedere eenheid van het gerecyclede materiaal slechts de fractie t j effectief worden gebruikt. Gevraagd wordt naar een productieproces dat zo min mogelijk nieuw materiaal gebruikt. Laat vj de hoeveelheid nieuw materiaal zijn voor product j en laat x ij de hoeveelheid van gerecycled materiaal i zijn dat wordt gebruikt voor product j. Bovenstaand probleem kan dan n X min vj j=1
als volgt als LP-probleem worden geformuleerd: Pn j=1 xij ≤ ai , 1 ≤ i ≤ m Pm tj · i=1 xij + vj ≥ dj , 1 ≤ j ≤ n vj ≥ m j , 1 ≤ j ≤ n xij ≥ 0 voor alle (i, j) 13
(2.5)
Neem als depots {0, 1, . . . , m} en de bestemmingen {1, 2, . . . , n}. Laat c 0j = tj , j = 1, 2, . . . , n en
cij = 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n. Neem verder x0j =
vj −mj tj ,
j = 1, 2, . . . , n, dan is c0j x0j = tj x0j =
vj − mj = het extra nieuwe materiaal voor product j, j = 1, 2, . . . , n. P P Pn De doelfunctie is dus equivalent met nj=1 c0j x0j = m i=0 j=1 cij xij . Merk verder op dat:
vj ≥ mj ⇔ x0j ≥ 0, j = 1, 2, . . . , n en P Pm dj −vj tj · m = i=1 xij + vj ≥ dj ⇔ i=1 xij ≥ tj
Noem
dj −mj tj
dj −mj tj
−
vj −mj tj
⇔
Pm
i=0 xij
≥
dj −mj tj ,
j = 1, 2, . . . , n.
= bj , j = 1, 2, . . . , n. Het is nu in te zien dat (2.5) equivalent is met: m X n X
min
i=0
cij xij
j=1
Pn
j=1 xij Pm i=1 xij
xij
≤ ai , 1 ≤ i ≤ m ≥ bj , 1 ≤ j ≤ n
(2.6)
≥ 0, 0 ≤ i ≤ m, 1 ≤ j ≤ n
Probleem (2.6) is van het type (2.1), zodat deze toepassing is op te lossen als transportprobleem.
2.7
Opgaven
Opgave 1 Bepaal een optimale oplossing van voorbeeld 2.1, uitgaande van de minimale-kosten regel. Opgave 2 Beschouw het transportprobleem met 4 depots, 6 bestemmingen en verder de volgende gegevens:
9
8
10
7
6
8
6 7 8 11 9 11 C= 10 9 12 10 7 10 , a = 11 12 9 10 11 8
61
42 en b = 38 51
a. Bepaal de startoplossing met de regel van Vogel.
30
38 31 . 29 28 36
b. Los dit transportprobleem op, uitgaande van de in onderdeel a verkregen startoplossing. Opgave 3 Een autoverhuurbedrijf heeft vestigingen in 6 plaatsen (A, B, C, D, E en F). Het bedrijf heeft een probleem, dat veroorzaakt wordt doordat auto’s bij andere vestigingen worden teruggebracht dan waar ze gehuurd zijn. Beschouw de situatie dat er 9, 6, 7 en 9 auto’s over zijn in de plaatsen A, B, C en D resp., terwijl er in E en F 15 resp. 13 te weinig zijn. De vervoerskosten (per auto) tussen de vestigingsplaatsen zijn als volgt:
14
A
B
C
D
E
45
17
21
30
F
14
18
19
31
Het bedrijf wil er op zo goedkoop mogelijke wijze voor zorgen dat er in E en F voldoende auto’s zijn. a. Formuleer dit probleem als een transportprobleem. b. Bepaal een startoplossing met de regel van Vogel. c. Bepaal een optimale oplossing. Opgave 4 Een bedrijf levert goederen aan 3 klanten, die ieder 30 eenheden wensen te ontvangen. Het bedrijf heeft 2 depots. In depot 1 zijn 40 eenheden beschikbaar en in depot 2 30 eenheden. De transportkosten (in euro’s per eenheid) staan in onderstaande tabel: klant 1
klant 2
klant 3
depot 1
15
35
25
depot 2
10
50
40
Voor iedere eenheid die de eerste klant niet ontvangt moet een boete van 90 euro worden betaald, bij de tweede klant is een dergelijke boete 80 euro en bij de derde klant 110 euro. a. Formuleer een transportprobleem dat de som van de transportkosten en de boetes minimaliseert; los vervolgens dit probleem met de hand op. b. Veronderstel dat het bedrijf voor 100 euro per eenheid de voorraad in depot 1 en/of depot 2 kan aanvullen, en dat alle klanten de door hen verlangde hoeveelheid moeten ontvangen. Formuleer het probleem dat de som van de transportkosten en de aanvulkosten minimaliseert eveneens als een transportprobleem. Los het geformuleerde transportprobleem met de hand op. Opgave 5 Een bedrijf produceert 3 soorten staal in 3 verschillende fabrieken. De tijd (in minuten) nodig voor de productie van 1 ton staal (onverschillig welk soort) en de productiekosten (in honderden euro’s) voor ieder soort staaal staan voor iedere fabriek in onderstaande tabel: staal 1
staal 2
staal 3
tijd
fabriek 1
60
40
28
20
fabriek 2
50
30
30
16
fabriek 3
43
20
20
15
Van iedere soort staal moet per week 100 ton worden geproduceerd. Iedere fabriek is per week 40 uur in bedrijf. De kosten moeten geminimaliseerd worden. Formuleer een transportprobleem dat bovenstaand probleem oplost en los het op met het computerpakket. 15
Opgave 6 Een bedrijf moet van een product de komende 4 maanden 5000, 8000, 12000 resp. 7000 eenheden leveren. Het bedrijf kan iedere maand in het reguliere productieproces 6000 eenheden leveren en, indien gewenst, per maand 3000 stuks extra door overwerk. De productiekosten voor regulier en overwerk zijn resp. 10 en 15 euro per stuk. De voorraadkosten bedragen 2 euro per eenheid per maand (wat in een zekere maand wordt geproduceerd kan in dezelfde maand worden geleverd en er zijn dan geen voorraadkosten aan verbonden). Welk productie schema minimaliseert de som van de productiekosten en de voorraadkosten? a. Modelleer dit probleem als een transportprobleem. b. Bepaal een startoplossing met de kolom minimalisatie methode, d.w.z. startend in kolom 1 sluiten we kolom voor kolom af, door die rij te kiezen met de laagste kosten. c. Bepaal een optimale oplossing voor dit probleem.
Opgave 7 Beschouw het volgende vervoersprobleem, waarbij behalve depots (1,2,3) en bestemmingen (6 en 7) er ook nog twee tussenpunten (4 en 5) zijn. In de tussenpunten is niets nodig en ook niets beschikbaar. In de bestemmingen 6 en 7 worden resp. 20 en 25 eenheden gevraagd. De overige gegevens van dit probleem zijn als volgt (- betekent dat hierover niets vervoerd kan worden): Transportkosten naar Depot
Beschikbaar
Punt 4
Punt 5
Punt 6
Punt 7
1
10
5
-
4
-
2
20
4
3
-
-
3
15
-
5
-
12
Transportkosten naar Tussenpunt
Punt 4
Punt 5
Punt 6
Punt 7
4
-
-
2
3
5
4
-
-
6
a. Los dit probleem op als transportprobleem door voor ieder depot en bestemming de goedkoopste route van depot naar bestemming te bepalen. b. Los dit probleem op als transportprobleem door als depots de echte depots en de tussenpunten te nemen, en als bestemmingen de echte bestemmingen en eveneens de tussenpunten.
Opgave 8 a. Los het volgende transportprobleem met 2 depots en 3 bestemmingen op: ! ! 10 4 2 4 15 C= ,a = en b = 10 . 12 8 4 15 10 16
b. Wat wordt de optimale oplossing bij de volgende veranderingen: (i) c13 = 1; (ii) c11 = 6; (iii) c21 = 8. c. Wat wordt de optimale oplossing bij de volgende veranderingen: (i) de voorraad in depot 1 en de vraag in bestemming 1 worden beide met 1 verhoogd; (ii) de voorraad in depot 1 en de vraag in bestemming 3 worden beide met 1 verhoogd. Opgave 9 Beschouw onderstaand transportprobleem met 3 depots en 3 bestemmingen: 3 2 3 5 7 C= 3 10 2 , a = 10 en b = 8 . 6
α
3
15
10
a. Los dit probleem op voor α = 3; is de oplossing uniek?
b. Geef de waarde van de doelfunctie als functie van α voor alle α > 0. Opgave 10 Dertien nieuwe papiersoorten moeten worden gemaakt, waarvoor nieuw papier en tien soorten gerecycled papier gebruikt kunnen worden. Van de nieuwe papiersoort j wordt een hoeveelheid dj (in kg) gevraagd, waarvoor minstens m j kg nieuw papier moet worden gebruikt, 1 ≤ j ≤ 13.
Van het gerecyclede materiaal kan voor de nieuwe papiersoort j slechts de fractie t j effectief worden gebruikt (1 ≤ j ≤ 13) en bovendien is niet al het gerecycelde materiaal geschikt voor
ieder nieuw product. Zij Sj ⊆ {1, 2, . . . , 10} de gerecyclede soorten die gebruikt kunnen worden bij de productie van de nieuwe papiersoort j, 1 ≤ j ≤ 13. Onderstaande tabel geeft de concrete
gegevens voor ieder van de dertien nieuwe papiersoorten. j
dj
mj
tj
1
3475
0
0.85
2
1223
699
0.90
3
2260
1077
0.85
4
2700
1285
0.85
5
2950
1965
0.90
6
1112
848
0.95
7
3910
2980
0.80
8
1673
1275
0.80
9
3855
367
0.85
10
12100
9210
0.90
11
7382
6320
0.95
12
7215
0
0.93
13
4000
381
0.90
Sj {1, 2}
{1, 2, 3, 4}
{2, 3, 4, 5, 6} {2, 3, 4, 5, 6} {5, 6}
{4, 5, 6}
{7, 8, 10} {7, 8, 10} {1, 2, 4}
{10} {6}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
Van gerecycled soort i is een hoeveelheid van 3100 kg beschikbaar, 1 ≤ i ≤ 10.
Los het volgende probleem als transportprobleem op: Welk productieproces voldoet aan de vraag, terwijl er zo min mogelijk nieuw papier voor wordt gebruikt? Gebruik het computerpakket om de optimale oplossing te bepalen. 17
Hoofdstuk 3
Toewijzingsprobleem 3.1
Probleemstelling en LP-formulering
Een belangrijk speciaal geval van het transportprobleem krijgen we als n = m en a i = bj = 1 voor alle i en j. Dit geval wordt het toewijzingsprobleem genoemd. Beschouw een groot bouwconcern, opgedeeld in n divisies, dat n projecten moet uitvoeren, iedere divisie precies ´e´en. Voor iedere combinatie van project i en divisie j is een bepaald getal c ij bekend, zijnde de kosten als project i door divisie j wordt uitgevoerd. Zij xij = 1 als project i door divisie j wordt uitgevoerd en x ij = 0 als dit niet het geval is. Dit geeft de volgende LP-formulering van het toewijzingsprobleem (omdat voor dit probleem net als bij het transportprobleem iedere basisoplossing geheeltallig is, mogen we de eis dat x ij = 0 of 1 weglaten):
min
n n X X i=1
cij xij
j=1
x = 1, 1 ≤ i ≤ n j=1 ij Pn i=1 xij = 1, 1 ≤ j ≤ n x ≥ 0 voor alle (i, j)
Pn ij
Het duale probleem van (3.1) luidt: n n X X vj | ui + vj ≤ cij voor alle (i, j) max ui + i=1
(3.1)
(3.2)
j=1
De voorwaarden van (3.1) en de geheeltalligheid zorgen er voor dat iedere basisoplossing zowel in iedere rij als in iedere kolom precies ´e´en x-variabele gelijk aan 1 heeft. Dit betekent dat voor een
basisoplossing (die volgens de theorie van het transportprobleem m + n − 1 = 2n − 1 x-variabelen bevat) precies n variabelen de waarde 1 hebben, terwijl de overige n − 1 x-variabelen van de basis
de waarde 0 bezitten. Iedere basis is dus sterk gedegenereerd. Dit is de reden dat het oplossen van een toewijzingsprobleem, alsof het een transportprobleem is, vaak tot zeer veel iteraties leidt (in theorie kan zelfs cycling voorkomen, maar in de praktijk komt dit bijna nooit voor). Daarom zijn voor dit model speciale algoritmen ontwikkeld, waarvan we de Hongaarse methode zullen bespreken. Deze is ontwikkeld door H. Kuhn en gebaseerd op het werk van Hongaarse wiskundigen over koppelingen in een bipartiete graaf 1 . 1
Zie het college Discrete Wiskunde.
18
Voorbeeld 3.1 Op een zondag zijn er vier voetbalwedstrijden in respectievelijk de plaatsen Amsterdam (A), Rotterdam (R), Eindhoven (E) en Groningen (G). Er zijn tevens vier scheidsrechters die deze wedstrijden kunnen leiden. De reisafstand die iedere scheidsrechter heeft tot de plaatsen waar de wedstrijden worden gehouden, staat in de volgende tabel. A
R
E
G
1
105
45
100
180
2
50
35
120
240
3
90
60
50
200
4
40
40
130
130
De voetbalbond wil de scheidsrechters die wedstrijden laten leiden z´odat de totale reisafstand van de vier scheidsrechters minimaal is. Wat is de oplossing van dit probleem?
3.2
De Hongaarse methode
Beschouw het duale probleem (3.2). Bij de Hongaarse methode hebben we in iedere iteratie een (u, v) die toelaatbaar is voor (3.2) en een x die voldoet aan de zgn. complementariteitsrelaties m.b.t. (u, v): xij · {cij − ui − vj } = 0 voor alle (i, j)
(3.3)
Wanneer x nu ook nog toelaatbaar is voor (3.1), dan volgt uit de theorie van de lineaire programmering dat x optimaal is voor (3.1) en (u, v) optimaal is voor (3.2). ( ui = min1≤j≤n cij voor i = 1, 2, . . . , n Als startoplossing nemen we: vj = min1≤i≤n {cij − ui } voor j = 1, 2, . . . , n Voor iedere (i, j) geldt: vj ≤ cij − ui , dus (u, v) is toelaaatbaar voor (3.2).
Laat S = {(i, j) | ui + vj = cij }. We nemen xij = 0 als (i, j) ∈ / S. Hoe x op S ook wordt gekozen, op deze wijze is altijd voldaan aan (3.3).
Beschouw de gereduceerde kostenmatrix, waarin iedere c ij is vervangen door dij = cij − ui − vj . De matrix D wordt uit C verkregen door eerst van iedere rij het kleinste element in die rij af te
trekken, en vervolgens in de aldus verkregen matrix van iedere kolom het kleinste element in die kolom af te trekken. D heeft dus in iedere rij en in iedere kolom minstens ´e´en 0. ( 1, (i, j) ∈ S , dan is aan (3.3) voldaan. S = {(i, j) | dij = 0}, dus als xij = 0, (i, j) ∈ /S Voorbeeld 3.1 (vervolg) We starten met u1 = 45, u2 = 35, u3 = 50, u4 = 40, v1 = 0, v2 = 0, v3 = 0 en v4 = 90. We schrijven deze gegevens als volgt in een tableau met linksboven de waarde van de doelfunctie van (3.2): 19
260
0
0
0
90
45
60
0
55
45
35
15
0
85
115
50
40
10
0
60
40
0
0
90
0
Veronderstel dat de matrix D n onafhankelijke nullen heeft (d.w.z. nullen die in verschillende rijen en kolommen voorkomen). Door op deze plaatsen x ij = 1 te nemen en xij = 0 te stellen op de overige plaatsen krijgen we een x die toelaatbaar is voor (3.1), en dus optimaal is. Vandaar dat we het maximum aantal onafhankelijke nullen gaan bepalen. Volgens de stelling van K¨onig en Egerv´ary2 is dit aantal gelijk aan het minimum aantal strepen door de rijen en kolommen om alle nullen te vangen. Indien we s onafhankelijke nullen kunnen aanwijzen en tevens alle nullen kunnen worden doorgestreept met s strepen, dan is het maximum aantal onafhankelijke nullen gelijk aan s. Er bestaan goede algoritmen om het maximum aantal onafhankelijke nullen te bepalen; dit kan o.a. via een koppelingsprobleem op een bipartiete graaf 3 . Voorbeeld 3.1 (vervolg) Omdat de 0’en op de plaatsen (2,2), (3,3) en (4,4) onafhankelijk zijn en omdat alle nullen zijn door te strepen met de laatste twee rijen en de tweede kolom, is in het voorbeeld s = 3. Veronderstel dat we alle nullen hebben gevangen door een minimum aantal rijen/kolommen door te strepen. Laat I de verz. van niet-doorgestreepte rijen, J de verz. van niet-doorgestreepte kolommen en d = min{dij | i ∈ I, j ∈ J}. Merk op dat d positief is. Verander (u, v) en D als volgt:
ui :=
(
ui + d i ∈ I ui
i∈ /I
; vj :=
(
vj
j∈J
vj − d j ∈ /J
; dij :=
/ I, j ∈ /J dij + d i ∈
dij − d i ∈ I, j ∈ J d anders ij
Het is eenvoudig in te zien dat voor de nieuwe waarden weer geldt: u i +vj ≤ cij en dij = cij −ui −vj
voor alle (i, j). Met deze nieuwe (u, v) en D voeren we weer een iteratie uit en we stoppen zodra
het maximum aantal onafhankelijke nullen gelijk is aan n (dan hebben we de optimale oplossingen gevonden). In algoritmische vorm ziet de Hongaarse methode er aldus uit: Algoritme 3.1 Stap 1 a. Bepaal het minimale element ui in rij i van C, i = 1, 2, . . . , n. Construeer een nieuwe matrix C ∗ door in C van rij i het getal ui af te trekken, i = 1, 2, . . . , n. b. Bepaal in C ∗ in kolom j het kleinste getal vj , j = 1, 2, . . . , n. Construeer de gereduceerde kostenmatrix D door in C ∗ van kolom j het getal vj af te trekken, j = 1, 2, . . . , n. 2 3
Stelling 16.2 in het dictaat Discrete Wiskunde. Zie het college Grafentheorie.
20
Stap 2 a. Bepaal in de gereduceerde kostenmatrix het minimum aantal strepen, zeg s, om alle nullen te vangen en bepaal s onafhankelijke nullen. b. Als s = n: ga naar stap 4; anders: ga naar stap 3. Stap 3 a. Bepaal het kleinste niet-nul element in de gereduceerde kostenmatrix dat niet is doorgestreept door de in stap 2 gevonden strepen en noem de waarde van dit element d. b. Verhoog een ui met d als de desbetreffende rij niet is doorgestreept en verlaag v j met d als de desbetreffende kolom wel is doorgestreept; de waarde van de doelfunctie stijgt met (n − s) × d.
c. Trek d af van alle elementen van de gereduceerde kosten matrix die niet zijn doorgestreept;
tel d op bij alle elementen die zowel door een horizontale als een vertikale lijn zijn doorgestreept. d. Ga naar stap 2. Stap 4 Neem xij = 1 als het bijbehorende element van de gereduceerde kostenmatrix een onafhankelijke nul is; neem anders xij = 0. Deze x is een optimale oplossing van het toewijzingsprobleem. Voorbeeld 3.1 (vervolg) Passen we het algoritme toe, dan krijgen we (de 0 ∗ ’s geven de s onafhankelijke nullen en een u ∗i of vj∗ geeft aan dat rij i resp. kolom j wordt doorgestreept): 260
0
0∗
0
90
275
0
-15
0
90
45
0∗
40
30
De optimale oplossing luidt:
0∗
0
70
100
x12 = x21 = x33 = x44 = 1
25
0∗
60
(de overige variabele zijn 0)
90
0∗
met waarde 275.
45
60
0
55
45
60∗
35
15
0∗
85
115
35∗
10
0∗
60
50∗
90
0∗
40∗
50∗ 40∗
40 0
0
s = 3; d = 15.
3.3
40 0
15
s = 4; optimaal
Eindigheid en gevoeligheidsanalyse
Eindigheid Omdat de oplossing (u, v) tijdens het algoritme steeds toelaatbaar is voor probleem (3.2), dat een eindige oplossing bezit, is het voldoende om aan te tonen dat de waarde van de doelfunctie van (3.2) in iedere iteratie stap met minstens 1 toeneemt. Beschouw een bepaalde iteratiestap. Laat r het aantal rijen zijn dat is doorgestreept en k het aantal kolommen (dus r + k = s < n). Laat (u 0 , v 0 ) de waarden van de duale variabelen zijn verkregen uit een tableau behorende bij (u, v), dan geldt: waarde doelfunctie (3.2) in nieuw tableau P P P P = ni=1 u0i + nj=1 vj0 = ni=1 ui + nj=1 vj + d · [(n − r) − k] = waarde doelfunctie (3.2) in oud tableau + d · (n − s).
Dus de toename van de doelfunctie is d · (n − s) ≥ d ≥ 1, waarmee de eindigheid gegarandeerd is.
21
Gevoeligheidsanalyse We kunnen ook voor het toewijzingsprobleem gevoeligheidsanalyse uitvoeren. Beschouw nu plaats (i, j) van een optimaal tableau. We onderscheiden: a. In de optimale oplossing is xij = 1: Als cij kleiner wordt, dan zal deze toewijzing zeker nog worden gekozen. Als cij groter wordt, zeg met λ toeneemt, dan blijft de huidige oplossing in ieder geval optimaal zolang λ ≤ som van de kleinste elementen in de i-de rij en j-de kolom van het tableau,
element (i, j) uitgezonderd (waarom?). b. In de optimale oplossing is xij = 0:
Als cij groter wordt, dan zal deze toewijzing zeker nog steeds niet worden gekozen. Als cij kleiner wordt, zeg met λ afneemt, dan is de huidige oplossing nog steeds niet optimaal zolang λ ≤ dij . Voorbeeld 3.1 (vervolg) Neem (i, j) = (1, 2): de huidige oplossing is in ieder geval optimaal als c 12 ≤ 45 + 30 + 0 = 75.
Neem (i, j) = (1, 1): de huidige oplossing is in ieder geval optimaal als c 11 ≥ 105 − 45 = 60.
3.4
Opgaven
Opgave 1 Los het toewijzingsprobleem op voor de volgende kosten matrix: 4 3 5 1 4 1 1 3 6 2 0 4 3 5 0 3 3 4 1 4 9 1 2 1 2 Opgave 2 Zes werknemers zijn beschikbaar om zes opdrachten uit te voeren. Iedere werknemer kan slechts ´e´en opdracht uitvoeren. De tijd die een werknemer nodig heeft om een opdracht uit te voeren staat in onderstaande tabel (O1 is opdracht 1; W1 is werknemer 1, etc). Welke toewijzing minimaliseert de totale tijdsduur van alle werknemers? Los dit probleem op, zowel met de hand als met het computerpakket. W1
W2
W3
W4
W5
W6
O1
30
24
16
26
30
22
O2
22
28
14
30
20
13
O3
18
16
25
14
12
22
O4
14
22
18
23
21
30
O5
25
24
14
26
16
28
O6
32
16
10
14
18
20
22
Opgave 3 Drie werkzaamheden moeten worden uitgevoerd, ieder door ´e´en persoon. Er zijn 5 personen beschikbaar, waarbij werk 1 niet door persoon 2, werk 2 niet door persoon 5 en werk 3 niet door persoon 3 gedaan kan worden. De kosten cij als persoon i werk j uitvoert staan in onderstaande matrix. Welke toewijzing minimaliseert de totale kosten? Los dit probleem zowel met de hand als met het computerpakket op. W1
W2
W3
P1
10
12
9
P2
-
14
13
P3
15
16
-
P4
13
15
12
P5
12
-
11
Opgave 4 Vier werknemers kunnen ieder twee opdrachten uitvoeren; er zijn in totaal vier opdrachten. De tijd die een werknemer nodig heeft om een opdracht uit te voeren staat in onderstaande tabel (een - betekent niet uitvoerbaar). W1
W2
W3
W4
O1
4
-
3
-
O2
5
4
-
-
O3
-
-
2
4
O4
-
4
-
5
a. Als iedere werknemer slechts ´e´en opdracht mag uitvoeren, welke toewijzing minimaliseert de totale tijdsduur van alle werknemers? b. Als iedere werknemer maximaal twee opdrachten mag uitvoeren, welke toewijzing minimaliseert dan de totale tijdsduur van alle werknemers? Opgave 5 Ieder transportprobleem kan worden geformuleerd als een toewijzingsprobleem. Bepaal, om het idee waar dit op gebaseerd is te illustreren, een toewijzingsprobleem om het volgende transportprobleem op te lossen: 3 5 2 C= 6 2 , a = 3 en b = 4 3 1
4 2
!
.
23
Opgave 6 Beschouw een vliegtuigmaatschappij die vluchten in beide richtingen verzorgt tussen twee steden, New York en Chicago. Als een bemanning, die afkomstig is uit New York, in Chicago arriveert, dan moet deze op een latere vlucht (dezelfde of de volgende dag) terugvliegen naar New York. Een analoge voorwaarde geldt voor een bemanning afkomstig uit Chicago. Aldus wordt iedere bemanning gekoppeld aan twee vluchten. Tussen het landen en weer opstijgen van dezelfde bemanning moet minstens ´e´en uur tijdsverschil zitten. Het vluchtschema is hieronder gegeven. Vlucht-
Vertrek
Aankomst
Vlucht-
Vertrek
Aankomst
nummer
New York
Chicago
nummer
Chicago
New York
1
07.30
09.00
2
07.00
10.00
3
08.15
09.45
4
07.45
10.45
5
14.00
15.30
6
11.00
14.00
7
17.45
19.15
8
18.00
21.00
9
19.00
20.30
10
19.30
22.30
Toelichting op tijdsverschillen in linker (New York - Chicago) en rechter deel (Chicago - New York) van de tabel: de tijden zijn lokale tijden; er is ´e´en uur tijdsverschil tussen New York en Chicago, en de vlucht westwaarts duurt een half uur langer in verband met de windrichting; vandaar dat de tijsduur in het rechter deel anderhalf uur langer is. De doelstelling is om de totale tijdsduur, gedurende welke de bemanningen moeten wachten voordat ze opstijgen voor een terugvlucht, te minimaliseren. Hierbij moeten twee vragen worden beantwoord: a. Welke vluchten moeten worden gekoppeld (d.w.z. krijgen dezelfde bemanning)? b. Gegeven een bepaalde koppeling, waarvandaan moet de bemanning afkomstig zijn? Los dit probleem op via een formulering als toewijzigingsprobleem.
24
Hoofdstuk 4
Project Planning 4.1
Probleemstelling en modellering
Probleemstelling Een project bestaat uit een aantal activiteiten die gedeeltelijk afhankelijk en gedeeltelijk onafhankelijk van elkaar kunnen worden uitgevoerd: sommige activiteiten kunnen tegelijkertijd worden uitgevoerd, andere kunnen pas starten als bepaalde andere activiteiten klaar zijn. Iedere activiteit heeft een zekere - deterministische of stochastische - tijdsduur, waarin deze kan worden uitgevoerd. We zijn ge¨ınteresseerd in vragen als: - Wat is de kortste tijdsduur van het totale project? - Wat is het vroegste en wat is het laatste tijdstip waarop een activiteit kan starten zonder dat daardoor de totale tijdsduur van het project verandert? We zullen twee technieken bespreken: CPM en PERT. PERT is vooral geschikt voor problemen waarin de tijdsduur van de activiteiten onzeker, d.w.z. stochastisch, is; CPM is juist geschikt voor problemen met een deterministische tijdsduur. Voorbeeld 4.1 Veronderstel dat een bouwproject verdeeld kan worden in de activiteiten A, B, ..., N. De tijdsduur van de activiteiten is deterministisch. Deze tijden en de volgorde beperkingen staan in onderstaande tabel. Wat is de kortste tijdsduur van het totale project? Hoe moet de planning zijn om deze te bereiken? Activiteit
Tijdsduur
Voorganger
Activiteit
Tijdsduur
Voorganger
A
4
-
H
1
B
B
3
-
I
4
C, H
C
3
-
J
2
G, E
D
2
B
K
3
F, J
E
2
B
L
4
G, E
F
4
A, D
M
2
I, N
G
3
A, D
N
3
C, H
25
Modellering Om een project te modelleren wordt een netwerk gebruikt, d.w.z. een gerichte graaf waarbij aan iedere pijl een getal is toegekend. De pijlen corresponderen met de activiteiten en de getallen bij de pijlen met de tijdsduur; de knooppunten komen overeen met bepaalde stadia waarin de realisatie van het project verkeert. Zo is er een knooppunt dat correspondeert met het begin en een knooppunt dat correspondeert met het einde van het project. Aan het netwerk leggen we de eis op dat er geen evenwijdige pijlen in mogen voorkomen. Het is altijd mogelijk hieraan te voldoen door dummy activiteiten (activiteiten met tijdsduur 0) in te voeren. In het Voorbeeld 4.1 heeft activiteit M als voorgangers I en N. Deze situatie kan dus niet gerepresenteerd worden door twee evenwijdige pijlen voor I en N, gevolgd door pijl M. In plaats daarvan voeren we een dummypijl P in en modelleren we het als: a @ I
P
@
a
@ R @a -
-a
N
M
Door eventueel aan ieder paar activiteiten I en J met I een directe voorganger van J een dummy, zeg IJ, toe te voegen en dit te modelleren als I
IJ
- a
a
J
- a
- a
is altijd een correcte netwerkrepresentatie te vinden (de startpunten van de activiteiten die geen voorganger hebben kunnen worden samengevoegd tot het beginpunt, en de eindpunten van de activiteiten zonder opvolger tot het eindpunt van het project). Een interessante vraag is: hoe construeren we een netwerk met zo min mogelijk dummies? Hiervoor is geen goede methode bekend. Voorbeeld 4.1 (vervolg) Onderstaand netwerk, met ´e´en dummy (P), geeft een goed model van het probleem uit voorbeeld 4.1. 3a
F
6 @
A
D
B
1 a @
@
@
- a2
@
@G @
E
- a7 @
J @
@ R @a -
@
@
H
C@
@
@
N
6a @
4
@P
@ R @ a -
@ R @? a
I
@
L
5 @
@K @
8 26
M
@ R @ a9 *
Het netwerk mag geen geen ronde bevatten, want anders is er inconsistentie (waarom?). De knooppunten kunnen dan altijd z´o genummerd worden dat de pijlen van een laag naar een hoger nummer lopen (zie voorbeeld 4.1). Ga na dat deze nummering op eenvoudige wijze gevonden kan worden door de volgende procedure uit te voeren : Stap 1: i = 1. Stap 2: a. Kies een knooppunt zonder binnenkomende pijlen en geef dit nummer i. b. Laat knooppunt i en de daarvan uitgaande pijlen weg. Stap 3: a. i := i + 1. b. Ga naar stap 2, tenzij alle knooppunten genummerd zijn (dan stopt het algoritme).
4.2
Berekening van het kritieke pad
De activiteiten van het project corresponderen met de pijlen; van de knooppunten kunnen we zeggen dat ze de toestanden van het project voorstellen. Voor iedere toestand j gaan we twee grootheden berekenen: het vroegste tijdstip e j en het laatste tijdstip lj . Deze begrippen zijn als volgt gedefinieerd: Het vroegste tijdstip is het tijdstip waarop alle activiteiten met deze toestand als eindpunt gereed zijn, indien de voorafgaande activiteiten zo vroeg mogelijk starten. Deze tijdstippen kunnen worden berekend door voorwaarts door het netwerk te lopen. De berekening gaat via de volgende voorwaartse recursie, waarbij tij de tijdsduur van de activiteit met beginpunt i en eindpunt j is. ( e1 = 0 ej = max{ei + tij | (i, j) is een pijl van het netwerk}, j = 2, 3, . . . , n.
Omdat er alleen pijlen lopen van lage nummers naar hogere nummers, kunnen de getallen e1 , e2 , . . . , en inderdaad sequentieel worden berekend. Het laatste tijdstip is het tijdstip waarop tenminste ´e´en activiteit met deze toestand als beginpunt moet starten om de totale tijdsduur van het project niet boven e n uit te laten komen. De berekening van deze getallen gaat met achterwaartse recursie: ( ln = e n
li = min{lj − tij | (i, j) is een pijl van het netwerk}, i = n − 1, n − 2, . . . , 1.
Aan iedere activiteit (i, j) kunnen we ook een speling s ij toekennen: sij = lj − ei − tij .
De speling sj van toestand j is gedefinieerd door s j = lj − ei .
Een activiteit met speling 0 heet kritisch als geldt dat toename van de tijdsduur van deze activiteit de tijdsduur van het totale project eveneens doet toenemen. Er is altijd een pad van knooppunt 1 naar knooppunt n, waarop alle pijlen kritisch zijn (anders zou het project eerder dan op tijdstip en af zijn). Dit pad heet het kritieke pad. De hier beschreven methode staat in de literatuur bekend als critical path method, afgekort als CPM. 27
Voorbeeld 4.1 (vervolg) Voor het voorbeeld verlopen de berekeningen als volgt: Berekening vroegste tijdstippen e j
Berekening laatste tijdstippen li
Toestand j
Voorgangers i
ei + tij
ej
Toestand i
Opvolgers j
1
-
-
0
9
-
2
1
3
3
8
3
1
4
2
5
1
3
2
4
2
5
3
8
8
6
4
7
7
7
3
9
5
10
10
4
8
8
6
7
5
12
7
13
8
10
4 5
8 9
5
lj − tij
li
-
13
9
11
11
7
9
10
10
6
8
11
11
5
7
8
8
9
9
6
8
8
7
7
5
5
5
7
6
3
3
4
6
5
6
2
0
3
1
4
4
4 4 3 2
1 13
Toestand
Speling
Activiteit
Speling
Activiteit
Speling
1
0
A
1
J
0
2
0
B
0
K
0
3
0
C
4
L
1
4
3
D
0
M
3
5
0
E
3
N
4
6
4
F
1
P
4
7
0
G
0
8
3
H
3
9
0
I
3
3
0
Het kritieke pad is: 1 → 2 → 3 → 5 → 7 → 9, d.w.z. de activiteiten B, D, G, J en K, met totale tijdsduur 13.
Opmerking Voor het berekenen van de totale projectduur en de spelingen is het niet per se noodzakelijk om eerst het netwerk te construeren. De vroegste starttijd van een activiteit is het maximum van de vroegste eindtijden van zijn voorgangers; de vroegste eindtijd is de vroegste begintijd plus de tijdsduur zelf. Aldus zijn, door cyclisch de activiteiten te doorlopen, de vroegste begin- en 28
eindtijd van iedere activiteit te bepalen. Op analoge wijze kunnen de laatste begin- en eindtijd worden berekend. Daarvoor moet allereerst voor iedere activiteit worden bepaald welke de directe opvolgers zijn. Dit kan door ´e´enmaal de rij van activiteiten te doorlopen: als A een voorganger is van B, dan is B een opvolger van A. De laatste eindtijd van een activiteit is het minimum van de laatste starttijden van zijn opvolgers; de laatste begintijd is de laatste eindtijd minus de tijdsduur van de activiteit. Computerprogramma’s werken i.h.a. niet via het netwerk, maar volgen het hier gegeven recept; voor handberekeningen is de aanpak via het netwerk vaak handiger.
4.3
Bepaling van het kritieke pad met lineaire programmering
Laat xj = tijdstip waarop knooppunt j bereikt wordt, j = 1, 2, . . . , n. Als t ij de tijdsduur van activiteit (i, j) is, dan moet dus gelden: x j ≥ xi + tij .
De totale tijdsduur van het project is x n − x1 , zodat de lengte van het kritieke pad gevonden wordt als oplossing van het LP probleem
min{xn − x1 | xj ≥ xi + tij voor alle (i, j)}.
(4.1)
Hoe wordt nu het kritieke pad gevonden? Beschouw daartoe het duale LP-probleem. Laat x ij de duale variabele zijn behorende bij activiteit (i, j). Het duale probleem heeft de volgende gedaante (in formulering (4.1) staat voor de pijl (i, j) een +1 bij het eindpunt en een -1 bij het beginpunt):
max
X (i,j)
tij xij
−
−
P
j
P
j
x1j xij
P + j xji P j xjn xij
= 0, i = 2, 3, . . . , n − 1 = 1 ≥ 0 voor alle (i, j)
= −1
(4.2)
De matrix van beperkingen van probleem (4.2) is de incidentiematrix van het netwerk. Hieruit volgt1 dat de hoekpunten, en dus ook een optimale oplossing, geheeltallig is. Dit impliceert dat x1j = 1 voor precies ´e´en waarde van j en x jn = 1 voor eveneens precies ´e´en waarde van j. Uit de overige beperkingen van (4.2) volgt dat de variabelen die de waarde 1 hebben corresponderen met een pad van knooppunt 1 naar knooppunt n. De lengte van dit pad is de waarde van de doelfunctie. Probleem (4.2) is dus het probleem om het langste pad van 1 naar n te bepalen, d.w.z. een kritiek pad. De activiteiten van het kritieke pad zijn dus die activiteiten waarvan de bijbehorende variabelen van (4.2) de waarde 1 hebben.
Voorbeeld 4.1 (vervolg) Het lineaire programmeringsprobleem van het voorbeeld luidt: min x9 − x1 onder de voorwaarden: 1
Voor het bewijs verwijzen we naar het College Grafentheorie.
29
− x1
− x1 + x2 − x1
≥ 4
+ x3
− x2
≥ 3
+ x4
− x2 + x3 − x2
≥ 3
≥ 2
+ x5
− x3
− x3
≥ 2
≥ 4
+ x7
≥ 3
+ x5
≥ 1
+ x4 − x4
≥ 4
+ x8 − x5
+ x7 − x7
− x5 − x4
+ x9 + x9 − x8 + x9
+ x6 − x6
≥ 2
≥ 3
≥ 4
≥ 2
≥ 3
≥ 0
+ x8
De optimale oplossing is: x1 = 0, x2 = 3, x3 = 5, x4 = 4, x5 = 8, x6 = 7, x7 = 10, x8 = 8, x9 = 13. De minimale tijdsduur van het totale project is dus 13.
Het duale probleem is: max 4x13 + 3x12 + 3x14 + 2x23 + 2x25 + 4x37 + 3x35 + x24 + 4x48 + 2x57 + 3x79 + 4x59 + 2x89 + 3x46 onder de voorwaarden x13 + x12 + x14 −x13
−x12
= 1 + x23 + x24 + x25
−x14
− x23
= 0 + x35 + x37
− x24
= 0 + x46 + x48
−x25 − x35
= 0 + x57 + x59
−x37
−x46 −x48
= 0 + x68
− x57
= 0 + x79
−x59
− x68
= 0
+ x89 = 0 − x79 − x89 = −1
De optimale oplossing van het duale probleem is: x 12 = x23 = x35 = x57 = x79 = 1 en de overige variabelen zijn 0. Het kritieke pad is dus: 1 → 2 → 3 → 5 → 7 → 9. Het nadeel van lineaire programmering t.o.v. het recursief berekenen is dat met de LP oplossing de speling niet bepaald kan worden. Het verband tussen beide technieken is dat e i ≤ xi ≤ li voor 1 ≤ i ≤ n, waaruit volgt dat voor de speling s ij geldt: sij = lj − ei − tij ≥ xj − xi − tij , d.w.z. dat de verschilvariabele van de bij activiteit (i, j) behorende beperking van (4.1) een ondergrens
geeft voor de speling. Voor een krtieke activiteit (i, j) geldt: e i = xi = li en ej = xj = lj .
30
4.4
Het PERT-model
Tot nu toe hebben we aangenomen dat de tijdsduur van de activiteiten deterministisch is. Dit is echter in de praktijk vaak niet het geval, de tijdsduur is dan stochastisch. In het PERT-model (Project Evaluation and Review Technique) gaan we uit van stochastische tijdsduren (waartoe deterministische tijsduren als bijzonder geval behoren). We nemen aan dat we van de kansverdeling van de tijdsduur van een activiteit het volgende weten: a = optimistische (d.w.z. kortste) schatting van de tijdsduur; b = pessimistische (d.w.z. langste) schatting van de tijdsduur; m = modale (d.w.z. meestwaarschijnlijke) schatting van de tijdsduur. Merk op dat in voor deterministische tijden geldt: a = m = b. Met behulp van a, b en m willen we - onder zekere aannamen - komen tot benaderingen van de verwachting en variantie van de tijdsduur t van een activiteit. Deze benaderingen zijn gebaseerd op een drietal veronderstellingen. Aanname 1 t heeft een Beta-verdeling op het interval [a, b], d.w.z. dat de dichtheid f (t) wordt gegeven door: ( Γ(α+β) t−a α−1 b−t β−1 1 · ( b−a ) · b−a a≤t≤b Γ(α)Γ(β) · ( b−a ) f (t) = (4.3) 0 elders, waarbij de Gammafunctie Γ(p) =
R∞ 0
xp−1 e−x dx (via parti¨ele integratie is af te leiden dat
Γ(p) = (p − 1) · Γ(p − 1); voor p ∈ N is dus Γ(p) = (p − 1)!). Voor deze B`eta-verdeling is af te leiden (ga dit zelf na) dat: E(t) = a + α ·
(b−a) α+β
en VAR(t) = αβ ·
(b−a)2 . (α+β)2 (α+β+1)
Door de parameters α en β te vari¨eren kunnen veel verdelingen, met de meeste massa meer aan de kant van a of meer aan de kant van b, genereren. Omdat voor de modale tijdsduur m geldt dat f 0 (m) = 0, krijgen we (ga dit ook zelf na): m =
a(β−1)+b(α−1) . α+β−2
Aanname 2 E(t) =
a+4m+b . 6
Deze aanname berust op empirische gronden. In de praktijk blijkt deze keuze bevredigend te werken. Na enig rekenwerk volgt hieruit (ga dit eveneens zelf na) dat: (α − β)(b − a)(α + β − 6) = 0. Als a = b (t deterministisch), dan is E(t) = a = b = m en VAR(t) = 0. Als α = β, dan is de verdeling symmetrisch en is E(t) = m =
a+b 2 .
In het andere geval is dus α + β = 6. Aanname 3 VAR(t) =
b−a 2 . 6
Ook deze aanname berust op empirische gronden. Als vuistregel wordt in de statistiek soms wel gebruikt dat de spreiding van waarnemingen kan worden geschat op 6 standaardafwijkingen. 31
Bovenstaande drie aannamen impliceren dat o`fwel α = β = 4 o`fwel α + β = 6 `en αβ = 7. Dit √ √ √ √ laatste houdt in dat α = 3 + 2 en β = 3 − 2 (of omgekeerd α = 3 − 2 en β = 3 + 2). In het PERT-model gebruiken we voor een activiteit
a+4m+b 6
als schatting van de tijdsduur en
verder gaat het zoals in het deterministische geval. Aldus kunnen we een kritiek pad bepalen en is de gevonden T = en de verwachte tijdsduur van het project. Om uitspraken te kunnen doen over de kansverdeling van de totale projectduur nemen we het volgende aan: 1. De tijdsduur van het project wordt bepaald door het kritieke pad (dit impliceert dat de verwachte tijdsduur de som is van de verwachte tijdsduur van de activiteiten op het kritieke pad). 2. De tijdsduren van de activiteiten op het kritieke pad zijn stochastisch onafhankelijk (dit impliceert dat de variantie van de totale tijdsduur de som is van de varianties van de tijdsduur van de activiteiten op het kritieke pad). 3. De totale projectduur is normaal verdeeld (dit houdt in dat met behulp van een tabel van de standaard normale verdeling vragen kunnen worden beantwoord als: Wat is de kans dat het project in een zekere gegeven tijd af is?. Voorbeeld 4.2 Beschouw de installatie van een computergestuurd productiesysteem. Bij aanvang zijn er drie activiteiten, die tegelijk kunnen plaats vinden: installatie van de machine (A), ontwikkeling van het systeem (B) en het aantrekken van bedienend personeel (C). Nadat de machine is ge¨ınstalleerd moet deze worden getest (D), en als het systeem is ontwikkeld dan volgt er een eerste controle (E). Zodra er personeel is aangetrokken kan dit worden opgeleid (F), en kan het huidige personeel worden voorgelicht over de op handen zijnde veranderingen (G). Als de activiteiten A, E en F klaar zijn dan wordt er met het systeem geoefend (H) en wordt het systeem uitgetest (I). Na het testen van de machine (D) wordt er nog een laatste totale controle uitgevoerd (J), en nadat de activiteiten G, I en H klaar zijn wordt de administratieve overgang naar het nieuwe systeem ge¨effectueerd (K). Het bijbehorende netwerk is (de activiteiten L en M zijn dummies): 2a @
A B
1 a @
@
- 3a
@
C@
D @
@L @
E
@
@
@ R @ - a5 @
F @
@
- a6 @
H @
@
@I @
G
@
M @ R @a -
7 32
@
@J @
K
6
@ R @a
4
- 8a
@
@
@ R @ a 9
) en variantie De getallen a, m, b en de daaruit afgeleide verwachting ( a+4m+b 6
(b−a)2 36
staan in
de volgende tabel. Daarnaast staan de volgende berekende gegevens: de vroegste starttijden e i , de laatste aankomsttijden lj en de speling sij van iedere activiteit (i, j). Deze getallen worden berekend zoals in het deterministische geval. Activiteit (i, j)
a
m
b
E(t)
V ar(t)
ei
lj
sij
A = (1,2)
6
8
10
8
4 9
0
9
1
B = (1,3)
3
6
9
6
1
0
6
0
4 9 25 9 1 9 1 9
0
5
2
8
21
8
6
9
0
3
9
2
C = (1,4)
1
3
5
3
d = (2,6)
2
4
12
5
E = (3,5)
2
3
4
3
f = (4,5)
3
4
5
4
G = (4,7)
2
2
2
2
0
3
25
20
9
16
0
9
16
3
H = (5,8)
3
7
11
7
I = (5,7)
2
4
6
4
16 9 4 9
J = (6,9)
1
4
7
4
1
13
25
8
K = (8,9)
1
10
13
9
4
16
25
0
L = (2,5)
0
0
0
0
0
8
9
1
M = (7,8)
0
0
0
0
0
13
25
12
Tenslotte bepalen we de kans dat het project in 30 weken af is. Uit bovenstaande tabel volgt het kritieke pad: B, E, H, K met verwachte tijdsduur 6+3+7+9 = 25 en variantie 1+ 91 + 16 9 +4 =
62 9 .
Om de tabel van de normale verdeling te kunnen gebruiken moeten we de tijdsduur T van het kritieke pad transformeren tot een variabele met verwachting 0 en variantie 1: T −E(T ) X=√ = V ar(T )
Tq−25 , 62 9
d.w.z. T = 25 +
√ 62 3 X.
Uit de tabel van de normale verdeling volgt: P(T ≤ 30) = P(X ≤
√15 62
= 1.91) = 0.5+0.47 = 0.97.
De kans dat het project in 30 weken af is, is dus 97%.
4.5
Projectplanning met kosten
Tot nu toe hebben we alleen rekening gehouden met de tijdsduur van een project. Behalve de factor tijd speelt ook het kostenaspect vaak een belangrijke rol bij het plannen van projecten. We zullen in deze paragraaf aandacht schenken aan de directe kosten van de activiteiten. Dit zijn met name arbeidskosten en voor iedere activiteit nemen we aan dat de directe kosten een lineaire niet-stijgende functie van de tijdsduur zijn, de kosten nemen dus lineair af als de tijdsduur langer mag zijn, waarbij we aannemen dat voor activiteit (i, j) de tijdsduur y ij tussen een minimale waarde aij en een maximale waarde bij ligt. Als k(yij ) deze kosten voorstelt, dan geldt: k(yij ) = cij − yij vij met aij ≤ yij ≤ bij , waarbij vij ≥ 0. We willen een planning bepalen zodanig dat het totale project in een bepaalde tijdsduur T af is en de bijbehorende kosten minimaal zijn. 33
Aanpak via lineaire programmering P We willen de totale directe kosten minimaliseren, d.w.z. min (i,j) (cij − yij vij ) wat equivalent P P is met (i,j) cij − max (i,j) yij vij . Dus voor de beslissing welke y ij ’s optimaal zijn spelen de
getallen cij geen rol spelen, ze zijn alleen van belang voor de hoogte van de kosten.
Als beperkingen hebben we: aij ≤ yij ≤ bij voor alle (i, j) en de eis dat de totale tijdsduur
hoogstens T is. We introduceren de volgende variabelen:
xk = tijdstip waarop alle activiteiten met als eindpunt knooppunt k klaar zijn. Er moet dus gelden: xi + yij ≤ xj voor alle (i, j).
Dit levert het volgende lineaire programmeringsprobleem op: xi + yij − xj ≤ 0 voor alle (i, j) X vij yij max xn − x 1 ≤ T (i,j) a ≤y ≤ b voor alle (i, j) ij
ij
ij
Voorbeeld 4.3
(4.4)
Beschouw onderstaand netwerk met de in de tabel gegeven getallen a ij , bij , cij en vij . Neem T = 12. - 2a
1 a @
@
@ @
@
@
@
@ R @a
- a?
3
4
@
@ R @a 5
(i, j)
aij
bij
cij
vij
(1,2)
6
8
500
50
(1,3)
2
4
500
100
(2,4)
1
2
200
40
(2,5)
5
10
700
60
(3,4)
1
5
200
10
(4,5)
1
5
300
25
Het bij het voorbeeld behorende lineaire programmeringsprobleem luidt: max 50y12 + 100y13 + 40y24 + 60y25 + 10y34 + 25y45 onder de voorwaarden + x1 − x2
y12 y13
+ x1
y24
+ x2 y25
+ x2
− x3
≤0 − x4
+ x3 − x4
y34 y45 −x1
≤0
≤0
− x5 ≤ 0
≤0
+ x4 − x5 ≤ 0
+ x5 ≤ 12
6 ≤ y12 ≤ 8; 2 ≤ y13 ≤ 4; 1 ≤ y24 ≤ 2; 5 ≤ y25 ≤ 10; 1 ≤ y34 ≤ 5; 1 ≤ y45 ≤ 5 Een optimale oplossing (via het computerpakket verkregen) luidt: y12 = 6; y13 = 4; y24 = 2; y25 = 6; y34 = 4; y45 = 4; x1 = 0; x2 = 6; x3 = 4; x4 = 8; x5 = 12.
34
4.6
Een alternatief model
We kunnen ook een ander model opstellen, waarbij de activiteiten geen pijlen, maar knooppunten zijn. Laat V de verz. van de activiteiten zijn en t i de tijdsduur van activiteit i, i ∈ V . De pijlen
A corresponderen met de volgorde restricties: (i, j) ∈ A d.e.s.d. als activiteit j de activiteit i
als voorganger heeft, en zo’n pijl krijgt de lengte t i . Verder nemen we een beginactiviteit s met
tijdsduur 0, en we trekken een pijl van s naar i d.e.s.d. als i geen voorganger heeft; evenzo nemen we een eindactiviteit t met tijdsduur 0, en we trekken een pijl van j naar t d.e.s.d. j geen opvolger heeft. Ieder pad van s naar t moet worden doorlopen. Bepaling kritieke pad Zij ui een tijdstip waarop met activiteit i kan worden gestart. Dan kan de minimale lengte van het totale project gevonden worden als oplossing van het volgende LP-probleem: min{ut − us | uj ≥ ui + ti voor alle (i, j) ∈ A}.
(4.5)
Het kritieke, d.w.z. langste, pad kan weer worden gevonden via het duale LP-probleem. Laat yij de duale variabele zijn behorende bij activiteit (i, j). Het duale probleem heeft de volgende gedaante (in formulering (4.5) staat voor de pijl (i, j) een +1 bij het eindpunt en een -1 bij het beginpunt):
max
X
ti yij
(i,j) Opmerking
−
−
P
P
j
ysj
j
yij
+
P
P
= −1
j
j
yji = 0, i 6= s, t
yjt = 1
yij ≥ 0 voor alle (i, j) ∈ A
(4.6)
De formuleringen van (4.5) en (4.6) zien er hetzelfde uit als die van (4.1) resp. (4.2). De netwerken zijn echter verschillend: in het eerste model hadden we als de activiteiten als pijlen; in het tweede corresponderen de activiteiten met de knooppunten. Voorbeeld 4.1 (vervolg) Het LP-probleem voor het alternatieve model luidt: min {ut − us } onder de voorwaarden: uA − us ≥ 0; uB − us ≥ 0; uC − us ≥ 0; uD − uB ≥ 3; uE − uB ≥ 3;
uF − uA ≥ 4; uF − uD ≥ 2; uG − uA ≥ 4; uG − uD ≥ 2; uH − uB ≥ 3; uI − uC ≥ 3; uI − uH ≥ 1; uJ − uG ≥ 3; uJ − uE ≥ 2; uK − uF ≥ 4;
uK − uJ ≥ 2; uL − uG ≥ 3; uL − uE ≥ 2; uM − uI ≥ 4; uM − uN ≥ 3; uN − uC ≥ 3; uN − uH ≥ 1; ut − uK ≥ 3; ut − uL ≥ 4; ut − uM ≥ 2;
Een optimale oplossing is: us = 0, uA = 1, uB = 0, uC = 1, uD = 3, uE = 6, uF = 6, uG = 5, uH = 3, uI = 7, uJ = 8, uK = 10, uL = 9, uM = 11, uN = 4 en ut = 13. De minimale tijdsduur van het totale project is dus 13. 35
Het duale probleem is: max {4yAF + 4yAG + 3yBD + 3yBE + 3yBH + 3yCI + 3yCN + 2yDF + 2yDG + 2yEJ + 2yEL + 4yF K + 3yGJ + 3yGL + yHI + yHN + 4yIM + 2yJK + 3yKt + 4yLt + 2yM t + 3yN M } onder de voorwaarden −ysA − ysB − ysC = −1; ysA − yAF − yAG = 0; ysB − yBD − yBE = 0; ysC − yCI − yCN = 0;
yBD −yDF −yDG = 0; yBE −yEJ −yEL = 0; yAF +yDF −yF K = 0; yAG +yDG −yGJ −yGL = 0;
yBH − yHI − yHN = 0; yCI + yHI − yIM = 0; yGJ + yEJ − yJK = 0; yF K + yJK − yKt = 0;
yGL + yEL − yLt = 0; yIM + yN M − yM t = 0; −yN M + yCN + yHN = 0; yKt + yLt + yM T = 1.
De optimale oplossing van het duale probleem is: y sB = yBD = yDG = yGJ = yJK = yKt = 1 en de overige variabelen zijn 0. Het kritieke pad is dus: B → D → G → J → K. Just-in-time scheduling Veronderstel dat voor een tweetal van activiteiten i en j, waarvoor geldt dat i een voorganger is van j, moet gelden dat j niet later mag starten dan t ij tijdseenheden nadat activiteit i is gestart. Het is duidelijk dat moet gelden tij ≥ ti (anders is er inconsistentie). Dit soort voorwaarden komt voor in logistieke problemen, zoals distributieproblemen, wanneer bijvoorbeeld sprake is van bederf van goederen. Laat B ⊆ A de deelverz. zijn van de tweetallen (i, j) waarvoor een dergelijke eis met due time t ij
geldt. Het bijbehorende LP-probleem luidt dan: ) ( u ≥ u + t , (i, j) ∈ A j i i . min ut − us uj ≤ ui + tij , (i, j) ∈ B
(4.7)
Als we in het netwerk ook ( de pijlen (j, i) opnemen voor alle (i, j) ∈ B, en de lengtefunctie l ti voor alle (i, j) ∈ A introduceren met lij = dan is het duale probleem van (4.7) het −tij voor alle (j, i) ∈ B, onderstaande probleem, dat weer als een langste pad probleem in het netwerk met pijlen corresponderend met A ∪ B kan worden beschouwd. −P y j sj P P X − j yij + j yji lij yij max P j yjt (i,j) yij
= −1
= 0, i 6= s, t = 1
≥ 0 voor alle (i, j) ∈ A ∪ B
(4.8)
Beschouw vervolgens het model, waarbij het project maximaal T tijdseenheden mag duren en waarbij voor iedere pijl (i, j) met i 6= s en j 6= t er kosten c ij zijn per tijdseenheid dat uj groter
is dan ui + lij . Als doelstelling nemen we nu om de totale kosten te minimaliseren. Dit geeft het volgende LP-probleem: X min [uj − ui − lij ]cij (i,j)
ut − u s ≤ T
uj ≥ ui + lij , voor alle (i, j)
36
(4.9)
Het duale probleem van (4.9) is: P yts − j ysj P P X − j yij + j yji max lij yij − T yts P + j yjt −yts (i,j) yij
P P = − j cij + j cji , i 6= s, t = 0 ≥ 0 voor alle (i, j)
= 0
(4.10)
Probleem (4.10) is een minimale kostenstroom in een circulatienetwerk 2 (het oorspronkelijke netwerk met daaraan toegevoegd de pijl (t, s)). De kosten op de pijl (i, j) zijn l ij als (i, j) 6= (t, s)
en −T voor de pijl (t, s). Voor de nettoproductie s i in knooppunt i geldt: ( 0 i = s, t si = P P − j cij + j cji , i 6= s, t
Tenslotte beschouwen we het model waarbij de activiteiten - tegen extra kosten - sneller kunnen worden uitgevoerd: laat c(xi ) = ci − xi vi met ai ≤ xi ≤ bi en vi ≥ 0 voor activiteit i. Nemen we
als beslissingsvariabelen yi de reductie van de langste tijdsduur voor activiteit i : y i = bi −xi , dan
wordt het LP-probleem het project binnen T ut − u s X vi yi uj − ui min i 0
tijdseenheden af te hebben tegen minimale kosten: ≤T (4.11) ≥ [bi − yi ] voor alle (i, j) ≤ y ≤ b − a voor alle i i
i
i
Als we de substitutie wi = ui − yi uitvoeren, dan wordt het probleem: −u + u ≥ −T t s X X uj − w i ≥ b i voor alle (i, j) min vi ui − vi wi ui − w i ≥ 0 voor alle i i i −ui + wi ≥ ai − bi voor alle i
(4.12)
In de formulering van (4.12) heeft iedere rij ´e´en +1 en ´e´en -1. Dit houdt in dat het duale
probleem een minimale kostenstroom probleem is. Hiervoor zijn effici¨ente oplossingsmethoden beschikbaar3 .
4.7
Opgaven
Opgave 1 Beschouw een project met de activiteiten A, B, ... , L waarbij de volgende restricties gelden, terwijl ook de tijdsduur bekend is (zie onderstaande tabel). 2 3
Zie hiervoor het college Grafentheorie. Zie hiervoor het college Grafentheorie.
37
Activiteit
Tijdsduur
Voorganger
Activiteit
Tijdsduur
Voorganger
A
4
-
G
5
C, F
B
6
-
H
8
B
C
3
-
I
5
E, H
D
7
A, B
J
6
E, H
E
10
B
K
4
C, D, F, J
F
2
B
L
7
K
a. Representeer dit project als netwerk en gebruik daarbij hoogstens drie dummies. b. Nummer de knooppunten z´odat i < j als er een pijl is van i naar j. c. Maak een planningsschema voor dit probleem. d. Los dit probleem tevens op met het computerpakket. Opgave 2 De berekening van de vroegste en laatste starttijd van een activiteit kan ook worden uitgevoerd zonder het netwerk te construeren, maar door alleen te letten op de voorgangers van een activiteit. Geef een algoritme dat op deze wijze werkt en pas het toe op voorbeeld 4.1. Opgave 3 Maak een planning voor het volgende project planningsprobleem, zowel met de hand als met het computerpakket. Activiteit
Tijdsduur
Voorganger
Activiteit
Tijdsduur
Voorganger
A
3
-
J
16
H
B
12
A
K
2
H
C
4
A
L
2
J, K
D
10
C
M
2
F, L
E
2
C
N
2
B, M
F
3
D, E
O
1
I, M
G
2
-
P
2
O
H
4
A, G
Q
3
N, P
I
3
G
Opgave 4 Beschouw de volgende (sterk vereenvoudigde) lijst van werkzaamheden om een huis te bouwen. Activiteit
Naam
Voorganger
Tijdsduur
A
Fundering maken
-
5
B
Metselwerk muren
A
8
C
Dak vervaardigen
B
12
D
Electriciteitswerk
B
5
E
Ramen plaatsen
B
4
F
Behangen
E
6
G
Schilderwerk
C, F
3
38
a. Teken het bijbehorende netwerk zonder dummies te gebruiken. b. Bepaal het kritieke pad en de speling van alle activiteiten m.b.v. de recursieve berekeningen. c. Stel het oorspronkelijke en het duale lineaire programmeringsprobleem op en bepaal met het computerpakket de optimale oplossingen van deze problemen. d. Bepaal voor ieder van de activiteiten de zogenaamde onafhankelijke speling, d.w.z. de speling die er is onafhankelijk van de planning van de overige activiteiten en z´odanig dat de totale tijdsduur T blijft. e. Veronderstel dat de tijdsduur van iedere activiteit verkort kan worden door extra personeel aan te nemen. Deze reductie van de tijdsduur is wel begrensd. De extra kosten voor de reductie per tijdseenheid alsmede de grens voor deze reductie staan in onderstaande tabel. Activiteit
Kosten reductie
Maximale reductie
A
30.000 euro
2
B
15.000 euro
3
C
20.000 euro
1
D
40.000 euro
2
E
20.000 euro
2
F
30.000 euro
3
G
40.000 euro
1
Formuleer het LP-probleem om zo goedkoop mogelijk het huis te bouwen in 22 tijdseenheden en los dit probleem op. Opgave 5 a. Toon aan dat voor de B`eta-verdeling (4.3) geldt: E(t) = a + α ·
(b−a) α+β
en VAR(t) = αβ ·
(b−a)2 . (α+β)2 (α+β+1)
b. Leid uit de aannames 1, 2 en 3 van het PERT-model af dat o`fwel α = β = 4 o`fwel α + β = 6 √ √ √ `en αβ = 7 en dat dit laatste inhoudt dat α = 3 + 2 en β = 3 − 2 (of omgekeerd α = 3 − 2 √ en β = 3 + 2). Opgave 6 Op 21 mei 1927 landde Lindbergh na zijn beroemde transatlantische vlucht vanuit New York in Parijs. De voorbereidingen van zijn vlucht hadden 65 weken in beslag genomen en bestonden uit onderstaande activiteiten: Activiteit
Omschrijving
Activiteit
Omschrijving
A
Regelen van de financiering
I
Constructie van de romp
B
Aannemen van technici
J
Definitie ontwerp
C
Maken van het ontwerp
K
Verkrijgen van vergunningen
D
Afsluiten van contracten
L
Testen van de onderdelen
E
Plaatsen van bestellingen
M
Assemblage
F
Maken van navigatiekaarten
N
Vullen van de brandstoftanks
G
Constructie van de vleugels
O
Maken van een proefvlucht
H
Constructie landingsgestel
P
Voorbereiden van de start
39
De schattingen van de tijdsduren staan in onderstaande tabel: Activiteit
a
m
b
Voorganger
Activiteit
a
m
b Voorganger
A
1
3
5
-
I
6
8
14
B, E
B
4
6
10
-
J
10
15
20
C
C
10
25
40
-
K
5
8
12
C
D
4
7
12
A
L
5
10
15
G, H, I, J
E
2
3
5
D
M
4
7
10
G, H, I, J
F
8
12
25
D
N
5
7
12
F
G
10
16
21
B, E
O
1
3
7
L, M
H
5
9
15
B, E
P
5
9
20
O
Hoe groot is de kans dat het project in 65 weken af is? Los dit probleem zowel met de hand als met het computerpakket op. Opgave 7 Hieronder staan de gegevens voor de planning van een project waarin directe kosten een rol spelen. Neem T = 16. (i, j)
aij
bij
cij
vij
(1,2)
2
5
200
30
(1,4)
1
2
100
30
(1,5)
1
2
100
35
(2,3)
5
7
200
25
(2,5)
2
5
100
10
(2,6)
2
4
100
10
(3,4)
1
3
100
10
(3,6)
6
10
200
15
(4,6)
2
5
100
15
(4,7)
5
9
100
5
(5,6)
1
4
100
10
(5,7)
1
3
100
20
(6,7)
1
3
100
20
a. Stel het LP-probleem op waarmee een optimale oplossing kan worden verkregen. b. Los vervolgens dit LP-probleem op. Opgave 8 Voordat een nieuw product op de markt wordt gebracht moet een aantal activiteiten met stochastische tijdsduur worden uitgevoerd. De gegevens hiervan staan in onderstaande tabel.
40
Activiteit
Naam
Voorganger
a
b
m
A
Ontwerp maken
-
2
10
6
B
Marktonderzoek
-
4
6
5
C
Grondstof bestellen
A
2
4
3
D
Grondstof ontvangen
C
1
3
2
E
Proefmonster maken
B, D
1
5
3
F
Verkoopcampagne
B
3
5
4
G
Productie starten
E
2
6
4
H
Winkels bevoorraden
F, G
0
4
2
a. Teken het project netwerk. b. Bepaal het kritieke pad en de speling van alle activiteiten. c. Formuleer een LP-probleem om het kritieke pad te bepalen en los dit probleem op. d. Wat is de kans dat het product in 18 tijdseenheden leverbaar is? e. De tijdsduur van iedere activiteit kan tot 2 tijdseenheden worden teruggegebracht tegen de volgende kosten (per reductie van ´e´en tijdseenheid): A: 80 euro; B: 60 euro; C: 30 euro; D 60 euro; E: 40 euro; F: 30 euro; G: 20 euro; H: 40 euro. Onder de aanname dat iedere tijdsduur gelijk is aan zijn verwachting, welke planning die uitkomt op een totale tijdsduur van 15 tijdseenheden heeft de minste kosten? Formuleer dit probleem als een LP-probleem en los het vervolgens op. Opgave 9 Beschouw het probleem uit Voorbeeld 4.3 en stel hiervoor het netwerk op van het alternatieve model uit paragraaf 4.6. Formuleer dit probleem als het LP-probleem uit formulering (4.11) of (4.12) en los dit op.
41
Hoofdstuk 5
Minimale opspannende boom 5.1
Probleemstelling
Beschouw een niet-gerichte samenhangende graaf G = (V, E) waarin aan iedere tak (i, j) een re¨eel getal lij , de lengte geheten, is toegekend. Het probleem is om in deze graaf een opspannende boom te vinden met minimale lengte. We zullen twee methoden behandelen, de methode van Prim en de methode van Kruskal. Beide methoden zijn van het type gretig algoritme, d.w.z. dat in iedere iteratiestap een keuze wordt gemaakt die, kortzichtig gezien, het beste is, d.w.z. lokaal optimaal. Het zal blijken dat deze keuzes ook leiden tot een globaal optimum. Voorbeeld 5.1 Beschouw een aantal plaatsen waarvan de onderlinge lengtes in onderstaande tabel staan. Hoe moeten deze plaatsen door electriciteitskabels worden verbonden z´odat iedere plaats is aangesloten en er zo weinig mogelijk kabel wordt gebruikt? 1
2
3
4
5
6
7
1
0
43
27
60
40
70
50
2
43
0
28
20
40
35
24
3
27
28
0
26
14
35
50
4
60
20
26
0
19
18
40
5
40
40
14
19
0
24
40
6
70
35
35
18
24
0
22
7
50
24
50
40
40
22
0
Toepassing Beschouw een inlichtingendienst die n agenten heeft zitten in vijandelijk gebied. Als agent i een bericht doorstuurt naar agent j, dan valt dit met kans p ij in vijandelijke handen. Via welke verbindingen moet een bericht worden gecommuniceerd zodat het iedere agent bereikt, terwijl de kans dat het in vijandelijke handen komt minimaal is? Om iedere agent te bereiken moeten de verbindingen minimaal een opspannende boom vormen. Extra verbindingen vergroten de kans dat het bericht in vijandelijke handen valt, dus we zoeken 42
naar de beste opspannende boom T . Voor een gegeven boom T is de kans dat het bericht niet in Q handen van de vijand komt gelijk aan: (i,j)∈T (1 − pij ). Het probleem luidt dus: Q Q minT {1 − (i,j)∈T (1 − pij )} ↔ maxT (i,j)∈T (1 − pij ) ↔ Q P P maxT log (i,j)∈T (1 − pij ) ↔ maxT (i,j)∈T log(1 − pij ) ↔ minT (i,j)∈T lij ,
waarbij lij = −log(1 − pij ), zodat lij ≥ 0 voor alle (i, j). Dit is dus het probleem van de minimale opspannende boom met lengtefunctie l ij = −log(1 − pij ) ≥ 0 voor alle (i, j).
5.2
De methode van Prim
Bij de methode van Prim beginnen we met een (willekeurig) knooppunt dat we in een deelverz. W stoppen. Vervolgens bepalen we in iedere iteratie een knooppunt j dat nog niet tot W behoort en het dichtste bij W ligt, zeg via de tak (i, j) met i ∈ W . W wordt met het knooppunt j uitgebreid
en de tak (i, j) voegen we toe aan een verz. T . Het algoritme stopt als W = V = {1, 2, . . . , n}.
Om een zo goed mogelijke complexiteit van het algoritme te verkrijgen onthouden we voor ieder
knooppunt j ∈ / W welk knooppunt van W er het dichtste bijligt (α j ) en hoe groot deze afstand is (βj ). Het algoritme is derhalve als volgt. Algoritme 5.1 (Prim) 1. Laat W = {1}, T = ∅; αj = 1, βj = lj1 , j = 2, 3, . . . , n. 2. Zolang W 6= V doe:
a. Laat j ∈ / W met j ∈ / W zdd. βj = mink∈W βk . / b. W := W ∪ j; T := T ∪ (j, αj ).
c. Voor iedere k ∈ / W doe: als lkj < βk : βk := lkj en αk := j.
Voorbeeld 5.1 (vervolg) Iteratie 1: W = {1}, T = ∅; αj = 1, 2 ≤ j ≤ 7; β2 = 43, β3 = 27, β4 = 60, β5 = 40, β6 = 70, β7 = 50. Iteratie 2:
j = 3; W = {1, 3}, T = {(3, 1)}; α2 = 3, β2 = 28, α4 = 3, β4 = 26, α5 = 3, β5 = 14, α6 = 3, β6 = 35. Iteratie 3: j = 5; W = {1, 3, 5}, T = {(3, 1), (5, 3)}; α 4 = 5, β4 = 19, α6 = 5, β6 = 24, α7 = 5, β7 = 40. Iteratie 4:
j = 4; W = {1, 3, 5, 4}, T = {(3, 1), (5, 3), (4, 5)}; α 2 = 4, β2 = 20, α6 = 4, β6 = 18. Iteratie 5:
j = 6; W = {1, 3, 5, 4, 6}, T = {(3, 1), (5, 3), (4, 5), (6, 4)}; α 7 = 6, β7 = 22. Iteratie 6:
j = 2; W = {1, 3, 5, 4, 6, 2}, T = {(3, 1), (5, 3), (4, 5), (6, 4), (2, 4)}. Iteratie 7:
j = 7; W = {1, 3, 5, 4, 6, 2, 7}, T = {(3, 1), (5, 3), (4, 5), (6, 4), (2, 4), (7, 6)}. De minimale opspannende boom bevat dus de verbindingen (3, 1), (5, 3), (4, 5), (6, 4), (2, 4) en (7, 6); de lengte van de boom is 120. 43
Stelling 5.1 Algoritme 5.1 (methode van Prim) geeft een minimale opspannende boom en heeft complexiteit O(n2 ). Bewijs Noem de verz. W en T aan het einde van iteratie k resp. W k en Tk , 1 ≤ k ≤ n.
Het is voldoende om te bewijzen (met inductie naar k) dat na de k-de iteratie de deelboom met takken Tk een deelboom is van een opspannende boom T ∗ met minimale lengte, en dat iedere iteratiestap complexiteit O(n) heeft. Het is duidelijk dat deze bewering juist is voor k = 1.
Veronderstel dat Tk+1 geen deel uitmaakt van T ∗ en Tk wel. Laat Tk+1 uit Tk zijn ontstaan door het knooppunt j aan Wk toe te voegen en te verbinden met αj ∈ Wk . Beschouw vervolgens T ∗ zonder de tak die Tk met T ∗ \Tk verbindt. Door de weggelaten tak te vervangen door de tak
(j, αj ) ontstaat een opspannende boom die korter is dan T ∗ , wat een tegenspraak oplevert. De complexiteit van stap 2 van Algoritme 5.1 is O(n), immers:
onderdeel a: O(n); onderdeel b: O(1);onderdeel c: O(n).
5.3
De methode van Kruskal
Bij deze methode wordt eerst de kortste tak gekozen, vervolgens de op ´e´en na kortste, etc., waarbij de tak niet wordt toegevoegd als daardoor een kring ontstaat. De takkenverz. die aldus wordt geconstrueerd is een bos T , d.w.z. een verz. componenten, waarbij elke component een deelboom is. T ∪ (i, j) bevat een kring als de knooppunten i en j beide reeds tot de knooppuntenverz.
van T behoren en in dezelfde component zitten. Om dit laatste na te gaan houden we van alle
knooppunten van T bij in welke component deze zitten: c i = c d.e.s.d. als knooppunt i in de c-de component zit. Het bijhouden van deze componenten gebeurt, indien (i, j) aan T toegevoegd gaat worden (dus T ∪ (i, j) bevat geen kring), als volgt: - als i en j beide niet tot T behoren:
i en j komen beide in een nieuwe component; - als precies ´e´en van de knooppunten i en j tot T behoort, zeg i: j komt in dezelfde component als i; - als i en j beide tot T behoren (en dus in verschillende componenten zitten): alle knooppunten uit de component van j komen in dezelfde component als die van i. Verder sorteren we de takken ek naar oplopende lengte: l(e1 ) ≤ l(e2 ) ≤ · · · . Dit leidt tot het volgende algoritme.
Algoritme 5.2 (Kruskal) 1. Laat W = T = ∅; ci = 0, 1 ≤ i ≤ n. Sorteer de takken zdd. l(e 1 ) ≤ l(e2 ) ≤ · · · ; k = c = 1. 2. Zolang W 6= V doe:
a. Neem ek , zeg ek = (i, j). b. Als ci = cj 6= 0 : k := k + 1 en herhaal stap 2. 44
c. Als ci = cj = 0 : T := T ∪ (i, j) : W := W ∪ i ∪ j; ci = cj = c; c := c + 1; k := k + 1 en herhaal stap 2.
d. Als ci 6= 0 en cj = 0 : T := T ∪ (i, j); W := W ∪ j; cj := ci ; k := k + 1 en herhaal stap 2.
e. Als ci = 0 en cj 6= 0 : T := T ∪ (i, j); W := W ∪ i; ci := cj ; k := k + 1 en herhaal stap 2.
f. Als ci 6= cj : T := T ∪ (i, j); cp := ci voor alle p ∈ W met cp = cj ; k := k + 1 en herhaal stap 2.
Voorbeeld 5.1 (vervolg) Initialisatie: W = T = ∅; ci = 0, i = 1, 2, . . . , 7; k = c = 1.
e1 = (3, 5), e2 = (4, 6), e3 = (4, 5), e4 = (2, 4), e5 = (6, 7), e6 = (2, 7), e7 = (5, 6), e8 = (3, 4), e9 = (1, 3), e10 = (2, 3), e11 = (2, 6), e12 = (3, 6), e13 = (1, 5), e14 = (2, 5), e15 = (4, 7), e16 = (5, 7), e17 = (1, 2), e18 = (1, 7), e19 = (3, 7), e20 = (1, 4), e21 = (1, 6). Iteratie 1: e1 = (3, 5); T = {(3, 5)}; W = {3, 5}; ; c3 = c5 = 1; c = 2; k = 2. Iteratie 2:
e2 = (4, 6); T = {(3, 5), (4, 6)}; W = {3, 5, 4, 6}; c 4 = c6 = 2; c = 3; k = 3. Iteratie 3:
e3 = (4, 5); T = {(3, 5), (4, 6), (4, 5)}; c 3 = c5 = 2; k = 4. Iteratie 4:
e4 = (2, 4); T = {(3, 5), (4, 6), (4, 5), (2, 4)}; W = {3, 5, 4, 6, 2}; c 2 = 2; k = 5. Iteratie 5:
e5 = (6, 7); T = {(3, 5), (4, 6), (4, 5), (2, 4), (6, 7)}; W = {3, 5, 4, 6, 2, 7}; c 7 = 2; k = 6. Iteratie 6:
e6 = (2, 7); k = 7. Iteratie 7: e7 = (5, 6); k = 8. Iteratie 8: e8 = (3, 4); k = 9. Iteratie 9: e9 = (1, 3); T = {(3, 5), (4, 6), (4, 5), (2, 4), (6, 7), (1, 3)}; W = {3, 5, 4, 6, 2, 7, 1}; c 1 = 2; k = 10. Stelling 5.2 Algoritme 5.2 (methode van Kruskal) geeft een minimale opspannende boom en heeft complexiteit O(n2 ). Bewijs Laat T de opspannende boom zijn, verkregen met Algoritme 5.2 en stel T ∗ 6= T is een minimale opspannende boom. Stel T bestaat uit de takken t 1 , t2 , . . . , tn−1 die ook in deze volgorde in T zijn
opgenomen. Laat tk de eerste tak van T zijn die niet tot T ∗ behoort en T∗ die minimale opspan-
nende boom waarvoor k zo groot mogelijk is. Door t k aan T∗ toe te voegen ontstaat een kring C
die tenminste ´e´en tak bevat die niet tot T behoort, zeg tak e p . Omdat t1 , t2 , . . . , tk−1 , ep ∈ T∗ ,
bevat deze verz. takken geen kring, en omdat t k ∈ T , is dus l(tk ) ≤ l(ep ). Door T 0 = T∗ + tk − ep 45
te nemen ontstaat een opspannende boom met l(T 0 ) = l(T∗ ) + l(tk ) − l(ep ) ≤ l(T∗ ) ≤ l(T 0 ), zodat
l(T 0 ) = l(T∗ ), terwijl T 0 de takken t1 , t2 , . . . , tk bevat. Dit geeft een tegenspraak. Dus is T ∗ = T , zodat T een minimale opspannende boom is.
De initialisatie heeft complexiteit O(n). Een iteratie bestaat uit onderdeel 2a en ´e´en van de onderdelen 2b t/m 2f. We zullen deze onderdelen afzonderlijk bekijken.
2a: komt in O(n2 ) iteraties voor en heeft per iteratie complexiteit O(1).
2b: komt in O(n2 ) iteraties voor en heeft per iteratie complexiteit O(1).
2c, 2d en 2e: komt in O(n) iteraties voor (want T kan maar n − 1 keer worden uitgebreid) en heeft per iteratie complexiteit O(1).
2f: komt in O(n) iteraties voor en heeft per iteratie complexiteit O(n).
De overall complexiteit van het algoritme is dus O(n 2 ).
5.4
Steiner bomen
Het Steiner1 boom probleem is het probleem om in een metrische ruimte, waarin n punten gegeven zijn, een boom met minimale lengte te vinden die deze n punten opspant, waarbij gebruik gemaakt mag worden van extra zelf te kiezen punten, de zogenaamde Steiner punten. Dit probleem lijkt op het minimale opspannende boom probleem, waarvoor een O(n 2 ) algoritme bestaat. Er kan
worden aangetoond dat voor het Steiner boom probleem geen polynomiaal algoritme bestaat: het
is NP-moeilijk2 . Omdat we in een metrische ruimte werken, zal een Steiner punt altijd alleen met de oorspronkelijke punten verbonden worden (ga dit zelf na). Het Steiner boom probleem kan worden beschouwd als een generalisatie van een in het begin van de 17-de eeuw door Fermat geformuleerd probleem, dat als volgt is: gegeven drie punten in het platte vlak, vind een vierde punt z´odat de som van de afstanden van dit punt tot de drie oorspronkelijke punten minimaal is. In feite is dit probleem het Steiner boom probleem in de Euclidische ruimte is met n = 3. Omstreeks 1640 werd Fermat’s probleem opgelost door Torricelli. De lengte LT van een minimale opspannende boom is een triviale bovengrens van de lengte L S van een optimale Steiner boom. Zij ρ = inf {alle instanties} ondergrens is voor LS .
Ls LT
, dan is ρLT de beste (algemene)
Stelling 5.3 Voor algemene metrische ruimtes is de Steiner ratio ρ = 12 . Bewijs Neem een optimale Steiner boom met lengte L S . Door de takken van de boom te verdubbelen ontstaat een graaf met in ieder knooppunt een even graad, d.w.z. een Euler graaf. De verbindingen van deze Euler graaf vormen een ronde met lengte 2L S , waar alle oorsponkelijke punten en de 1 2
genoemd naar de 19-de eeuwse wiskundige Jacob Steiner. M.R. Garey, R.L. Graham and D.S. Johnson: ”The complexity of computing Steiner minimal trees”, SIAM
Journal of Applied Mathematics 32 (1977) 835-859.
46
Steiner punten opliggen. Door de Stiener punten over te slaan, d.w.z. [i, s, j] met Steiner punt s wordt vervangen door [i, j], wordt de lengte van de ronde niet groter (de driehoeksongelijkheid geldt in metrische ruimtes) en deze ronde C is weer niet kleiner dan de lengte van een minimale opspannende boom T (laat in de ronde een verbinding weg, dan wordt de lengte niet groter en ontstaat een boom): 2LS ≥ LC ≥ LT →
LS LT
≥
1 2
→ ρ ≥ 21 .
Beschouw een n-dimensionale ruimte met als metriek: d(x, y) =
Pn
i=1 |xi
− yi | (ga zelf na dat dit
een goede metriek is). Neem als oorspronkelijke punten de eenheidsvectoren e i , i = 1, 2, . . . , n. De afstand tussen ieder tweetal punten is 2, zodat een minimale opspannende boom T de lengte LT = 2n − 2 heeft. Voeg het Steiner punt s = (0, 0, . . . , 0) toe. De afstand tussen s en e i is gelijk aan 1, i = 1, 2, . . . , n. De verbindingen van s naar alle e i ’s geven een Steiner boom met lengte n.
Hieruit volgt dat ρ ≤
n 2n−2
voor alle n. Door n naar ∞ te laten gaan zien we dat ρ ≤ 21 . Hiermee
is bewezen dat voor algemene metrische ruimtes ρ = 21 .
Betere grenzen zijn mogelijk voor speciale metrische ruimtes, bijv. de n-dimensionale ruimte met de Euclidische afstand. Hiervoor werd in 1968 het vermoeden uitgesproken dat de Steiner ratio √ 1 3 4 2 3 is . Het heeft 22 jaar geduurd voordat het bewijs hiervoor werd gevonden . Dit resultaat √ betekent dat de lengte van een Steiner boom minstens 12 3, d.w.z. 0.866, keer zo groot is als de lengte van de minimale opspannende boom. Voorbeeld 5.2 Beschouw een gelijkzijdige driehoek met zijde 1 en hoekpunten A, B en C. De lengte van de minimale opspannende boom is 2. Nemen we het zwaartepunt Z als enig Steiner punt en als √ Steiner boom de verbinden ZA, ZB en ZC, die elk de lengte 13 3 hebben. Deze Steiner boom √ heeft dus de lengte 3, zodat de verhouding tussen de lengte van de Steiner boom en de lengte √ van de optimale opspannende boom 12 3 is, wat impliceert dat deze Steiner boom optimaal is. Er kan worden bewezen dat voor Euclidische Steiner bomen het volgende geldt: 1. De hoek tussen twee aanliggende verbindingslijnen van een Steiner punt is gelijk aan 120 graden en precies drie verbindingslijnen komen samen in een Steiner punt. 2. Het aantal Steiner punten is hoogstens n − 2 als n het oorspronkelijke aantal knooppunten is. 3. Voor de lengte LS van een Steiner boom en de lengte LT van een minimale opspannende boom geldt: LS ≥
1 2
√ 3 · LT .
Een eenvoudiger probleem is het Steiner netwerk probleem. Hierbij hebben we een netwerk, waarbij de lengtes voldoen aan de driehoeksongelijkheid, met knooppuntenverz. V ∪ S, waarbij
|V | = n en |S| = s. De knooppunten van V moeten met elkaar worden verbonden met minimale lengte: V zijn dus de oorsponkelijke punten en de Steiner punten S zijn gegeven.
3 4
E.N. Gilbert and H.O. Pollak: ”Steiner minimal trees”, SIAM Journal of Applied Mathematics 16 (1968) 1-29. D.-Z. Du and F.K. Hwang: ”The Steiner ratio conjecture of Gilbert-Pollak is true”, Proceedings National
Academy of Sciences USA 87 (1990) 9464-9466.
47
Stelling 5.4 De optimale Steiner boom in het Steiner netwerk probleem gebruikt hoogstens n − 2
Steiner punten. Bewijs
Neem aan dat s ≥ n − 1 (anders valt er niets te bewijzen) en laat p het aantal Steiner punten
zijn in een optimale Steiner boom. Zij x het gemiddelde van de graden van de Steiner punten en y het gemiddelde van de graden van de oorspronkelijke punten in de boom. Dan geldt: n + p − 1 = 21 (px + ny). Vanwege de driehoeksongelijkheid is x ≥ 3.
Hieruit volgt: n + p − 1 ≥ 12 (3p + n) → p ≤ n − 2. Gevolg
We kunnen dus als volgt een optimale Steiner boom vinden: Voor iedere deelverz. van n − 2 of minder Steiner punten: bepaal een minimale
opspannende boom in het netwerk waar de overige Steiner punten zijn weggelaten. De kortste boom geeft de gevraagde oplossing. Voor iedere deelverz. van Steiner punten is het werk voor de opspannende boom O((n + s) 2 ). Het aantal van dergelijke deelverz. is echter exponentieel in s: de totale complexiteit is dus wat polynomiaal in n (voor vaste s), maar exponentieel in s.
5.5
Opgaven
Opgave 1 Beschouw een netwerk met 10 knooppunten, waarvan de lengtes in onderstaande tabel staan (een - betekent dat er geen verbinding is). 1
2
3
4
5
6
7
8
9
10
1
0
18
-
4
11
-
-
-
-
-
2
18
0
17
-
20
16
-
-
-
-
3
-
17
0
-
-
15
12
-
-
-
4
4
-
-
0
19
-
-
10
-
-
5
11
20
-
19
0
7
-
8
13
-
6
-
16
15
-
7
0
14
-
5
2
7
-
-
12
-
-
14
0
-
-
9
8
-
-
-
10
8
-
-
0
3
-
9
-
-
-
-
13
5
-
3
0
6
10
-
-
-
-
-
2
9
-
6
0
a. Bepaal een minimale opspannende boom met de methode van Prim. b. Bepaal een minimale opspannende boom met de methode van Kruskal.
48
Opgave 2 Een bank heeft 5 bijkantoren die elk over een computer terminal beschikken, die verbonden moet worden met de centrale computer in het hoofdkantoor. Deze telecommunicatie geschiedt met speciale telefoonlijnen. Een bijkantoor hoeft niet rechtstreeks met het hoofdkantoor verbonden te zijn, de verbinding kan ook via andere bijkantoren lopen. De kosten van de telefoonlijnen zijn recht evenredig met de lengte van de lijnen. De afstanden tussen de verschillende kantoren staan in onderstaande tabel.
hoofdkantoor
bijkantoor 1
bijkantoor 2
bijkantoor 3
bijkantoor 4
bijkantoor 5
hoofdkantoor
0
160
270
115
70
190
bijkantoor 1
160
0
310
80
220
50
bijkantoor 2
270
310
0
175
120
215
bijkantoor 3
115
80
175
0
140
240
bijkantoor 4
70
220
120
140
0
100
bijkantoor 5
190
50
215
240
100
0
Het probleem is welke verbindingen er gemaakt moeten worden om de kosten te minimaliseren. Los dit probleem op. Opgave 3 Neem een tweetal knooppunten, zeg s en t, van een graaf G = (V, E) met n knooppunten en een lengtefunctie op de takken. Voor een keten K van s naar t is de waarde van K het maximum van de lengtes op deze keten. Het minmax-probleem is: bepaal een keten van s naar t met minimale waarde. Stel een O(n2 ) algoritme op om dit probleem op te lossen en bewijs de correctheid van dit
algoritme.
Opgave 4 Beschouw het Steiner netwerk probleem voor een netwerk met 3 oorspronkelijke knooppunten (1, 2 en 3) en 4 Steiner punten (de knooppunten 4, 5, 6 en 7). De lengtes tussen de punten staan in onderstaande tabel. 1
2
3
4
5
6
7
1
0
6
5
1
3
-
-
2
6
0
-
-
4
3
-
3
5
-
0
5
-
6
2
4
1
-
5
0
2
-
2
5
3
4
-
2
0
-
4
6
-
3
6
-
-
0
4
7
-
-
2
2
4
4
0
Bepaal voor dit probleem een optimale Steiner boom. 49
Hoofdstuk 6
Voorraadtheorie 6.1
Inleiding
Een bedrijf investeert vaak een aanzienlijke hoeveelheid geld in voorraden. Goed voorraadbeheer is dan ook erg belangrijk. De voorraadtheorie bestaat sinds ongeveer 1920. Aanvankelijk waren er alleen eenvoudige deterministische modellen, later - vanaf ongeveer 1950 - ook stochastische. De modellen hebben een belangrijke beperking: ze beschouwen slechts ´e´en product. Vanaf 1970 wordt er ook gekeken naar modellen met meer producten. Dit onderwerp heeft in de literatuur de naam Manufacturing Resource Planning (MRP) gekregen. In dit hoofdstuk gaan wij daar niet verder op in: we beschouwen slechts de klassieke voorraadmodellen. Wanneer er vraag is terwijl er geen voorraad is, dan kan dit leiden tot kosten: extra kosten omdat nageleverd moet worden of kosten omdat goodwill verloren gaat. Anderzijds is het aanhouden van een grote voorraad duur: elke eenheid in voorraad brengt bepaalde kosten met zich mee, zoals renteverlies. Ook de bestelkosten om de voorraad aan te vullen spelen een rol in het geheel. De voorraadtheorie houdt zich bezig met de vraag welke bestelstrategie tot de laagste kosten leidt. Een bestelstrategie geeft antwoord op twee fundamentele vragen: - hoeveel wordt besteld? - wanneer wordt besteld? Vaak leidt dit tot zogenaamde (s, S)-strategie¨en: als de voorraad is gedaald tot niveau s, dan aanvullen tot niveau S. We krijgen verschillende voorraadmodellen door de volgende elementen van het model te laten vari¨eren: 1. de vraag: deze kan deterministisch of stochastisch zijn; 2. de bestellingen: we zullen nagaan wat de gevolgen zijn als bestellingen direct leverbaar zijn, als er een zekere levertijd is of als aanvulling van de voorraad geschiedt door productie; 3. tekorten: het kan wel of niet toegestaan zijn dat er tekorten ontstaan; 4. de besteltijdstippen: we onderscheiden continue modellen, waarin op ieder tijdstip een bestelling gedaan kan worden en periodieke modellen waarin alleen op vaste tijdstippen een bestelling kan worden gedaan. 50
Notaties In dit hoofdstuk zullen we steeds de volgende notaties gebruiken: D: de vraag (in eenheden per tijdseenheid); P : de productiesnelheid (in eenheden per tijdseenheid); A: de vaste kosten per bestelling (ongeacht de bestelgrootte); C: de inkoopkosten (per bestelde eenheid); h: de voorraadkosten (per eenheid en per tijdseenheid); p: de boetekosten bij tekorten (per eenheid en per tijdseenheid); L: de levertijd (in tijdseenheden); Q: de hoeveelheid die besteld wordt (in eenheden); I: de voorraad die aanwezig is (in eenheden); r: het voorraadniveau waarop een bestelling geplaatst wordt; S: het hoogste voorraadniveau; s: het laagste voorraadniveau (negatief bij tekorten).
Voorbeeld 6.1 Een zaak verkoopt een bepaalde stof. De vraag naar deze stof is deterministisch, continu en bedraagt D meter per jaar. Het is niet toegestaan dat er tekorten ontstaan. Als er een bestelling plaatsvindt, dan zijn de kosten C euro per bestelde meter en A euro per bestelling. Bestellingen worden direct geleverd. De voorraadkosten bedragen h euro per meter per jaar. Wat is een optimale voorraadstrategie? In verband met de directe levering en het niet toegestaan zijn van tekorten, is het duidelijk dat in een optimale strategie besteld wordt zodra de voorraad nul is. Veronderstel dat er dan een hoeveelheid Q wordt besteld. We moeten Q z´o bepalen dat de bijbehorende kosten minimaal zijn. We kunnen de kosten als volgt uitrekenen: Bestelkosten: per jaar
D Q
bestellingen en er moet in totaal D worden besteld:
Voorraadkosten: de gemiddelde voorraad is
1 2 Q,
D Q
· A + DC.
zodat de voorraadkosten per jaar 12 h · Q zijn.
Voor de totale kosten K als functie van de bestelgrootte Q geldt: K(Q) =
D Q
· A + DC + 21 hQ.
De optimale waarde van Q, zeg Q∗ , vinden we door deze functie te differenti¨eren en de afgeleide 0 te stellen: K 0 (Q) = −DAQ−2 + 12 h = 0. Hieruit volgt (omdat K 00 (Q) = 2DAQ−3 > 0, vinden we een minimum):
∗
Q =
r
2AD h
(6.1)
Dit is de beroemde Economic Order Quantity, afgekort EOQ-formule. Deze staat bekend als de wortelformule van Camp, maar komt ook voor onder de naam Wilson-Harris formule. Deze formule geeft voor dit model de exacte oplossing, maar wordt ook als benadering gebruikt in meer gecompliceerde modellen. Omdat in K(Q) de term DC niet van invloed is op de optimale oplossing, wordt deze vaak weggelaten. Voor de optimale Q ∗ zijn de vaste bestelkosten QD∗ · A = q q 1 ADh ADh ∗ = en de voorraadkosten zijn hQ 2 2 2 . Beide kosten zijn dus in het optimum aan
elkaar gelijk.
51
6.2
Continue deterministische modellen
In deze paragraaf bespreken we modellen met een constante deterministische vraag D en waarvoor geldt dat er op ieder tijdstip (d.w.z. continu) een order kan worden geplaatst. We krijgen vier modellen het volgende te vari¨eren: 1. tekorten: deze worden wel of niet toegestaan; 2. aanvullingen: deze komen tot stand door directe levering of door productie productie geschiedt met een constante snelheid P > D. Dit geeft dus de volgende vier modellen: Model I: tekorten zijn niet toegestaan en directe levering; Model II: tekorten zijn wel toegestaan en directe levering; Model III: tekorten zijn niet toegestaan en productie; Model IV: tekorten zijn wel toegestaan en productie. Door de boetekosten p bij tekorten zeer groot te nemen, kan model I worden beschouwd als een speciaal geval (met p = ∞) van model II. Door de productiesnelheid P zeer groot te nemen, kan
directe levering worden opgeval als een grensgeval van productie, namelijk voor P = ∞. Het is dus voldoende om Model IV te analyseren. Een cykel van model IV ziet er als volgt uit:
Sa
a A A
A A
A A
A A
A A
r a
0 a
T1
T2
a
a
A A
T3
A A
A Aa
T4 a A A
geen productie A
productie
A
s a
AA
We begruiken de volgende notaties: T1 = tijdsduur totdat de productie het tekort heeft opgeheven; T2 = tijdsduur waarin de productie de voorraad kweekt; TP = tijdsduur dat er geproduceerd wordt = T 1 + T2 ; T3 = tijdsduur waarin de maximale voorraad S door de vraag wordt verbruikt; T4 = tijdsduur waarin het laagste voorraadniveau (maximale tekort) s ontstaat; T = tijdsduur cykel = T1 + T2 + T3 + T4 . 52
Voor dit model gelden de volgende relaties, waarbij Q = de hoeveelheid die in een cykel wordt geproduceerd): 1. Q = T D (de hoeveelheid Q wordt in tijdsduur T opgemaakt met snelheid D). 2. Q = TP P (Q = productiesnelheid P × productietijd T P ). 3. T1 (P − D) = −s; T2 (P − D) = S; TP (P − D) = S − s (de voorraad wordt met snelheid P − D opgebouwd).
4. T3 D = S; T4 D = −s; (T3 + T4 )D = S − s
(de voorraad wordt met snelheid D verbruikt).
Met bovenstaande relaties kunnen de verschillende kosten worden bepaald. Laat R = 1 −
D P
(als
er directe levering is, dan is P = ∞ en R = 1). Omdat Q = T D = T P P , geldt: R =1−
D P
=1−
TP T
=
T3 +T4 T
(T3 +T4 )D TD
=
=
S−s Q
→ S = s + QR.
We kunnen dus de kosten (per tijdseenheid) uitdrukken in de beslissingsvariabelen Q en s. Bestelkosten Een cykel heeft tijdsduur T = 1 T,
per tijdseenheid is dus 1 T
· (A + QC) =
D Q
Q D
en daarin wordt ´e´en bestelling gedaan. Het aantal bestellingen
zodat de bestelkosten per tijdseenheid zijn:
· (A + QC) =
AD Q
+ DC
Voorraadkosten Per cykel is er gedurende T2 + T3 tijdseenheden een voorraad, die gemiddeld
1 2S
groot is. Per
tijdseenheid zijn dus de voorraadkosten: T2 +T3 T
· 21 hS =
S S +D P −D Q D
· 12 hS =
1 SP Q(P −D) 2 hS
=
1 hS 2 2 QR
=
1 h(s+QR)2 . 2 QR
Boetekosten voor tekorten Per cykel is er gedurende T1 + T4 tijdseenheden een tekort, dat gemiddeld −s groot is. Per tijdseenheid zijn dus de boetekosten: T1 +T4 T
· 21 p(−s) =
−s + −s P −D D Q D
· 12 p(−s) =
−sP 1 Q(P −D) 2 p(−s)
=
1 ps2 2 QR .
Voor de totale kosten K(Q, s) per tijdseenheid kunnen we dus schrijven (de vaste inkoopkosten DC nemen we niet mee): K(Q, s) =
AD Q
+
1 2
·
h(s+QR)2 +ps2 . QR
De optimale waarden van de beslissingsvariabelen Q en s kunnen worden gevonden door partieel te differenti¨eren: ∂K ∂s
=0 →
1 QR [h(s
h + QR) + ps] = 0 → s = − h+p · QR en S = s + QR =
p h+p
Met deze waarde van s wordt de kostenfunctie de volgende functie van parameter Q: AD Q
+
1 2
·
p h ·QR)2 +p( h+p ·QR)2 h( h+p QR
=
AD Q
+
1 2
·
hp h+p
· QR.
Nu deze functie partieel differenti¨eren naar Q: ∂K ∂Q
= 0 → −ADQ−2 +
1 h 2 h+p
·R =0 → Q= 53
q
2AD R
·
h+p hp .
· QR.
De minimale kosten vinden we door de optimale waarden van Q, S en s in te vullen: q p h 2 2 ADR·hp hp AD 1 h( h+p ·QR) +p(− h+p ·QR) 1 K(Q, s) = q 2AD + · = 2 QR h+p 2(h+p) + 2 · h+p · QR R
=
q
·
hp
ADR·hp 2(h+p)
+
q
ADR·hp 2(h+p)
=
q
2ADR·hp h+p .
Uit het bovenstaande volgt ook het volgende voor de minimale kosten K(Q, s): - K(Q, s) =
hp h+p
· QR = hS;
- de helft van de minimale kosten zijn de bestelkosten (en de andere helft dus de voorraad- plus de boetekosten); - de verhouding tussen de voorraad- en de boetekosten is:
hS 2 ps2
= hp .
Een voorraadstrategie is pas volledig als we ook aangeven bij welk voorraadniveau r een nieuwe bestelling geplaatst moet worden, waarbij we rekening moeten houden met de levertijd L. De vraag gedurende de levertijd is LD. Het bestelniveau moet dus z´o gekozen worden dat als de bestelling wordt geleverd (of de productie werkelijk start) het voorraadniveau s is. We onderscheiden de volgende mogelijkheden: Mogelijkheid 1: L ≤ T3 + T4 =
Q D
· R.
Dan is er gedurende de levertijd geen productie, dus r − s = DL, zodat r = s + DL. Mogelijkheid 2:
Q D
· R = T 3 + T4 < L ≤ T =
Q D.
Omdat in het begin van de cyclus, tot het begin van de levertijd, de voorraad van s tot r met Q − L). snelheid P − D opgebouwd, geldt: r − s = (P − D)(T − L), zodat r = s + (P − D)( D
Mogelijkheid 3: L > T =
Q D.
In dit geval moet er meer dan ´e´en cyclus vooruit worden besteld en wel m = b TL c = b LD Q c cykels eerder. Door L mod T te nemen krijgen we een nieuwe ”levertijd”, die m cykels eerder moet worden gebruikt om - analoog aan de mogelijkheden 1 en 2 - het niveau r te bepalen. We zullen nu voor de vier afzonderlijke modellen de resultaten samenvatten: Model I: tekorten zijn niet toegestaan en directe levering q LD Q = 2AD h ; s = 0; S = Q; kosten = hS; m = b Q c; r = LD − mQ. Model II: tekorten zijn wel toegestaan en directe levering q h LD Q = 2AD · h+p hp ; s = − h+p · Q; S = s + Q; kosten = hS; m = b Q c; r = s + LD − mQ. Model III: tekorten zijn niet toegestaan en productie q LD 2AD ; Q = R =1− D hR ; s = 0; S = QR; kosten = hS; m = b Q c; ( P Q S LD − mQ als L − m · D ≤ QR D = D r= . Q Q S − L}(P − D) als L − m · D > QR {(m + 1) D D = D
Model IV: tekorten zijn wel toegestaan en productie q h+p h LD D R = 1 − P ; Q = 2AD R · hp ; s = − h+p · QR; S = s + QR; kosten = hS; m = b Q c; ( Q ≤ QR LD − mQ + s als L − m · D D r= . Q QR Q {(m + 1) D − L}(P − D) + s als L − m · D > D 54
Voorbeeld 6.2 Beschouw een continu deterministisch voorraadmodel met een vraag D van 10.000 per jaar, vaste kosten A = 150, voorraadkosten h = 0.75 per eenheid per jaar en een levertijd L = 3 maanden. Voor het model met directe levering en zonder tekorten krijgen we als optimale bestelgrootte Q = 2000 met kosten 1500, m = 1 en r = 500 (dus ´e´en periode vooruit bestellen als het voorraadniveau 500 is). Veronderstel dat er ook tekorten zijn toegestaan tegen boetekosten 2 per eenheid per jaar. Dan wordt de diverse optimale waarden: Q = 2345, s = −640, S = 1705 met kosten 1280, m = 1 en
r = −485 (dus ´e´en periode vooruit bestellen als er 485 tekorten zijn).
Vervolgens nemen we aan dat de voorraad wordt aangevuld door productie met een snelheid van 54.750 eenheden per jaar. Als er geen tekorten mogen ontstaan, dan worden de optimale parameters: R = 0.82, Q = 2212, S = 1808 met kosten 1356, m = 1 en r = 288 (´e´en periode vooruit bestellen als er 288 in voorraad is en we in de fase ’geen productie’ zijn). Tenslotte het productiemodel waarin ook tekorten zijn toegestaan tegen boetekosten 2 per eenheid per jaar. Dit levert de volgende waarden: R = 0.82, Q = 2594, s = −578, S = 1542 met kosten 1156, m = 0 en r = −157 (bestellen als er 157 tekorten zijn en we in de fase ’productie’ zijn).
Gevoeligheidsanalyse De wortelformule voor de optimale waarde van Q impliceert dat de oplossing robuust is, d.w.z. dat een verandering in de gegevens niet zo sterk doorwerkt in het kosten, m.a.w. fouten worden als het ware verkleind. Beschouw hiervoor model I, waarvoor de kostenfunctie gelijk is aan K(Q) = optimale waarde Q∗ , waarvoor geldt dat f (Q∗ ) =
2AD Q∗
AD Q
+ 12 hQ. Als we
= hQ∗ , vervangen door (1 + α)Q∗ , dan
wordt de relatieve afwijking van de kosten: f ((1+α)Q∗ )−f (Q∗ ) f (Q∗ )
=
f ((1+α)Q∗ ) f (Q∗ )
−1 =
AD (1+α)Q∗ 2AD Q∗
+
1 h(1+α)Q∗ 2 hQ∗
−1 =
1 2(1+α)
Hieruit volgt dat een afwijking van 50% van de optimale Q ∗ (α =
1 2)
+ 21 (1 + α) − 1 =
α2 2(1+α) .
in de kosten slechts een
afwijking geeft van ongeveer 8%. Als in Voorbeeld 6.2 de vaste kosten bijvoorbeeld niet 150, maar 200 zijn (afwijking van 33%), dan wordt de optimale bestelgrootte Q ∗ = 2309 i.p.v. 2000, wat een afwijking is van 15%; de kosten (in de oorspronkelijke formule met A = 150) worden daardoor 1515, wat een relatieve afwijking van is van 1%. Kwantumkorting Veronderstel dat er geen vaste inkoopprijs C is, maar dat de inkoopprijs afhangt van de bestelde hoeveelheid. Een gebruikelijk model is kwantumkorting, d.w.z. de inkoop per stuk is: C0 voor 0 < Q < Q1 C1 < C 0 Ci < Ci−1 Cn < Cn−1
voor Q1 ≤ Q < Q2
voor Qi ≤ Q < Qi+1 , i = 2, 3, . . . , n − 1 voor Qn ≤ Q.
Laat Ki (Q) de kostenfunctie zijn bij inkoopprijs C i . We hebben gezien dat Ci in Ki (Q) voorkomt als term DCi , wat impliceert dat de verschillende kostenfuncties een constante verschillen. Voor 55
al deze functies wordt het minimum aangenomen voor dezelfde optimale bestelgrootte Q ∗ , want deze hangt niet van de inkoopprijs af. De werkelijke functe krijgen we door op het interval [Q i , Qi+1 ) de functie Ki (Q) te nemen. Deze functie springt dus in de punten Qi met D(Ci−1 − Ci ) omlaag. Verder merken we op dat de functies Ki (Q) convex zijn, namelijk dalend links van Q ∗ en stijgend rechts van Q∗ . Hieruit volgt
dat de optimale bestelgrootte wordt gevonden door onderstaand algoritme. Algoritme voor voorraadmodel met kwantumkorting 1. Bepaal de optimale Q∗ met de wortelformule en laat Q∗ ∈ [Qj , Qj+1 ).
2. Bereken de functiewaarden Ki (Qi ) voor i = j + 1, j + 2, . . . , n en laat k z´odanig dat Kk (Qk ) = minj+1≤i≤n Ki (Qi ). 3. Als Kj (Q∗ ) ≤ Kk (Qk ): Q∗ is de optimale bestelgrootte; Anders: Qk is de optimale bestelgrootte.
De afwegingskromme Vaak gaat het bij voorraadmodellen om meer producten en is het moeilijk om goede schattingen te geven van de vaste bestelkosten en de voorraadkosten. We hebben dan alleen de beschikking over Di = de vraag per tijdseenheid naar product i en C i = de inkoopsprijs per eenheid voor product i, i = 1, 2, . . . , n. Veronderstel dat we model I hebben (geen tekorten en geen productie). In dit geval kan toch soms een zinnige vergelijking worden gemaakt tussen bestelstrategie¨en Q = (Q1 , Q2 , . . . , Qn ), waarbij Qi de bestelgrootte voor product i is, i = 1, 2, . . . , n. Dit resultaat is gebaseerd op de begrippen totale investering en totaal aantal bestellingen. Deze begrippen zijn van vitaal belang voor de kosten en deze kosten willen we in zekere zin minimaliseren. Als Q i de bestelgrootte is van product i, dan is de voorraad van product i gemiddeld
1 2 Qi ,
zodat de
gemiddelde investering in de voorraad van product i gelijk is aan 21 Ci Qi . Het aantal bestellingen per tijdseenheid van product i is
Di Qi ,
i = 1, 2, . . . , n. De totale investering T I(Q) en het totaal
aantal bestellingen per tijdseenheid T B(Q) worden gedefinieerd door: P P i T I(Q) = ni=1 21 Ci Qi en T B(Q) = ni=1 D Qi . Stelling 6.1 Voor elke bestelstrategie Q = (Q 1 , Q2 , . . . , Qn ) geldt: n
T I(Q) × T B(Q) ≥
1 Xp C i Di )2 . ( 2
(6.2)
i=1
Bewijs Volgens de ongelijkheid van Schwartz geldt voor ieder tweetal n-dimensionale vectorenqx en y P P P i dat ( ni=1 x2i ) × ( ni=1 yi2 ) ≥ ( ni=1 xi yi )2 . Passen we deze ongelijkheid toe met x i = D Qi en q yi = 12 Ci Qi , dan vinden we het gevraagde resultaat. Merk op dat het rechterlid van (6.2) onafhankelijk is van de bestelstrategie Q. Beschouwen we in P √ het XY -vlak de kromme xy = c, met c = 12 ( ni=1 Ci Di )2 , dan geeft iedere bestelstrategie Q een
punt in het XY -vlak aan de ’buitenkant’ van deze kromme, die de afwegingskromme heet. Laat 56
de X-as corresponderen met T B(Q) en de Y -as met T I(Q). Punten die op de kromme liggen worden ’beter’ gevonden dan punten naast de kromme. We zullen nu laten zien hoe we, uitgaande van een strategie Q met bijbehorende T B(Q) en T I(Q), een ’betere’ strategie Q ∗ kunnen bepalen P √ met T B(Q∗ ) ≤ T B(Q), T I(Q∗ ) ≤ T I(Q) en met T B(Q∗ ) × T I(Q) = c = 12 ( ni=1 Ci Di )2 . Kies een punt P ∗ = (P1∗ , P2∗ ) op de afwegingskromme met P1∗ ≤ T B(Q) en P2∗ ≤ T I(Q). q ∗ P∗ Laat λ∗ = P2∗ en neem Q∗ z´odanig dat Q∗i = 2λCiDi , i = 1, 2, . . . , n. 1
We zullen nu laten zien dat T B(Q∗ ) = P1∗ en T I(Q∗ ) = P2∗ . Er geldt: Pn q Ci Di q 1 Pn √ Pn Di ∗ r = i=1 T B(Q ) = i=1 i=1 Ci Di 2λ∗ = 2λ∗ · ∗ 2λ Di Ci
en
T I(Q∗ ) = Hieruit volgt:
Pn
1 i=1 2 Ci
q
2λ∗ Di Ci
T B(Q∗ ) × T I(Q∗ ) = 12 (
=
Pn
i=1
q
λ∗ C i Di 2
=
q
Pn √ 2 i=1 Ci Di ) = c,
λ∗ 2
·
Pn
i=1
√ C i Di .
dus (T B(Q∗ ), T I(Q∗ )) ligt op de afwegingskromme, evenals (P 1∗ , P2∗ ). Verder geldt: q q q ∗ p √ Pn √ P 1 1 ∗ T B(Q ) = 2λ∗ · i=1 Ci Di = 2λ∗ · 2c = 2P1∗ · 2P1∗ P2∗ = P1∗ en 2 q q ∗ p √ ∗ P T I(Q∗ ) = λ2 · 2c = 2P2∗ · 2P1∗ P2∗ = P2∗ . 1
6.3
Periodieke deterministische modellen
In deze paragraaf wordt een productieproces beschouwd over een eindig aantal, zeg N , perioden. In dit model zijn de vraag en en kosten in principe verschillend per periode. Er zijn productie- en voorraadkosten; deze kosten kunnen willekeurige functies zijn, dus niet per se lineair. We zullen allereerst het model bespreken waarin geen tekorten zijn toegestaan, d.w.z. dat aan de vraag in periode n moet worden voldaan door productie in de perioden 1 tot en met n, n = 1, 2, . . . , N . Het doel is om een planning te maken voor de productie in iedere periode die de totale kosten minimaliseert. De beslissingsvariabelen zijn in dit model dan ook: xn = het aantal eenheden dat in periode n wordt geproduceerd, n = 1, 2, . . . , N . Laat voor n = 1, 2, . . . , N : dn = de vraag in periode n; cn (x)
= de productiekosten om x eenheden te produceren in periode n;
hn (y)
= de voorraadkosten om y eenheden gedurende periode n in voorraad te hebben
In
= de voorraad aan het begin van periode n, dus I n = In−1 + xn−1 − dn−1
We nemen I1 = IN +1 = 0. Omdat in iedere periode aan de vraag moet worden voldaan, moet gelden: In + xn ≥ dn , n = 1, 2, . . . , N . Anderzijds hoeft er niet meer te zijn dan voor de reterende perioden nodig is: In + xn ≤ dn + dn+1 + · · · + dN , n = 1, 2, . . . , N . 57
Een optimale strategie kan worden gevonden met dynamische programmering, in dit geval achterwaartse recursie. Laat voor n = N, N − 1, . . . , 1: fn (In ) =
de kosten van een optimale strategie voor de perioden n, n + 1, . . . , N , gegeven dat In de voorraad is aan het begin van periode n.
Dan geldt: n=N hn (In ) + cn (dn − In ), fn (In ) = mindn −In ≤xn ≤dn +dn+1 +···+dN −In {hn (In ) + cn (xn ) + fn+1 (In + xn − dn )}, n = N − 1, N − 2, . . . , 1 Dit betekent dat we als volgt de getallen f n (In ) kunnen berekenen: - eerst fN (IN ) voor IN = 0, 1, . . . , dN ; - vervolgens fn (In ) voor In = 0, 1, . . . , dn + dn+1 + · · · dN , n = N − 1, N − 2, . . . , 2; - tenslotte bepalen we f1 (0).
Voor iedere n en In houden we bij welke xn de minimale kosten oplevert. De optimale strategie wordt nu als volgt gevonden: - x1 is de optimale productie bij f1 (0) en laat I2 = x1 − d1 ;
- voor n = 2, 3, . . . , N : neem xn de optimale beslissing bij fn (In ) en laat In+1 = In + xn − dn . Voorbeeld 6.3 N = 5; d1 = 1; d2 = 4; d3 = 5; d4 = 3; d5 = 1; cn (x) = hn (y) = y, y ≥ 0, 1 ≤ n ≤ 5.
De berekeningen zijn als volgt: n = 5 : f5 (0) = 7 voor x5 = 1; n=4: n=3:
(
0 als x = 0, 1 ≤ n ≤ 5
7 als x ≥ 1, 1 ≤ n ≤ 5
f5 (1) = 1 voor x5 = 0.
f4 (0) = 8 voor x4 = 4;
f4 (1) = 9 voor x4 = 3;
f4 (2) = 10 voor x4 = 2;
f4 (3) = 10 voor x4 = 0;
f4 (4) = 5 voor x4 = 0.
f3 (0) = 12 voor x3 = 9;
f3 (1) = 13 voor x3 = 8;
f3 (2) = 14 voor x3 = 7;
f3 (3) = 15 voor x3 = 6;
f3 (4) = 16 voor x3 = 5;
f3 (5) = 13 voor x3 = 0;
f3 (6) = 15 voor x3 = 0;
f3 (7) = 17 voor x3 = 0;
f3 (8) = 18 voor x3 = 0;
f2 (0) = 19 voor x2 = 4;
f2 (1) = 20 voor x2 = 3;
f2 (2) = 21 voor x2 = 2;
f2 (3) = 22 voor x2 = 1;
f2 (4) = 16 voor x2 = 0;
f2 (5) = 18 voor x2 = 0;
f2 (6) = 20 voor x2 = 0;
f2 (7) = 22 voor x2 = 0;
f2 (8) = 24 voor x2 = 0;
f2 (9) = 22 voor x2 = 0;
f2 (10) = 25 voor x2 = 0;
f2 (11) = 28 voor x2 = 0;
f2 (12) = 30 voor x2 = 0;
f2 (13) = 27 voor x2 = 0.
f3 (9) = 14 voor x3 = 0. n=2:
n=1:
f1 (0) = 23 voor x1 = 5.
Door via de optimale x-waarden voorwaarts te lopen krijgen we de optimale strategie: x1 = 5 → I2 = 4 → x2 = 0 → I3 = 0 → x3 = 9 → I4 = 4 → x4 = 0 → I5 = 1 → x5 = 0. Een functie f (k), waarbij het argument k discrete waarden aanneemt, heet concaaf als de differentie ∆f (k) := f (k + 1) − f (k) een dalende functie is, d.w.z. ∆f (k + 1) ≤ ∆f (k), ofwel ∆ 2 f (k) ≤ 0 voor alle relevante waarden van k. Kostenfuncties hebben vaak de eigenschap dat het stijgende 58
functies zijn, maar dat de toename van de stijging afneemt; dit houdt in dat deze functies concaaf zijn. Veronderstel dat de kostenfuncties h n en cn voor alle n concaaf zijn, dan geldt het volgende resultaat. Stelling 6.2 Als de de kostenfuncties h n en cn voor alle n concaaf zijn, dan zijn er optimale producties xn en bijbehorende voorraden In z´ odanig dat In · xn = 0 voor n = 1, 2, . . . , N . Bewijs Beschouw een optimaal productieplan. Als er meer zijn, kies dan een optimaal productieplan P waarvoor N n=1 (xn + In ) minimaal is.
Veronderstel dat de bewering niet waar is, d.w.z. er is een n met I n > 0 en xn > 0. Omdat er aan het begin van periode n voorraad is, komt deze van een eerdere productie en laat m < n de periode zijn, waarin voor het laatst is geproduceerd, dus x m > 0 en xm+1 = xm+2 = · · · = xn−1 = 0.
Beschouw nu twee andere productieplannen, die dus niet goedkoper zijn dan het optimale.
Laat x0m = xm +1, x0n = xn −1 (de andere producties onveranderd), zodat I k0 = Ik +1, m < k ≤ n,
en geldt:
cm (xm ) + cn (xn ) +
Pn
k=m+1 hk (Ik )
≤ cm (xm + 1) + cn (xn − 1) +
Pn
k=m+1
hk (Ik + 1).
Neem daarnaast x00m = xm − 1, x00n = xn + 1 (de andere producties onveranderd), zodat Ik00 = Ik − 1, m < k ≤ n. Dit geeft de ongelijkheid: P P cm (xm ) + cn (xn ) + nm+1 hk (Ik ) ≤ cm (xm − 1) + cn (xn + 1) + nk=m+1 hk (Ik − 1). Tel beide ongelijkheden bij elkaar op en herschik de termen: P 0 ≤ ∆2 cm (xm − 1) + ∆2 cn (xn − 1) + nk=m+1 ∆2 hk (Ik − 1).
De concaviteit houdt in dat ∆2 ck (k) ≤ 0 en ∆2 hk (k) ≤ 0 voor alle k, zodat bovenstaande drie
ongelijkheden alle gelijkheidheden zijn en alle drie productieplannen optimaal. Echter, voor het P PN PN 00 00 tweede productieplan geldt dat N n=1 (xn + In ) = n=1 (xn + In ) − (n − m) < n=1 (xn + In ),
wat een tegenspraak oplevert.
Stelling 6.2 houdt in dat in periode n alleen de productie van de hoeveelheden 0, d n , dn + dn+1 , . . . , dn +dn+1 +· · ·+dN optimaal kan zijn. Dit reduceert het aantal berekeningen aanzienlijk. Voorbeeld 6.3 (vervolg) De kostenfuncties zijn inderdaad concaaf. Dit betekent dat de berekeningen als volgt kunnen worden gereduceerd: n = 5 : f5 (0) = 7 voor x5 = 1;
f5 (1) = 0 voor x5 = 0.
n=4:
f4 (0) = 8 voor x4 = 4;
f4 (3) = 10 voor x4 = 0;
f4 (4) = 5 voor x4 = 0.
n=3:
f3 (0) = 12 voor x3 = 9;
f3 (5) = 13 voor x3 = 0;
f3 (8) = 18 voor x3 = 0;
f2 (0) = 19 voor x2 = 4;
f2 (4) = 16 voor x2 = 0;
f2 (9) = 22 voor x2 = 0;
f2 (12) = 30 voor x2 = 0;
f2 (13) = 27 voor x2 = 0.
f3 (9) = 14 voor x3 = 0. n=2: n=1:
f1 (0) = 23 voor x1 = 5.
De berekening van de optimale strategie is hetzelfde als eerder. 59
Vervolgens zullen we het model beschouwen waarin tekorten wel zijn toegestaan. In het geval er tekorten zijn, dan zijn hier boetekosten aan verbonden. In dit model kan de voorraad I n negatief zijn (d.w.z. dat er −In tekort is) en we veronderstellen dat als I n < 0 de boetekosten pn (In ) zijn
in periode n, n = 1, 2, . . . , N . Voor iedere 1 ≤ n ≤ N is de voorraadfunctie h n (In ) = 0 voor In < 0 en de boetefunctie pn (In ) = 0 voor In > 0.
In dit model wordt de recursieformule: n=N hn (In ) + cn (dn − In ) + pn (In ), fn (In ) = min0≤xn ≤dn +dn+1 +···+dN −In {hn (In ) + pn (In ) + cn (xn ) + fn+1 (In + xn − dn )}, n = N − 1, N − 2, . . . , 1 Omdat IN ook negatieve waarden kan aannemen, en wel tot −(d 1 +d2 +· · ·+dN −1 ), starten we met
de bepaling van fN (IN ) voor −(d1 + d2 + · · · + dN −1 ) ≤ IN ≤ dN . Vervolgens berekenen we voor
n = N −1, N −2, . . . , 2 de waarden fn (In ) voor −(d1 +d2 +· · ·+dn−1 ) ≤ In ≤ (dn +dn+1 +· · · dN ). Tenslotte wordt f1 (0) berekend en wordt het optimale productieschema weer bepaald zoals in het vorige model. Voorbeeld 6.3 (vervolg)
Neem aan dat ook tekorten zijn toegestaan tegen boetekosten p n (z) = −2z voor alle 1 ≤ n ≤ N en z < 0. De berekeningen zijn als volgt: n = 5 : f5 (−13) = 33 voor x5 = 14; f5 (−12) = 31 voor x5 = 13;
n=4:
n=3:
n=2:
n=1:
f5 (−11) = 29 voor x5 = 12;
f5 (−10) = 27 voor x5 = 11;
f5 (−9) = 25 voor x5 = 10;
f5 (−8) = 23 voor x5 = 9;
f5 (−7) = 21 voor x5 = 8;
f5 (−6) = 19 voor x5 = 7;
f5 (−5) = 17 voor x5 = 6;
f5 (−4) = 15 voor x5 = 5;
f5 (−3) = 13 voor x5 = 4;
f5 (−2) = 11 voor x5 = 3;
f5 (−1) = 9 voor x5 = 2;
f5 (0) = 7 voor x5 = 1;
f5 (1) = 1 voor x5 = 0.
f4 (−10) = 28 voor x4 = 14;
f4 (−9) = 26 voor x4 = 13;
f4 (−8) = 24 voor x4 = 12;
f4 (−7) = 22 voor x4 = 11;
f4 (−6) = 20 voor x4 = 10;
f4 (−5) = 18 voor x4 = 9;
f4 (−4) = 16 voor x4 = 8;
f4 (−3) = 12 voor x4 = 7;
f4 (−2) = 12 voor x4 = 6;
f4 (−1) = 10 voor x4 = 5;
f4 (0) = 8 voor x4 = 4;
f4 (1) = 9 voor x4 = 3;
f4 (2) = 10 voor x4 = 2;
f4 (3) = 10 voor x4 = 0;
f4 (4) = 5 voor x4 = 0.
f3 (−5) = 22 voor x3 = 14;
f3 (−4) = 20 voor x3 = 13;
f3 (−3) = 18 voor x3 = 12;
f3 (−2) = 16 voor x3 = 11;
f3 (−1) = 14 voor x3 = 10;
f3 (0) = 12 voor x3 = 9;
f3 (1) = 13 voor x3 = 8;
f3 (2) = 14 voor x3 = 7;
f3 (3) = 15 voor x3 = 6;
f3 (4) = 14 voor x3 = 0;
f3 (5) = 13 voor x3 = 0;
f3 (6) = 15 voor x3 = 0;
f3 (7) = 17 voor x3 = 0;
f3 (8) = 18 voor x3 = 0;
f3 (9) = 14 voor x3 = 0.
f2 (−1) = 21 voor x2 = 5;
f2 (0) = 19 voor x2 = 4;
f2 (1) = 19 voor x2 = 0;
f2 (2) = 18 voor x2 = 0;
f2 (3) = 17 voor x2 = 0;
f2 (4) = 16 voor x2 = 0;
f2 (5) = 18 voor x2 = 0;
f2 (6) = 20 voor x2 = 0;
f2 (7) = 22 voor x2 = 0;
f2 (8) = 22 voor x2 = 0;
f2 (9) = 22 voor x2 = 0;
f2 (10) = 25 voor x2 = 0;
f2 (11) = 28 voor x2 = 0;
f2 (12) = 30 voor x2 = 0;
f2 (13) = 27 voor x2 = 0.
f1 (0) = 21 voor x1 = 0.
Voor de optimale strategie geldt: x1 = 0 → I2 = −1 → x2 = 5 → I3 = 0 → x3 = 9 → I4 = 4 → x4 = 0 → I5 = 1 → x5 = 0. 60
Een heuristische aanpak Als de vraag per periode niet te veel fluctueert, dan kan een optimale strategie vaak goed benaderd worden met de wortelformule voor het continue model uit de vorige paragraaf. Laat de gemiddelde P 1 PN 2 2 vraag D = N1 N effici¨ent V C = DV2 . n=1 dn , de variantie V = N n=1 dn −D en de variabiliteitsco¨
Experimenteel onderzoek van Petersen en Silver heeft aangetoond dat als V C ≤ 0.20 het continue P model met D = N1 N n=1 dn in de regel een goede benadering geeft.
Als V C > 0.20, dan is de volgende heuristiek, de Silver-Meal heuristiek genaamd, vaak een goed
alternatief voor problemen met vaste bestelkosten A en lineaire voorraadkosten h per eenheid per periode (deze hebben concave kostenfuncties). De heuristiek is gebaseerd op de volgende idee¨en: - elke productiehoeveelheid moet precies genoeg zijn voor de vraag in een aantal opeenvolgende perioden; - beschouw eerst de productie voor ´e´en periode, en neem daar een volgende periode bij als de gemiddelde kosten (vaste kosten plus voorraadkosten) daardoor lager worden, etc. - stop als een extra periode leidt tot gemiddeld hogere kosten. De gemiddelde kosten K(T ) over de eerste T periode zijn: K(T ) =
1 T {A
+h
PT
n=1 (n
− 1)dn }.
De Silver-Meal heuristiek produceert voor T ∗ perioden, waarbij T ∗ de eerste waarde van T is
waarvoor K(T + 1) > K(T ). Daarna worden de perioden T ∗ + 1, T ∗ + 2, . . . hernummerd als periode 1, 2, . . . en passen we opnieuw bovenstaande procedure toe. Voorbeeld 6.3 (vervolg) A = 7 en h = 1. K(1) = 7; K(2) = 12 (7 + 4) = 5.5; K(3) = 31 (7 + 4 + 2 × 5) = 7, dus x1 = 5 (productie voor de perioden 1 en 2).
K(1) = 7; K(2) = 21 (7 + 3) = 5; K(3) = 31 (7 + 3 + 2 × 1) = 4, dus x3 = 9 (productie voor de perioden 3, 4 en 5).
6.4
Continue stochastische modellen
We beschouwen in deze paragraaf een voorraadmodel waarin de vraag per tijdseenheid stochastisch is met verwachting D. In dit model willen we de verwachte kosten minimaliseren. Aan de vraag wordt voldaan door levering na bestelling, en niet door productie. Als de levertijd L = 0, dan is het stochastisch karakter van de vraag in feite niet van belang, en kunnen we de formules uit de vorige paragraaf gebruiken met voor D de verwachting van de vraag. Bij een positieve levertijd L wordt het model wezenlijk anders; het is dan ook niet mogelijk om te garanderen dat er geen tekorten ontstaan. Tekorten die ontstaan zullen worden nageleverd. Doorgaans zal de bestelgrootte groter zijn dan de verwachte vraag om een goede service te bieden aan de klanten. Deze extra hoeveelheid wordt de veiligheidsvoorraad genoemd; dit is een buffer tegen stochastische fluctuaties. In dit model wordt gekeken naar (Q, r)-strategie¨en. Deze zijn van het type:
61
Indien de voorraad gedaald is tot niveau r (bestelpunt), wordt een hoeveelheid Q (bestelgrootte) besteld. Zij xL de stochastische vraag gedurende de levertijd L met een gegeven dichtheid f L (x) met verwachting µL en standaardafwijking σL . Dus r − xL = de voorraad vlak voor er een bestelling
binnenkomt en r − xL + Q = de voorraad vlak nadat er een bestelling is binnengekomen.
Zij I1 en I2 de verwachte voorraad aan het begin (direct na aanvulling) resp. aan het einde van een cykel. Dan geldt: I1 = r − µL + Q en I2 = r − µL . Voor de gemiddelde voorraad Igem nemen we: Igem = 21 (I1 + I2 ) = r − µL + 21 Q. De gemiddelde bestelkosten zijn, analoog aan het vorige model: DC +
AD Q .
De variabele kosten
DC zijn onafhankelijk van de strategie en worden weer weggelaten, zodat de kostenfunctie is: K(Q, r) =
AD Q
+ h · (r − µL + 21 Q).
We willen de kosten minimaliseren onder de voorwaarde dat de klanten een gegarandeerd serviceniveau hebben. Voor dit service-niveau zullen we twee verschillende modellen bespreken: Model 1: De kans dat er in een cykel een tekort ontstaat is hoogstens α; Model 2: De kans dat een willekeurige klant een tekort aantreft is hoogstens β. Het volgende voorbeeld laat zien dat dit zeer verschillende criteria zijn. Voorbeeld 6.4 Veronderstel dat we een stochastische vraag hebben met een verwachting van 1000 eenheden per jaar, en dat de vraag tijdens de levertijd 20, 30, 40, 50 of 60 is, elk met een kans 0.2. De verwachte vraag gedurende de levertijd is 40. Beschouw de strategie die 100 eenheden bestelt zodra het voorraadniveau 30 is. Er treedt in een cykel een tekort op als de vraag meer dan 30 is en de kans hierop is 0.6. Het verwachte tekort in een cykel is dus : 0.2(40-30) + 0.2(50-30) + 0.2(60-30) = 12. Het verwachte aantal klanten per cykel is 100. De kans dat een willekeurige klant een tekort aantreft is dus 12/100 = 0.12. Daarnaast zullen we ook het volgende model beschouwen: Model 3: Tekorten zijn toegestaan tegen boetekosten. Aanname: We veronderstellen in deze paragraaf dat x L , de vraag gedurende de levertijd, N (µ L , σL2 )-verdeeld is. Model 1: De kans dat er in een cykel een tekort ontstaat is hoogstens α. Voor dit model moet dus gelden dat Q en r de oplossing zijn van: min{
1 AD + h · [ Q + r − µL ] | P(xL > r) ≤ α} Q 2
62
(6.3)
Omdat r lineair met een positieve co¨effici¨ent voorkomt in de doelfunctie en de beperking niet van Q afhangt, moet r de kleinste waarde zijn die aan de beperking voldoet. Laat y L = is yL N (0, 1)-verdeeld. De beperking van (6.3) is equivalent met P(y L > I volgt de waarde, zeg zα , voor
r−µL σL ,
r−µL σL )
zodat r = µL + σL · zα .
xL −µL σL ,
dan
≤ α, en uit Tabel
Omdat r niet afhangt van Q, heeft q de optimale Q dezelfde waarde als in model I van de continue deterministische modellen: Q = 2AD h . Voorbeeld 6.2 (vervolg) Veronderstel dat voor de levertijd L geldt dat µ L = 800 en σL = 200, en laat α = 0.1. We hebben gezien dat Q = 2000. Uit Tabel I volgt dat z α = 1.29, dus r = 800 + 200 · 1.29 = 1058. De veiligheidsvoorraad is dus 258.
Model 2: De kans dat een willekeurige klant een tekort aantreft is hoogstens β. Laat B de stochastische variabele zijn die het aantal tekorten in een cykel aangeeft. R∞ Dan geldt voor de verwachting: E B = r (x − r)fL (x)dx. De kans dat een willekeurige klant een tekort aantreft is
EB Q .
We moeten dus oplossen het
probleem: min
Z 1 ∞ 1 AD (x − r)fL (x)dx ≤ β + h · [ Q + r − µL ] Q 2 Q r
(6.4)
Voor β niet te groot is het aannemelijk (zie de eerdere discussie over de gevoeligheidsanalyse) dat q 2AD Q, berekend met de wortelformule, d.w.z. Q = h , een goede benadering is voor de optimale
bestelgrootte.
We moeten r bepalen z´odat
R∞ r
(x − r)fL (x)dx ≤ β · Q. Door te substitueren y =
we schrijven: R∞ R∞ r (x − r)fL (x)dx = r (x − r) σ
1 x−µL 2 ) σL
− ( 1 √ e 2 L 2π
dx = σL
L = σL · N ( r−µ σL ),
waarbij N (z) =
R∞ z
R∞
r−µL σL
(y −
x−µL σL
kunnen
r−µL √1 − 12 y 2 dy σL ) 2π e
1 2
(y − z) √12π e− 2 y dy. De waarden van N (z) zijn getabelleerd (zie Tabel II). βQ σL en r βQ σL , dan is
L We moeten r dus zo bepalen dat N ( r−µ σL ) ≤
waarde uit Tabel II kleiner dan of gelijk aan
zo klein mogelijk. Zij z(β) de grootste
r = µL + σL · z(β).
Voorbeeld 6.2 (vervolg) Laat β = 0.01. Uit Tabel II volgt z(β) = 0.91, zodat r = 800 + 200 · 0.91 = 982; de veiligheidsvoorraad is 182.
Opmerking: Indien
βQ σL
> 0.3989, dan kan de waarde van z(β) niet direct uit Tabel II worden afgelezen.
In dat geval is z(β) negatief en kan worden gevonden door gebruik te maken van de formule: N (z) = N (−z) − z voor z < 0. De correctheid van deze formule kan als volgt worden aangetoond: 1 2
Laat Φ(y) = √12π e− 2 y . Voor z < 0 geldt: R∞ R −z R∞ N (z) = z (y − z)Φ(y)dy = z (y − z)Φ(y)dy + −z [(y + z) − 2z]Φ(y)dy R −z R −z R∞ = z yΦ(y)dy − z z Φ(y)dy + N (−z) − 2z −z Φ(y)dy. 63
R −z
Omdat Φ(y) symmetrisch is om 0, geldt:
z
Hieruit volgt:
yΦ(y)dy = 0 en
R∞ −z
Φ(y)dy =
Rz
−∞ Φ(y)dy.
R∞ Rz Φ(y)dy + N (−z) − z −z Φ(y)dy − z −∞ Φ(y)dy Rz R −z R∞ = N (−z) − z[ −∞ Φ(y)dy + z Φ(y)dy + −z Φ(y)dy] = N (−z) − z.
N (z) = −z
R −z z
Model 3: Tekorten zijn toegestaan tegen boetekosten. In dit model zijn tekorten toegestaan, maar geeft ieder tekort boetekosten q. Ook in dit model beperken we ons tot (Q, r)-strategie¨en, waarbij Q en r zo bepaald worden dat de bijbehorende verwachte kosten minimaal zijn. Omdat het verwachte aantal tekorten per cykel E B is en er
D Q
cykels per tijdseenheid zijn, hebben
we in dit model te maken met de volgende verwachte kosten: K(Q, r) =
AD Q
+ h · Igem +
qD Q
EB =
AD Q
+ h · [ 21 Q + r − µL ] +
qD Q
R∞ r
(x − r)fL (x)dx.
De optimale waarden van de beslissingsvariabelen worden gevonden door parti¨eel te differenti¨eren: q R∞ R∞ ∂K 1 2D −2 −2 = −ADQ + h − qDQ (x − r)f (x)dx = 0 → Q = {A + q · L ∂Q 2 r h r (x − r)fL (x)dx}. ∂K ∂r
= h + qDQ−1 ·
∂ ∂r
R∞ r
(x − r)fL (x)dx = 0
1
→
R∞ r
fL (x)dx =
hQ qD .
Merk op dat de formule voor Q lijkt op de EOQ-formule. Alleen is A vervangen door A + q · R∞ r (x−r)fL (x)dx. Dit is ook in te zien door op te merken dat er per cykel naast vaste bestelkosten R∞ A ook ”vaste boetekosten” q · E B = q · r (x − r)fL (x)dx optreden.
Ofschoon we uitdrukkingen hebben voor Q en r, is het probleem hiermee nog niet opgelost: bij het uitrekenen van Q hebben we de waarde van r nodig en omgekeerd: q R∞ R∞ Q(r) = 2D h {A + q · r (x − r)fL (x)dx} en r(Q) wotdt bepaald door r fL (x)dx =
hQ qD .
De optimale waarden van Q en r kunnen door successieve approximatie worden benaderd: q Stap 1: Kies een willekeurige ε > 0, laat k = 0 en Q 0 = 2AD h . R∞ k Stap 2: Bepaal rk z´odat rk fL (x)dx = hQ qD . Stap 3: Als k ≥ 1 `en |Qk − Qk−1 | ≤ ε `en |rk − rk−1 | ≤ ε: stop. Stap 4: k := k + 1; Qk := Q(rk−1 ) en ga naar stap 2. We zullen nu aangeven hoe de berekeningen van r k en Qk precies geschieden. Bepaling rk Er moet gelden:
R∞ rk
fL (x)dx =
hQk qD ,
d.w.z. P[xL ≥ rk ] =
voor een N (0, 1)-verdeelde z geldt dat P[z ≤ z k ] =
hQk qD .
hQk qD .
Omdat
Zoek in Tabel I zk z´odanig dat xL −µL σL
ook N (0, 1)-verdeeld is,
volgt hieruit dat rk = µL + σL · zk . 1
Volgens de regel van Leibnitz geldt als g(y) =
R b(y) a(y)
h(y, x)dx, dan is
∂ h(y, a(y)) ∂y a(y).
64
∂g ∂y
=
R b(y)
∂ ∂ h(y, x)dx+h(y, b(y)) ∂y b(y)− a(y) ∂y
Bepaling Qk+1 Voor de bepaling van Qk+1 moet
R∞ rk
(x − rk )fL (x)dx worden berekend. Dit kan met Tabel
II na transformatie tot de standaard normale verdeling. We hebben bij Model 2 gezien dat R∞ rk −µL rk (x − rk )fL (x)dx = σL · N ( σL ). Er geldt dus: q rk −µL rk −µL 2D Qk+1 = h {A + q · σL · N ( σL )}, waarbij de waarde van N ( σL ) uit Tabel II wordt gehaald.
Voorbeeld 6.2 (vervolg) Neem q = 2 en ε = 1. Voor de functies Q(r) en r(Q) geldt: q q rk −µL −800 {A + q · σ · N ( )} = 2000 ) en r(Q) = Q(r) = 2D 1 + 83 N ( rk200 L h σL
hQ qD
=
3Q 80.000 .
De berekeningen van de successieve approximatie staan in onderstaand tabel. k
Qk
hQk qD
zk
rk
N (zk )
0
2000
0.075
1.44
1088
0.03356
1
2088
0.078
1.42
1084
0.03508
2
2091
0.078
1.42
1084
0.03508
3
2091
0.078
1.42
1084
0.03508
Hieruit volgt als benadering voor de oplossing: Q = 2091 en r = 1084. Voor de kosten geldt: vaste bestelkosten = 717, voorraadkosten = 997 en boetekosten 67; de totale kosten zijn dus 1781.
6.5
Periodieke stochastische modellen
In deze paragraaf beschouwen we voorraadmodellen die over een zeker aantal perioden beheerd moeten worden en waarbij de vraag stochastisch is. We zullen de volgende modellen nader uitwerken: Model a: ´e´en periode en geen vaste bestelkosten; Model b: ´e´en periode en wel vaste bestelkosten; Model c: oneindig veel perioden en geen vaste bestelkosten. Model a: ´e´en periode en geen vaste bestelkosten (krantenjongenprobleem) Dit model is bijvoorbeeld van toepassing in de volgende situaties: een krantenjongen die aan het begin van de dag moet beslissen hoeveel kranten hij inkoopt; een kerstboomverkoper die in november moet beslissen hoeveel kerstbomen hij inkoopt, etc. Kenmerken van dit probleem zijn: - ´e´enmalige beslissing, d.w.z. te beschouwen als beslissingsprobleem over ´e´en periode; - onzekere, d.w.z. stochastische, vraag; - als er overschot is, dan is aan het einde van de periode is het artikel minder of niets waard; - als er tekorten zijn, dan levert dit per tekort boetekosten op.
65
De vraagstelling luidt: hoeveel moet er worden ingekocht om de verwachte opbrengst te maximaliseren? De parameters van dit model zijn als volgt: D = vraag met dichtheid f (x) en verdelingsfunctie F (x). c = inkoopkosten per stuk en s = verkoopprijs per stuk; r = restwaarde (waarde aan einde periode) per stuk; q = boetekosten per tekort. Veronderstel dat er een hoeveelheid Q wordt ingekocht, dan hebben we te maken met de volgende kosten/opbrengsten: - inkoopkosten: cQ; RQ - restwaarde: r · 0 (Q − x)f (x)dx; R∞ - boetekosten: q · Q (x − Q)f (x)dx; RQ R∞ - opbrengst verkoop: s · 0 xf (x)dx + s · Q Qf (x)dx.
De totale kostenfunctie K(Q) kan geschreven worden als: RQ R∞ RQ R∞ K(Q) = c · Q − r · 0 (Q − x)f (x)dx + q · Q (x − Q)f (x)dx − s · 0 xf (x)dx − s · Q Qf (x)dx RQ R∞ R∞ R∞ = c·Q−r· 0 (Q−x)f (x)dx+q· Q (x−Q)f (x)dx−s·{E D− Q xf (x)dx}−s· Q Qf (x)dx RQ R∞ = c · Q − r · 0 (Q − x)f (x)dx + (q + s) · Q (x − Q)f (x)dx − s · E D.
De afgeleide van K(Q) kan worden bepaald met de regel van Leibnitz: RQ R∞ RQ RQ K 0 (Q) = c−r· 0 f (x)dx−(q+s)· Q f (x)dx = c−r· 0 (Q−x)f (x)dx−(q+s)·{1− 0 f (x)dx} RQ = c − q − s − (r − q − s) 0 f (x)dx. Voor de optimale waarde van Q moet gelden dat K 0 (Q) = 0, d.w.z. RQ q+s−c . P(D ≤ Q) = 0 f (x)dx = q+s−r
Wil dit een echte kans zijn, dan moet gelden: 0 ≤ q + s − c ≤ q + s − r. Deze voorwaarde heeft de volgende zinvolle interpretatie:
0 ≤ q + s − c betekent s − c ≥ −q : de winst van een verkocht exemplaar is minstens de ”winst” op een tekort: anders is het beter om niet te verkopen;
q + s − c ≤ q + s − r betekent c ≥ r : anders is de restwaarde zo hoog dat er geen bederfrisico is:
koop oneindig veel in. Voorbeeld 6.5
Veronderstel dat D exponenti¨eel verdeeld is met parameter λ = f (x) =
(
−x 1 10.000 10.000 e
0
1 10.000 ,
als x ≥ 0
als x < 0
Laat c = 20, s = 40, q = 5 en r = 9. Voor de optimale Q moet gelden:
66
d.w.z.
RQ 0
−Q
f (x)dx = 1 − e 10.000 =
q+s−c q+s−r
=
25 36
= 0.6944.
−Q
Hieruit volgt: e 10.000 = 0.3056, waaruit volgt Q = 11.856. Opmerking 1 Als de vraag D N (µ, σ 2 )-verdeeld is, dan kunnen we eenvoudige formules afleiden voor het verwachte tekort en het verwachte overschot bij een gegeven bestelgrootte Q. Omdat P(D ≤ Q) = P( D−µ ≤ σ
Q−µ σ )
=
q+s−c q+s−r
D−µ σ
en
N (0, 1)-verdeeld is, volgt uit Tabel I de
Q−µ σ ,
zeg k, zodat Q = µ + σk. R∞ Het verwachte tekort = Q (x − Q)f (x)dx = σN ( Q−µ σ ) = σN (k) (zie de vorige paragraaf). RQ R∞ R∞ Het verwachte overschot = 0 (Q − x)f (x)dx = 0 (Q − x)f (x)dx − Q (Q − x)f (x)dx R∞ = Q − µ + Q (x − Q)f (x)dx = Q − µ + σN (k) = σk + σN (k).
waarde van
Opmerking 2
Het zal duidelijk zijn dat naarmate de restwaarde stijgt, de verkoper bereid is meer exemplaren in te kopen bij de groothandel. Omdat er dan meer bij de groothandel wordt ingekocht, heeft de groothandel ook baat bij een hogere restwaarde. Veronderstel dat de verkoper een bepaald aantal exemplaren bij een groothandel bestelt (tegen prijs c per stuk), waarna de groothandel dit aantal laat produceren tegen productiekosten p per stuk (p ≤ c).
Veronderstel dat de vraag D N (µ, σ 2 )-verdeeld is, dan zal de verkoper een hoeveelheid Q = µ+σk
bestellen met k z´odanig dat P( D−µ σ ≤ k) =
q+s−c q+s−r
(zie Opmerking 1). Nu geldt:
De verwachte winst van de groothandel = (c − p)Q − r · E(overschot) = (c − p)Q − r · [σk + σN (k)]. De verwachte winst van de verkoper = −cQ + r · E(overschot) −(q + s) · E(tekort) +sµ = −cQ + r · [σk + σN (k)] − (q + s) · [σN (k)] + sµ. Beschouw ter illustratie het volgende getallenvoorbeeld: µ = 50.000, σ = 15.000, p = 0.5, q = 0, c = 5.25 en s = 12.5. In onderstaande tabel staan voor verschillende waarden van r de diverse grootheden. r=0
r = 0.5
r=1
r=2
r=3
r=4
q+s−c q+s−r
0.5800
0.6042
0.6304
0.6905
0.7732
0.8529
k
0.20
0.26
0.33
0.50
0.72
1.05
N (k)
0.3069
0.2824
0.2555
0.1978
0.1381
0.07568
Q
53.000
53.900
54.950
57.500
60.800
65.750
E(tekort)
4.604
4.236
3.833
2.967
2.072
1.135
E(overschot)
7.604
8.136
8.783
10.467
12.872
16.885
E(winst groothandel)
251.750
251.957
252.230
252.191
250.184
244.772
E(winst verkoper)
289.175
293.143
297.383
306.972
318.516
333.165
E(winst tezamen)
540.925
545.100
549.613
559.163
568.700
577.937
Op een gegeven moment (tussen r = 1 en r = 2) wordt het voor de groothandel minder interessant om de restwaarde te vergroten; tezamen blijven zij er echter wel op vooruit gaan. 67
Model b: ´e´en periode, vaste bestelkosten en een beginvoorraad We veronderstellen dat aan het begin van de periode een voorraad z aanwezig is, en dat een bestelling tevens vaste kosten A met zich meebrengt. De beslissingsvariabele y geeft aan hoeveel er na een bestelling aanwezig is: er wordt dus Q = y − z besteld. ( A + c(y − z) als y > z; De bestelkosten voldoen aan: 0 als y = z. Ry R∞ Laat L(y) = −r · 0 (y − x)f (x)dx + (q + s) · y (x − y)f (x)dx. Voor de kostenfunctie K(y) van dit model geldt: ( A + c(y − z) + L(y) als y > z; K(y) = −s · E D + L(z) als y = z.
Laat S de waarde zijn waarvoor cy + L(y) minimaal is. Uit de analyse van Model a volgt dat S RS q+s−c wordt bepaals door: 0 f (x)dx = q+s−r . Neem voor s de kleinste waarde van y waarvoor cs + L(s) = cS + L(S) + A.
Beschouw de volgende (s, S)-strategie: als z < s, dan bestellen we bij tot niveau S. We tonen aan dat deze strategie optimaal is: 1. Omdat de afgeleide (naar y) van cy + L(y) gelijk is aan (c − q − s) + (s + q − r) ·
Ry 0
f (x)dx,
is deze stijgend in y, wat impliceet dat de functie cy + L(y) dalend is voor y ≤ S en stijgend voor y ≥ S.
2. Als z ≥ S, dan is voor y > z : cy + L(y) ≥ cz + L(z). Dit geeft:
A + c(y − z) + L(y) > c(y − z) + L(y) ≥ L(z): niets bestellen is beter dan wel iets bestellen.
3. Als s ≤ z ≤ S, dan geldt cz + L(z) ≤ cS + L(S) + A. Dus voor y > z:
A+c(y −z)+L(y) ≥ A+c(S −z)+L(S) ≥ L(z): niets bestellen is beter dan wel iets bestellen.
4. Als z ≤ s, dan volgt: miny≥z {A + cy + L(y)} = A + cS + L(S) ≤ cz + L(z), d.w.z. miny≥z {A + c(y − z) + L(y)} = A + c(S − z) + L(S) ≤ L(z): de beste beslissing is om aan te vullen tot niveau S.
Voorbeeld 6.5 (vervolg) Veronderstel dat de vaste kosten A per bestelling 800 zijn. We hebben reeds gezien dat S = 11.856. De ondergrens s moet voldoen aan: cs + L(s) = cS + L(S) + A, d.w.z. R∞ Rs −x −x 1 1 20s + 45 s (x − s) 10.000 e 10.000 dx − 9 0 (s − x) 10.000 e 10.000 dx = R∞ RS −x −x 1 1 20S + 45 S (x − S) 10.000 e 10.000 dx − 9 0 (S − x) 10.000 e 10.000 dx + A, d.w.z.
Rs −x −x 1 1 e 10.000 dx − 9 0 (s − x) 10.000 e 10.000 dx = (x − s) 10.000 R∞ R 11.856 −x −x 1 1 237.120 + 45 11.856 (x − 11.856) 10.000 e 10.000 dx − 9 0 (11.856 − x) 10.000 e 10.000 dx + 800. 20s + 45
R∞ s
Hieruit volgt, na enig rekenwerk, dat s = 10.674.
68
Model c: oneindig veel perioden en geen vaste bestelkosten Veronderstel dat de vraag in verschillende perioden onafhankelijk en identiek verdeeld is met dichtheid f (x). De kosten worden verdisconteerd met een factor α ∈ (0, 1). Dit betekent dat kosten die een periode later worden berekend minder zwaar, nl. α maal, meetellen. Denk bv. aan rente-voordeel doordat het nu nog niet betaald hoeft te worden. In dit model worden tekorten worden aan het begin van de volgende periode nageleverd tegen boetekosten q per tekort per periode. Beschouw eerst het model met N perioden, waarin x n de vraag in periode n zijn. Definieer: Fn (In ) = minimale kosten gedurende de perioden n tot en met N als de voorraad aan het begin van de n-de periode In is. Neem yn de beslissingsvariabele die aangeeft hoeveel er aan het begin van periode n direct na inkoop aanwezig is. We hebben te maken met de volgende termen: 1. bestelkosten : c · (yn − In ); : s · min(xn , yn );
2. opbrengst verkoop 3. voorraadkosten
4. boetekosten tekorten 5. opbrengst nalevering
: h · max(0, yn − xn );
: q · max(0, x n − yn );
: αs · max(0, x n − yn ).
Voor Fn kunnen we de volgende recurrente betrekking opstellen: Ry Fn (In ) = minyn ≥In {c · (yn − In ) + 0 n [−sx + h(yn − x)]f (x)dx R∞ R∞ + yn [−syn − αs · (x − yn ) + q · (x − yn )]f (x)dx + α · 0 Fn+1 (yn − x)f (x)dx}.
Laten we N → ∞, dan krijgen we de volgende recurrente betrekking voor de oneindige horizon
(dit is geen formeel bewijs, maar een intu¨ıtieve aanpak): Ry F (I) = miny≥I {c · (y − I) + 0 [−sx + h(y − x)]f (x)dx R∞ R∞ + y [−sy − αs · (x − y) + q · (x − y)]f (x)dx + α · 0 F (y − x)f (x)dx}.
Het minimum wordt weer bepaald door de functie die geminimaliseerd moet worden te differ-
enti¨eren naar y m.b.v. de regel van Leibnitz: Ry R∞ R∞ c + h · 0 f (x)dx − syf (y) + [−s − αs − q] · y f (x)dx + syf (y) + α · 0
∂ ∂y F (y − x)f (x)dx
= 0,
d.w.z.
c+h·
Ry 0
Nu geldt dat
f (x)dx + [(α − 1)s − q] · ∂ ∂y F (y −x)
R∞ y
f (x)dx + α ·
R∞ 0
∂ ∂y F (y
− x)f (x)dx = 0.
= −c, omdat per eenheid extra voorraad aan het begin van de periode de
kosten over die periode met c dalen,omdat die eenheid dan niet meer hoeft te worden ingekocht. We kunnen dus schrijven: Ry R∞ R∞ c + h · 0 f (x)dx + [(α − 1)s − q] · y f (x)dx − αc · 0 f (x)dx = 0,
d.w.z. dat de optimale y wordt bepaald door: Ry q+(1−α)(s−c) 0 f (x)dx = q+(1−α)s+h .
69
De bijbehorende strategie is om in iedere periode de volgende regel te hanteren: als de voorraad hoogstens y is, vul de voorraad aan tot niveau y; als de voorraad minstens y is: bestel niets. Opmerking 1 Veronderstel dat α = 0. Het model is dan in feite Model a. De formule voor de optimale y wordt Ry q+s−c nu: 0 f (x)dx = q+s+h , wat de formule van Model a is met r = −h.
Opmerking 2
Het model met een oneindige horizon is eenvoudiger dan met een eindige horizon. In de praktijk blijkt dat het model met een oneindige horizon een goede benadering is voor het model met N perioden indien N niet te klein is, bijv. N ≥ 4. Voorbeeld 6.5 (vervolg) Veronderstel weer dat de vraag exponenti¨eel verdeeld is met parameter λ =
1 10.000 .
Laat c = 20, s = 40, q = 5, h = 4 en α = 0.8. Voor de optimale y moeten we oplossen: Ry −y 5+0.2(40−20) q+(1−α)(s−c) 10.000 = 5+0.2×40+4 = 0.5294 → y = 7.537. 0 f (x)dx = q+(1−α)s+h → 1 − e
6.6
Opgaven
Opgave 1 Een boekenketen verkoopt iedere maand 200 exemplaren van een klassiek boek, waarbij de vraag gelijk over de maand verspreid is. De inkoopprijs is 15 euro per boek. De voorraadkosten zijn 24% per jaar van het in voorraad ge¨ınvesteerde kapitaal. De vaste kosten van een bestelling zijn 35 euro. Wat is de optimale bestelgrootte en hoe groot zijn de jaarlijke bestel- en voorraadkosten? Wat is de afwijking van de optimale bestel- plus voorraadkosten als de boeken alleen in veelvouden van 50 besteld kunnen worden? Wanneer moet besteld worden als de levertijd van een bestelling een halve maand is? Opgave 2 Een autodealer verkoopt 1200 auto’s per jaar (de vraag mag continu worden verondersteld). De dealer betrekt de auto’s van de importeur; als hij een bestelling plaatst, dan moet hij 1.800 euro aan vaste kosten betalen. De levertijd is 1 maand. Als er vraag naar auto’s is, terwijl er geen voorraad is, dan worden de auto’s nageleverd tegen een korting die recht evenredig is met de tijd die de klant op de levering moet wachten. Deze korting bedraagt 200 euro per maand. Over de auto’s die in voorraad zijn moeten kosten worden betaald. Deze kosten zijn 700 euro per auto per jaar. Welke strategie is voor de autodealer het voordeligst? Bepaal tevens de diverse kosten van deze strategie.
70
Opgave 3 Een product kan worden geproduceerd met een snelheid van 400.000 eenheden per jaar. Er is een continue vraag naar dit product ter grootte van 160.000 eenheden per jaar. Het is toegestaan dat er tekorten ontstaan tegen boetekosten van 5 euro per eenheid per jaar. De inschakelkosten van de machine bedragen 400 euro en het inschakelen van de machine moet 7 dagen van te voren worden gemeld (veronderstel dat een jaar 350 dagen heeft). De vooorraadkosten bedragen 3 euro per eenheid per jaar. Bepaal de volgende grootheden bij een optimale productie-strategie: a. de maximale voorraad en de voorraadkosten per jaar; b. het maximale tekort en de boetekosten per jaar; c. de fractie van de tijd dat er geproduceerd wordt; d. de fractie van de tijd dat er tekorten zijn; e. het niveau waarop het inschakelen van de machine moet worden gemeld. Opgave 4 Een zaak verkoopt 1000 videobanden per jaar. De voorraadkosten zijn 9 euro per band per jaar. Voor bestellingen bij de groothandel geldt dat er 500 euro vaste kosten zijn naast de inkoopprijs die alsvolgt van de bestelgrootte afhangt: - bestelling 1 tot 100 stuks: 10 euro per stuk; - bestelling 100 tot 400 stuks:
9 euro per stuk;
- bestelling 400 tot 800 stuks:
8 euro per stuk;
- bestelling 800 of meer stuks: 7 euro per stuk. Bepaal de optimale bestelgrootte. Opgave 5 Een winkelier verkoopt 10.000 diskettes per jaar. Hij bestelt deze diskettes bij een groothandel die voor iedere bestelling 100 euro rekent naast de inkoopsprijs. Deze inkoopsprijs bedraagt: - bestelling 1 tot 1000 stuks: 2,50 euro per stuk; - bestelling 1000 tot 3000 stuks:
2,40 euro per stuk;
- bestelling 3000 of meer stuks: 2,30 euro per stuk. De voorraadkosten bedragen 20% van het ge¨ınvesteerde bedrag. a. Waarom is dit niet precies het model met kwantumkorting? b. Geef aan hoe dit model opgelost kan worden. c. Los dit model op. Opgave 6 Een truffelhandelaar gaat regelmatig op pad om truffels in te kopen. Een trip neemt 1 week in beslag en geeft vaste kosten van 2450 euro. De inkoopkosten van de truffels zijn 100 euro per ons. Thuis heeft de handelaar een constante afname van 50 ons per week, waarbij hij de truffels verkoopt voor 600 euro per ons en moet zorgen dat hij altijd kan leveren. De voorraadkosten die hij maakt zijn 0.5% per week over de inkoopkosten van de voorraad die hij heeft. a. Bepaal wanneer de handelaar zijn voorraad moet aanvullen en met hoeveel. b. Wat wordt de optimale aanvulgrootte als de handelaar 20% korting krijgt bij een afname van minstens 750 ons truffels? 71
Opgave 7 Beschouw een voorraadsysteem waarbij vier verschillende producten in voorraad gehouden worden. De vraag (per jaar) en inkoopkosten (per stuk in euro’s) staan in onderstaande tabel. Product i
Vraag
Inkoopkosten
1
5.000
2.25
2
7.500
1.50
3
2.500
5.00
4
10.000
3.00
Voor ieder product is de vraag gelijkelijk over het jaar verdeeld. De voorraad kan op ieder moment direct worden aangevuld. Hoe moeten de bestelgroottes worden gekozen als het totaal aantal bestellingen per jaar niet groter mag zijn dan 125, en de doelstelling is om het gemiddeld kapitaal in voorraad zo klein mogelijk te houden?
Opgave 8 Beschouw een voorraadmodel met n producten in voorraad. Aanvulling geschiedt door productie op ´e´en machine, die maar ´e´en product tegelijk kan produceren. Als product i wordt geproduceerd is de productiesnelheid Pi eenheden per jaar. In een cykel produceren we eerst product 1, dan product 2 en zo gaan we door tot en met de productie van product n, waarmee de cykel wordt afgesloten en een nieuwe cykel begint met de productie van product 1. In een cykel moet voldoende geproduceerd worden om aan de vraag van ieder product te kunnen voldoen: er mogen geen tekorten ontstaan. Tussen twee producties mag de machine enige tijd stilstaan (loze tijd). Voor ieder product i, i = 1, 2, . . . , n zijn de volgende gegevens bekend: Di =
de vraag per jaar naar product i;
Pi =
aantal eenheden van product i dat per jaar geproduceerd kan worden (productiesnelheid);
Ai =
vaste kosten als product i wordt geproduceerd;
hi =
voorraadkosten van product i (per eenheid en per jaar);
ti =
de insteltijd als de machine overgaat naar het produceren van product i.
Als beslissingsvariabele nemen we de tijdsduur T van een cykel. Bij een gegeven T geldt voor de hoeveelheid Qi die per cykel van product i geproduceerd wordt: Q i = Di T, i = 1, 2, . . . , n. a. Het instellen voor de productie van product i begint als de voorraad nog zo groot is dat aan de vraag gedurende de insteltijd kan worden voldaan. Toon aan dat in een cykel het maximale voorraadniveau van product i gelijk is aan Q i Ri , met Ri = 1 −
Di Pi .
b. Bewijs dat de totale vaste plus voorraadkosten per tijdseenheid gelijk zijn aan: P n Ai 1 P n i=1 hi Di Ri . i=1 T + 2 T P i c. We willen deze totale kosten willen minimaliseren onder de voorwaarde dat ni=1 (ti + D Pi T ) ≤ T (verklaar deze voorwaarde). Ga na dat de optimale T voldoet aan: q Pn Pn ti 2 Ai T = max(T1 , T2 ) met T1 = Pn i=1 en T = Pi=1 2 Di . n hi Di R i 1−
i=1
72
i=1 Pi
Opgave 9 Beschouw een voorraadmodel met n producten in voorraad, waarbij door co¨ordinatie van de aanvulorders op de vaste bestelkosten kan worden bespaard. Voor elke aanvulorder worden vaste kosten A gemaakt, ongeacht de samenstelling van de order. Als product i in de aanvulorder bevat is, dan worden apart voor product i vaste bestelkosten A i gemaakt. Stel dat voor product i de vraag per tijdseenheid gelijk is aan D i eenheden en dat de voorraadkosten per eenheid en per tijdseenheid gelijk zijn aan h i . De volgende strategie met parameters T, m 1 , m2 , . . . , mn wordt beschouwd: elke T tijdseenheden wordt een aanvulorder geplaatst en product i wordt om de m i aanvulorders meegenomen, waarbij tenminste ´e´en van de mi ’s gelijk is aan 1. a. Ga na dat voor een gegeven (T, m1 , m2 , . . . , mn )-strategie de totale kosten per tijdseenheid P Ai 1 Pn gelijk zijn aan T1 (A + ni=1 m ) + T i=1 hi mi Di . 2 i b. Ga na dat bij vaste (m1 , m2 , . . . , mn ) de bovenstaande kostenfunctie minimaal is voor r P A T∗ =
2(A+ Pn
n i i=1 mi
i=1 hi mi Di
)
.
c. Het resultaat van onderdeel b is de basis voor het volgende heuristische algoritme 2
i het kleinst is voor product 1. Neem m 1 = 1. Stap 1: Nummer de producten z´odat hA i Di q h1 D1 i · A+A , i = 2, 3, . . . , n, afgerond naar het dichtstbijzijnde positieve Stap 2: Neem mi = hA 1 i Di
gehele getal.
Stap 3: Bereken
T∗
=
r
Ai i=1 mi ) i=1 hi mi Di
2(A+ Pn
Pn
.
Stap 4: Neem de bestelgrootte Qi = mi Di T ∗ , i = 1, 2, . . . , n. Pas bovenstaand algoritme toe op het volgende getallenvoorbeeld: n = 4; A = 40; A1 = A2 = A3 = A4 = 15; D1 = 4300, D2 = 1250, D3 = 700, D4 = 200; h1 = 4.8, h2 = 2.4, h3 = 0.48, h4 = 3.6.
Opgave 10 Beschouw een productiemodel over 4 perioden met vraag D 1 = 2, D2 = 3, D3 = 5, D4 = 2, voorraadkosten hn (I) = I voor alle n en met als productiekosten c n (x) = cn · x, waarbij c1 =
16, c2 = 12, c3 = 14 en c4 = 20.
a. Bepaal een productieschema met minimale kosten. b. Indien de voorraad nooit meer dan 2 mag bedragen, en er maximaal 4 eenheden kunnen worden geproduceerd, wat dan een optimaal productieschema?
Opgave 11 Beschouw een periodiek deterministisch productiemodel met N = 3, D 1 = 3, D2 = 2 en D3 = 6. De voorraadkosten zijn 4 als er voorraad(is en 0 als er geen voorraad is. 0 als x = 0 Voor de productiekosten geldt: cn (x) = cn als x ≥ 1, waarbij c1 = 14, c2 = 16 en c3 = 10. 2
E.A. Silver, D. Pyke and R. Peterson, ”Inventory Management and Production Planning and Scheduling”, 3rd
edition (1998).
73
Tekorten zijn toegestaan tegen boetekosten, die in iedere periode 6 zijn per tekort. a. Bepaal een productieschema met minimale kosten. b. Tevens zijn er beperkingen mn aan de hoeveelheden die in periode n kunnen worden geproduceerd: m1 = 5, m2 = 5 en m3 = 8. Stel de betrekking op voor de kosten vanaf periode n, gegeven voorraad I aan het begin van periode n en bepaal vervolgens een optimaal productieschema.
Opgave 12 Een werf heeft voor het komende jaar de volgende aantallen bestellingen geaccepteerd voor een bepaald type zeilboot: Maand i
1
2
3
4
5
6
7
8
9
10
11
12
Vraag Di
7
4
8
5
8
8
9
3
7
5
2
3
De boten moeten afgeleverd worden aan het begin van iedere maand. Elke productieserie neemt precies ´e´en maand in beslag (de eerste productieserie begint op 1 december), onafhankelijk van de grootte van de serie. De vaste opstartkosten van elke serie bedragen 5.000 euro. De productiekosten per boot bedragen 25.000 euro. De voorraadkosten op maandbasis zijn 2% van het in voorraad vastzittend kapitaal aan productiekosten. De vraagstelling luidt: Wat is de grootte van de eerste productieserie en wat zijn de startdata en productiegroottes van de andere series? Benader de oplossing van dit probleem met de Silver-Meal heuristiek.
Opgave 13 De truffelhandelaar uit Opgave 7 heeft besloten te stoppen. Hij heeft echter een goede klant toegezegd aan het begin van elk van de komende vijf weken resp. de hoeveelheden 120, 180, 360, 130 en 270 gram truffel te leveren. Voor de inkoop van deze leveringen hoeft hij niet op pad te gaan, maar hij betrekt ze van een collega. Deze rekent hem 100 euro aan vaste kosten per bestelling en inkoopkosten van 20 euro per ingekochte gram. De voorraadkosten zijn - als in Opgave 7 - 0.5% per week over de inkoopkosten van de truffels die hij tijdelijk in voorraad heeft. Gevraagd wordt hoeveel de truffelhandelaar voor de komende vijf weken moet inkopen als zijn huidige voorraad aan truffels nul is? a. Benader met de Silver-Meal heuristiek de oplossing van dit probleem. b. Bepaal met dynamische programmering de optimale oplossing van het probleem. Opgave 14 Beschouw een voorraadmodel met een stochastische vraag. De verwachting van de vraag is 100 eenheden per dag; er zijn vaste bestelkosten van 100 euro en de voorraadkosten bedragen 0,02 euro per dag per eenheid. Veronderstel dat de vraag tijdens de levertijd verdeeld is met verwachting 200 en standaardafwijking 14. a. Bepaal een optimale (Q, r)-voorraadstrategie volgens model 1 met α = 0.05. b. Bepaal een optimale (Q, r)-voorraadstrategie volgens model 2 met β = 0.01. 74
Opgave 15 Een loempia-zaak heeft een continue stochastische wekelijkse vraag die normaal verdeeld is met verwachting 700 en standaardafwijking van 75.
Voor het voorraadbeheer wordt een (Q, r)-
strategie gebruikt, waarbij elke aanvulling Q = 500 is. De levertijd van elke aanvulorder is twee dagen. Hoe moet het bestelpunt r worden gekozen z´odat aan minstens 99% van de vraag voldaan wordt? Opgave 16 Een zaak gebruikt een (Q, r)-strategie voor het beheer van de voorraad van een bepaalde cdspeler. De maandelijkse vraag naar de cd-speler is normaal verdeeld met verwachting 150 en standaardafwijking 40. Kopers die de cd-speler niet in voorraad aantreffen zijn bereid te wachten tot de voorraad weer aangevuld is. De zaak betrekt de cd-spelers van een fabriek, die een levertijd hanteert van een halve maand. De vaste kosten van een aanvulorder zijn 80 euro. De inkoopkosten per cd-speler zijn 250 euro. De voorraadkosten bedragen op jaarbasis 24% van het in voorraad ge¨ınvesteerde kapitaal. Hoe Q en r te kiezen opdat de gemiddelde kosten minimaal zijn onder de service-eis dat aan gemiddeld 99% van de vraag direct voldaan wordt? Opgave 17 Beschouw een voorraadmodel met een continue stochastische vraag, waarin tekorten zijn toegestaan. De verwachting van de vraag is 10.000 eenheden per jaar, de voorraadkosten bedragen 0,60 euro per eenheid per jaar en voor ieder tekort is een vergoeding van 1,50 euro verschuldigd. Er zijn vaste bestelkosten van 70 euro per bestelling. Veronderstel dat de vraag tijdens de levertijd normaal verdeeld is met verwachting 300 en standaardafwijking 40. Bepaal de optimale waarden van Q en r om de gemiddelde kosten te minimaliseren en bepaal de diverse kosten van deze optimale (Q, r)-strategie. Opgave 18 Een bandendistributeur wil een (Q, r)-strategie hanteren voor het voorraadbeheer van de banden. De vraag per week naar banden is normaal verdeeld met verwachting 2500 en een spreiding van 500 banden. Als de distributeur bij de fabriek bijbesteld, dan moet de distributeur rekenen op een levertijd die met kans
2 3
gelijk is aan twee weken en met kans
1 3
gelijk is aan drie weken. De
vaste kosten van een bestelling zijn 2.000 euro en de inkoopkosten per band zijn 50 euro. Voor de banden in voorraad rekent de distributeur op jaarbasis 25% voorraadkosten op de inkoopwaarde van de banden. a. Welke (Q, r)-strategie moet de distributeur gebruiken om de kosten minimaal te houden terwijl voldaan is aan de service-eis dat met een kans van minder dan 5% de distributeur buiten voorraad raakt tijdens de levertijd? b. Welke waarde van de boetekosten voor een nageleverde band komt overeen met deze serviceeis?
75
Opgave 19 Beschouw een voorraadmodel met een continue stochastische vraag. Laat de vraag gedurende de levertijd L een dichtheid fL (x) hebben met verwachting µL . Indien er tekorten ontstaan, dan worden deze niet nageleverd. Wel wordt voor ieder tekort dat ontstaat een boete q doorberekend. a. Leid voor dit model af dat bij een (Q, r)-strategie de verwachting van de gemiddelde voorraad R∞ gelijk is aan Q 2 + r − µL + r (x − r)fL (x)dx. b. Leid voor dit model een optimale (Q, r)-strategie af, analoog aan model 3 uit paragraaf 6.4. c. Bereken een optimale (Q, r)-strategie met bijbehorende kosten voor het getallenvoorbeeld: D = 10.000; A = 100; de vraag gedurende de levertijd L is normaal verdeeld met verwachting 1.000 en standaardafwijking 250; h = 0.15; q = 1. Opgave 20 Beschouw het probleem van de krantenverkoper die moet bepalen hoeveel kranten hij voor een bepaalde dag zal inkopen. De inkoopprijs is 0,40 euro, de verkoopprijs 1,00 euro en voor nietverkochte kranten krijgt hij 0,10 euro terug. Als hij uitverkocht is en er komen nog klanten, dan verliest de verkoper ”goodwill”; dit verlies wordt op 0,25 euro per krant getaxeerd. De krantenverkoper verwacht dat de vraag naar kranten op deze dag normaal verdeeld is met verwachting 250 en variantie 50. a. Bepaal de optimale bestelgrootte. b. Wat is de kans dat hij die dag uitverkocht zal raken? Opgave 21 De inkoper van een warenhuis is van plan een bepaald soort jas in te kopen voor het komende winterseizoen. De inkoopprijs is 30 euro en de verkoopprijs wordt vastgesteld op 75 euro. Iedere jas die aan het einde van het winterseizoen niet verkocht is gaat in de uitverkoop voor 20 euro (de ervaring is dat alle overgebleven jassen tijdens de uitverkoop worden verkocht). De vraag naar deze jas wordt normaal verdeeld verondersteld met verwachtingswaarde 750. Bereken voor de waarden 150, 100, 50, 25 en 0 van de standaardafwijking van de vraag de optimale bestelgrootte en de bijbehorende waarden van de verwachte netto winst, het verwachte tekort en het verwachte overschot. Opgave 22 Het jaarlijkse congres van een medisch genootschap wordt afgesloten met een buffet. Het hotel waar het congres wordt gehouden verlangt dat een week van te voren het aantal deelnemers wordt opgegeven. De prijs van het buffet is 50 euro per persoon. Als er minder mensen op komen dagen dan van te voren aangemeld, dan moet toch voor het volle aantal worden betaald. Als er meer komen, dan kunnen zij deelnemen aan het buffet, maar tegen een prijs van 75 euro voor elke extra deelnemer. Als we aannemen dat het totale aantal aanwezigen uniform verdeeld is tussen 350 en 500, hoeveel deelnemers moeten dan van te voren worden aangemeld om de totale verwachte kosten te minimaliseren?
76
Opgave 23 Beschouw model a uit paragraaf 6.5 (´e´en periode en geen vaste bestelkosten). Veronderstel dat de vraag uniform verdeeld is op het interval [a, b]. Geef een expliciete formule voor de optimale bestelgrootte. Opgave 24 Beschouw een voorraadprobleem over ´e´en periode met een stochastische vraag die uniform verdeeld is op [50, 250]. Veronderstel dat het aanvangsniveau van de voorraad 100 eenheden is. De inkoopkosten bedragen een vast bedrag van 500 euro en een bedrag van 50 euro per exemplaar. De verkoopprijs bedraagt 150 euro. Exemplaren die aan het einde van de periode nog in voorraad zijn worden voor 20 euro van de hand gedaan. Bepaal een optimale voorraadstrategie. Opgave 25 Beschouw een periodiek model over een oneindige horizon, waarin maandelijks beslist moet worden wat er besteld wordt. Veronderstel dat de vraag iedere maand normaal verdeeld is met verwachting 100 en variantie 20. Verder zijn er de volgende gegevens: inkoopprijs 1.000 euro, verkoopprijs 1.600 euro en boetekosten per tekort van 200 euro. De rente bedraagt 1% per maand en de voorraadkosten zijn gelijk aan het renteverlies van het in voorraad ge¨ınvesteerde kapitaal. a. Bepaal een optimale voorraadstrategie. b. Wat verandert er aan de optimale voorraadstrategie als er alleen per twee maanden kan worden besteld?
77
Hoofdstuk 7
Wachttijdtheorie 7.1
Inleiding
In de wachttijdtheorie wordt een model bestudeerd waarin klanten een systeem binnenkomen volgens een bepaald aankomstproces, daar een zekere bediening krijgen (bedieningsproces) en vervolgens het systeem weer verlaten. Als de bedienden bezet zijn, dan moeten de klanten in een wachtrij plaatsnemen. Deze wachtrij kan een beperkt aantal plaatsen hebben. Als er een nieuwe klant arriveert terwijl de wachtrij vol is, dan zal deze klant zonder bediening ontvangen te hebben het systeem weer verlaten. We zullen de onderdelen aankomstproces, bedieningsproces en wachtrij nog nader uitwerken. In de wachttijdtheorie wordt een groot aantal wachttijdmodellen wiskundig geanalyseerd. Exacte oplossingen zijn vrijwel alleen voor eenvoudige modellen te vinden. Wel kunnen de gevonden formules vaak zinvol zijn als benaderingsoplossing voor complexere modellen. Vaak worden ook computersimulaties gebruikt om wachttijdproblemen te analyseren. Wel moet de waarde van simulatie niet overschat worden. Een wiskundige analyse van een model geeft inzicht, waar simulatie vooral getallen produceert. Om uit deze getallen bruikbare conclusies te trekken is niet altijd eenvoudig. Waar mogelijk lijkt een samenspel van wiskundige analyse en simulatie de aangewezen weg. Wachttijdproblemen treden in de praktijk op in vele uiteenlopende situaties: in de telecommunicatie, waarin gesprekken en berichten wachten op beschikbare communicatielijnen; in zeehavens waar schepen wachten op beschikbare laad- en losfaciliteiten; in een productiehal waar goederen wachten op beschikbare machines, etc. Bij het ontwerp van allerlei systemen moet antwoord gegeven worden op vragen van het type: ”Hoeveel telefoonlijnen zijn nodig om een zeker service-niveau te bereiken”? Anderzijds wil men de kosten van deze systemen minimaal houden. Dit geeft een wisselwerking en spanning tussen het wachten van klanten en de bezettingsgraad van de telefoonlijnen. Hoe hoger het serviceniveau, hoe groter de kosten. Meestal wordt een bepaald service-niveau als uitgangspunt gekozen. Gegeven dit service-niveau wordt gevraagd naar minimale kosten. Uit de theorie is af te leiden dat als dit soort systemen zwaarder worden belast de wachttijden veel sterker dan lineair, vaak zelfs exponentieel, toenemen. 78
Aankomstproces We zullen in dit hoofdstuk, tenzij anders vermeld, aannemen dat de klanten aankomen volgens een Poisson proces met parameter λ. Dit is een telproces {N (t), t ≥ 0}, met N (t) het aantal
aankomsten in het interval [0, t], dat voldoet aan de volgende drie eisen: 1. N (0) = 0.
2. {N (t), t ≥ 0} heeft onafhankelijke aanwas, d.w.z. dat voor alle keuzes van t 0 < t1 < · · · < tn de n stochastische variabelen N (t1 ) − N (t0 ), N (t2 ) − N (t1 ), . . . , N (tn ) − N (tn−1 )
onafhankelijk zijn.
3. Het aantal aankomsten in ieder interval ter lengte t heeft een Poisson verdeling met parameter λt, d.w.z. P{N (t + s) − N (s) = n} =
(λt)n n!
· e−λt voor alle s, t ≥ 0, n ∈ N0 .
De kans in voorwaarde 3 is onafhankelijk van het verleden s; vandaar dat ook wel wordt gesproken over aankomsten met de Markov eigenschap. Uit de eigenschappen van de Poisson verdeling volgt dat E{N (t)} = VAR{N (t)} = λt. Er kan worden bewezen1 dat het Poisson proces ook equivalent gekarakteriseerd wordt door in plaats van eigenschap 3 de volgende twee eigenschappen te eisen: 3a. P{N (t) = 1} = λt + o(t), waarbij o(t) betekent dat lim t→0 o(t) t = 0. 3b. P{N (t) = 0} = 1 − λt + o(t).
Eigenschap 3a is de reden dat λ ook wel de aankomstsnelheid wordt genoemd. Dit aankomstproces veronderstelt een oneindige populatie en is bruikbaar om vele praktische situaties te modelleren. Het Poisson proces kan met name goed worden gebruikt als de kans dat in een komend klein tijdsinterval een klant arriveert niet afhangt van hoe lang het geleden is dat voor het laatst een klant aankwam; dit is bijvoorbeeld het geval als de aankomsttijdstippen onvoorspelbaar is. Het zal blijken dat in het geval van een Poisson aankomstproces eenvoudige wachttijdformules kunnen worden afgeleid. Zij {Xn } de tijd tussen de (n − 1)-ste en n-de aankomst. De rij {X n , n = 1, 2, . . . } is de rij
van tussentijden. Op grond van eigenschap 2 zijn de X n ’s onderling onafhankelijk. Merk op dat volgens eigenschap 3 geldt: P{Xn > t} = P{N (t) = 0} = e−λt voor alle n = 1, 2, . . . , d.w.z. dat iedere Xn een exponenti¨ele verdeling heeft met parameter λ. Deze verdeling heeft als verwachting
1 λ,
waaruit volgt:
E{tijdsduur tussen twee opeenvolgende aankomsten} = λ1 . Bedieningsproces Bij het bedieningsproces hebben we te maken met de volgende drie aspecten: 1. De bedieningsdiscipline De bedieningsdiscipline is een voorschrift voor de volgorde waarin de klanten die in de wachtrij staan worden geselecteerd voor een vrijgekomen bediening. We zullen in dit hoofdstuk aannemen 1
S.M. Ross, ”Applied Probability Models with Optimization Applications”, Holden-Day, 1970 (chapter 2).
79
dat de bedieningsvolgorde dezelfde is als de volgorde van aankomst. Deze regel heet FIFO (first in - first out). 2. De bedieningsduur Voor iedere bediende moet de kansverdeling van de bedieningsduur van een klant gegeven zijn. Een veel voorkomende keuze voor de verdeling van de bedieningsduur is de exponenti¨ele verdeling met parameter µ. In dat geval heeft de bedieningsduur T de volgende eigenschappen: (i) Markov eigenschap: P{T > t + ∆t | T > t} = P{T > ∆t} voor alle t, ∆t ≥ 0;
(ii) P{T > ∆t} = e−µ∆t ;
(iii) E{T } = µ−1 en VAR{T } = µ−2 . 3. Het aantal bedienden Dit aantal wordt met s genoteerd. Eindige klantenbron Een belangrijke groep wachttijdmodellen zijn die waarbij het aantal klanten eindig is. We spreken dan van een model met een eindige klantenbron. Een voorbeeld van een model met een eindige klantenbron is het onderhoud van een zeker aantal, zeg N , machines. Als er n machines in reparatie (bediening) zijn, dan zijn er N − n die zich eventueel kunnen melden voor reparatie.
Nemen we aan dat de tijdsduur voordat een machine stuk gaat exponenti¨eel verdeeld is met
parameter λ, dan melden potenti¨ele klanten zich volgens een Poisson proces met parameter λ.
De wachtrij De wachtrij is de ruimte waar de klanten op bediening wachten. Deze ruimte kan een eindig, zeg N , of een oneindig aantal plaatsen bevatten. De aanname van een oneindig aantal plaatsen is vaak gebruikelijk in wachttijdmodellen, zelfs als er in feite eindig, maar zeer veel, plaatsen zijn. Dan kan deze oneindigheidsaanname worden gedaan als de kans dat de wachtrij vol raakt zeer klein is. Als het aantal plaatsen klein is of de kans dat alle plaatsen bezet raken niet verwaarloosbaar is, dan moet de wachtrij inderdaad eindig worden genomen.
7.2
Wachttijdparadox
Veronderstel dat bussen bij een bushalte aankomen volgens een Poisson proces met een gemiddelde van twee per uur. De tussentijden van de aankomsten zijn dus exponentieel verdeeld met een gemiddelde tijdsduur van 30 minuten. Als we op een willekeurig tijdstip bij de bushalte komen, wat is dan de wachttijd tot de eerst-aankomende bus? Intu¨ıtief ben je geneigd te denken dat dit 15 minuten is (de helft van de gemiddelde tijd tussen twee aankomsten), maar in werkelijkheid is deze wachttijd langer. De argumentatie hiervoor is dat de tussentijden weliswaar gemiddeld 30 minuten zijn, maar dat iemand die op een willekeurig tijdstip bij de halte arriveert een grotere kans heeft om een lange dan om een korte tussentijd aan te treffen; de variantie speelt hier ook een rol. Dit verschijnsel staat bekend als de wachttijdparadox. 80
Voordat we dit verschijnsel wiskundig zullen bewijzen, zullen we het eerst plausibel maken aan de hand van een simpel getallenvoorbeeld. Veronderstel dat de bussen aankomen met tussentijden die om en om 45 en 15 minuten zijn; gemiddeld zijn deze tussentijden dus inderdaad 30 minuten. Een willekeurig aankomende klant heeft dan kans treffen en een kans
1 4
3 4
om een tussentijd van 45 minuten aan te
op een tussentijd van 15 minuten. Dus de verwachting van de tussentijd
die zo’n persoon aantreft is
3 4
· 45 +
1 4
· 15 = 37.5 minuten. Omdat we - gemiddeld genomen - in
het midden van zo’n tussentijd aankomen, is de verwachting van de wachttijd van een willekeurig
aankomend persoon 18.75 minuten: inderdaad groter dan de op het eerste gezicht verwachte 15 minuten. Als het aankomstproces een Poisson proces is met parameter λ, dan zijn de tussentijden onderling onafhankelijk exponentieel verdeeld met parameter λ. Laat X de stochastische variabele van zo’n tussentijd zijn en zij W (t) de wachttijd van iemand die op tijdstip t, gerekend vanaf de vorige aankomst van een bus, bij de bushalte aankomt. Dan geldt: P{W (t) > x} = P{X > t + x | X > t} = P{X > x} = e −λx , x ≥ 0. Dit impliceert dat de wachttijd exponentieel verdeeld is met parameter λ. De verwachting van de wachttijd van iemand die op een willekeurig tijdstip t aankomt is dus
1 λ.
In bovengenoemd
voorbeeld is de tijdseenheid ´e´en uur en λ = 2, waaruit volgt dat de verwachte wachttijd een half uur, dus 30 minuten is. Voor algemene aankomstprocessen met onderling onafhankelijke identiek verdeelde tussentijden X is af te leiden2 dat de verwachting van de wachttijd gelijk is aan: 1 2 (1
+ c2X ) E(X),
waarbij cX de variatieco¨effici¨ent van X is, d.w.z. c2X =
7.3
VAR(X) . E(X)2
De formule van Little en PASTA
We zullen eerst de formule van Little illustreren aan de hand van een voorbeeld. Beschouw een postkantoor waar gemiddeld λ = 2 klanten per minuut binnenkomen. Een klant verblijft gemiddeld W = 3 minuten in het postkantoor. Laat L het gemiddeld aantal klanten in het postkantoor zijn, dan is het duidelijk dat L = λW = 6. De formule L = λW
(7.1)
is de Formule van Little en is een soort natuurwet in de wachttijdtheorie. Deze formule geeft het verband aan tussen het gemiddeld aantal klanten in het systeem (L) en de gemiddelde verblijftijd (W ) in het systeem. Definieer de volgende vijf stochastische variabelen: 2
R.B. Cooper: ”Introduction to Queueing Theory”, 2e edition, North Holland, 1981 (chapter 5, section 7).
81
N (t)
= het aantal aankomsten in het interval [0, t];
L(t)
= het aantal klanten in het systeem op tijdstip t;
Lq (t)
= het aantal klanten dat op bediening wacht op tijdstip t;
Vn
= de verblijftijd van de n-de klant in het systeem;
Wn
= de wachttijd (tijd voordat de bediening begint) van de n-de klant in het systeem.
Vervolgens introduceren we de volgende vijf getallen: E[N (t)] Rtt limt→∞ 1t 0 E[L(s)]ds Rt limt→∞ 1t 0 E[Lq (s)]ds P limn→∞ n1 nm=1 E[Vm ] P limn→∞ n1 nm=1 E[Wm ]
λ
= limt→∞
: de gemiddelde aankomstsnelheid;
L
=
: het gemiddeld aantal klanten in het systeem;
Lq
=
W
=
Wq
=
: het gemiddeld aantal klanten in de wachtrij; : de gemiddelde verblijftijd van een klant in het systeem; : de gemiddelde wachttijd van een klant in de wachtrij.
Deze limieten bestaan onder algemene voorwaarden, die erop neerkomen dat het systeem van tijd tot tijd leegraakt, waarbij de verwachting van de tijdsduur voordat het systeem leeg is eindig is. In feite kan een sterker resultaat dan (7.1) worden bewezen, namelijk convergentie in waarschiRt jnlijkheid. Beschouw de stochastische uitdrukking 1t 0 L(s)ds, d.w.z. het aantal klanten dat het tijdsinterval [0, t] per tijdseenheid in het systeem aanwezig is. We zullen bewijzen dat deze
stochast met kans 1 naar het getal L convergeert als t → ∞. Dit is een sterkere uitspraak dan Rt de convergentie van de verwachtingen, d.w.z. dat lim t→∞ 1t 0 E[L(s)]ds naar L convergeert.
Analoge uitspraken gelden voor λ, L q , W en Wq .
We zullen nu eerst een intu¨ıtieve verklaring geven voor de formule van Little. Veronderstel dat elke klant 1 euro betaalt voor iedere tijdseenheid die de klant in het systeem verblijft. De systeembeheerder ontvangt dan op de lange duur L euro per tijdseenheid. Anderzijds is het gemiddelde bedrag dat een klant betaalt op de lange duur W euro en per tijdseenheid komen gemiddeld λ klanten binnen. Als de klanten bij binnenkomst moeten betalen, dan ontvangt de systeembeheerder gemiddeld dus λW euro per tijdseenheid. Hieruit volgt dat L = λW . We zullen nu een formeel bewijs geven. Stelling 7.1 Veronderstel dat λ en W goed gedefinieerd en eindig zijn. Dan geldt: L = λW . Bewijs Laat Tn de aankomsttijd zijn van de n-de klant, X(t) de som van de verblijftijden van de klanten die in [0, t] arriveren en Y (t) de som van de verblijftijden van de klanten die v´oo´r tijdstip t weer vertrokken zijn. We zullen de volgende drie beweringen bewijzen: R Y (t) 1 t Bewering 1: Voor alle t ≥ 0 geldt dat X(t) t ≥ t 0 L(s)ds ≥ t . X(t) t X(t) limt→∞ t
Bewering 2: limt→∞
= λW .
Bewering 3:
= limt→∞
Y (t) t .
Veronderstel dat deze beweringen zijn bewezen. Dan is het bewijs als volgt te geven: Rt λW = limt→∞ 1t 0 L(s)ds = L.
Bewijs Bewering 1: P Laat X(t) = {n|Tn ≤t} Vn , d.w.z. X(t) is de som van de verblijftijden van de klanten die in [0, t] P zijn binnengekomen en zij Y (t) = {n|Tn +Vn ≤t} Vn , de som van de verblijftijden van de klanten 82
die in [0, t] zijn binnengekomen en weer vertrokken. Veronderstel (net als in bovenstaande intu¨ıtieve verklaring voor de formule van Little) dat iedere klant weer 1 euro per tijdseenheid verschuldigd is. Als bij binnenkomst wordt betaald, dan ontvangt de systeembeheerder X(t) euro in het tijdsinterval [0, t]; als de klanten per tijdseenheid Rt moeten afrekenen dan is de opbrengst in het interval [0, t] gelijk aan 0 L(s)ds en als bij vertrek wordt betaald, dan heeft de beheerder gedurende de eerste t tijdseenheden het bedrag Y (t)
ontvangen. Omdat in het eerste geval eerder wordt betaald dan in het tweede en het tweede Rt geval weer eerder dan in het derde is het duidelijk dat X(t) ≥ 0 L(s)ds ≥ Y (t) voor alle t ≥ 0,
waaruit bewering 1 volgt. Bewijs Bewering 2:
P PN (t) Merk op dat limn→∞ n1 nm=1 Vm = limt→∞ N1(t) m=1 Vm , waaruit volgt dat o n P PN (t) limn→∞ n1 nm=1 Vm = limt→∞ 1t m=1 Vm λW = limt→∞ N t(t) = limt→∞
Hieruit volgt Bewering 2.
1 t
P
Vm = limt→∞
{m|Tm ≤t}
X(t) t .
Bewijs Bewering 3: limn→∞
Vn Tn
= 0, omdat limn→∞ Tn = ∞ en Vn met kans 1 begrensd is, aangezien de verwachte
tijdsduur voordat het systeem weer leeg is eindig is. Uit lim n→∞ ε > 0 een Nε is zodat
Vn Tn
Vn Tn
= 0 volgt dat er voor iedere
< ε voor alle n > Nε . Laat t voldoende groot zijn zodat N (t) > N ε .
Zij S1 (t) = {n ≤ Nε | Tn + Vn ≤ t} en S2 (t) = {n > Nε | Tn + Vn ≤ t}. Dan geldt: X
Y (t) =
X
Vn +
n∈S1 (t)
Vn .
(7.2)
n∈S2 (t)
Definieer S3 (t) en S4 (t) door: S3 (t) = {n > Nε | Tn +εTn ≤ t} en S4 (t) = {n ≤ Nε | Tn +εTn ≤ t}. Omdat voor n > Nε geldt dat Tn + Vn < Tn + εTn , is S3 (t) ⊆ S2 (t), zodat X
n∈S3 (t)
Vn ≤
X
Vn .
(7.3)
n∈S2 (t)
Uit (7.2) en (7.3) volgt dat Y (t) ≥
X
Vn +
n∈S1 (t)
X
X
Vn =
n∈S3 (t)
n∈S1 (t)
Vn −
X
n∈S4 (t)
Laat vervolgens S5 (t) = {n | Tn + εTn ≤ t} = {n | Tn ≤ Y (t) ≥
X
n∈S1 (t)
Vn −
X
n∈S4 (t)
Vn +
X
Vn =
n∈S5 (t)
Vn +
n∈S1 (t)
Vn +
n∈S3 (t)
t 1+ε }.
X
X
X
Vn .
(7.4)
n∈S4 (t)
Dan kunnen we schrijven
Vn −
X
Vn + X(
n∈S4 (t)
t ). 1+ε
(7.5)
Nu geldt 1 X
Omdat
P
Vn − nP 1
n∈S1 (t)
limt→∞
X(t) Y (t) ≥ ≥ t t t
t
P
n∈S1 (t)
Vn −
X
n∈S4 (t)
Vn begrensd wordt door o P V − V n∈S1 (t) n n∈S4 (t) n = 0. n∈S4 (t)
83
P
t X( 1+ε ) Vn + . t
n≤Nε
Vn geldt:
(7.6)
Verder geldt limt→∞
t X( 1+ε ) t
= lims→∞ lim
t→∞
X(s) (1+ε)s
=
1 1+ε
lims→∞
X(s) s .
Hiermee volgt uit (7.6) dat
1 X(t) Y (t) X(t) ≥ lim ≥ lim . t→∞ t t 1 + ε t→∞ t
Omdat (7.7) geldt voor alle ε > 0, geldt dat lim t→∞
X(t) t
= limt→∞
(7.7) Y (t) t ,
waarmee Bewering 3
ook bewezen is. Op analoge wijze kan ook de volgende stelling worden bewezen. Stelling 7.2 Veronderstel dat λ en W q goed gedefinieerd en eindig zijn. Dan geldt: L q = λWq . Voor wachttijdsystemen met een Poisson aankomstproces geldt dat op de lange duur een binnenkomende klant het systeem in de gemiddelde situatie aantreft, onafhankelijk van hoe de verdeling van de bedieningsduur is. Deze eigenschap heet PASTA (= Poisson Arrivals See Time Averages). Voor algemene aankomstprocessen geldt deze eigenschap niet. Beschouw namelijk een aankomstproces waarin de klanten precies om de twee minuten arriveren en een bedieningsduur van precies ´e´en minuut krijgen. Iedere klant die binnenkomt treft het systeem leeg aan, terwijl het systeem gemiddeld 50% leeg is. We zullen nu deze PASTA-eigenschap plausibel maken. Laat {N (t), t ≥ 0} het Poisson aankomstproces (met parameter λ) beschrijven en {X(t), t ≥ 0}
de evolutie van de toestand van het systeem zijn (bijv. het aantal klanten in het systeem op tijdstip t). De PASTA-eigenschap houdt in dat op de lange termijn geldt: De fractie van het aantal aankomende klanten dat het systeem in een bepaalde toestandsverz. aantreft = de fractie van de tijd dat het systeem in die bepaalde toestandsverz. verkeert. We veronderstellen dat het proces {X(t), t ≥ 0} een regeneratief proces is, d.w.z. dat er (stochastis-
che) tijdstippen zijn (regeneratiepunten), waarop het systeem - kanstheoretisch - gezien opnieuw begint (bijv. de tijdstippen waarop het systeem leeg raakt). De perioden tussen de regeneratiepunten heten cykels. Zij T de (stochastische) lengte van een cykel, met 0 < E(T ) < ∞, N het (stochastische) aantal aankomsten gedurende een cykel en laat A een toestandsverz. zijn. Definieeer verder: TA = de tijdsduur dat het systeem gedurende een cykel in toestandsverz. A is; NA = het aantal aankomsten tijdens een cykel dat het systeem in toestandsverz. A aantreft. Nu kan worden bewezen3 dat E(NA ) = λ E(TA ).
(7.8)
Passen we (7.8) toe met voor A de verz. van alle toestanden, dan krijgen we E(N ) = λ E(T ), 3
R.W. Wolff, ”Poisson arrivals see time averages”, Operations Research 30 (1982) 223-231.
84
(7.9)
zodat E(NA ) E(TA ) = . E(N ) E(T )
(7.10)
Op grond van de theorie van renewal processen 4 geldt dat
E(NA ) E(N )
op de lange duur de fractie
van de aankomende klanten is die het systeem in de toestandsverz. A aantreffen en dat
E(TA ) E(T )
de fractie van de tijd is dat het systeem in toestand A is. Hiermee is de PASTA-eigenschap verklaard.
7.4
Geboorte-sterfte processen
Veel wachttijdsystemen veronderstellen dat het aankomst proces Poisson is (met parameter λ) en dat de verdeling van de bedieningsduur exponentieel verdeeld is (met parameter µ). Het wachttijdsysteem is dan een geboorte-sterfte proces. De term geboorte refereert aan de aankomst van een nieuwe klant, en sterfte refereert aan het vertrek van een klant. Zij L(t) weer het aantal klanten in het systeem op tijdstip t, t ≥ 0. Het geboorte-sterfte proces beschrijft probabilistisch
hoe L(t) verandert als t toeneemt. Grofweg zegt het dat individuele geboortes en sterftes random
plaatsvinden, waarbij de snelheid waarmee ze plaatsvinden afhangen van de huidige toestand van het systeem. Meer precies geformuleerd, een geboorte-sterte proces is gebaseerd op de volgende veronderstellingen. Aanname 1: Gegeven dat L(t) = n, is de kansverdeling van de tijdsduur van tijdstip t tot de volgende geboorte exponentieel verdeeld met parameter λ n , n = 0, 1, . . . . Aanname 2: Gegeven dat L(t) = n, is de kansverdeling van de tijdsduur van tijdsduur t tot de volgende sterfte exponentieel verdeeld met parameter µ n , n = 1, 2, . . . . Aanname 3: Op een bepaald tijdstip kan er slechts ´e´en geboorte of sterfte plaatsvinden. Op grond van de aannames 1 en 2 is een geboorte-sterfte proces een speciaal geval van een continue Markov keten 5 . Dit impliceert dat λn en µn de gemiddelde geboorte- resp. sterftesnelheid is als het systeem zich in toestand n bevindt. Dit kunnen we visualiseren in onderstaand stroomdiagram, waarin de pijlen de enige toestandsovergangen van het systeem zijn. λ0
λ1
-
0
µ1
λn−1
-
1
µ2
λn
-
2
. . .
n−1
µn
-
n
n+1
.
. .
µn+1
De analyse van het geboorte-sterfte proces is erg moeilijk als het systeem in een transi¨ente toestand is. Resultaten over de kansverdeling van L(t) zijn zeer gecompliceerd. Er zijn wel eenvoudige afleidingen mogelijk nadat het systeem in een stationaire situatie (steady-state) is gekomen. 4 5
S.M. Ross, ”Applied Probability Models with Optimization Applications”, Holden-Day, 1970 (chapter 3). R.W. Wolff, ”Stochastic modelling and the theory of queues”, Prentice-Hall,1989, chapter 4.
85
Beschouw een bepaalde toestand van het systeem, zeg n. Startend op tijdstip 0, tellen we het aantal keren dat het proces toestand n bereikt en het aantal keren dat het proces toestand n verlaat: An (t) = het aantal keren dat het proces toestand n bereikt in interval (0, t]; Bn (t) = het aantal keren dat het proces toestand n verlaat in interval (0, t]. Omdat de gebeurtenissen toestand n bereiken en weer verlaten afwisselend plaatsvinden, geldt: |An (t) − Bn (t)| ≤ 1 voor alle t ≥ 0. Hieruit volgt: An (t) Bn (t) 1 A (t) B (t) t − t ≤ t , wat impliceert dat limt→∞ nt = limt→∞ nt .
Omdat
limt→∞ Ant(t) = de gemiddelde snelheid waarmee het systeem toestand n bereikt
en limt→∞ Bnt(t) = de gemiddelde snelheid waarmee het systeem toestand n verlaat, volgt uit bovenstaande gelijkheid het volgende principe: Rate-in = rate-out principe Voor iedere toestand n van het systeem geldt: de gemiddelde aankomstsnelheid = de gemiddelde vertreksnelheid. In de stationaire situatie (aangenomen dat deze wordt bereikt) kan de stationaire kansverdeling m.b.t. het stroomdiagram eenvoudig worden berekend. In deze situatie geldt dat voor iedere toestand het verwachte aantal aankomsten (per tijdseenheid) gelijk is aan het verwachte aantal vertrekken. Per tijdseenheid dat het systeem in toestand n is, is het verwachte aantal vertrekken (geboortes en sterftes) uit n gelijk aan λ n + µn , (n ≥ 1). Per tijdseenheid dat het systeem in
toestand n − 1 is, is het aantal verwachte vertrekken naar toestand n (geboortes) gelijk aan λ n−1 ; analoog is per tijdseenheid dat het systeem in toestand n + 1 is, het aantal verwachte vertrekken
naar n (sterftes) gelijk aan µn+1 . De stationaire kans Pn is te interpreteren als de fractie van de tijd dat het systeem in toestand n is. Het principe rate in = rate out geeft nu de volgende balansvergelijkingen: Toestand
Stroom in
=
Stroom uit
0
µ 1 P1
=
λ 0 P0
1
λ 0 P0 + µ 2 P2
=
(λ1 + µ1 )P1
2
λ 1 P1 + µ 3 P3
=
(λ2 + µ2 )P2
·
···
·
···
·
···
·
···
·
···
·
···
n
λn−1 Pn−1 + µn+1 Pn+1
=
·
···
·
···
·
···
·
···
·
···
·
(λn + µn )Pn
···
86
Dit stelsel kan worden opgelost door alle kansen in P 0 uit te drukken: toestand 0: P1 = toestand 1: P2 = toestand 2: P3 = ···
λ0 µ1 P 0 λ1 µ2 P 1 λ2 µ3 P 2
+ +
·
···
···
toestand n: Pn+1 =
λn µn+1 Pn
·
···
− λ 0 P0 ) = − λ 1 P1 ) =
λ1 µ2 P 1 λ2 µ3 P 2
λ1 λ0 µ2 µ1 P 0 λ2 λ1 λ0 µ3 µ2 µ1 P 0
= =
···
·
···
1 µ2 (µ1 P1 1 µ3 (µ2 P2
+
1 µn+1 (µn Pn
− λn−1 Pn−1 ) =
λn µn+1 Pn
=
λn λn−1 ···λ0 µn+1 µn ···µ1 P0
···
·
···
λn−1 λn−2 ···λ0 µn µn−1 ···µ1 ,
n = 1, 2, . . . en neem C0 = 1. Dan geldt: Pn = Cn P0 , n = 0, 1, . . . . P P∞ Met behulp van de relatie ∞ n=0 Pn = 1 volgt hieruit dat [ n=0 Cn ]P0 = 1, zodat Laat Cn =
Cn Pn = P∞ n=0
Cn
, n = 0, 1, . . .
(7.11)
Voor de gemiddelde aankomstsnelheid λ (om niet in verwarring te komen met de λ van het aankomstproces gebruiken we - in tegenstelling tot de formule van Little - hier de notatie λ) P geldt: λ = ∞ n=0 λn Pn . Met behulp van (7.11) en de formule van Little zijn de karakteristieke grootheden L, Lq , W en Wq , die informatie geven over de performance van het systeem, als volgt
te bepalen (dit heet de mean-value techniek): L=
∞ X
n=0
nPn ; Lq =
∞ X n=s
(n − s)Pn ; λ =
∞ X
n=0
λn Pn ; W =
L Lq ; Wq = λ λ
(7.12)
Bovenstaande resultaten zijn afgeleid onder de aanname dat de stationaire situatie wordt bereikt. We gaan hier niet verder in op de vraag wanneer het systeem in een stationaire situatie komt. We vermelden alleen dat als de gemiddelde aankomstsnelheid λ kleiner is dan de gemiddelde vertreksnelheid µ dit onder zekere regulariteitsvoorwaarden het geval is. De stationaire situatie P wordt niet bereikt als ∞ n=0 Cn = ∞.
7.5
Wachttijdmodellen gebaseerd op het geboorte-sterfte proces
We zullen in deze paragraaf een aantal modellen uitwerken die gebaseerd zijn op het geboortesterfte proces. Om een bepaald wachtrijprobleem aan te geven gebruiken we de volgende notatie: a/b/c; d/e/f waarbij a: het aankomstproces aangeeft; b: de bedieningsduur aangeeft; c: het aantal bedienden voorstelt; d: de bedieningsdiscipline weergeeft; e: het maximum aantal klanten in het systeem is; f : het aantal elementen in de klantenbron voorstelt. 87
Als d de FIFO-regel is (first-in-first-out) en e = f = ∞, dan laten we het stuk d/e/f in de notatie
weg. Zowel Poisson input (tussentijden exponentieel verdeeld) als een exponenti¨ele bedieningsduur worden aangegeven met de letter M van Markov. Voor een deterministische kansverdeling wordt de letter D gebruikt en voor een algemene kansverdeling de letter G. a. Het M/M/1 model Dit is het meest eenvoudige wachttijdmodel. Klanten komen aan volgens een Poisson proces met parameter λ; de bedieningstijd van een klant is exponentieel verdeeld met parameter µ, er is ´e´en bediende en er is een oneindig grote wachtruimte. We veronderstellen in dit model dat ρ =
λ µ
< 1;
ρ heet de bedieningsintensiteit. Dit model is een geboorte-sterfte proces waarin λ n = λ voor alle n ∈ N0 en µn = µ voor alle n ∈ N, zodat Cn = ρn voor n = 0, 1, . . . . Uit de formules (7.11) en (7.12) volgt: ρn P∞
= (1 − ρ)ρn , n ∈ N0 n ρ n=0 ∞ ∞ ∞ X X X ∂ρn−1 n 2 (n − 1)ρ = (1 − ρ)ρ (n − 1)Pn = (1 − ρ) = ∂ρ n=1 n=1 n=1
Pn = Lq
∞
∂ X n−1 ρ2 ∂ = (1 − ρ)ρ ρ = (1 − ρ)ρ2 (1 − ρ)−1 = ∂ρ ∂ρ 1−ρ 2
(7.13)
(7.14)
n=1
Wq =
Lq ρ 1 1 ρ = ; W = Wq + = ; L = λW = λ µ(1 − ρ) µ µ(1 − ρ) 1−ρ
(7.15)
In de formules voor L, Lq , W en Wq zien we dat in de noemer de term (1 − ρ) staat. Dit betekent
dat deze grootheden snel toenemen als de bezettingsgraad toeneemt. Als de bezettingsgraad
toeneemt van 90% naar 95% (een toename van 5%), dan nemen deze grootheden met 100% toe. We spreken dan ook van een exponenti¨ele toename. De bediende in dit systeem is dus afwisselend bezig en vrij. De fractie van de tijd dat de bediende vrij is, is gelijk aan P0 , dus 1 − ρ. De gemiddelde tijd dat de bediende vrij is, is de gemiddelde tijd
tot er weer een klant binnenkomt. Vanwege de geheugenloosheid van de exponenti¨ele verdeling is deze tijdsduur λ1 . De regeneratietijd is dus bezig is, is dus
1 λ
·
1 1−ρ
het systeem verblijft.
· (1 − P0 ) =
ρ λ(1−ρ)
=
1 1 λ · 1−ρ 1 1 µ · 1−ρ ,
en de gemiddelde tijdsduur dat de bediende wat gelijk is aan W , de tijd die een klant in
Voorbeeld 7.1 Veronderstel dat schepen in een haven aankomen volgens een Poisson proces met een gemiddelde van 5 schepen per etmaal. De havendirectie moet een beslissing nemen over de aanschaf van een kraan om de schepen te lossen. De dagelijkse kosten van de kraan zijn 5000 × µ euro, waarbij
de lostijd per schip exponentieel verdeeld is met parameter µ. Gedurende 24 uur per etmaal kan er worden gelost. Voor elk schip zijn er verblijfkosten van 25 euro per uur dat het in de haven verblijft (ook voor de lostijd moet worden betaald). De directie moet een beslissing nemen over de keuze van µ en wil die keuze z´o maken dat de totale kosten per etmaal minimaal zijn. Welke waarde van µ is optimaal? 88
Dit is een M/M/1-model. Laten we een uur als tijseenheid nemen, dan is λ = De gemiddelde ligkosten (per uur) van de schepen = 25 × L =
25λ µ−λ
=
5 24 .
125 24µ−5 .
5000 24 µ. 5000 125 24µ−5 + 24 µ.
De gemiddelde kosten (per uur) voor de kraan zijn
24×125 5000 f 0 (µ) = 0 geeft: − (24µ−5) 2 + 24 = 0, √ = 14.4, zodat 24µ − 5 = 14.4 = 3.7947.
Voor de kostenfunctie f (µ) geldt dus: f (µ) = waaruit volgt (24µ − 5)2 =
242 ×125 5000
Aldus vinden we µ = 0.3664. De verdeling van de verblijftijd
Zij W ∗ de tijd die een willekeurige aankomende klant in het systeem verblijft, als het systeem zich in een stationaire situatie bevindt, dus E W ∗ = W . Om de kansverdeling van W ∗ te bepalen conditioneren we naar het aantal klanten dat in het systeem aanwezig is op het moment dat de aankomende klant arriveert: P ∗ P(W ∗ ≤ t) = ∞ n=0 P(W ≤ t | n klanten in het systeem)·
P(n klanten in het systeem als de aankomende klant arriveert).
Uit de PASTA-eigenschap volgt: P(n klanten in het systeem als de aankomende klant arriveert) = P n = (1 − ρ)ρn , n ∈ N0 . Als n = 0, dan is de verblijftijd van de aankomende klant gelijk aan zijn bedieningsduur; als n ≥ 1, dan dan ontvangt ´e´en klant bediening en zijn er n − 1 klanten die eerst geholpen moeten
worden voordat de aankomende klant zijn bediening ontvangt. Vanwege de geheugenloosheid van
de exponenti¨ele verdeling, is de resterende bedieningsduur van de klant die in bediening is weer exponentieel (met dezelfde parameter µ). Voor verblijftijd T (n) van de aankomende klant die n klanten in het systeem aantreft geldt dus: T (n) = T1 + T2 + · · · + Tn+1 , n = 0, 1, . . . , met T1 , T2 , . . . , Tn+1 onderling onafhankelijke identiek verdeelde stochastische variabelen die elk negatief exponentieel verdeeld zijn met parameter µ. Dit heet een Erlang-(n+1) verdeling 6 . Er n
kan worden aangetoond (zie Opgave 14) dat T (n) als dichtheid µe−µx (µx) n! heeft, zodat geldt: R n t P(W ∗ ≤ t | n klanten in het systeem) = 0 µe−µx (µx) n! dx.
We kunnen nu schrijven: R t −µx (µx)n R t −µx P∞ P n P(W ∗ ≤ t) = ∞ ( n=0 n=0 (1 − ρ)ρ · 0 µe n! dx = (1 − ρ) 0 µe R t −(µ−λ)x = (µ − λ) 0 e dx = 1 − e−(µ−λ)t .
(λx)n n! )dx
De verblijftijd is dus ook exponentieel verdeeld met parameter µ − λ. De verwachting hiervan is 1 µ−λ ,
6
wat overeenkomt met de formule voor de gemiddelde verblijftijd W .
Naar de Deense wiskundige Erlang, de grondlegger van de wachttijdtheorie, begin twintigste eeuw.
89
b. Het M/M/s model De analyse van dit model is in principe hetzelfde als voor het M/M/1-model, alleen hebben we λ sµ
nu s bedienden en veronderstellen we dat ρ =
< 1. Deze ρ heeft de interpretatie de fractie
van de tijd waarin een individuele bediende bezet is. In dit geboorte-sterfte proces is λ n = λ voor alle n ∈ N0 en µn = Hieruit volgt Cn =
(
(λ/µ)n n! (λ/µ)s s!
(
nµ voor 1 ≤ n ≤ s − 1
sµ voor n ≥ s
voor n < s ·
ρn−s
voor n ≥ s
Uit de formules (7.11) en (7.12) volgt: P0 = Pn =
( s−1 X (λ/µ)n n!
n=0 ( (λ/µ)n n! (λ/µ)s s!
· P0
∞ (λ/µ)s X n−s + · ρ s! n=s
)−1
voor n < s
=
( s−1 X (λ/µ)n n=0
n!
(λ/µ)s 1 + · s! 1−ρ
)−1
(7.16) (7.17)
· ρn−s · P0 voor n ≥ s
Vervolgens gaan we Lq berekenen: P P∞ P∞ (λ/µ)s j · ρ P0 Lq = ∞ n=s (n − s)Pn = j=0 jPs+j = j=0 j s! s P s P j (λ/µ) ∂ρ ∂ j = (λ/µ) · ρP0 · ∞ · ρP0 · ∂ρ [ ∞ j=0 ∂ρ = j=0 ρ ]. s! s!
Omdat
∂ P∞ j ∂ρ [ j=0 ρ ]
Lq =
(λ/µ)s s!
=
∂ ∂ρ [(1
− ρ)−1 ] = (1 − ρ)−2 , krijgen we:
· ρP0 · (1 − ρ)−2 =
(λ/µ)s s!
·
ρ (1−ρ)2
·
nP s−1
(λ/µ)n n=0 n!
+
(λ/µ)s s!
·
Hieruit volgen de overige grootheden volgens de formule van Little: Wq =
1 Lq ; W = Wq + ; L = λW λ µ
1 1−ρ
o−1
(7.18)
(7.19)
In de formules voor L, Lq , W en Wq is weer te zien dat in de noemer de term (1 − ρ) voorkomt; ook hier hebben we dus weer een exponenti¨ele toename als ρ naar 1 nadert.
De fractie van de tijd dat alle bedienden bezet zijn is: P∞ P∞ (λ/µ)s n−s (λ/µ)s ·ρ = s! · P0 (1 − ρ)−1 . n=s Pn = P0 n=s s!
Op grond van de PASTA-eigenschap volgt hieruit dat de fractie van de klanten die moeten wachten ook gelijk is aan
(λ/µ)s s!
· P0 (1 − ρ)−1 . Deze laatste formule voor de kans dat een aankomende klant
moet wachten voordat hij bediening ontvangt heet de Erlang wachtformule. Voorbeeld 7.2
In een postkantoor zijn twee loketten, ´e´en voor geldzaken en ´e´en voor postzaken. De klanten voor geldzaken komen aan volgens een Poisson proces met een aankomstsnelheid van 15 klanten per uur; de klanten voor postzaken komen, onafhankelijk van de klanten voor geldzaken, aan volgens een Poisson proces met een aankomstsnelheid van 18 klanten per uur. De bedieningsduur van elke klant is exponentieel verdeeld met een verwachting van 3 minuten. Bij de huidige inrichting kan een klant voor geldzaken alleen terecht bij het loket geldzaken en kan een klant voor postzaken alleen terecht bij het loket postzaken. 90
Overwogen wordt beide loketten open te stellen voor zowel geld- als postzaken met ´e´en gezamenlijke wachtrij voor de loketten. Wat is het effect van de nieuwe inrichting op de bezetting van de loketten en op het gemiddelde aantal klanten in het postkantoor? Kies het uur als tijseenheid. in de huidige situatie hebben we twee onafhankelijke M/M/1 systemen. Voor het loket geldzaken is λ = 15, µ = 20, dus de fractie van de tijd dat dit loket bezet is ρ 1−ρ
is ρ = 43 . Het gemiddeld aantal klanten voor geldzaken L g = klant aan de beurt is bedraagt
ρ µ(1−ρ)
= 3. De wachttijd voordat de
= 0.15 uur (9 minuten).
Voor het loket postzaken is λ = 18, µ = 20, dus de fractie van de tijd dat dit loket bezet is is ρ=
9 10 .
Het gemiddeld aantal klanten voor postzaken L p =
klant aan de beurt is bedraagt
ρ µ(1−ρ)
ρ 1−ρ
= 9. De wachttijd voordat de
= 0.45 uur ( 27 minuten).
Dus in totaal zijn gemiddeld 3 + 9 = 12 klanten in het postkantoor aanwezig. Beschouw vervolgens de voorgestelde situatie, waarin beide loketten beschikbaar zijn voor zowel geld- als postzaken. Dit is een M/M/2 systeem met λ = 15 + 18 = 33, µ = 20, dus ρ = 0.825. Uit de formules van het M/M/2 systeem volgt: P0 = 0.0959; Lq = 3.516; Wq = 0.107 : W = 0.157; L = 5.166. We zien dus dat in het geval van samenvoegen van de loketten zowel het gemiddeld aantal klanten in het systeem flink daalt (van 12 naar 5.166) als dat de gemiddelde wachttijd van beide soort klanten eveneens sterk daalt (van 0.15 naar 0.107 resp. van 0.45 naar 0.107). Deze laatste daling is niet altijd het geval; als de λ’s sterk verschillen, dan kunnen de klanten met de kleinste λ er door het samenvoegen op achteruitgaan. Een andere interessante vraag is hoe het M/M/2 systeem met bedieningssnelheid µ zich verhoudt tot het M/M/1 systeem met bedieningssnelheid 2µ. Laat het gemiddeld aantal klanten dat wacht Lq (2) resp. Lq (1) zijn en het aantal klanten in het systeem L(2) resp. L(1) zijn. Nemen we λ = 15 en µ = 10 (dus ρ = 43 ), dan hebben we hierboven gezien dat L(1) = 3. Uit de formules van het M/M/1 model volgt dat Lq (1) = 49 . Voor het M/M/2 model (waarin ρ dus weer we: Lq (2) =
27 14
en L(2) =
24 7 .
3 4
is) krijgen
We zien dus het opmerkelijke verschijnsel dat L q (2) < Lq (1),
terwijl L(2) > L(1). Dit resultaat hangt niet van de gekozen getallen af, maar geldt algemeen (zie Opgave 15) c. Het M/M/s; FIFO/N/∞ model In dit model kunnen er maximaal N klanten in het systeem zijn. We nemen bovendien aan dat s ≤ N (het is duidelijk dat s > N zinloos is). In termen van het geboorte-sterfte proces betekent dit dat:
λn =
(
λ voor 0 ≤ n ≤ N − 1 0 voor n ≥ N ( (λ/µ)n
Hieruit volgt Cn = Laat weer ρ =
λ sµ
n! (λ/µ)s s!
en µn =
(
nµ voor 1 ≤ n ≤ s − 1 sµ voor n ≥ s
voor 0 ≤ n ≤ s − 1
λ n−s · ( sµ ) voor s ≤ n ≤ N
(we hoeven nu niet te eisen dat ρ < 1, want omdat er maximaal N klanten zijn
kan het systeem zich niet ’opblazen’). Uit de formules (7.11) en (7.12) volgt weer:
91
( s−1 X (λ/µ)n
P0 =
n!
n=0
Pn =
N (λ/µ)s X n−s ρ + · s! n=s
(λ/µ)n · P0 n! (λ/µ)s · ρn−s · s!
0
)−1
(7.20)
voor 0 ≤ n ≤ s − 1
(7.21)
P0 voor s ≤ n ≤ N voor n > N
PN is niet alleen de fractie van de tijd dat het systeem vol is, maar - op grond van de PASTA-regel - ook de fractie van de tijd dat een aankomende klant het systeem vol aantreft, d.w.z. dat de klant geweigerd wordt; dit heet de blokkeringskans. Als N = s, d.w.z. dat er geen ruimte aanwezig is om te wachten, dan geldt P N = Dit heet de Erlang verliesformule. Ook nu gaan we eerst L q berekenen: P PN −s PN −s (λ/µ)s j · ρ P0 Lq = ∞ n=s (n − s)Pn = j=0 jPs+j = j=0 j s! s P s P j (λ/µ) −s ∂ρ −s j ∂ = (λ/µ) · ρP0 · N · ρP0 · ∂ρ [ N j=0 ∂ρ = j=0 ρ ]. s! s! ∂ Pm ∂ 1−ρm+1 1 m − mρm (1 − ρ)], krijgen we: Omdat ∂ρ [ j=0 ρj ] = ∂ρ [ 1−ρ ] = (1−ρ) 2 · [1 − ρ Lq =
(λ/µ)s s!
·
ρ (1−ρ)2
s
Ps (λ/µ) /s! . n n=0 (λ/µ) /n!
· [1 − ρN −s − (N − s)ρN −s (1 − ρ)]P0
(7.22)
Vervolgens berekenen we λ: λ=
∞ X
λn Pn =
N −1 X n=0
n=0
λPn = λ(1 − PN ) = λ[1 −
ρN ss P0 ] s!
(7.23)
Hieruit volgen de overige grootheden volgens de formule van Little: Lq 1 ; W = Wq + ; L = λW µ λ
Wq =
(7.24)
Voor het speciale geval s = 1 krijgen we de volgende formules voor P 0 , λ en Lq (merk op dat deze voor N → ∞ overeenkomen met de formules van het M/M/1 model): P0 =
(
1+ρ·
N X
ρn−1
n=1
)−1
λ = λ · [1 − ρN P0 ] = λ · Lq = =
= {1 + ρ ·
1 − ρN 1 − ρN +1
1−ρ 1 − ρN −1 } = 1−ρ 1 − ρN +1
(7.25) (7.26)
1−ρ ρ2 · [1 − ρN −1 − (N − 1)ρN −1 (1 − ρ)] · 2 (1 − ρ) 1 − ρN +1 ρ2 1 · [1 − N ρN −1 + (N − 1)ρN ] · 1−ρ 1 − ρN +1
(7.27)
Hoewel we opgemerkt hebben dat dit model geldig is voor alle waarden van ρ, geven de formules problemen als ρ = 1. In dat geval moeten de formules wel op analoge wijze worden bereken, maar leidt dit tot andere formules. We zullen dit laten zien voor het geval dat s = 1. P PN −1 1 (N −1)N −1 = 1 ; P = 1 , 1 ≤ j ≤ N ; L = P0 = {1 + N j q n=1 1} n=0 jPj+1 = 2 N +1 ; N +1 N +1 λ = λ · (1 − P0 ) = λ ·
N N +1 ;
Wq =
Lq λ
=
N −1 2λ ;
92
W = Wq +
1 µ
= Wq +
1 λ
=
N +1 2λ ;
L = λW =
N 2.
d. Het M/M/s; FIFO/N/N model In dit model is er een eindige klantenbron met N elementen. Dus als er in het systeem reeds n klanten aanwezig zijn, dan is het aantal potenti¨ele klanten N − n. Het aantal bedienden s is
weer hoogstens N . We nemen aan dat iedere klant zich (onafhankelijk van elkaar) volgens een
Poissonproces met parameter λ kan melden. Dit geeft de volgende schematische voorstelling van ( nµ voor 1 ≤ n ≤ s − 1 de stationaire situatie: λn = (N − n)λ, 0 ≤ n ≤ N en µn = sµ voor s ≤ n ≤ N ( N! n voor 0 ≤ n ≤ s − 1 (N −n)!n! · (λ/µ) Hieruit volgt: Cn = en N! n−s voor s ≤ n ≤ N · (λ/µ) n−s (N −n)!s!s P0 =
( s−1 X
n=0
N N !ss X 1 N! n · (λ/µ) + · (λ/µ)n (N − n)!n! s! n=s (N − n)!sn
)−1
De berekening van de vier karakteristieke getallen verloopt als volgt: P PN PN PN λ= N n=0 λn Pn = n=0 λ(N − n)Pn = λN n=0 Pn − λ n=0 nPn = λ(N − L). PN Lq = n=s (n − s)Cn P0 . Omdat L = Lq + λµ = Lq + µλ · (N − L), volgt hieruit dat L =
(7.28)
λN +µLq λ+µ .
Met behulp van (7.28) levert dit de volgende formules op: Pn = Lq =
N !ss · (λ/µ)n P0 , s ≤ n ≤ N (N − s)!s!sn
N X
n=s
(n − s)Pn ; L =
(7.29)
λN + µLq L Lq ; λ = λ(N − L); Wq = ; W = λ+µ λ λ
(7.30)
Tenslotte beschouwen we weer het speciale geval s = 1, waarvoor de volgende formules voor P 0 en Lq gelden: P0 = Lq =
(
N X
n=0 N X
n=1
N! · (λ/µ)n (N − n)!
)−1
(n − 1)Pn = L − (1 − P0 ) =
(7.31) λN + µLq − (1 − P0 ) λ+µ
Hieruit volgt dat Lq = N −
7.6
λ+µ · (1 − P0 ) λ
(7.32)
Het M/G/1 model
Veronderstel dat de bedieningsduur T een willekeurige tijdsduur heeft met verwachting τ , variantie σ 2 en dichtheid f (t). Per tijdseenheid komen gemiddeld λ klanten aan die dus gemiddeld per tijdseenheid λτ aan bediening nodig hebben. We veronderstellen daarom dat λτ < 1 en dat er een stationaire situatie ontstaat.
93
Zij Nk het aantal klanten in het systeem als de k-de klant net vertrokken is na een bediening gehad te hebben, (en laat Xk het aantal klanten zijn dat binnenkomt ( terwijl de k-de klant bediend Nk + Xk+1 − 1 als Nk ≥ 1; 1 als Nk ≥ 1; wordt: Nk+1 = Laat δ(Nk ) = Xk+1 als Nk = 0. 0 als Nk = 0. We kunnen nu schrijven Nk+1 = Nk + Xk+1 − δ(Nk ), zodat 2 2 Nk+1 = Nk2 + Xk+1 + δ(Nk )2 + 2Nk Xk+1 − 2Nk δ(Nk ) − 2Xk+1 δ(Nk ) 2 = Nk2 + Xk+1 + δ(Nk ) + 2Nk Xk+1 − 2Nk − 2Xk+1 δ(Nk ),
waaruit volgt: E Nk+1 = E Nk + E Xk+1 − E δ(Nk ) en 2 2 E Nk+1 = E Nk2 + E Xk+1 + E δ(Nk ) + 2 E Nk E Xk+1 − 2 E Nk − 2 E Xk+1 · E δ(Nk ).
Vanwege de aanname dat er een stationaire situatie ontstaat geldt: lim k→∞ E Nk = limk→∞ E Nk+1 . Laat voor de stationaire grootheden de index k weg. Dit levert het volgende op. Uit de formule van E Nk+1 volgt: E δ(N ) = E X = het verwachte aantal binnenkomsten tijdens ´e´en bediening = λτ . 2 Uit de formule voor E Nk+1 en het bovenstaande volgt:
0 = E X 2 + E X + 2 E N · E X − 2 E N − 2 E X 2. Hieruit volgt:
EN =
E X 2 + E X · (1 − 2 E X) 2(1 − E X)
(7.33)
Zij N (t) het aantal aankomsten in tijdsduur t. Uit de eigenschappen van de exponenti¨ele verdeling is bekend dat E{N (t)} = VAR{N (t)} = λt. E X en E X 2 kunnen als volgt worden berekend: R∞ R∞ R∞ E X = E{E(X|T )} = 0 E(X|T = t)f (t)dt = 0 E{N (t)}f (t)dt = λ 0 tf (t)dt = λ · E T = λτ . R∞ R∞ E X 2 = E{E(X 2 |T )} = 0 E(X 2 |T = t)f (t)dt = 0 E{[N (t)]2 }f (t)dt R∞ R∞ = 0 {VAR[N (t)] + [E{N (t)}]2 }f (t)dt = 0 {λt + (λt)2 }f (t)dt R∞ = λτ + λ2 0 t2 f (t)dt = λτ + λ2 (σ 2 + τ 2 ). Vullen we deze waarden (7.33) in, dan krijgen we: EN =
λτ + λ2 (σ 2 + τ 2 ) + λτ (1 − 2λτ ) λ2 (σ 2 + τ 2 ) = λτ + 2(1 − λτ ) 2(1 − λτ )
(7.34)
Laat ρ = λτ , dan luiden de formules van dit model: L=ρ+
Lq λ2 σ 2 + ρ 2 λ2 σ 2 + ρ 2 L ; Lq = ; W = ; Wq = 2(1 − ρ) 2(1 − ρ) λ λ
94
(7.35)
Voor de tijdsduur Wq dat men moet wachten voordat men bediend wordt, volgt uit bovenstaande formule dat Wq =
ρ τ σ2 ·{ + } 1 − ρ 2 2τ
(7.36)
Dit is de zogenaamde formule van Pollaczek-Khintchine. We kunnen deze formule ook intu¨ıtief afleiden met een ”betaalregel”, zoals we ook hebben gedaan bij de formule van Little. Laat de werklast van een systeem de som zijn van de verwachtingen van de (resterende) bedieningsduren in het systeem dat zich in een stationaire situatie bevindt. Volgens de PASTA-regel moet een aankomende klant wachten voordat hij bediend wordt gedurende een tijdsduur gelijk aan de werklast van het systeem: Wq = werklast. Beschouw nu de volgende betaalregel: iedere klant betaalt met een ”snelheid” (d.w.z. bedrag per tijdseenheid) gelijk aan zijn (resterende) bedieningsduur. Zolang een klant niet bediend wordt, gemiddeld dus gedurende Wq tijdseenheden, betaalt hij met een snelheid T en als hij reeds x tijdseenheden in bediening is betaalt hij met snelheid T − x. De verwachte betaling van een klant is dus:
E{T Wq +
RT 0
(T − x)dx} = τ Wq + 21 E(T 2 ) = τ Wq + 21 {VAR(T ) + E(T )2 } = τ Wq + 12 (σ 2 + τ 2 ).
Omdat er per tijdseenheid λ klanten het systeem binnenkomen ontvangt het systeem dus per tijdseenheid (laat de klanten aan de poort betalen en gebruik dat λτ = ρ): ρ{W q +
σ2 2τ
Anderzijds ontvangt het systeem per tijdseenheid de werklast, d.w.z. W q , zodat geldt: Wq = ρ{Wq +
σ2 2τ
+ τ2 } → Wq =
ρ 1−ρ
+ τ2 }.
2
· { σ2τ + τ2 }.
We zullen twee speciale gevallen van dit model verder uitwerken. a. Constante bedieningsduur Veronderstel dat de bedieningsduur een constante waarde τ heeft. Dan is σ = 0, wat het volgende oplevert: ρτ L ; Lq = λWq ; L = Lq + ρ; W = 2(1 − ρ) λ
Wq =
(7.37)
b. Erlang-verdelingen In model a is σ = 0 en in het M/M/1-model is de σ =
1 µ,
wat vaak vrij groot is. Hier tussenin
zitten de Erlang-verdelingen met parameters (µk, k), k = 1, 2, . . . ; dit zijn verdelingen behorende bij tijdsduren T := T1 +T2 +· · ·+Tk , met T1 , T2 , . . . Tk onderling onafhankelijke identiek verdeelde
stochastische variabelen, die elk een negatief exponenti¨ele verdeling met parameter µk hebben. Met behulp van deze interpretatie zijn de verwachting en de variantie eenvoudig te bepalen: E(T ) =
Pk
i=1
E(Ti ) =
Pk
i=1
(µk)−1 = µ1 ; VAR(T ) =
Pk
i=1
VAR(Ti ) =
Pk
i=1
(µk)−2 =
1 . kµ2
We hebben al eerder opgemerkt dat de dichtheid van een Erlang-verdeling met parameter (µk, k) gelijk is aan: f (x) = µke−µkx
(µkx)( k − 1) , x ≥ 0. (k − 1)! 95
(7.38)
Voor k = 1 is f (x) = µe−µx , de dichtheid van de exponenti¨ele verdeling, en voor k → ∞ gaat f (x) naar de gedegenereerde verdeling van model a met τ = µ −1 .
Het bovenstaande levert de volgende formules op voor de vier karakteristieke grootheden: Wq =
7.7
k+1 λ λ L · ; Lq = λWq ; L = Lq + ; W = 2k µ(µ − λ) µ λ
(7.39)
Netwerken van wachtrijen
De tandem wachtrij Beschouw een systeen met twee bedienden. Klanten komen aan bij de eerste wachtrij, met bediende 1, volgens een Poisson proces met parameter λ. Na hier bediend te zijn gaan ze door naar een tweede wachtrij, waar bediende 2 werkzaam is. De bedieningsduur bij bediende i is negatief exponentieel verdeel met parameter µ i , i = 1, 2. We veronderstellen dat de wachtruimtes onbegrensd zijn en dat ρi =
λ µi
< 1, i = 1, 2.
Definieer Ni (t) als het aantal klanten dat op tijdstip t aanwezig is bij wachtrij i, i = 1, 2. Dan is het proces {N1 (t), N2 (t), t ≥ 0} een continue Markov keten. De evenwichtsverdeling (op grond
van de aanname ρi < 1, i = 1, 2 kan worden aangetoond dat deze bestaat en gevonden kan worden als unieke oplossing van een stelsel lineaire vergelijkingen) van deze Markov keten noteren we met
Pn,m , n, m ∈ N0 . Pn,m heeft weer de interpretatie als de fractie van de tijd dat op de lange duur
gelijktijdig n klanten in wachtrij 1 en m klanten in wachtrij 2 zijn.
We zullen nu eerst bewijzen dat het vertrekproces van wachtrij 1 weer een Poissonproces is met parameter λ. Bij de M/M/1-wachtrij hebben we gezien dat de stationaire kansverdeling van wachtrij 1 voldoet aan Pn = (1 − ρ1 )ρn1 , n ∈ N0 . Nu geldt: P{[een klant vertrekt gedurende het interval [t, t + ∆t)} = P[minstens ´e´en klant op tijdstip t en de bediening van deze klant loopt af v´oo´r tijdstip t + ∆t] = (1 − P0 ) · µ1 ∆t =
λ µ1
· µ1 ∆t = λ∆t.
De vertreksnelheid bij wachtrij 1 is dus λ, wat overeenkomt met het Poissonproces met parameter λ. Dit is het aankomstproces bij wachtrij 2 en voor de kans P m dat er m klanten bij wachtrij 2 zijn geldt weer: Pm = (1 − ρ2 )ρm 2 , m ∈ N0 . Als de aantallen klanten bij de wachtrijen onafhankelijk van elkaar zijn, dan zou hieruit volgen dat:
Pn,m = (1 − ρ1 )ρn1 (1 − ρ2 )ρm 2 , n, m ∈ N0
(7.40)
Deze formule is inderdaad juist, maar we zullen dit niet m.b.v. de onafhankelijkheid bewijzen, maar via de evenwichtsvergelijkingen. Deze evenwichtsvergelijkingen zien er als volgt uit: Toestand
Stroom in
=
Stroom uit
µ2 P0,1
=
λP0,0
λPn−1,0 + µ2 Pn,1
=
(λ + µ1 )Pn,0
µ2 P0,m+1 + µ1 P1,m−1
=
(λ + µ2 )P0,m
λPn−1,m + µ2 Pn,m+1 + µ1 Pn+1,m−1
=
(λ + µ1 + µ2 )Pn,m
0, 0 n, 0; n ≥ 1
0, m; m ≥ 1
n, m; n, m ≥ 1
96
Stelling 7.3 Pn,m = (1 − ρ1 )ρn1 (1 − ρ2 )ρm 2 , n, m ∈ N0 Bewijs We zulen laten zien dat de Pn,m uit de Stelling voldoen aan de evenwichtsvergelijkingen. Omdat evenwichtsvergelijkingen een unieke oplossing hebben, is daarmee het bewijs geleverd. µ2 P0,1 = µ2 (1 − ρ1 )(1 − ρ2 )ρ2 = λ(1 − ρ1 )(1 − ρ2 ) = λP0,0 .
λPn−1,0 +µ2 Pn,1 = λ(1−ρ1 )ρ1n−1 (1−ρ2 )+µ2 (1−ρ1 )ρn1 (1−ρ2 )ρ2 = (1−ρ1 )ρn1 (1−ρ2 )[λρ−1 1 +µ2 ρ2 ] = (1 − ρ1 )ρn1 (1 − ρ2 )[µ1 + λ] = (λ + µ1 )Pn,0 , n ≥ 1.
µ2 P0,m+1 + µ1 P1,m−1 = µ2 (1 − ρ1 )(1 − ρ2 )ρm+1 + µ1 (1 − ρ1 )ρ1 (1 − ρ2 )ρ2m−1 = 2 −1 (1 − ρ1 )(1 − ρ2 )ρm 2 [µ2 ρ2 + µ1 ρ1 ρ2 ] = (λ + µ2 )Po,m , m ≥ 1.
m+1 n + λPn−1,m + µ2 Pn,m+1 + µ1 Pn+1,m−1 = λ(1 − ρ1 )ρ1n−1 (1 − ρ2 )ρm 2 + µ2 (1 − ρ1 )ρ1 (1 − ρ2 )ρ2 −1 −1 µ1 (1 − ρ1 )ρn+1 (1 − ρ2 )ρ2m−1 = (1 − ρ1 )ρn1 (1 − ρ2 )ρm 2 [λρ1 + µ2 ρ2 + µ1 ρ1 ρ2 ] = 1
(µ1 + λ + µ2 )Pn,m Met behulp van deze statioaire kansen zijn de karakteristieke grootheden L en W weer uit te rekenen: L
P P∞ n m n m + m)Pn,m = (1 − ρ1 )(1 − ρ2 ){ ∞ n,m=0 nρ1 ρ2 + n,m=0 mρ1 ρ2 } = P∞ P P P ∞ ∞ n−1 m−1 n = (1 − ρ1 )(1 − ρ2 ){ρ1 m=0 ρm + ρ2 ∞ } 2 n=1 nρ1 n=0 ρ1 m=1 mρ2
=
P∞
n,m=0 (n
−2 = (1 − ρ1 )(1 − ρ2 ){ρ1 (1 − ρ2 )−1 (1 − ρ1 )−2 + ρ2 (1 − ρ−1 1 (1 − ρ2 ) }
=
W
=
ρ2 ρ1 λ 1−ρ1 + 1−ρ2 = µ1 −λ L 1 1 λ = µ1 −λ + µ2 −λ .
+
λ µ2 −λ .
Opmerking Als we een tandem wachtrij hebben met s 1 bedienden bij wachtrij 1 en s2 bedienden bij wachtrij 2, waarbij verondersteld wordt dat
λ s 1 µ1
< 1 en
λ s 2 µ2
< 1, dan geldt ook dat de wachtrijen zich in
de evenwichtssituatie gedragen als onafhankelijke M/M/s 1 - resp. M/M/s2 -wachtrijen. Voorbeeld 7.3 Op een vliegveld moeten passagiers eerst een veiligheidscontrole ondergaan en vervolgens een bagagecontrole. De tijden die per passagier vereist zijn voor de veiligheidscontrole en de bagagecontrole zijn onafhankelijke stochastische variabelen die exponentieel verdeeld zijn met verwachtingswaarde van resp. 1 en 2 minuten. De passagiers komen aan volgens een Poisson proces met een gemiddelde van 75 passagiers per uur. In totaal zijn er 10 beambten beschikbaar om verdeeld te worden over de veiligheidscontrole en de bagagecontrole. Voor welke opsplitsing van deze beambten is het gemiddeld aantal klanten dat zich in het controleproces bevindt minimaal? Kies als tijdseenheid een uur, dan is λ = 75, µ 1 = 60 en µ2 = 30. Als we k beambten toekennen aan de veiligheidscontrole en 10 − k aan de bagagecontrole, dan moet voor het bereiken van een evenwichtssituatie gelden dat
λ kµ1
=
75 60k
< 1, d.w.z. k ≥ 2 en
λ (10−k)µ2
=
75 30(10−k)
< 1, d.w.z.
10 − k ≥ 3, ofwel k ≤ 7. Voor k kunnen we dus de waarden 2, 3, 4, 5, 6, en 7 kiezen. Voor ieder van deze k’s kunnen we in beide wachtrijen volgens de formules uit het M/M/smodel (zie (7.18) en (7.19)) de L1 (aantal personen bij de veiligheidscontrole) en L 2 (aantal 97
personen bij de bagagecontrole) en dus ook het totaal aantal personen in het controleproces (L1 + L2 ) berekenen: k
L1
L2
L1 + L 2
2
2.0513
2.5020
4.5533
3
1.3605
2.5086
3.8691
4
1.2692
2.5339
3.8031
5
1.2532
2.6304
3.8836
6
1.2505
3.0331
4.2836
7
1.2500
6.0111
7.2611
We zien dat L1 + L2 minimaal is voor k = 4. Er zijn dan gemiddeld ongeveer 3.8 klanten in controle. Open netwerk van wachtrijen (Jackson netwerken) De analyse van de tandem wachtrij kan aanmerkelijk worden gegeneraliseerd. Beschouw een systeem met K bedienden die ieder een wachtrij beheren. Klanten komen het systeem binnen en kunnen direct naar wachtrij i gaan volgens een Poisson proces met parameter r i , i = 1, 2, . . . , K. P Voor de aankomstsnelheid λ bij het totale systeem geldt: λ = K i=1 ri . Na bediend te zijn bij
wachtrij i volgens een exponentieel verdeelde bedieningsduur met snelheid µ i , gaat een klant naar P wachtrij j met kans pij , 1 ≤ j ≤ K, o`f hij verlaat het systeem met kans p i0 = 1 − K j=1 pij , 1 ≤ i ≤ K.
Zij λi de gemiddelde totale aankomstsnelheid bij wachtrij i, i = 1, 2, . . . , K. Vanwege het principe dat in de evenwichtssituatie ”stroom in = stroom uit”, is de vertreksnelheid bij wachtrij i ook λ i . Met kans pij wordt vervolgens gegaan naar wachtrij j. Beschouw de toestandsruimte met toestandverz. {0, 1, 2, . . . , K}, waarbij toestand 0 ”de buitenwereld” is. We nemen aan dat de
toestanden 1, 2, . . . , K transient zijn, d.w.z. dat een klant het systeem met kans 1 weer verlaat.
Neem p00 = 1, dan is dus toestand 0, de enige recurrente toestand, absorberend. Uit de theorie van Markov ketens volgt dan dat de getallen λ j , 1 ≤ j ≤ K kunnen dan worden verkregen als unieke oplossing van het stelsel
λj = r j +
K X
λi pij , j = 1, 2, . . . , K
(7.41)
i=1
Laat ρj =
λj µj ,
j = 1, 2, . . . , K. Om een evenwichtsituatie te bereiken is het nodig dat ρ j < 1 voor
j = 1, 2, . . . , K. Er kan worden aangetoond dat in dat geval P(n klanten in wachtrij j) = (1 − ρj )ρnj , n ∈ N0
(7.42)
en (weer via de balansvergelijkingen) dat P(n 1 , n2 , . . . , nK ), d.w.z. de kans dat er nj klanten zijn bij wachtrij j, 1 ≤ j ≤ K, de productvorm heeft: P(n1 , n2 , . . . , nK ) =
K Y
j=1
n
(1 − ρj )ρj j , nj ∈ N0 , 1 ≤ j ≤ K 98
(7.43)
Formule (7.42) is opmerkelijk omdat het aankomstproces bij wachtrij j geen Poisson proces hoeft te zijn. We kunnen dit eenvoudig inzien aan de hand van een voorbeeld met K = 1, p 11 = 0.9, r1 = 1 en µ1 = 100. Uit (7.41) volgt dat λ1 = 10, zodat ρ1 = 0.1. Gemiddeld
1 µ1
= 0.01
tijdseenheden na een aankomst is een bediening klaar, waarna de klant met kans van 0.9 weer arriveert bij deze wachtrij. De gemiddelde aankomstsnelheid bij het systeem is ´e´en aankomst per tijdseenheid. Dus kort na een aankomst is er een grote kans om in korte tijd weer een aankomst te hebben, terwijl op een willekeurig tijdstip er slechts een vrij kleine kans is op een aankomst. Het aankomstproces heeft dus geen onafhankelijke tussentijden en is dus niet Poisson. Voor L, het gemiddeld aantal klanten in het systeem, geldt: L=
K X j=1
{het gemiddeld aantal klanten bij wachtrij j} =
K X j=1
λj µj − λ j
(7.44)
Met behulp van de formule van Little vinden we (voor λ, de gemiddelde aankomstsnelheid bij het P systeem, geldt: λ = K j=1 rj ): L W = = λ
λj j=1 µj −λj PK j=1 rj
PK
(7.45)
Voorbeeld 7.4 Beschouw een systeem met twee wachtrijen, waar klanten van buiten aankomen volgens Poisson processen: bij wachtrij 1 met een snelheid van 4 en bij wachtrij 2 met een snelheid van 5. De bedieningsduren zijn exponentieel verdeeld met snelheden 8 in wachtrij 1 en 10 in wachtij 2. Een klant die bij wachtrij 1 is bediend gaat met kans 0.5 naar wachtrij 2 en verlaat het systeem ook met kans 0.5; een klant die bij wachtrij 2 is bediend gaat met kans 0.25 naar wachtrij 1 en verlaat het systeem met kans 0.75. Bereken de stationaire kansen en de grootheden L en W . ( λ1 = 4 + 41 λ2 waaruit volgt dat λ1 = 6 en λ2 = 8, zodat ρ1 = Het stelsel (7.41) is: λ2 = 5 + 21 λ1 ρ2 = 54 . Dit geeft volgens (7.43), (7.44) en (7.45): P(n, m) =
1 4
· ( 34 )n ·
1 5
· ( 54 )m , n, m ∈ N0 ; L =
6 8−6
+
8 10−8
= 7; W =
L r1 +r2
=
7 4+5
3 4
en
= 79 .
Opmerking De productvorm (7.43) is gevonden onder de veronderstelling dat alle bedieningstijden exponentieel zijn. Tevens is verondersteld dat elke wachtrij slechts ´e´en bediende heeft. Deze productvorm geldt ook7 in een van de volgende gevallen: 1. Iedere wachtrij heeft een willekeurig aantal bedienden. In dit geval moet in (7.43) aan de rechterzijde het product staan van de kansen zoals die uit het M/M/s model volgen. 2. Elke klant treft altijd direct een bediende (te modelleren alsof er oneindig veel bedienden zijn), in welk geval de bedieningsduren een willekeurige verdeling mogen hebben. Nu moet in 7
F. Baskett, K.M. Chandy, R.R. Muntz and F. Palacios: ”Open, closed and mixed networks of queues with
different classes of customers”, Journal of the ACM 22 pp. 248-260 (1975).
99
(7.43) aan de rechterzijde het product staan van de kansen van Poissonverdelingen met verwachtingswaarde λj E(Sj ), waarbij E(Sj ) de verwachtingswaarde is van de bedieningstijd in wachtrij j, j = 1, 2, . . . , K. Gesloten netwerk van wachtrijen Beschouw een systeem met K wachtrijen, waarin een vast aantal klanten, zeg N , aanwezig is. Elke wachtrij heeft ´e´en bediende met een bedieningstijd die exponentieel verdeeld is met parameter µi , i = 1, 2, . . . , K. Als de bediening van een klant bij wachtrij i klaar is, gaat de klant met kans p ij P naar wachtrij j, waarbij j pij = 1 voor alle i. Verder wordt verondersteld dat iedere wachtrij een
oneindige wachtruimte heeft en dat de Markov keten P irreducibel
8
is. Het stochastische proces
dat simultaan het aantal aanwezige klanten bij elk van de stations beschrijft, is een continue-tijds Markov keten. Zij P(n1 , n2 , . . . , nK ) de kans dat op de lange duur bij wachtrij i n i klanten aanwezig zijn, waarbij n1 + n2 + · · · + nK = N . Ook in dit geval kan worden bewezen dat P(n 1 , n2 , . . . , nK ) de fractie van
de tijd is dat er gelijktijdig ni klanten bij wachtrij i zijn, i = 1, 2, . . . , K en dat deze kansverdeling weer een productvorm heeft. Om deze op te stellen hebben we het volgende nodig. Laat λi = het gemiddeld aantal aankomsten per tijdseenheid op de lange duur zijn bij wachtrij
i, i = 1, 2, . . . , K. Op grond van het principe ”stroom in = stroom uit” is λ i ook het gemiddeld aantal vertrekken bij i. De λi ’s kunnen verkregen worden als oplossing van het lineaire stelsel λj =
K X
λi pij , j = 1, 2, . . . , K
(7.46)
i=1
Het stelsel (7.46) heeft echter geen unieke oplossing, maar is op een constante na bepaald. We kunnen dus schrijven λj = απj , j = 1, 2, . . . , K, waarbij π de unieke oplossing is van het stelsel
πj =
K X
πi pij , j = 1, 2, . . . , K
(7.47)
i=1
K X
πj = 1
(7.48)
j=1
Uit de theorie van Markov ketens weten we dat π de stationaire verdeling is van de Markov keten P . De gezochte productvorm voor de simultane kansverdeling luidt nu: K K Y Y λ i ni π i ni n1 +n2 +···+nK P(n1 , n2 , . . . , nK ) = C · =C·α µi µi i=1 i=1 K K Y Y π i ni π i ni = C0 · , = C · αN µi µi i=1
(7.49)
i=1
waarbij C 0 een normeringsconstante is. Deze constante is in het algemeen lastig te bepalen. We moeten namelijk sommeren over alle mogelijke combinaties (n 1 , n2 , . . . , nK ) met n1 + n2 + · · · + 8
Zie het college Inleiding Besliskunde.
100
nK = N . Dit aantal is
N! n1 !n2 !···nK ! ,
wat een enorm groot getal kan zijn9 . Gelukkig is het soms niet
nodig om deze C 0 expliciet te bepalen, bijvoorbeeld als we alleen het gemiddeld aantal klanten of de gemiddelde wachttijd bij de verschillende wachtrijen willen weten. Dit kan worden gedaan via het zogenaamde mean-value algoritme. Mean-value algoritme Dit algoritme is gebaseerd op de volgende Stelling die we zonder bewijs zullen geven. Stelling 7.4 In een gesloten netwerk met N klanten geldt in de evenwichtssituatie dat de kans dat een klant die bij een wachtrij aankomt n i andere klanten ziet bij de wachtrij i, waarbij n 1 + n2 + · · · nK = N − 1 is gelijk aan P(n1 , n2 , . . . , nK ). Dit resultaat zegt dus dat een aankomende klant het systeem ziet in de evenwichtssituatie behorende bij ´e´en klant minder in het systeem. Definieer nu voor n = 1, 2, . . . , N : Ln (i) = het gemiddeld aantal klanten bij wachtrij i als er n klanten in het systeem zijn. Wn (i) = gemiddelde tijd die een klant in wachtrij i verblijft als er bij aankomst van de klant n klanten in het systeem zijn. λn (i) = het gemiddeld aantal aankomsten per tijdseenheid bij wachtrij i als er n klanten in het systeem zijn. Op grond van Stelling 7.4 geldt dat in een netwerk met n klanten een klant die bij wachtrij i aankomt daar gemiddeld Ln−1 (i) andere klanten aantreft. Vanwege de geheugenloosheid van de exponenti¨ele bedieningsduren geldt voor de gemiddelde tijd dat deze klant bij wachtrij i verblijft: Wn (i) =
Ln−1 (i) + 1 , 1≤i≤K µi
(7.50)
Passen we de formule van Little toe, dan krijgen we voor L n (i): Ln (i) = λn (i)Wn (i), 1 ≤ i ≤ K
(7.51)
λn (i) = αn πi , 1 ≤ i ≤ K,
(7.52)
Verder geldt weer
P waarbij πi bepaald wordt door (7.47) en (7.48). Omdat K i=1 Ln (i) = n, volgt uit (7.51) en (7.52) PK n . Hiermee zijn LN (i) en WN (i), het gemiddeld dat n = αn i=1 πi Wn (i), d.w.z. αn = PK i=1
πi Wn (i)
aantal klanten resp. de gemiddelde verblijftijd bij wachtrij i, 1 ≤ i ≤ K, als er N klanten in het systeem zijn, te bereken met het volgende algoritme.
9
Zie het dictaat Discrete Wiskunde.
101
Mean-value algoritme 1. Bepaal de stationaire kansen πi , 1 ≤ i ≤ K van de Markov keten P door het stelsel (7.47) en (7.48) op te lossen. W1 (i) =
2. αn =
PK n ; i=1 πi Wn (i)
λn (i) =
1 µi
PK
voor i = 1, 2, . . . , K en laat n = 1.
i=1
Als n = N : stop;
n πi Wn (i)
· πi , 1 ≤ i ≤ K; Ln (i) = λn (i)Wn (i), 1 ≤ i ≤ K.
Anders: ga naar stap 3. 3. n := n + 1; Wn (i) =
Ln−1 (i)+1 , µi
Ga naar stap 2.
1 ≤ i ≤ K.
Dit algoritme geeft niet alleen LN (i) en WN (i) voor alle i, maar ook de λN (i), het gemiddeld aantal klanten dat per tijdseenheid door wachtrij i wordt verwerkt, i = 1, 2, . . . , K. Tenslotte merken we op dat deze resultaten weer gegeneraliseerd kunnen worden tot de gevallen die aan het einde van het stukje over open netwerken zijn vermeld.
7.8
Opgaven
Opgave 1 Beschouw een wachttijdsysteem met oneindig veel plaatsen, Poisson aankomsten met parameter λ = 0.5 en een exponenti¨ele bedieningsduur met parameter µ = 0.8 (als eenheid van tijd nemen we 1 minuut). a. Wat is de kans dat de volgende aankomst binnen 3 minuten plaats vindt? b. Gegeven dat de vorige aankomst 10 minuten geleden plaats vond, wat is de kans dat de volgende aankomst binnen 3 minuten plaats vindt? c. Wat is de kans dat de volgende aankomst tussen 9 en 12 minuten vanaf nu plaats vindt? d. Gegeven dat de volgende aankomst niet binnen 9 minuten plaats vindt, wat is de kans dat de volgende aankomst tussen 9 en 12 minuten vanaf nu plaatsvindt? e. Wat is de kans dat er de komende 3 minuten 2 aankomsten zijn? f. Wat is de kans dat er de komende 3 minuten geen aankomst is? g. Er is ´e´en klant in het systeem (die dus bediend wordt). Wat is de kans dat de bediening binnen 2 minuten klaar is?
Opgave 2 a. Geef een intu¨ıtieve verklaring met een ”betaalregel” dat L q = λWq . b. Geef een intu¨ıtieve verklaring met een ”betaalregel” dat het gemiddeld aantal bedienden dat bezet is gelijk is aan λ E(B), met B de bedieningsduur. c. Geef een intu¨ıtieve verklaring met een ”betaalregel” dat E(N A ) = λ E(TA ) (zie (7.8)).
102
Opgave 3 Een wachttijdsysteem heeft twee bedienden en het systeem kan maximaal 5 klanten bevatten. De stationaire kansverdeling is als volgt: P 0 = 0.05, P1 = 0.15, P2 = 0.25, P3 = 0.25, P4 = 0.20 en P5 = 0.10. Bepaal voor dit model de grootheden L, L q en de bedieningsintensiteit ρ.
Opgave 4 Een wachtrijsysteem heeft 3 bedienden, gemiddeld zijn er 6.4 klanten in het systeem en gemiddeld staan er 4 klanten te wachten voordat ze worden geholpen. Hoe groot is de bezettingsgraad van de bedienden in dit systeem?
Opgave 5 In een winkel komen de klanten volgens een Poissonproces bij de kassa aan met een gemiddelde van 30 klanten per uur. Er is ´e´en kassa en de bedieningsduur is exponentieel met een gemiddelde van 2 minuten. Als er 3 of meer klanten bij de kassa staan wordt de cassi`ere bijgestaan door een inpakster. De bedieningsduur blijft dan exponentieel, maar het gemiddelde zakt tot 1 minuut. Stel voor dit model de balansvergelijkingen op en bereken L, L q , W en Wq .
Opgave 6 Hetzelfde model als in Opgave 5 met alleen de volgende verandering: als er 3 of meer klanten bij de kassa staan wordt een tweede kassa geopend die ook een negatief exponenti¨ele bedieningsduur heeft met een gemiddelde van 2 minuten. Bereken voor dit gewijzigde model L, L q , W en Wq .
Opgave 7 Klanten arriveren bij een bepaalde systeem volgens een Poisson proces met parameter λ = 80; iedere klant ontvangt van de systeembeheerder 10 euro per uur dat hij in het systeem verblijft. De beheerder van het systeem heeft de keuze uit de volgende twee bedieningsmogelijkheden. De eerste mogelijkheid heeft een bedieningssnelheid van 100 klanten per uur en kost hem 50 euro per uur; de tweede mogelijkheid heeft een bedieningssnelheid van 200 klanten per uur en kost hem 100 euro per uur. Voor welk van deze mogelijkheden zal de systeembehherder, op basis van kostenvergelijking, kiezen? Opgave 8 Klanten komen bij een kapperszaak aan volgens een Poissonproces met een gemiddelde van 3 per uur. Er is slechts ´e´en kapper en de behandeltijd van de klanten is exponentieel met een gemiddelde van 30 minuten. Een aankomende klant gaat met kans 31 n weg als er reeds n klanten in de zaak aanwezig zijn. De kapper verdient 20 euro per klant. Wat is zijn verlies aan klanten die direct weer weggaan?
103
Opgave 9 Beschouw een wachtrijsysteem met ´e´en bediende; de bedieningsduur is negatief exponentieel verdeeld met parameter µ. De aankomstsnelheid van de klanten is
λ i+1
als er i klanten in het
systeem zijn. Veronderstel dat we met een geboorte-sterfte proces te maken hebben. a. Stel de balansvergelijkingen op en los deze op. b. Bepaal de gemiddelde aankomstsnelheid λ, L en W als functie van λ en µ. Opgave 10 Een bank heeft tussen 5 en 6 uur ’s middags ´e´en drive-in loket open. Klanten komen aan volgens een Poissonproces met een gemiddelde tussentijd van 40 seconden. De bediening duurt gemiddeld 30 seconden en is exponentieel verdeeld. Op de oprit naar het loket is slechts plaats voor 3 wachtende auto’s; zijn er meer klanten, dan sluiten deze aan in de wachtrij die een deel van de straat in beslag neemt. Om de klanten tevreden te houden vindt de directie van de bank dat aan de volgende twee voorwaarden voldaan moet zijn: a. de gemiddelde wachttijd van een klant voordat deze bediend wordt mag niet langer zijn dan 1 minuut; b. de wachtrij mag niet meer dan 10% van de tijd een deel van de straat in beslag nemen. Is aan deze voorwaarden voldaan? Zo niet, lost een tweede (identiek) loket het probleem op?
Opgave 11 Beschouw het probleem uit Opgave 10, maar nu met de extra voorwaarde dat niet op straat mag worden gewacht (het aantal auto’s in de wachtrij is dus hoogstens 3). De directie stelt in dit geval als eis dat tenminste 95% van de aankomende klanten in het systeem moet worden toegelaten. Hoeveel loketten zijn nu nodig: ´e´en of twee?
Opgave 12 Bij een pompstation komen auto’s aan volgens een Poissonproces met een gemiddelde van ´e´en per minuut. Er zijn vier pompen en daarnaast is er nog plaats voor maximaal drie auto’s om te wachten tot een pomp vrij komt. De tijd die auto’s bij de pomp doorbrengen is negatief exponentieel verdeeld met een gemiddelde van 3 minuten. a. Bepaal de kans dat voor een aankomende auto geen plaats is. b. Bereken L, Lq , W en Wq .
Opgave 13 Tijdens het oogsten komen met graan geladen wagens bij een verzamelpunt waar ze gelost worden. Veronderstel dat het aankomstproces Poisson is met gemiddeld 9 aankomsten per uur en dat de lostijd exponentieel verdeeld is met een gemiddelde van 6 minuten. Bereken de verwachting van de tijd die een wagen bij dit verzameldepot verblijft. Om deze tijd te verkorten worden drie voorstellen gedaan:
104
a. De capaciteit van de wagens groter maken zodat er gemiddeld 6 aankomsten per uur zijn, en tegelijk de capaciteit van het lossen vergroten waardoor de lostijd gemiddeld 4 minuten wordt. b. Een tweede loseenheid installeren op dit verzamelpunt met eveneens een gemiddelde lostijd van 6 minuten. c. Een extra verzamelpunt elders maken dat verder identiek is aan het huidige en de wagens over beide verzamelpunten gelijk verdelen. Wat wordt in ieder van deze drie voorstellen de verwachte verblijftijd van een wagen bij het lossen?
Opgave 14 Zij T een Erlang-n verdeling, d.w.z. T = T 1 +T2 +· · ·+Tn met T1 , T2 , . . . , Tn onderling onafhanke-
lijke identiek verdeelde stochastische variabelen die elk negatief exponentieel verdeeld zijn met parameter µ. n−1
Toon aan dat de dichtheid T gelijk is aan µe −µx (µx) (n−1)! . Opgave 15 Vergelijk het M/M/2 systeem met bedieningssnelheid µ en het M/M/1 systeem met bedieningssnelheid 2µ. Laat het gemiddeld aantal klanten dat wacht L q (2) resp. Lq (1) zijn en het aantal klanten in het systeem L(2) resp. L(1) zijn. Toon aan dat in het algemmen geldt: L q (2) < Lq (1) en L(2) > L(1).
Opgave 16 In een werkplaats staan N machines. De levensduur van elke machine is exponentieel verdeeld met verwachting
1 λ.
Een machine die kapot gaat wordt hersteld door een reparateur, waarna de
machine weer als nieuw is. De reparatietijd is ook exponentieel verdeeld met verwachting
1 µ.
Er zijn s ≤ N reparateurs beschikbaar. De chef van de werkplaats wil de kans dat het werk
volledig stil ligt (t.g.v. defecten aan alle machines) bepalen.
a. Modelleer dit probleem als wachtrijmodel; stel de balansvergelijkingen op. b. Los het probleem op voor N = 3, λ = 1, µ = 2 en s = 2. Opgave 17 Een bedrijf moet een keuze maken voor een automatiseringsplan. Er zijn twee mogelijkheden: twee vrij krachtige computers of drie minder krachtige. Een krachtige computer doet eenzelfde opdracht in tweederde van de tijd die een minder krachtige er over doet; maar een krachtige computer is anderhalf keer zo duur. Op het eerste gezicht is er dus niet zo veel verschil tussen beide keuzes. Modelleer het werk dat door de computers moet worden uitgevoerd als M/M/s wachtrij, met de computers als bedienden. Wat valt er te zeggen over de twee alternatieven als vooral gelet wordt op het werk dat op behandeling moet wachten?
105
Opgave 18 Beschouw een wachttijdsysteem van het type M/G/1 met λ = 8 en τ = 1/10. Bepaal de vier grootheden L, Lq , W en Wq voor de volgende drie gevallen van de bedieningsduur: a. negatief exponentiqle verdeling; b. constante bedieningsduur; c. Erlang bedieningsduur met k = 4.
Opgave 19 Beschouw een tandemwachtrij met twee stations waarin geen wachtruimtes zijn. Klanten komen bij het eerste station aan volgens een Poissonproces met 10 klanten per uur. Als het station bezet is, dan vertrekt de klant; als het station vrij is, dan wordt de klant bediend volgens een exponenti¨ele bedieningsduur met een verwachte bedieningsduur van 5 minuten. Als een klant klaar is bij het eerste station, dan gaat hij direct naar het tweede station als dit station vrij is. Als het tweede station bezet is, dan blijft de klant in het eerste station wachten totdat de bediening die daar aan de gang is afgelopen is; intussen kunnen er in het eerste station geen nieuwe klanten worden toegelaten. De bedieningsduur in het tweede station is eveneens exponentieel met een verwachting van 5 minuten. a. Bepaal de stationaire kansen m.b.v. de evenwichtsvergelijkingen. b. Wat is de kans dat een aankomende klant het systeem niet binnenkomt? c. Wat is het verwachte aantal klanten in het systeem? d. Wat is de verwachte tijdsduur die een klant is het systeem doorbrengt?
Opgave 20 Beschouw een productiesysteem met vier machines. Elk van de machines opereert als een ´e´enbediende systeem. Nieuwe opdrachten van buiten komen aan bij machine 1 volgens een Poisson proces met een gemiddelde van ´e´en opdracht per twee minuten. Als de bewerking van een opdracht bij machine 1 klaar is, dan gaat de opdracht voor een volgende bewerking met kans 2 en met kans
1 2
1 2
naar machine
naar machine 3. Na de bewerking op machine 2 of 3 volgt een eindbewerking
op machine 4, waarna de opdracht klaar is en het systeem verlaat. De bewerkingstijden op de verschillende machines zijn onafhankelijk van elkaar en exponentieel verdeeld met respectievelijk verwachtingswaarden van 48 seconden op machine 1, 144 seconden op machine 2, 180 seconden op machine 3 en 72 seconden op machine 4. a. Bepaal de evenwichtsverdeling van de aantallen opdrachten bij de verschillende machines. b. Bepaal de bezettingsgraad van elk van de achines. c. Bepaal de gemiddelde doorlooptijd van een nieuwe opdracht.
Opgave 21 Beschouw een gesloten netwerk met twee klanten die zich tussen twee bedienden bewegen. De bedieningstijd van een klant bij station i is exponentioneel verdeeld met parameter µ i voor i = 1, 2. Als een klant bediend is een station, dan gaat de klant met kans met kans
1 2
1 2
naar het andere station en
voegt de klant zich bij het huidige station voor een nieuwe bediening. 106
a. Specificeer de simultate kansverdeling van de aantallen klanten bij elk bedieningsstation. b. Wat is de fractie van de tijd dat bedieningsstation i bezet is voor i = 1, 2? c. Wat is een kans dat een klant aankomend bij bedieiningsstation i het station bezet aantreft, i = 1, 2?
Opgave 22 Beschouw een CPU-disk model met ´e´en centrale processor en twee disks. De processor is de centrale rekeneenheid en de disks dienen als achtergrondgeheugen. Het gesloten systeem bevat drie jobs die afwisselend de centrale computer en ´e´en van de twee disks bezoeken. Neem aan dat na afloop van een bediening bij de processor een job met kans
1 3
naar disk 1 gaat en met kans
2 3
naar disk 2. De werktijden in de verschillende stations zijn onafhankelijk van elkaar en hebben een exponenti¨ele kansverdeling met een respectievelijke verwachtingswaarde van 5 microseconde voor de centrale processor en 15 microseconde voor elk van de twee disks. a. Bepaal de normeringsconstante in de simultane kansverdeling van de aantallen jobs bij de drie stations. b. Wat is het gemiddeld aantal jobs in elk van de stations?
107
Hoofdstuk 8
Beslissingstheorie 8.1
Inleiding
Veel beslissingsproblemen bevatten elementen van onzekerheid. Deze onzekerheid kan veroorzaakt worden door gebrek aan informatie over de omstandigheden waarin we (komen te) verkeren of doordat de informatie over die omstandigheden niet deterministisch maar stochastisch is. In een dergelijke situatie zal de beslisser toch een strategie moeten bepalen. We nemen aan dat hij het resultaat van zijn strategie weet als bekend is wat de omstandigheden zijn, d.w.z. als de toestand bekend is, dan is ook het resultaat van een bepaalde strategie bekend. In de beslissingstheorie worden dit soort modellen bestudeerd en wordt nader ingegaan op criteria om tot een beslissing te komen. We onderscheiden de volgende deelgebieden: a. Beslissen zonder kansen Er is een bekend aantal toestanden en voor iedere toestand weten we wat het gevolg is van de verschillende strategie¨en die de beslisser tot zijn beschikking heeft. Er is echter geen enkele informatie over de toestand waarin we terecht zullen komen. b. Beslissen met kansen Ook hier is er een bekend aantal toestanden, maar we hebben wel enige informatie in de vorm van een kansverdeling over de mogelijke toestanden. Voor dit model zullen we tevens bekijken hoe experimenten meer informatie kunnen verschaffen over de toekomst en welke prijs een dergelijk experiment ons waard is. c. Beslissingsbomen In de twee bovenstaande modellen moet ´e´en keer uit een aantal alternatieven worden gekozen. Echter, in veel beslissingsprobemen moet een serie van beslissingen worden genomen.
Een
dergelijk probleem kan heel geschikt worden gerepresenteerd met een beslissingsboom. In een dergelijke beslissingsboom worden alle mogelijkheden op chronologische, beginnend met de allereerste beslissing, weergegeven. De eindpunten van de boom corresponderen met het resultaat van de keten die tot de laatste beslissing leidt. Ook eennmalige beslissingen kunnen met een beslissingsboom worden gemodelleerd.
108
8.2
Beslissen zonder kansen
Voorbeeld 8.1 Veronderstel dat een beleggingsmaatschappij een keuze wil maken uit drie objecten (A, B en C) om in te investeren. Het rendement van deze investeringen is afhankelijk van onbekende factoren die met vier mogelijke toestanden (1, 2, 3 en 4) zijn te beschrijven. Voor iedere combinatie van object en toestand is het rendement bekend en deze rendementen worden gegeven via een zogenaamde uitbetalingsmatrix (in miljoenen euro’s): 1
2
3
4
A
3
6
3
5
B
1
3
8
4
C
4
4
5
2
Welke strategie kan het beste worden gekozen? Algemeen Gegeven is een uitbetalingsmatrix A = (a ij ), waarvan de rijen corresponderen met de strategie¨en en de kolommen met de toestanden; welke strategie moet de beslisser kiezen om de uitbetaling te maximaliseren? Dit probleem heeft in het algemeen geen ’objectieve’ oplossing. Verschillende criteria komen in aanmerking. We zullen er vijf bespreken. a. Maximax criterium Dit criterium gaat uit van de optimistische gedachte dat we in de voor de beslisser meest gunstige situatie (de kolom van de maximale uitbetaling) terecht komen. De strategie wordt dan bepaald door: kies strategie k zdd. maxj akj = maxi [maxj aij ]. In het voorbeeld is maxi [maxj aij ] = 8 voor i = 2, dus wordt met deze regel object B gekozen. b. Maximin criterium Dit criterium gaat uit van de pessimistische gedachte dat we in de voor de beslisser meest ongunstige toestand (de kolom van de minimale uitbetaling) terecht zullen komen. Gegeven die meest ongunstige situatie zal de beslisser de strategie kiezen met de hoogste uitbetaling: kies strategie k zdd. minj akj = maxi [minj aij ]. In het voorbeeld is maxi [minj aij ] = 3 voor i = 1, dus wordt met deze regel object A gekozen. We zijn dan, ongeacht de toestand waarin we terecht komen verzekerd van een rendement van 3 miljoen euro. Bij het maximax criterium, waar object B wordt gekozen, kan het rendement 1 miljoen euro zijn als de toestand 1 blijkt te zijn. c. Hurwicz criterium Kies een combinatie van bovenstaande twee criteria door aan de meest optimistische toestand gewicht α toe te kennen en aan de meest pessimistische het gewicht 1−α. Dan luidt de beslisregel: kies strategie k z´odanig dat α·max j akj +(1−α)·minj akj = maxi {α·maxj aij +(1−α)·minj aij }. 109
Nemen we α = 0.5, dan geeft het voorbeeld: max{0.5×6+0.5×3, 0.5×8+0.5×1, 0.5×5+0.5×2} = 4.5, en zowel object A als object B kan worden gekozen. We kunnen bij dit probleem ook op eenvoudige wijze een gevoeligheidsanalyse uitvoeren door het probleem parametrisch voor alle α ∈ [0, 1] op te lossen. Voor het voorbeeld geeft dit:
max{6α + 3(1 − α), 8α + 1(1 − α), 5α + 2(1 − α)} = max{3 + 3α, 1 + 7α, 5 + 3α}. Hieruit volgt:
object A is optimaal voor 0 ≤ α ≤ 0.5; object B is optimaal voor 0.5 ≤ α ≤ 1; object C is nergens optimaal.
d. Minimax verlies criterium Zij bij = maxk akj − aij , dan kan bij ge¨ınterpreteerd worden als het verlies dat de beslisser, die voor strategie i kiest, maximaal heeft als de toestand j wordt. Kies de strategie z´odat dit
maximale verlies minimaal wordt: kies k zdd. maxj bkj = mini [maxj bij ]. Het voorbeeld heeft als verliesmatrix 1 0 5 0 B= 3 3 0 1 0 2 3 3
Het maximale verlies is minimaal (nl. 3 miljoen euro) voor de objecten B en C.
e. Gelijke kansen criterium Bij dit criterium gaan we er van uit dat alle toestanden een even grote kans hebben om voor te komen. We kiezen de strategie die de verwachte uitbetaling maximaliseert, d.w.z. P P kies k zdd. j akj = maxi [ j aij ].
Passen we deze regel op het voorbeeld toe, dan wordt object A gekozen.
8.3
Beslissen met kansen
We veronderstellen in deze paragraaf dat de getallen p j (de kans op toestand j) bekend zijn. Ook voor dit model hebben we enkele criteria. We zullen deze uitwerken voor ons voorbeeld met p1 = 0.5, p2 = 0.2, p3 = 0.1 en p4 = 0.2. a. Maximale verwachte uitbetaling Volgens dit criterium kiezen we de strategie die de verwachte uitbetaling maximaliseert: P P kies k zdd. j pj akj = maxi [ j pj aij ]. Passen we deze regel toe op Voorbeeld 8.1, dan krijgen we: 4.0 voor i = 1 P → object A wordt gekozen. j pj aij = 2.7 voor i = 2 3.7 voor i = 3 110
b. Minimaal verwacht verlies Kies de strategie die het verwacht verlies (dit staat in de matrix B) minimaliseert: P P kies k zdd. j pj bkj = mini [ j pj bij ].
Passen we deze regel toe op Voorbeeld 8.1, dan krijgen we: 1.0 voor i = 1 P → object A wordt gekozen. j pj bij = 2.3 voor i = 2 1.3 voor i = 3
Het is geen toeval dat volgens beide criteria object A wordt gekozen. Dit is altijd het geval omdat P P j pj aij + j pj bij een constante is, d.w.z. onafhankelijk van i: P P P P j pj bij = j pj [maxl alj − aij ] = j pj · maxl alj − j pj aij , d.w.z. P P P j pj bij + j pj aij = j pj · maxl alj , wat onafhankelijk is van i. Waarde van volledige informatie Veronderstel dat we de toestand kennen, zeg deze is j. Dan is het duidelijk welke strategie we kiezen: kies k zdd. akj = maxi aij . De kans op toestand j is pj , dus de verwachte uitbetaling bij volledige informatie is gelijk aan P j pj · maxl alj . Zonder volledige informatie verwachten we (volgens criterium a) een uitbetaling P van maxi [ j pj aij ]. De waarde van volledige informatie (W V I) is het verschil hiertussen: P P W V I = j pj · maxl alj − maxi [ j pj aij ]. Merk op dat W V I gelijk is aan het minimaal verwacht verlies.
Gedeeltelijke informatie en Bayesiaanse analyse Het is meestal niet mogelijk om over volledige informatie te beschikken. Daarentegen is het wel vaak mogelijk om enige informatie te verkrijgen. We zullen bespreken hoe deze benut kan worden. We maken daartoe gebruik van de zogenaamde Bayesiaanse analyse. Het principe daarvan is dat door zekere informatie de a-priori kansen p j verbeterd kunnen worden tot a-posteriori kansen. Veronderstel dat er N mogelijke toestanden T 1 , T2 , . . . , TN zijn. Neem verder aan dat we een experiment uitvoeren met als mogelijke uitkomsten U 1 , U2 , . . . , UM en dat de voorwaardelijke kansen pij = P[Ui | Tj ] bekend zijn voor alle i en j. De a-posteriori kansen q ji zijn gedefinieerd door: qji = P[Tj | Ui ]. Lemma 8.1 qji =
Ppij pj k pik pk
voor alle i en j.
Bewijs qji = P[Tj | Ui ] =
P[Tj ∩Ui ] P[Ui ]
=
P[U Pi | Tj ]·P[Tj ] k P[Tk ∩Ui ]
=
PP[Ui | Tj ]·P[Tj ] k P[Ui | Tk ]·P[Tk ]
111
=
Ppij pj . k pik pk
Nadat een experiment is uitgevoerd en we de uitkomst ervan kennen, zeg U i , kunnen we beslissen volgens het criterium van de maximale verwachte uitbetaling met in plaats van de a-priori kansen pj nu de a-posteriori kansen qji , 1 ≤ j ≤ N . Voorbeeld 8.2 Veronderstel dat een grondeigenaar een bod van 60.000 euro op een stuk grond krijgt. Dit aanbod wordt gedaan door een oliemaatschappij die bovendien 600.000 euro extra toezegt als blijkt dat er olie in de grond zit. De grondeigenaar wil deze aanbieding afwegen tegen de mogelijkheid om zelf tot exploitatie over te gaan. Dit kost hem dan een investering van 200.000 euro. Als er olie wordt aangetroffen verwacht hij een netto opbrengst van 2.000.000 euro. We maken hier het volgende model van: toestand 1: er is geen olie; beslissing A: grondeigenaar verkoopt. toestand 2: er is wel olie; beslissing B: grondeigenaar verkoopt niet. Dit geeft de uitbetalingsmatrix (alle bedragen in 1000-tallen):
60
660
−200 2.000
!
.
Veronderstel dat de a-priori kans op het vinden van olie 30% is, d.w.z. p 1 = 0.7 en p2 = 0.3. ( P 240 voor i = 1 → beslissing B: niet verkopen. j pj aij = 460 voor i = 2
Neem vervolgens aan dat de grondeigenaar een proefboring heeft laten uitvoeren voor 30.000 euro. De proefboring voorspelt dat er geen olie gevonden zal worden. Dergelijke proefboringen zijn echter niet 100% betrouwbaar. Ervaring met dit soort boringen heeft uitgewezen dat in 20% van de gevallen de proefboring voorspelde dat er geen olie was terwijl het er wel was, en dat in 40% van de gevallen dat de proefboring voorspelde ’olie’ er geen olie was. Zij Ui de uitkomst ’geen olie’ en U2 de uikomst ’olie’ van de proefboring. ! 0.6 0.2 Dan is de matrix P van de voorwaardelijke kansen: P = . 0.4 0.8 De a-posteriori kansen zijn: q11 =
0.6×0.7 0.6×0.7+0.2×0.3
= 0.87; q12 =
0.4×0.7 0.4×0.7+0.8×0.3
= 0.54;
q21 =
0.2×0.3 0.6×0.7+0.2×0.3
= 0.13; q22 =
0.8×0.3 0.4×0.7+0.8×0.3
= 0.46.
Als de uitkomst van de proef U1 (’geen olie’) is, dan beslissen we als volgt: ( P 138 voor i = 1 → beslissing A: wel verkopen. j qj1 aij = 86 voor i = 2 Als de uitkomst van de proef U2 (’olie’) is, dan beslissen we als volgt: ( P 336 voor i = 1 → beslissing B: niet verkopen. j qj2 aij = 812 voor i = 2 De kans dat de proefboring U1 oplevert is:
P[U1 | T1 ] · P[T1 ] + P[U1 | T2 ] · P[T2 ] = 0.6 × 0.7 + 0.2 × 0.3 = 0.48.
112
De verwachte opbrengst na de proefboring = 0.48 × 138 + 0.52 × 812 = 488.48.
Zonder proefboring is de verwachte opbrengst 460: de proefboring is dus 28.48 waard. De kosten waren echter hoger (30): het is daarom beter geen proefboring te laten verrichten.
Waarde gedeeltelijke informatie Zoals in bovenstaand voorbeeld is getoond, kan aan gedeeltelijke informatie eveneens een waarde worden toegekend, namelijk: waarde gedeeltelijke informatie = P P P P P P P i P[Ui ] · maxl j qji alj − maxl [ j pj alj ] = i [ k pik pk ] · maxl j qji alj − maxl [ j pj alj ].
8.4
Beslissingsbomen
Tot nu toe hebben we te maken gehad met het nemen van ´e´en beslissing. Vaak moet er echter een rij van beslissingen worden genomen. Een dergelijk probleem kan handig gemodelleerd worden via een beslissingsboom. Hierin worden de beslissingen sequentieel aangegeven. De wortel van de boom correspondeert met de start van het beslissingsproces. We onderscheiden de volgende typen knooppunten: a. Beslissingspunten (aangegeven met B): Hierin wordt uit een aantal alternatieven er ´e´en gekozen, waarna we met een pijl aangeven in welk knooppunt we vervolgens terecht komen. b. Toevalspunten (aangegeven met T): Hierin wordt geen beslissing genomen, maar het volgend punt wordt via een kansmechanisme bepaald; vanuit dit punt loopt een aantal pijlen en bij iedere pijl staat de kans dat deze pijl gekozen wordt. c. Eindpunten (aangegeven met E): Hier stopt het proces en bij een eindpunt staat de uitbetaling die we ontvangen als we in een dergelijk punt terecht komen. Door nu vanuit de eindpunten in de boom terug te lopen, en in ieder knooppunt dat we aldus bereiken de (maximale) verwachting te nemen over de daar aanwezige mogelijkheden (beslissingsof kansovergangen) is het beslissingsprobleem op te lossen. Ook de Bayesiaanse analyse is in een beslissingsboom in te bouwen: voor iedere toestand nemen we een toevalspunt en de verschillende uitkomsten geven de kansovergangen (deze kansen moeten wel afzonderlijk eerst worden berekend). We zullen voor Voorbeeld 8.2 de beslissingsboom opstellen. Bij de beslissingspunten is via een onderstreping van de beslissing aangegeven wat de optimale beslissing is.
113
Voorbeeld 8.2 (vervolg) 0.87 optie A
U1 (0.48)
108
108
T 0.13
B 0.87 optie B
458.48 wel proefboring
56
T 0.54
U2 (0.52)
56
306
B 0.54 optie B
782
optie A geen proefboring 460
240
E 60
T 0.3
E 660
B
E -200
0.7 optie B
460
T 0.3
E 2000
De optimale beslissing is dus: geen proefboring en optie B (niet verkopen).
8.5
Opgaven
Opgave 1 Pas de vijf criteria uit paragraaf 8.2 toe op de volgende uitbetalingsmatrix:
15 10
0 −6
3 14 8 1 5 14 7 19 10
114
17
2 20 −3 2 0 9
E 1970 E 30
E 630 E -230
T 0.46
0.7
E -230
T 0.46
460 B
E 630
T 0.13
optie A
E 30
E 1970
Opgave 2 Uit 4 machines wordt er ´e´en gekozen. Als machine i wordt gekozen, dan is de opbrengst K i + ci Qi met Ki , ci gegeven getallen en Qi een getal waarvan we alleen weten dat het tussen A i en Bi ligt, waarbij Ai en Bi wel bekend zijn (1 ≤ i ≤ 4). De numerieke waarden zijn: machine i
Ki
ci
Ai
Bi
1
100
5
10
20
2
40
12
0
20
3
150
3
10
30
4
90
8
0
20
Welke machine kan het best worden gekozen? Formuleer dit probleem als een beslissingsprobleem zonder kansen en pas de vijf criteria uit paragraaf 2 toe. Opgave 3 Bepaal voor de uitbetalingsmatrix uit opgave 1 met p 1 = 0.3, p2 = 0.1, p3 = 0.1, p4 = 0.2 en p5 = 0.3 het volgende: de maximale verwachte uitbetaling, het minimale verwachte verlies en de verwachte uitbetaling bij volledige informatie. Opgave 4 Een bedrijf produceert een product tegen kosten van 10 euro per kg. Het wordt verkocht voor 20 euro per kg. Op grond van technische overwegingen kan het bedrijf slechts 100, 200 of 300 kg produceren. Uit deze drie mogelijkheden moet een keuze worden gemaakt. We nemen aan dat de vraag D naar het product eveneens 100, 200 of 300 is met P[D = 100] = 0.4, P[D = 200] = P[D = 300] = 0.3. Als er meer geproduceerd wordt dan er vraag is, dan gaan de productiekosten verloren, is de vraag groter dan de productie, dan wordt nageleverd en een nalevering kost het bedrijf 45 euro per kg (de verkoopprijs blijft 20 euro). a. Bepaal een optimale productiestrategie, gebaseerd op een maximale verwachte winst. b. Wat is voor dit probleem de waarde van volledige informatie? Opgave 5 Veronderstel dat een beleggingsmaatschappij een keuze wil maken uit drie projecten (A, B en C) om in te investeren. Het rendement van deze investering is afhankelijk van de toekomstige economische situatie: deze kan gunstig (situatie 1) of ongunstig (situatie 2) zijn. De uitbetalingsmatrix is (in miljoenen euro’s): 1
2
A
50
30
B
100
-40
C
70
10
115
De a-priori kans op een gunstige economische situatie is 60%. De maatschappij overweegt om een financieel adviesbureau in te schakelen om de toekomstige economische situatie te taxeren. De reputatie van dit bureau is dat 80% van de adviezen correct zijn. Hoeveel zal de maatschappij maximaal willen betalen voor een dergelijk advies?
Opgave 6 Een oliemaatschappij bezit een stuk land waarvan beweerd wordt dat er olie in de grond zit. De maatschappij klassificeert dergelijke stukken grond in vier categorie¨en: 500.000 vaten, 200.000 vaten, 50.000 vaten en 0 vaten. De a-priori kansen op deze toestanden zijn: 0.1, 0.15, 0.25 en 0.5 resp. De maatschappij moet beslissen of het zelf wil gaan boren, de boring gaat uitbesteden of het land gaat verkopen. De verwachte opbrengst van deze mogelijkheden staat hieronder: 500.000
200.000
50.000
0
zelf boren
650.000
200.000
-25.000
-75.000
boren uitbesteden
250.000
100.000
0
0
45.000
45.000
45.000
45.000
verkoop
De maatschappij kan een bodemonderzoek laten verrichten. De kosten van een dergelijk onderzoek bedragen 12.000 en de uitkomst van zo’n onderzoek is dat het land wordt ingedeeld in een van de volgende vier klassen: klasse 1 (grote kans op olie), klasse 2 (redelijke kans op olie), klasse 3 (kleine kans op olie) en klasse 4 (nauwelijks kans op olie). Op grond van bodemonderzoek in het verleden is het verband tussen deze vier klassen en de classificatie van de oliemaatschappij als volgt vastgesteld in een frequentietabel met 100 waarnemingen: klasse
500.000
200.000
50.000
0
1
7
9
11
9
2
4
3
6
13
3
1
2
3
15
4
0
2
4
11
a. Welke beslissing zal de oliemaatschappij nemen zonder bodemonderzoek? b. Tot welke beslissing zal het bodemonderzoek leiden? c. Is het bodemonderzoek 12.000 waard?
Opgave 7 Los opgave 5 op met een beslissingsboom.
Opgave 8 Los opgave 6 op met een beslissingsboom. 116
Hoofdstuk 9
Simulatie 9.1
Inleiding
In de vorige hoofdstukken werden voor bepaalde wiskundige modellen grootheden berekend via formules of met daartoe opgestelde algoritmen. Bij simulatie worden grootheden door experimenten bepaald. Simulatie is dan ook een methode van experimenteren, d.w.z. een numerieke techniek voor het uitvoeren van experimenten aan een wiskundig model dat het gedrag van een (meestal complex) systeem beschrijft. Een dergelijk experiment wordt vele malen herhaald en op grond van de uitkomsten trachten we statistische uitspraken te doen over het algemene model. De simulatietechniek wordt gebruikt als het onmogelijk, te kostbaar of te tijdrovend is om met het echte systeem te experimenteren. Het gebruik van simulatie moet dan ook worden ontraden als er een wiskundig model bestaat dat de realiteit voldoende nauwkeurig beschrijft en dat zonder veel problemen op te lossen of te analyseren is. Helaas is de realiteit meestal veel complexer dan ieder eenvoudig wiskundig model. Gebruiken we dan toch zo’n model, dan wordt de werkelijkheid geweld aangedaan en is het niet na te gaan of de uitkomsten van het model ook gelden voor de feitelijke situatie. In zo’n geval kan simulatie uitkomst bieden. Bij simulatie moeten ook wel zekere spelregels worden opgesteld, maar deze kunnen veel verfijnder zijn zonder dat de hanteerbaarheid van de simulatietechniek in gevaar komt. De huidige stand van zaken, waarin snelle computers goedkoop heel veel berekeningen uitvoeren, maken dat de simulatietechniek steeds vaker en betrouwbaarder kunnen worden toegepast. Bij het toepassen van simulatie kunnen de volgende stadia worden onderscheiden. a. Formulering van het probleem In dit stadium wordt het probleem verbaal omschreven en zal men zich bezig houden met de vragen die beantwoord moeten worden. De doelstellingen van het experiment dienen expliciet vastgesteld te worden. b. Constructie van het wiskundig model Uitgaande van de in stap a geformuleerde doelstellingen zal men het probleem nu in een wiskundige vorm, d.w.z. met variabelen en relaties ertussen, gaan modelleren. Als het model een systeem op ´e´en vast tijdstip beschrijft, dan spreken we van een statisch simulatie model (ook wel Monte 117
Carlo simulatie genoemd). Beschrijft het model het systeem gedurende de tijd, dan hebben we te maken met een dynamisch model. We kennen discrete en continue dynamische modellen. Bij een discreet model verandert de toestand van het systeem op discrete tijdstippen (bijv. in een voorraadmodel waarin aan het begin van iedere week een bestelling wordt geplaatst). Bij een continu model kunnen de variabelen continu veranderen (bijv. de positie van een vliegtuig in de lucht). In plaats van het totale systeem als ´e´en geheel te beschrijven, beschrijft het simulatie model meestal de werking van het systeem in termen van de afzonderlijke componenten. De wisselwerking tussen de componenten wordt eveneens in het model opgenomen. Als het wiskundig model is opgesteld, dan moet worden nagegaan of het model geschikt is. Dit heet verificatie en validatie. Verificatie houdt in dat wordt nagegaan of het model doet wat de ontwerper wil dat het model doet; validatie betekent dat het model een goede voorstelling van de werkelijkheid is. c. Ontwerp van het experiment Nadat het model is geconstrueerd wordt een serie experimenten uitgevoerd om bepaalde gegevens te verkrijgen waaruit de conclusies zullen worden getrokken. Daarbij moet van tevoren over het volgende worden beslist: - Wat moet worden berekend en hoe worden de berekeningen uitgevoerd? - Hoe groot is het aantal series experimenten? - Wat is de lengte van iedere serie? Deze grootheden moeten zo worden vastgesteld dat de gewenste statistische eigenschappen (bijv. een zekere betrouwbaarheid) worden bereikt. d. Ontwikkelen van het computerprogramma Voor het uitvoeren van de experimenten dient een computerprogramma geschreven te worden. Het administreren van de opeenvolgende gebeurtenissen en het opbouwen van het daarop betrekking hebbend statistische cijfermateriaal is vaak een gecompliceerde en tijdrovende zaak. Wegens het vaak gebruiken van de simulatietechniek zijn er speciale talen ontwikkeld, waarin vaak voorkomende formuleringen door eenvoudige standaarduitdrukkingen kunnen worden voorgesteld. e. Controle op de validiteit van het model In deze fase gaat men na of het model een goede afspiegeling van de werkelijkheid is, d.w.z. of de aspecten waaraan men wil gaan experimenteren goed zijn weergegeven. Hierbij kan de moeilijkheid optreden dat men de resultaten van het model niet goed kan vergelijken met de werkelijkheid, bijv. wanneer men een model heeft van een nog te ontwerpen systeem. f. Uitvoeren van het experiment Als de voorafgaande stadia zijn doorlopen, dan kunnen de experimenten worden uitgevoerd. Meestal levert dit een zeer groot aantal getallen (data) op. Het is gewenst deze op een overzichtelijke manier te presenteren en tussentijdse berekeningen uit te voeren. g. Het analyseren van de gegevens Uit de verkregen gegevens zal een aantal grootheden, zoals gemiddelden en varianties, worden 118
berekend. Bij de verwerking van de gegevens moet er naar worden gestreefd om de varianties zo klein mogelijk te krijgen. Ook is het gewenst om statistische uitspraken te doen over de betrouwbaarheid.
9.2
Statistische verwerking van gegevens
Simulatie wordt meestal gebruikt om de waarde µ, verbonden aan een bepaald stochastisch model, te bepalen. Daartoe voeren we herhaald een experiment uit en ieder experiment resulteert in een trekking uit X, een stochastische variabele met verwachting µ. Veronderstel dat X1 , X2 , . . . , Xn de uitkomsten zijn van n experimenten, en dat ze onderling onafhankelijke en identiek verdeeld zijn, ieder met verwachting µ en variantie σ 2 . P Het gemiddelde van deze n stochastische variabelen, X n = n1 ni=1 Xi , heet het steekproefgemid-
delde. Omdat E[X n ] =
1 n
Pn
i=1
E[Xi ] = µ,
is het steekproefgemiddelde een zuivere schatter van µ. Bovendien geldt volgens de Sterke wet van de grote aantallen dat X n in waarschijnlijkheid convergeert naar µ 1 , d.w.z. voor iedere ε > 0 geldt: limn→∞ P[|X n − µ| < ε] = 1. In deze paragraaf bestuderen we het probleem hoe groot n moet zijn opdat X n een betrouwbare schatting van µ is. Aansluitend hierop willen we een interval aangeven waar µ met een bepaalde waarschijnlijkheid in ligt. Daartoe beschouwen we ook de variantie van X n : P P 2 VAR[X n ] = VAR[ n1 ni=1 Xi ] = n12 ni=1 VAR[Xi ] = σn . 1 Pn 2 2 2 i=1 (Xi − X n ) is geen zuivere schatter van σ . Dat geldt wel voor de steekproefvariantie S n , n
gedefinieerd door: 1 Pn 2 Sn2 = n−1 i=1 (Xi − X n ) . p Verder gebruiken we Sn = Sn2 als de steekproefdeviatie. Lemma 9.1 Sn2 is een zuivere schatter voor σ 2 . Bewijs
P − X n )2 = ni=1 Xi2 − n[X n ]2 , kunnen we schrijven: P 2 2 (n − 1) E[Sn2 ] = E[ ni=1 Xi2 ] − n · E[X n ] = n · E[Xi2 ] − n · E[X n ].
Omdat
Pn
i=1 (Xi
Aangezien voor iedere stochastische variabele Y geldt dat E[Y 2 ] = VAR[Y ] + (E[Y ])2 , geldt: 2
E[Xi2 ] = VAR[Xi ] + (E[Xi ])2 = σ 2 + µ2 en E[X n ] = VAR[X n ] + (E[X n ])2 =
σ2 n
+ µ2 .
Hiermee krijgen we: 2
(n − 1) E[Sn2 ] = n(σ 2 + µ2 ) − n( σn + µ2 ) = (n − 1)σ 2 , d.w.z. E[Sn2 ] = σ 2 . 1
L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.
243.
119
We willen het volgende probleem analyseren: gegeven α en ε, hoe groot moet n zijn opdat X n met een kans van minstens 1 − α niet verder dan ε van µ af ligt. De analyse is gebaseerd op de
Centrale Limietstelling. Laat Y n =
X n√ −µ , σ/ n
dan geldt volgens de Centrale Limietstelling 2 dat limn→∞ P(Y n ≤ x) = Φ(x)
voor alle x, waarbij Φ(x) de verdelingsfunctie van de N (0, 1)-verdeling is. Een probleem om
dit resultaat toe te kunnen passen is dat we σ in het algemeen niet kennen. Dit probleem kan gelukkig worden opgelost door i.p.v. σ de steekproefdeviatie S n te nemen. Volgens een resultaat dat bekend staat als de Stelling van Slutsky 3 geldt namelijk dat ook limn→∞ P(Z n ≤ x) = Φ(x)
voor alle x, met Z n =
X n −µ √ . Sn / n
Dit betekent dat voor n voldoende groot Z n bij benadering
N (0, 1)-verdeeld is. Laat z 1 α het 12 α-percentiel van de N (0, 1)-verdeling zijn, d.w.z. P[−z 1 α ≤ Z ≤ z 1 α ] = 1 − α met 2
2
2
Z een N (0, 1)-verdeelde stochastische variabele. Voor n voldoende groot weten we dus dat z 1 α Sn z 1 α Sn 1 − α ≈ P[−z 1 α ≤ Z n ≤ z 1 α ] = P[X n − 2√ ≤ µ ≤ X n + 2√ ], 2 2 n n d.w.z. dat [X n −
z 1 α Sn 2√ , Xn n
+
z 1 α Sn 2√ ] n
(9.1)
het benaderend 100(1 − α)% betrouwbaarheidsinterval is.
Bovenstaande moet niet worden ge¨ınterpreteerd als de kans dat µ in dit interval ligt. De grootheid µ is geen stochastische variabele, maar een (ons onbekend) getal dat wel of niet in het interval ligt. Elke keer als een simulatierun wordt uitgevoerd, vind je een betrouwbaarheidsinterval met in het algemeen andere grenzen. De juiste interpretatie is: als je vele malen onafhankelijk van elkaar n waarnemingen doet en telkens het bijbehorende betrouwbaarheidsinterval bepaalt, dan zal in ongeveer 100(1 − α)% van de gevallen µ in dit interval liggen. Hoe groot n gekozen moet worden opdat Z n bij benadering normaal verdeeld is, hangt sterk af van de onderliggende kansverdeling van de beschouwde stochastische variabele X. We volstaan met een pragmatische opmerking dat het aantal waarnemingen vrij groot moet zijn om een niet al te groot betrouwbaarheidsinterval te krijgen en dat bij symmetrische kansverdelingen de convergentie sneller gaat dan bij asymmetrische kansverdelingen. In de praktijk worden in een simulatierun steeds nieuwe waarnemingen gegenereerd totdat de z 1 α Sn
gewenste breedte ε van het betrouwbaarheidsinterval is bereikt, d.w.z. 2√n ≤ 12 ε, ofwel n ≥ z 1 α Sn 2 2 . Voor toenemende n zal Sn niet al te zeer veranderen (Sn2 is een zuivere schatter van 2 ε √ σ 2 ), zodat n in feite de breedte van het interval bepaalt. Om een twee keer zo klein interval te krijgen zijn dus vier keer zoveel waarnemingen nodig. Bij onze berekeningen gebruiken we X n en Sn2 . Voor een volgende n, hoeven we deze waarden niet van vooraf aan uit te rekenen. We kunnen handig gebruikmaken van de volgende recurrrente betrekkingen (ga zelf de juistheid na, zie ook Opgave 1): 2
L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.
235. 3
L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.
246.
120
X n+1 = X n +
Xn+1 − X n 1 2 en Sn+1 = (1 − )Sn2 + (n + 1)(X n+1 − X n )2 n+1 n
(9.2)
Het bovenstaande leidt tot het volgende algoritme om te bepalen wanneer we stoppen met een simulatierun. Omdat bovenstaande analyse alleen valide is voor grote waarden van n, voeren we in ieder geval een vrij groot aantal, zeg N , iteraties uit voor we nagaan of we al kunnen stoppen. In de praktijk wordt als orde van grootte voor N genomen: N ≈ 50. Algoritme 9.1 (Simulatierun) 1. a. Kies ε, α en N , doe twee waarnemingen X 1 en X2 en laat n = 2. b. Bereken X n = 21 (X1 + X2 ) en Sn2 = (X1 − X n )2 + (X2 − X n ). 2z 1 α 2 2 Sn2 : stop en neem X n als schatting voor de te bepalen grootheid. 2. Als n ≥ N en n ≥ ε Anders: ga naar stap 3.
3. a. Doe een nieuwe waarneming Xn+1 . b. Bereken X n+1 = X n +
Xn+1 −X n n+1
c. n := n + 1 en ga naar stap 2.
2 en Sn+1 = (1 − n1 )Sn2 + (n + 1)(X n+1 − X n )2 .
Opmerking 1 Stel dat de waarnemingen X1 , X2 , . . . , Xn alleen de waarden 0 of 1 kunnen ( aannemen (Bernouilli 1 met kans p data). In dat geval simuleer je in feite een onbekende kans p, waarbij X i = 0 met kans 1 − p.
We willen dus E[X] = p schatten. Omdat we weten dat VAR[X] = p(1−p), is het niet nodig om de steekproefvariantie Sn2 te gebruiken als benadering voor deze variantie. Een natuurlijke schatting voor de variantie is dan X n (1 − X n ) (ga na dat voor Bernouilli data Sn2 =
n n−1 X n (1
− X n ); zie
ook Opgave 1). Bovenstaand Algoritme 9.1 kan dan eenvoudig zo worden aangepast dat alleen X n wordt gebruikt. Het betrouwbaarheidsinterval wordt dan: [X n −
z1α √2 n
·
q
X n (1 − X n ), X n +
z1α √2 n
·
q X n (1 − X n )].
Deze formule geeft ook inzicht in simulatie om zeer kleine kansen te bepalen. Stel bijvoorbeeld
dat de te simuleren kans van de orde 10 −6 is en je wilt een 95% betrouwbaarheidsinterval (d.w.z. α = 0.025 en z 1 α = 1.96) met een intervalbreedte van 10 −8 . 2
Omdat X n ≈ 10−6 , geldt X n (1 − X n ) ≈ 10−6 , zodat moet gelden: 2 · dat ruwweg moet gelden:
√4 n
1.96 √ n
·
√
10−6 ≤ 10−8 , d.w.z.
≤ 10−5 , ofwel n ≥ 16 × 1010 = 160 miljard. Het aantal trekkingen
wordt dus gigantisch groot als je een kleine kans nauwkeurig wilt bepalen. Opmerking 2
Soms is het helaas niet mogelijk, of te kostbaar, om een groot aantal waarnemingen te doen. In dat geval is bovenstaande aanpak niet verantwoord. Dan kan Z n niet als N (0, 1)-verdeeld worden beschouwd. In dat geval is wel een zinvolle analyse mogelijk onder de volgende aanname: Aanname: X1 , X2 , . . . , Xn zijn normaal verdeeld, zeg N (µ, σ 2 ).
121
Onder deze aanname heeft Zn een zogenaamde Student-verdeling met n−1 vrijheidsgraden 4 . Deze verdeling is net als de standaard normale verdeling symmetrisch om 0. Voor n → ∞ convergeert
de Student-verdeling naar de N(0,1)-verdeling. Analoog aan onze eerdere analyse geldt dat 1 − α ≈ P[−t 1 α (n − 1) ≤ Z n ≤ t 1 α (n − 1)] = P[X n − 2
2
t 1 α (n − 1)Sn t 1 α (n − 1)Sn 2 √ ≤ µ ≤ Xn + 2 √ ], n n (9.3)
waarbij t 1 α (n − 1) een waarde is die voor een aantal waarden voor α en n uit een tabel is af te 2
lezen (Tabel III). Bijvoorbeeld als α = 0.05 en n = 15, dan is t 1 α (n − 1) = 2.145. 2
Voor uitspraken over de variantie, weer onder de aanname dat de trekkingen X i normaal verdeeld 2
zijn, gaan we als volgt te werk. Zij T n−1 = (n − 1) Sσn2 , dan heeft deze stochast een Chi-kwadraat
verdeling met (n − 1) vrijheidsgraden 5 , waarvoor geldt dat E[Tn−1 ] = n − 1 en VAR[Tn−1 ] = 2(n − 1).
M.b.v. Tabel IV kunnen bij gegeven n en α met waarschijnlijkheid 1 − α grenzen voor σ 2 worden 2
2 n bepaald, volgens: P[ χ(n−1)S 2 (n−1) ≤ σ ≤ 1α 2
2 (n−1)Sn ] χ2 1 (n−1) 1− 2 α
= 1 − α.
Als α = 0.05 en n = 15, dan is χ21 α (n − 1) = 26.119 en χ21− 1 α (n − 1) = 5.629 (zie Tabel IV). 2
9.3
2
Voorbeelden van simulaties
We zullen in deze paragraaf een drietal voorbeelden bespreken. In de eerste twee voorbeelden is simulatie niet echt nodig omdat analytische oplossingen bekend zijn, maar ze worden hier gepresenteerd om er de verschillende onderdelen van simulatie mee te illustreren. Het eerste voorbeeld betreft een statisch model, de andere twee zijn dynamisch. Voorbeeld 9.1 Veronderstel dat je moet beslissen of je het volgende spel wel of niet speelt: Gooi steeds een zuivere munt op totdat het verschil tussen het aantal keren kop en munt drie is. Iedere worp kost ´e´en euro en als het verschil tussen kop en munt drie geworden is, ontvang je 8 euro en wordt het spel gestopt. Hoe kom je met computersimulatie tot een beslissing? Een computer kan geen munt opgooien, maar wel zogenaamde aselecte getallen (zie ook de volgende paragraaf) genereren. Veronderstel dat we aselecte getallen van ´e´en cijfer gaan genereren, en dat we {0, 1, 2, 3, 4} associ¨eren met ’kop’
en {5, 6, 7, 8, 9} met ’munt’. Veronderstel dat we afspreken dat we het spel 14 keer spelen. Laat
de computer de volgende worpen genereren: 8, 1, 3, 7, 2, 7, 1, 6, 5, 5, 7, 9, 0, 0, 3, 4, 3, 5, 6, 8, 5, 8, 9, 4, 8, 0, 4, 8, 6, 5, 3, 5, 9, 2, 5, 7, 9 , 7, 2, 9, 3, 9, 8, 5, 8, 9, 2, 5, 7, 6, 0, 7, 3, 9, 8, 2, 7, 1, 0, 3, 2, 6, 2, 7, 1, 3, 7, 0, 4, 4, 1, 8, 3, 2, 1, 3, 9, 5, 9, 0, 5, 0, 3, 8, 7, 8, 5, 4, 0, 8, 3, 8, 0. 4
L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.
220. 5
L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.
217.
122
We hebben in feite 14 keer het spel gesimuleerd met de volgende resultaten (ga dit zelf na): spel
resultaat
aantal worpen
1
MKKMKMKMMMM
11
2
MKKKK
5
3
KMMMM
5
4
MMKMKKMMM
9
5
KMMKMMM
7
6
MKMKMMM
7
7
MMKMM
5
8
MMM
3
9
MKMKMMKMKKKKMKMKK
17
10
MKKKK
5
11
MKKKK
5
12
MMM
3
13
KMKKMMMMM
9
14
KKMKMKK
7
Het gaat erom informatie te verkrijgen over het gemiddeld aantal worpen nodig om een spel te spelen en op grond daarvan te beslissen of je het spel wilt spelen: als het verwachte aantal worpen minder is dan is het (gemiddeld op de lange duur) gunstig om het spel te spelen en anders niet. We kunnen nu de volgende berekeningen uitvoeren met X i = het aantal worpen in het i-de spel. Steekproefgemiddelde X 14 = (11 + 5 + · · · + 7)/14 = 7.00. 2 = [(11 − 7.00)2 + (5 − 7.00)2 + · · · (7 − 7.00)2 ]/13 = 13.54. Steekproefvariantie S14
We veronderstellen dat het aantal worpen in een spel N (µ, σ 2 )-verdeeld is. Om kansuitspraken over µ en σ te doen met een betrouwbaarheid van 95%, nemen we α = 0.05. Omdat t0.025 (13) = 2.160 (zie Tabel III) en χ20.025 (13) = 24.736 en χ20.975 (13) = 5.009 (zie Tabel IV) gelden de volgende uitspraken met kans 0.95: X 14 − t0.025 (13) ·
S14 √ 14
2 13S14 χ20.025 (13)
≤ µ ≤ X 14 + t0.025 (13) · ≤ σ2 ≤
S14 √ 14
2 13S14 χ20.975 (13)
d.w.z. 4.89 ≤ µ ≤ 9.11 d.w.z. 7.11 ≤ σ 2 ≤ 35.1
Hoewel het steekproefgemiddelde X 14 lager is dan 8 (d.w.z. dat het spel spelen gunstig is), is het niet evident welke beslissing genomen moet worden. Hiervoor zal het aantal gesimuleerde spelen veel groter moeten zijn. Voorbeeld 9.2 Beschouw een voorraadmodel met een stochastische vraag. Uit het verleden zijn de volgende gegevens over de vraag per dag en over de levertijd (in dagen) bekend: vraag frequentie levertijd frequentie
0
1
2
3
4
5
6
7
8
9
10
11
12
13
0.26
0.14
0.12
0.10
0.08
0.07
0.06
0.05
0.04
0.03
0.02
0.01
0.01
0.01
7
8
9
10
11
12
13
14
0.07
0.13
0.18
0.26
0.18
0.10
0.05
0.03
123
De verwachting en de variantie van de vraag kunnen geschat worden door: X = [26 × 0 + 14 × 2 + · · · + 1 × 13]/100 = 3.21 S 2 = [26 × (0 − 3.21)2 + 14 × (1 − 3.21)2 + · · · + 1 × (13 − 3.21)2 ]/99 = 10.29 Analoog kan L, de verwachting van de levertijd, geschat worden door: L = [7 × 7 + 13 × 8 + · · · + 3 × 14]/100 = 10.00 Verder hanteren we de volgende gegevens voor dit model, waarbij een jaar bestaat uit 250 (werk)dagen: vaste bestelkosten
: 4,50 euro
verwachte vraag per jaar
: 800 stuks
voorraadkosten per stuk per jaar
: 2,00 euro
kosten per tekort
: 1,50 euro
De theoretische optimale waarden voor dit model zijn (afgerond): bestelgrootte Q = 65 en bestelniveau r = 45. Hierbij is wel aangenomen dat de vraag tijdens de levertijd N (µ, σ 2 )verdeeld is met µ = 3.21×10.00 = 32.1 en σ 2 = 10.29×10.00 = 102.9. Dit is een wat onrealistische aanname, want uit de frequentietabel blijkt dat de vraag nogal scheef verdeeld is. Met simulatie zullen we nu deze theoretische (Q, r)-strategie volgen en het doel van de simulatie is om de bijbehorende kosten te schatten (de theoretische waarde van kosten is 155 euro). Het simulatiemodel gebruikt equidistante tijdstippen (per dag wordt het systeem bekeken) en het volgende wordt gesimuleerd: de vraag: deze wordt door aselecte getallen van twee cijfers gegenereerd: 00 − 25 (26%) voor een
vraag 0, 26 − 39 (14%) voor een vraag 1, enz. tot en met 99 (1%) voor vraag 13.
de levertijd: deze trekkingen kunnen op analoge wijze met aselecte getallen van twee cijfers gegenereerd worden: 00 − 06 (7%) voor levertijd van 7 dagen, 07 − 19 (13%) voor levertijd van 8 dagen, . . . , 97 − 99 (3%) voor een levertijd van 14 dagen.
Hiermee kunnen we de vraag, de voorraad, de tekorten en de bestellingen administreren, waaruit de jaarlijkse kosten eenvoudig kunnen worden berekend. Veronderstel dat de simulatie gedurende 1000 dagen wordt uitgevoerd (dit komt overeen met 4
jaar) en dat dit de volgende jaargemiddelden oplevert: vraag
:
780
gemiddelde voorraad
:
48
aantal bestellingen
:
13
aantal tekorten
:
9
Hiermee kunnen de totale kosten worden berekend: 48 × 2 + 9 × 1, 50 + 13 × 4, 50 = 168 euro. Laten we op deze wijze een achttal runs uitvoeren met als jaarlijkse kosten: run kosten (in euro’s)
1
2
3
4
5
6
7
8
168
143
152
171
159
162
171
154
124
Dit geeft als het steekproefgemiddelde voor de jaarlijkse kosten [168 + 143 + 152 + 171 + 159 + 162 + 171 + 154]/8 = 160 en voor de steekproefvariantie [(168 − 160) 2 + (143 − 160)2 + (152 − 160)2 + (171 − 160)2 + (159 − 160)2 + (162 − 160)2 + (171 − 160)2 + (154 − 160)2 ]/7 = 100.
Willen we met een betrouwbaarheid van 95% statistische uitspraken doen over de jaarlijkse kosten, dan moeten we kijken bij de Student-verdeling met 7 vrijheidsgraden en met t 0.025 (7) = 2.363. Dus met een kans van 95% liggen de jaarlijkse kosten tussen 160−2.363· √S8 ≈ 151.6 en 160+2.363· S √ 8
≈ 168.4 euro. Voor een 95% betrouwbare uitspraak over de variantie gebruiken we de Chi-
kwadraatverdeling met 7 vrijheidsgraden:
7S 2 χ20.025 (7)
=
700 16.013
≈ 43.7 ≤ σ 2 ≤
7S 2 χ20.975 (7)
=
700 1.690
≈ 414.
Voorbeeld 9.3 Beschouw een wachtrijmodel met ´e´en bediende. Veronderstel dat zowel de tussentijden tussen de aankomsten als de bedieningsduren een uniforme verdeling hebben op resp. {6, 8, 10, . . . , 24} en
{1, 3, 5, . . . , 19}. Voor dit model zijn geen analytische resultaten bekend.
Veronderstel dat de tussentijden en bedieningsduren met aselecte getallen van ´e´en cijfer worden gegenereerd: het aselecte getal i (0 ≤ i ≤ 9) correspondeert met een tussentijd 6 + 2i en met een bedieningsduur 1 + 2i (0 ≤ i ≤ 9); voor de tussentijden en bedieningsduren trekken we uiteraard
aparte getallen.
Bij dit model houden we steeds het volgende bij: - de relevente tijdstippen: aankomsten en vertrekken; - het aantal klanten in het systeem - het getrokken aselecte getal: als er een klant binnenkomt dan trekken we de volgende tussentijd, gaat er een klant weg dan trekken we de volgende bedieningsduur (als een klant binnenkomt op het moment dat het systeem leeg is dan trekken we zowel de tussentijd als de bedieningsduur); - het tijdstip waarop een volgende klant zal binnenkomen; - het tijdstip waarop de volgende bediening klaar zal zijn. De tabel op de volgende pagina toont een voorbeeld van mogelijke data. We zijn ge¨ınteresseerd in de wachttijden van de klanten. Zij voor de i-de klant X i en Yi de tijden die de i-de klant in het systeem resp. de wachtrij doorbrengt. De simulatie heeft het volgende opgeleverd: X1 = 13, Y1 = 0; X2 = 16, Y2 = 3; X3 = 5, Y3 = 2; X4 = 3, Y4 = 0; X5 = 19, Y5 = 0; X6 = 16, Y6 = 7; X7 = 19, Y7 = 8; X8 = 16, Y8 = 11; X9 = 11, Y9 = 8; X10 = 13, Y10 = 0; X11 = 7, Y11 = 0. Voor het steekproefgemiddelde en de steekproefvariantie van deze data geldt: Tijd in systeem: steekproefgemiddelde = Tijd in wachtrij: steekproefgemiddelde =
138 300.73 11 = 12.55 en steekproefvariantie = 10 = 30.07. 39 172.73 11 = 3.55 en steekproefvariantie = 10 = 17.27.
Ook in dit geval is het in principe weer mogelijk om statistische uitspraken op te stellen met betrouwbaarheidsintervallen. Om tot zinvolle uitspraken te komen zijn echter veel meer data nodig. 125
tijdstip
9.4
aantal
aselect(e)
volgende
volgend
klanten
getal(len)
aankomst
vertrek
0
0
9
24
n.v.t.
24
1
2,6
34
37
34
2
4
48
37
37
1
6
48
50
48
2
4
62
50
50
1
1
62
53
53
0
n.v.t.
62
n.v.t.
62
1
1,1
70
65
65
0
n.v.t.
70
n.v.t.
70
1
3,9
82
89
82
2
1
90
89
89
1
4
90
98
90
2
1
98
98
98
2
1,5
106
109
106
3
6
124
109
109
2
2
124
114
114
1
1
124
117
117
0
n.v.t.
124
n.v.t.
124
1
5,6
140
137
137
0
n.v.t.
140
n.v.t.
140
1
9,3
164
147
147
0
n.v.t.
164
n.v.t.
164
1
Aselecte getallen en aselecte trekkingen
We hebben in de vorige paragraaf gezien dat aselecte getallen een belangrijke rol spelen bij simulatie, omdat er trekkingen uit kansverdelingen mee gegenereerd kunnen worden. In deze paragraaf zullen we dit onderwerp nader uitwerken. Aselecte getallen kunnen op de volgende manier worden verkregen: a. Door een fysisch experiment uit te voeren: Bijvoorbeeld door worpen te doen met een tienkantige dobbelsteen kunnen de 10 getallen van ´e´en cijfer (0 t/m 9) worden gegenereerd. Vijftallen van 5 opeenvolgende worpen geven dan aselecte trekkingen van de getallen 00000, 00001, . . . , 99999. b. Met behulp van een algoritme: Bijvoorbeeld met de zogenaamde congruentie methode. Beschouw de congruentie xn+1 ≡ axn + c (mod m) met a < m, c < m en x0 willekeurig. Als x0 wordt gekozen, dan liggen alle getallen xn volledig vast: we spreken daarom van pseudo aselecte getallen.
Lang niet alle waarden van a, c en m zijn geschikt. Voor m wordt meestal een zeer groot getal 126
gekozen. Bekend is dat de keuze: a = 843314861, c = 453816693 en m = 2147483648 (2 31 ) zeer goed voldoet om getallen te genereren die statistisch gezien niet van echte aselecte getallen te onderscheiden zijn. We zullen nu aangeven hoe trekkingen uit een kansverdeling gegenereerd kunnen worden m.b.v. (pseudo) aselecte getallen. Dit gebeurt met de inverse transformatie methode. Het idee hierbij is om een random getal te genereren uit een uniforme verdeling en hiermee (via een formule) een random getal uit een andere verdeling te bepalen. Dat dit in principe mogelijk is, is gebaseerd op het volgende lemma. Lemma 9.2 Zij U een stochastische variabele die uniform verdeeld is op [0, 1]. Dan geldt voor iedere verdelingsfunctie F dat de stochastische variabele X, gedefinieerd door X = F −1 (U ), de functie F als verdelingsfunctie heeft. Bewijs P[X ≤ x] = P[F −1 (U ) ≤ x] = P[U ≤ F (x)] = F (x), de laatste gelijkheid omdat U uniform verdeeld is.
Dit lemma kan nu als volgt worden toegepast om een aselecte trekking te genereren uit een kansverdeling met een bekende verdelingsfunctie F (x): 1. Trek een u uit de uniforme verdeling m.b.v. (pseudo) aselecte getallen. 2. x, bepaald via x = F −1 (u), is een aselecte trekking van de X met verdelingsfunctie F . In sommige gevallen kan F expliciet worden bepaald of via een eenvoudig algoritme. We geven enkele voorbeelden. Uniforme verdeling Veronderstel dat X uniform verdeeld is op [a, b]. Dan kan een random getal u ∈ [0, 1] met een
trekking van X worden geassocieerd d.m.v. x = a + (b − a)u. Exponenti¨ele verdeling
Veronderstel dat X een exponenti¨ele verdeling heeft met parameter λ. Dan is de verdelingsfunctie F (x) = 1 − e−λx . Nu geldt:
u = F (x) ⇔ e−λx = 1 − u ⇔ −λx = ln(1 − u) ⇔ x = − λ1 ln(1 − u).
Omdat 1 − u ook een aselecte trekking is uit [0, 1], mogen we 1 − u wel vervangen door u, d.w.z.
de trekking geeft: x = − λ1 ln(u).
M.b.v. het bovenstaande kunnen we ook trekkingen uit een Erlang verdeling genereren. Zij X Erlang-verdeeld met parameters (λ, k), d.w.z. X = X 1 + X2 + · · · + Xk met Xi een exponenti¨ele verdeling met parameter λ, 1 ≤ i ≤ k. Het volgende algoritme geeft een trekking van X.
1. Genereer k random getallen ui ∈ [0, 1], 1 ≤ i ≤ k.
2. Laat xi = − λ1 ln(ui ), 1 ≤ i ≤ k. P 3. x = ki=1 xi .
127
Ook een trekking uit een Weilbull verdeling gaat op analoge wijze. Zij X Weilbull verdeeld, dan α
is de verdelingsfunctie F (x) = 1 − e(−λx) (dus voor α = 1 is dit de exponenti¨ele verdeling). Nu geldt:
α
u = F (x) ⇔ e(−λx) = 1 − u ⇔ (λx)α = −ln(1 − u) ⇔ x = λ1 [−ln(1 − u)]1/α . We mogen 1 − u weer vervangen door u, d.w.z. de trekking geeft: x = λ1 [−ln(u)]1/α . Poisson proces Veronderstel dat we de gebeurtenissen van een Poisson proces met parameter λ willen genereren gedurende het tijdsinterval [0, T ]. Hiervoor maken we gebruik van de eigenschap dat de tussentijden exponenieel verdeeld zijn (met dezelfde parameter λ). We kunnen dus random trekkingen ui ∈ [0, 1] nemen en hieruit tussentijden t i = − λ1 ln(ui ) afleiden. Als we het proces gedurende
[0, T ] willen genereren, kunnen we dat doen met het volgende algoritme, waarin i het aantal gebeurtenissen is. 1. t0 = 0; i = 0. 2. Genereer een random u ∈ [0, 1]. 3. ti+1 = ti − λ1 ln(u).
4. ti+1 > T : stop.
Anders: i := i + 1; ga naar stap 2. Normale verdeling Veronderstel dat X N (µ, σ 2 )-verdeeld is. In dit geval is de vergelijking u = F (x) niet direct om te zetten in een expliciete formule voor x. Wel geldt de volgende afleiding die gebaseerd is op de centrale limietstelling. Zij U1 , U2 , . . . , Un onderling onafhankelijke trekkingen uit de homogene verdeling op [0, 1] en definieer Tn door: Tn = U1 + U2 · · · + Un . Dan geldt: E[Tn ] = Tn − n 2
Zij Zn = √
n/12
n 2
en VAR[Tn ] =
n 12 .
. Volgens de Centrale limietstelling is Z n asymptotisch N (0, 1)-verdeeld. In de
praktijk kan Zn al voor redelijk kleine waarden van n als N (0, 1)-verdeeld beschouwd worden. We nemen daarom maar aan dat Z12 N (0, 1)-verdeeld is. Merk op dat Z12 = T12 − 6. X−µ σ
is eveneens N (0, 1)-verdeeld. Z12 kan dus worden opgevat als een waarneming van
X−µ σ .
Zij u1 , u2 , . . . , u12 onafhankelijke trekkingen uit de homogene verdeling op [0, 1], dan kan x, met P x = µ + σ[ 12 i=1 ui − 6] worden opgevat als een waarneming van de N (µ, σ)-verdeelde X. Er bestaan snellere methoden om random trekkingen te doen uit de normale verdeling 6 .
Het bovenstaande geeft ook trekkingen uit een lognormale verdeling. X is lognormaal verdeeld met parameters µ en σ als de stochast Y = ln(X) N (µ, σ 2 )-verdeeld is. Omdat Y = ln(X) ⇔ X = eY , kan een trekking uit de lognormale verdeling als volgt worden verkregen.
1. Genereer een random trekking y uit de normale verdeling met parameters µ en σ. 2. Neem x = ey . 6
Zie bijvoorbeeld J.H. Ahrends and U. Dieter, ”An alias method for sampling from the normal distribution”,
Computing 42 (1982) 159-170.
128
Discrete verdeling Hetzelfde principe kan ook worden toegepast op een discrete verdeling. In feite hebben we dit reeds gedaan in de voorbeelden 9.2 en 9.3. We zullen nog een voorbeeld geven. Veronderstel dat X = 0, 1, 2, 3 met kans 0.1, 0.3, 0.4 en 0.2 respectievelijk. Dan geldt voor de verdelingsfunctie F (x): 0.1 0 ≤ x < 1 0.4 1 ≤ x < 2 F (x) = 0.8 2 ≤ x < 3 1.0 x = 3
Zij u een aselect getal uit [0, 1], dan hoort hierbij de volgende x: als 0.0 ≤ u ≤ 0.1 → x = 0; als 0.1 < u ≤ 0.4 → x = 1;
als 0.4 < u ≤ 0.8 → x = 2; als 0.8 < u ≤ 1.0 → x = 3. Veronderstel dat X ∈ {1, 2, . . . , n}, elk met kans
bij u de waarde x = i ⇔
i−1 n
≤u<
i n,
1 n.
Zij u een aselect getal uit [0, 1), dan hoort
i = 1, 2, . . . , n, d.w.z. x = bnuc + 1.
Poisson verdeling Voor een stochastische variabele X met een Poisson verdeling met parameter λ geldt: pn := P[X = n] =
λn −λ ,n n! e
= 0, 1, . . . .
Het genereren van trekkingen uit de uniforme verdeling op [0, 1] is gebaseerd op het (eenvoudig te controleren) feit dat p0 = e−λ en pn+1 =
λ n+1 pn , n
= 0, 1, . . . .
We trekken eerst een willekeurig getal u ∈ [0, 1]. Als u < e −λ = p0 , dan associ¨eren we deze
trekking met x = 0, die immers een kans p 0 heeft. Als p0 ≤ u < p0 + p1 = p0 + λp0 , dan associ¨eren we deze trekking met x = 1, etc. Dit geeft het volgende algoritme.
1. Trek random een u ∈ [0, 1]; n = 0; p = e −λ ; F = p. 2. Als u < F : neem x = n en stop; Anders: p :=
λ n+1 p,
F := F + p; n := n + 1; en herhaal stap 2.
Omdat de verwachting van een Poisson verdeelde stochast de waarde λ heeft, is de verwachting van het aantal stappen van bovenstaand algoritme λ + 1. Geometrische verdeling Voor een stochastische variabele X met een geometrische verdeling met parameter p geldt: P[X = n] = pq n−1 , n = 1, 2, . . . , waarbij 0 < p < 1 en q = 1 − p. De bijbehorende interpretatie is dat X de poging met het eerste succes is, als iedere poging Pn succeskans p heeft. Aangezien i=1 P[X = i] = 1− de kans op geen succes in de eerste n
pogingen = 1 − q n , n ≥ 1.
We kunnen nu een trekking uit X genereren uit een trekking u ∈ [0, 1] door 1 − q n−1 ≤ u < 1 − q n te associ¨eren met x = n, immers:
129
de kans hierop is (1 − q n ) − (1 − q n−1 ) = q n−1 − q n = q n−1 (1 − q) = pq n−1 = P[X = n]. Omdat 1 − q n−1 ≤ U < 1 − q n
⇔
q n < 1 − U ≤ q n−1 geldt dat X = min{n | q n < 1 − U }.
Aangezien 1 − U ook uniform verdeeld is op [0, 1], kunnen we voor x ook nemen:
x = min{n | q n < u}. Vervolgens merken we op dat de logaritme een monotone functie is, zodat tevens geldt:
x = min{n | nlog(q) < log(u)}, ofwel x = min{n | n >
log(u) log(q) },
m.a.w. x = b log(u) log(q) c + 1.
Binomiale verdeling Voor een stochastische variabele X met een binomiale verdeling met parameters (n, p) geldt: ! n i n−i P[X = i] = p q , 0 ≤ i ≤ n, waarbij 0 < p < 1 en q = 1 − p. i De bijbehorende interpretatie is dat X het aantal successen uit n pogingen is, als iedere poging succeskans p heeft. In dit geval gebruiken we weer, net zoals bij de Poisson verdeling een recurrente relatie, namelijk dat P[x = i + 1] = P[X = 0] =
qn.
n−i i+1
·
p q
· P[X = i], tezamen met de beginconditie dat
Dit geeft het volgende algoritme.
1. Trek random een u ∈ [0, 1]; i = 0; a = pq ; b = q n ; F = b. 2. Als u < F : neem x = i en stop; Anders: b :=
n−i i+1
· a · b, F := F + b; i := i + 1; en herhaal stap 2.
Omdat de verwachting van de binomiale verdeling de waarde np heeft, is de verwachting van het aantal stappen van dit algoritme np + 1. Als p >
1 2,
dan kunnen we het beter iets anders doen. Dan genereren we op analoge wijze
een binomiaal verdeelde veriabele bij de parameters (n, q); deze heeft de interpretatie van het aantal mislukkingen uit n trekkingen en de verwachting van het aantal benodigde itraties van het algoritme van nq + 1 < np + 1 stappen. Tenslotte nemen we voor een trekking uit de oorspronkelijke X de waarde n minus de uitkomst van het algoritme.
De acceptatie-verwerping methode Stel dat we een effici¨ente methode hebben om een trekking van een stochastische variabele Y te genereren met massa {gi , i ∈ I}. Dit kunnen we gebruiken voor een trekking van een stochastische
variabele X met massa {fi , i ∈ I} via het volgende algoritme. 1. Bepaal c z´odat
fi gi
≤ c voor alle i.
2. Genereer een trekking van Y , zeg y = i. 3. Genereer een random u ∈ [0, 1]. 4. Als u ≤
fi c·gi :
accepteer i als trekking voor X.
Anders: ga naar stap 2.
Stelling 9.1 Bovenstaand algoritme geeft een aselecte trekking uit de kansverdeling van X.
130
Bewijs P[X = i] = P[Y = i | acceptatie] = =
fi c·P[acceptatie ]
P[Y = i en acceptatie ] P[acceptatie ]
f
=
P[Y = i]·P[U ≤ c·gi ] P[acceptatie ]
i
f
=
gi · c·gi
i
P[acceptatie ]
voor alle i.
Sommeer bovenstaande gelijkheid over alle i : 1 = waaruit volgt dat P[acceptatie] =
1 c.
P∞
i=1
P[X = i] =
1 , c·P[acceptatie ]
Dit geeft P[X = i] = fi voor alle i, zodat de aan X
toegekende waarde inderdaad overeenkomt met de gewenste massa. P[acceptatie] = 1c , d.w.z. dat de toekenning van een waarde voor X te beschouwen is als trekkingen uit een geometrische verdeling met p = 1c . De geometrische verdeling heeft
1 p
= c als verwacht-
ing, dus het aantal te verwachten stappen van het algoritme is c: het algoritme werkt sneller naarmate c kleiner is, d.w.z. naarmate {g i , i ∈ I} meer lijkt op {fi , i ∈ I}, wat logisch is.
Tenslotte merken we op dat deze acceptatie-verwerping methode ook kan worden toegepast op continue stochastische variabelen 7 . Voorbeeld 9.4
Veronderstel dat we een trekking willen doen met waarden 1, 2, . . . , 10 met kansen 0.13, 0.10, 0.11. 0.06, 0.12, 0.11. 0.08, 0.09, 0.14, 0.06, en dat we daarvoor de uniforme verdeling op {0, 1, . . . , 10} willen gebruiken, dus g i =
1 10 , 1
≤ i ≤ 10. In dit model kunnen we c = 1.4 nemen
en kan het volgende algoritme worden gebruikt.
1. Genereer een random u1 ∈ [0, 1] en laat y = b10u1 c + 1. 2. Genereer een random u2 ∈ [0, 1].
3. Als u2 ≤ c = 1.4: accepteer y als trekking voor X. Anders: ga naar stap 1.
9.5
Variantie reducerende technieken
Een experiment levert een eindig aantal waarnemingen op. Dit zijn realisaties van een stochastische variabele met verwachting µ en variantie σ 2 . Uit de waarnemingen X1 , X2 , . . . , Xn worden µ en σ 2 als volgt benaderd: P 1. De verwachting µ: het steekproefgemiddelde X n = ni=1 Xi is hiervoor een zuivere schatter. 1 Pn 2 2. De variantie σ 2 : de steekproefvariantie S 2 = n−1 i=1 (Xi − X n ) is hiervoor een zuivere schatter.
Het steekproefgemiddelde X n is, zeker als n niet erg groot is, vaak onbetrouwbaar als benadering voor µ. De variantie van X n is dan nog vaak vrij groot zijn (we hebben gezien dat VAR[X n ] =
σ2 n ).
Als we nu op de een of andere manier een ander steekproefgemiddelde kunnen vinden, maar met een kleinere variantie, dan verdient dat de voorkeur. Hiervoor zijn diverse technieken beschikbaar, waarvan we er enkele zullen bespreken, zonder echt nieuwe waarnemingen te doen. 7
H.C. Tijms: ”Operationele analyse: een inleiding in methoden en methoden”, Epsilon Uitgaven, Utrecht, 2002
pp. 435- 437.
131
Stratificatie Soms hebben de steekproeven de ’tekortkoming’ dat ze onvoldoende representatief zijn, d.w.z. dat bepaalde gebieden van de mogelijke uitkomsten onder- of oververtegenwoordigd zijn. Bij stratificatie gaan we op voorhand uit van een aantal stroken, zeg k, waarin de waarnemingen terecht komen. We nemen aan dat we van iedere strook (’stratum’) de kans weten dat een willekeurige waarneming in deze strook terecht komt, zeg p i is de kans dat een willekeurige waarneming in strook i terecht komt. Als er in totaal n waarnemingen worden gegenereerd, dan moeten er eigenlijk npi uit strook i komen. We kiezen nu natuurlijke getallen n i (bij voorkeur ligt ni enigszins in de buurt van npi en zorgen er voor dat ni waarnemingen in strook i vallen, i = 1, 2, . . . , k. Als strook i hoort bij random trekkingen uit het deelinterval [a i , bi ] van [0, 1], dan kan u ∈ [0, 1] worden vervangen door u 0 = ai + (bi − ai )u ∈ [ai , bi ]. Nadat we aldus ni waarnemingen hebben uit strook i, geven we deze het gewicht w i =
npi ni
voor de mate waarin de
waarnemingen in de stroken vertegenwoordigd zijn (gewicht 1 is ’eerlijk’, kleiner dan 1 hoort bij overtegenwoordiging en groter dan 1 bij ondervertegenwoordiging). Intu¨ıtief is duidelijk dat we op deze manier eerlijker te werk gaan. We kunnen inderdaad aantonen dat deze aanpak dezelfde verwachting van het steekproefgemiddelde oplevert en een niet-grotere variantie. Om dit in te zien moeten we ons realiseren dat de gestratificeerde waarnemingen conditionele kansen zijn, waarbij de conditie is dat er uit iedere strook een ’eerlijk’ aantal waarnemingen komt. Noem deze conditie Y , dan geldt bovenstaande bewering op grond van de eigenschappen van conditionele verwachting en variantie 8 : E[X] = E[E(X | Y )] en VAR[X] = E[VAR(X | Y )] + VAR[E(X | Y )] ≥ VAR[E(X | Y )]. De verwachting blijft dus hetzelfde, maar de variantie zal in het algemeen kleiner worden. In algoritmische vorm luidt de stratificatietechniek: 1. Verdeel het gebied waar de n waarnemingen in terecht kunnen komen in een aantal stroken, zeg k. 2. Bepaal pi = de kans dat een willekeurige waarneming in strook i terechtkomt, kies natuurlijke getallen ni (bij voorkeur ni ≈ npi ) en laat wi =
npi ni ,
i = 1, 2, . . . , k.
3. Genereer de waarnemingen en zorg er voor dat er n i uit strook i komen, i = 1, 2, . . . , k. P 4. X n = n1 ki=1 wi · (de som van de waarnemingen uit strook i).
Voorbeeld 9.5
Beschouw de exponenti¨ele verdeling met parameter λ = 1. Het is bekend dat de verwachting hiervan gelijk aan 1 is, maar veronderstel dat we deze verwachting met simulatie willen benaderen. Zoals in de vorige paragraaf is uitgewerkt kunnen trekkingen uit deze verdeling worden gegenereerd m.b.v. aselecte trekkingen uit [0, 1]. Beschouw een steekproef zonder stratificatie van 10 getallen zoals hieronder is getabelleerd. 8
S.M. Ross, ”A course in Simulation”, Macmillan, 1991 (chapter 2).
132
i
ui
1
0.495
2
xi = −ln(1 − ui )
xi = −ln(1 − ui )
i
ui
0.684
6
0.698
0.335
0.408
7
0.013
0.014
3
0.791
1.568
8
0.761
1.433
4
0.469
0.623
9
0.290
0.343
5
0.279
0.328
10
0.693
1.183
1.199
Deze steekproef heeft als gemiddelde 0.799 en de steekproefvariantie is 0.286. Vervolgens zullen we de stratificatie-techniek toepassen op dit voorbeeld. Als stroken nemen we: 0 ≤ x < 1, 1 ≤ x < 3 en x ≥ 3, wat overeenkomt met p 1 = 0.64, p2 = 0.32 en p3 = 0.04. Neem nu n1 = 4, n2 = 4 en n3 = 2, zodat w1 =
6.4 4
= 1.6, w2 =
3.2 4
= 0.8 en w3 =
0.4 2
= 0.2.
In onderstaande tabel staat het schema voor de berekeningen. strook
i
ui
u0i
x0i = −ln(1 − u0i )
strook
i
ui
u0i
1
1
0.495
0.317
1
2
0.335
1
3
1 2
x0i = −ln(1 − u0i )
0.381
2
6
0.698
0.864
0.215
0.242
2
7
0.013
0.644
1.033
0.791
0.507
1.568
2
8
0.761
0.884
2.154
4
0.469
0.300
0.357
3
9
0.290
0.972
3.561
5
0.279
0.729
1.306
3
10
0.693
0.988
4.398
1.995
Dit geeft voor het gestratificeerde steekproefgemiddelde: [1.6(0.381 + 0.242 + 0.707 + 0.357) + 0.8(1.306 + 1.995 + 1.033 + 2.154) + 0.2(3.561 + 4.398)]/10 = 0.948.
Complementaire aselecte getallen Een tweede manier om te variantie te reduceren is die van de complementaire aselecte getallen. Als een getal u ∈ [0, 1] wordt getrokken, dan beschouwen we behalve u ook u 0 = 1 − u. Dit geeft
een rij waarnemingen {Xi } en een rij {Xi0 }. Intu¨ıtief is ook nu weer duidelijk dat we op deze P P 0 wijze corrigeren voor ’oneerlijke’ trekkingen. Laat X n = ni=1 Xi en X n = ni=1 Xi0 , dan nemen
we in dit geval voor het steekproefgemiddelde: X ∗ = 0
VAR[X n ] = VAR[X n ] = E[X ∗ ] =
σ2 n ,
0
0
X n +X n . 2
0
Omdat E[X n ] = E[X n ] = µ en
en omdat X n en X n negatief gecorreleerd zijn geldt:
0
E[X n ]+E[X n ] 2
= µ; 0
0
0
VAR[X ∗ ] = 41 [VAR[X n ] + VAR[X n ] + 2cov(X n , X n )] ≤ 14 {VAR[X n ] + VAR[X n ]} =
σ2 2n .
Voorbeeld 9.5 (vervolg) Passen we de techniek van de complementaire random getallen toe op het voorbeeld, dan krijgen we:
133
i
ui
1
0.495
2
xi = −ln(1 − ui )
u0i
x0i = −ln(1 − u0i )
0.684
0.505
0.702
0.335
0.408
0.665
1.092
3
0.791
1.568
0.209
0.234
4
0.469
0.633
0.531
0.756
5
0.279
0.328
0.721
1.275
6
0.698
1.199
0.302
0.359
7
0.013
0.014
0.978
4.305
8
0.761
1.433
0.239
0.272
9
0.290
0.343
0.710
1.236
10
0.693
1.183
0.307
0.366
0
X n = 0.799; X n = 1.060, dus X ∗ = (0.779 + 1.060)/2 = 0.920.
9.6
Opgaven
Opgave 1 Toon aan dat voor n ≥ 2 geldt: X n+1 = X n +
Xn+1 −X n n+1
2 en Sn+1 = (1 − n1 )Sn2 + (n + 1)(X n+1 − X n )2 .
Opgave 2 Veronderstel dat de waarnemingen X 1 , X2 , · · · ∈ {0, 1}. Toon dan aan dat voor n ≥ 1 geldt: 2 Sn+1 =
n+1 n X n+1 (1
− X n+1 ).
Opgave 3 Zij U1 , U2 , . . . , Un onderling onafhankelijke trekkingen uit de homogene verdeling op [0, 1] en definieer Tn door: Tn = U1 + U2 + · · · + Un . Toon aan dat geldt: E[Tn ] =
n 2
en VAR[Tn ] =
n 12 .
Opgave 4 Toon analytisch aan (m.b.v. Markov ketens) dat het verwachte aantal worpen, voordat het spel van Voorbeeld 9.1 uit is, gelijk is aan 9.
Opgave 5 Leid formules af om m.b.v. aselecte getallen uit [0, 1] trekkingen te generenen uit verdelingen met de volgende dichtheden f (x): ( 2x 0 ≤ x ≤ 1 a. f (x) = 0 elders ( 1 20 10 ≤ x ≤ 30 b. f (x) = 0 elders 134
c. f (x) =
d. f (x) =
(
(x−1)3 4
1≤x≤3
0 elders 1+x −1≤x≤0
1−x 0
0≤x≤1
elders
Opgave 6 Beschouw de kansverdeling met dichtheid f (x) =
(
1 x2
0
x≥1
x<1
, en met verdelingsfunctie F (x).
a. Gevraagd wordt om een simulatie experiment te ontwerpen om de verwachting van deze kansverdeling te schatten. Voer daartoe het volgende uit: (i) gebruik de ’gewone’ simulatietechniek met de volgende 10 aselecte getallen uit [0, 1]: 0.096, 0.569, 0.665, 0.764, 0.842, 0.492, 0.224, 0.950, 0.610 en 0.145. (ii) Pas de stratificatietechniek toe op de stroken met 0 ≤ F (x) < 0.6, 0.6 ≤ F (x) < 0.9 en 0.9 ≤ F (x) ≤ 1, met respectievelijk 3, 3 en 4 waarnemingen.
(iii) Gebruik de methode van de complementaire aselecte getallen. b. Bepaal de verwachting van deze kansverdeling ook analytisch.
Opgave 7 Gebruik de volgende 12 aselecte getallen uit [0, 1] om een trekking uit een normale verdeling met µ = 100 en σ = 20 te genereren: 0.485, 0.304, 0.154, 0.707, 0.987, 0.654, 0.996, 0.406, 0.357, 0.612, 0.608 en 40.916.
Opgave 8 Beschouw een voorraadmodel met de volgende gegevens: - de vraag per maand is N (100, 20)-verdeeld; - de voorraadkosten zijn 0,15 euro per eenheid per maand; - de vaste bestelkosten zijn 20 euro per bestelling; - per tekort zijn er kosten van 2,50 euro; - de levertijd bedraagt 1 maand. Onderzoek de volgende twee strategie¨en: a. bestel iedere maand 100 eenheden; b. bestel eens per 4 maanden 400 eenheden. Ga met simulatie na wat de kosten van beide strategie¨en zijn over een periode van 1 jaar; neem aan dat beginvoorraad 100 stuks bedraagt. Voer voor beide strategie¨en vier runs uit, gebaseerd op de aselecte getallen van Tabel VI.
135
Opgave 9 Beschouw een wachttijdmodel met ´e´en bediende. Veronderstel dat er Poissoninput is met λ = 0.2 minuten en dat de bedieningsduur exponentieel verdeeld is met parameter µ = 0.25 minuten. Het systeem wordt gedurende 60 minuten geobserveerd. Maak voor het genereren van aselecte getallen gebruik van Tabel V. a. Bereken analytisch de grootheden L, L q , W, Wq en ρ. b. Bepaal met de ’gewone’ simulatietechniek L, L q , W, Wq en ρ. (veronderstel dat op tijdstip 0 de eerste klant arriveert). c. Beschouw nu hetzelfde model, maar met twee bedienden. Beantwoord de vragen uit de onderdelen a en b. d. Beschouw vervolgens het model met weer ´e´en bediende, maar neem aan dat het systeem slechts twee klanten kan bevatten. Beantwoord eveneens de vragen uit de onderdelen a en b.
Opgave 10 Beschouw het volgende onderhoudsprobleem. Een machine bevat vier identieke onderdelen die stuk kunnen gaan. Als een onderdeel stuk is, dan werkt de machine niet meer. Vergelijk de volgende strategie¨en: a. als een onderdeel kapot gaat, dan vervangen we dit onderdeel; b. als een onderdeel kapot gaat, dan vervangen we alle vier onderdelen. Gebruik hierbij de volgende gegevens: (i) de tijd voordat een onderdeel kapot gaat heeft een uniforme verdeling op [1000, 2000] (de eenheid van tijd is 1 uur); (ii) als ´e´en onderdeel vervangen moet worden is de machine een uur uitgeschakeld; als alle onderdelen vervangen worden twee uur; (iii) ieder uur dat de machine is uitgeschakeld betekent een verlies van 100 euro; (iv) vervanging van een onderdeel kost 20 euro; (v) als aslecte getallen uit [0, 1] kunnen worden genomen: 0.096, 0.569, 0.665, 0.764, 0.842, 0.492, 0.224, 0.950, 0.610, 0.145, 0.484, 0.552, 0.350, 0.590, 0.430, 0.041, 0.802, 0.471, 0.255, 0.799, 0.695, 0.422, 0.400, 0.542 en 0.368. Startend met vier nieuwe onderdelen, simuleer beide strategie¨en gedurende 10.000 uur.
136
Hoofdstuk 10
Dynamische programmering 10.1
Inleiding
Dynamische programmering is een mathematische techniek die vaak met succes toegepast kan worden bij problemen die zich ’in de tijd’ afspelen, d.w.z. die een dynamisch karakter hebben. We hebben daar reeds voorbeelden van gezien in het hoofdstuk over voorraadtheorie bij de periodieke modellen. Een algemene karakteristiek van dynamische programmering is dat voor oplossen van het probleem een recursieve formulering wordt opgesteld. Het vinden van een dergelijke recursieve formulering vereist een zeker inzicht in het gestelde probleem en een zekere vaardigheid om de recursie op te stellen. Vaak betreft het ook het kunstmatig aanbrengen van een dynamisch karakter in een op het eerste gezicht niet-dynamisch probleem. Door een aantal voorbeelden uit te werken zullen we dit inzicht en deze vaardigheid verder ontwikkelen. Voorbeeld 10.1 Artsen zonder grenzen beschikt over vijf medische teams die uitgezonden kunnen worden naar drie Derde Wereld landen. De organisatie beoogt de totale effectiviteit van deze vijf teams te optimaliseren, waarbij voor deze effectiviteit de toename van de totale leeftijd, d.w.z. de gemiddelde leeftijd maal het aantal inwoners, wordt genomen. De effectiviteit van de verschillende toewijzingen volgt uit onderstaande tabel. effectiviteit in 1000-tallen aantal teams
land 1
land 2
land 3
0
0
0
0
1
45
20
50
2
70
45
70
3
90
75
80
4
105
110
100
5
120
150
130
137
Voorbeeld 10.2 Een ruimtevaartorganisatie bereidt een ruimtevlucht voor. Er zijn drie basis-bemanningen die ieder eventueel uitgebreid kunnen worden met topastronauten. Er zijn twee topastronauten beschikbaar. De kans dat een vlucht met een bepaalde bemanning mislukt is af te leiden uit de volgende tabel. aantal toegevoegde
kans op een mislukking
topastronauten
team 1
team 2
team 3
0
0.40
0.60
0.80
1
0.20
0.40
0.50
2
0.15
0.20
0.30
De ruimtevlucht is een succes als minstens ´e´en team zijn doel bereikt. Als alleen de drie basisbemanningen worden uitgezonden dan is de kans op succes 1 − (0.40 × 0.60 × 0.80) = 0.808. Aan
welke basis-bemanningen kunnen de twee topastronauten het beste worden toegevoegd om de kans op succes te maximaliseren? Voorbeeld 10.3
Een beleggingsmaatschappij wil 10 miljoen euro gaan investeren in drie grote lange-termijn projecten. Daarnaast heeft de maatschappij de mogelijkheid om korte termijn investeringen te doen (project 4). Gegevens over kosten en rendement van deze investeringen volgen uit onderstaande tabel (de bedragen zijn in miljoenen euro’s). investerings-
project 1
project 2
project 3
project 4
niveau
kosten
opbrengst
kosten
opbrengst
kosten
opbrengst
kosten
opbrengst
0
0
0
0
0
0
0
0
0
1
1
2
2
2
4
3
6
3
3
8
4 5
5
13
4
9
4
8
5
13
5
10
6
6
17
6
12
7
18
7
14
7
7
18
8
8
19
8
18
8
21
8
16
9
9
21
9
19
9
22
9
18
10
23
10
24
10
20
10
Welk investeringsprogramma levert de hoogste winst (d.w.z. opbrengst - kosten) op? Voorbeeld 10.4 Een bedrijf moet ´e´en exemplaar van een bepaald product maken met een uitzonderlijke hoge kwaliteit. Daartoe worden productieruns gedraaid. Na afloop van een productierun kan worden gecontroleerd of de run een exemplaar van de gewenste kwaliteit heeft opgeleverd.
138
De bedrijfsleider schat de kans dat een willekeurig exemplaar uit een productierun de gewenste kwaliteit oplevert op 50%. Als hij besluit om in een productierun n exemplaren te maken zijn de kosten van deze productierun 300 + 100n euro. Er kunnen maximaal 3 runs worden gedraaid. Als na afloop van de derde run nog geen exemplaar van de gewenste kwaliteit is geproduceerd zijn er boetekosten van 1600 euro. Welke productiestrategie minimaliseert de totale verwachte kosten?
Voorbeeld 10.5 Iemand speelt een spel waarbij hij zijn inzet o`fwel kwijtraakt o`fwel verdubbelt. De kans op kwijtraken is
1 3
en op verdubbelen 32 . Hij start met 3 fiches, speelt 3 keer en wil uitkomen op 5
fiches. Welke strategie maximaliseert de kans om op 5 fiches uit te komen en hoe groot is deze kans?
10.2
Terminologie
Problemen die met dynamische programmering opgelost kunnen worden hebben een aantal gemeenschappelijke eigenschappen. Deze worden hieronder besproken. Meerstapsbeslissingen Bij dynamische programmering wordt in een bepaald tijdsbestek sequentieel een aantal beslissingen genomen. Aldus wordt het probleem opgesplitst in een aantal stappen en per stap wordt een beslissing genomen. Toestanden In iedere stap bevindt het systeem zich in een bepaalde toestand. Deze toestanden moeten vooraf worden gedefinieerd. Daarbij is het aan te bevelen om de toestanden zo te defini¨eren dat slechts die informatie wordt opgenomen die relevant is voor het probleem en de te nemen beslissing. Toestandsovergangen Het gevolg van een beslissing in een bepaalde stap is onder andere dat het systeem zich bij de volgende stap van het beslissingstraject in een, in principe andere, toestand zal bevinden. Deze toestandsovergangen moeten bekend zijn. Optimaliteitsprincipe Gegeven de huidige toestand is een optimale strategie voor de resterende stappen onafhankelijk van de beslissingen die in het verleden zijn genomen. Met andere woorden: gegeven de toestand waarin men verkeert, kan men op ieder beslissingstijdstip doen alsof het beslissingsproces juist op dat moment begint. Recursiviteit Zij sn de toestand bij de n-de stap, en laat X(s n ) de mogelijke beslissingen in deze toestand op dit tijdstip zijn. Dan kan een optimale beslissing (verondersteld is dat het om het minimaliseren van kosten gaat) worden gevonden door het volgende ´e´enstapsbeslissingsprobleem op te lossen: 139
fn (sn ) = minxn ∈X(sn ) {r(sn , xn ) + fn+1 (sn+1 )}, waarbij r(sn , xn ) de kosten in de n-de stap zijn, gegeven toestand s n en beslissing xn , sn+1 de toestand in stap n + 1 waarin het systeem vanuit toestand s n door beslissing xn overgaat en fn+1 (sn+1 ) de optimale kosten vanaf stap n + 1 zijn, gegeven toestand s n+1 op dat moment. Bij een N -stapsbeslissingsprobleem, uitgaande van een vaste begintoestand s 1 , gaan we als volgt te werk: 1. Bereken fN (sN ) voor alle mogelijke toestanden sN met bijbehorende beslissingen x∗N (sN ). 2. Voor n = N − 1, N − 2, . . . , 1:
los voor alle mogelijke toestanden s n op:
fn (sn ) = minxn ∈X(sn ) {r(sn , xn ) + fn+1 (sn+1 )}, met bijbehorende optimale beslissing x ∗n (sn ). 3. Voor n = 1, 2, . . . , N : neem de optimale beslissing x∗n = x∗n (sn ) en bepaal sn+1 m.b.v. sn en x∗n . De optimale strategie x∗ = (x∗1 , x∗2 , . . . , x∗N ) met totale minimale kosten f1 (s1 ). We zullen deze aanpak nader uitwerken voor de in de inleiding gegeven vijf voorbeelden. We maken daarbij onderscheid tussen deterministische en stochastische modellen. Een model heet deterministisch als de toestand sn+1 , gegeven toestand sn en beslissing xn , ondubbelzinnig (deterministisch) vastligt; als sn+1 d.m.v. een kansverdeling, die in het algemeen afhankelijk is van sn en xn , wordt bepaald, dan spreken we van stochastische dynamische programmering.
10.3
Deterministische dynamische programmering
Voorbeeld 10.1 (vervolg) Zij xn het aantal teams dat aan land n wordt toegekend en p n (xn ) de effectiviteit als xn teams aan land n worden toegekend (n = 1, 2, 3). Het probleem kan dan worden geformuleerd als het volgende optimaliseringsprobleem: P P3 max{ 3n=1 pn (xn ) | n=1 xn = 5; xn ≥ 0 en geheel, 1 ≤ n ≤ 3}. De karakteristieken van dit probleem zijn:
a. Het aantal stappen is 3, waarbij in stap n wordt bepaald hoeveel aan land n wordt toegekend. b. De toestandsverz. is in iedere stap {1, 2, 3, 4, 5}, waarbij toestand s n in stap n het aantal teams is dat nog moet worden toegewezen; s 1 = 5.
c. Toestandsovergangen: sn+1 = sn − xn als in toestand sn beslissing xn wordt genomen. d. Het optimaliseringsprobleem in stap n luidt:
f3 (s3 ) = max0≤x3 ≤s3 p3 (x3 ), s3 = 0, 1, 2, 3, 4, 5; fn (sn ) = max0≤xn ≤sn {pn (xn ) + fn+1 (sn − xn )}, sn = 0, 1, 2, 3, 4, 5; n = 2, 1. Hieronder volgen de berekeningen. n = 3 : f3 (s3 ) = max0≤x3 ≤s3 p3 (x3 ) = p3 (s3 ) en x∗3 (s3 ) = s3 , 0 ≤ s3 ≤ 5. n = 2 : f2 (s2 ) = max0≤x2 ≤s2 {p2 (x2 )+f3 (s2 −x2 )} = max0≤x2 ≤s2 {p2 (x2 )+p3 (s2 −x2 )}, 0 ≤ s2 ≤ 5. 140
x2 s2
0
1
2
3
4
0
0
1
50
20
2
70
70
45
3
80
90
95
75
4
100
100
115
125
110
5
130
120
125
145
160
5
f2 (s2 )
x∗2 (s2 )
0
0
50
0
70
0
95
2
125
3
160
4
150
n = 1 : f1 (5) = max0≤x1 ≤5 {p1 (x1 ) + f2 (5 − x1 )}. x1 s1
0
1
2
3
4
5
f1 (s1 )
x∗1 (s1 )
5
160
170
165
160
155
120
170
1
De optimale oplossing is dus: s1 = 5 → x∗1 = 1 → s2 = 4 → x∗2 = 3 → s3 = 1 → x∗3 = 1 en heeft waarde 170.
Voorbeeld 10.2 (vervolg) Zij xn het aantal topastronauten dat aan team n wordt toegewezen en zij p n (xn ) de kans op mislukking van team n als xn topastronauten aan team n worden toegewezen (n = 1, 2, 3). Omdat kans op succes = 1 - kans op mislukking van alle 3 teams, kan het probleem worden geformuleerd als: min{p1 (x1 ) · p2 (x2 ) · p3 (x3 ) |
P3
n=1 xn
= 2; xn ≥ 0 en geheel, 1 ≤ n ≤ 3}.
De karakteristieken van dit probleem zijn: a. Het aantal stappen is 3, waarbij in stap n wordt bepaald hoeveel aan topastronauten aan team n worden toegekend. b. De toestandsverz. is in iedere stap {0, 1, 2}, waarbij toestand s n in stap n het aantal topastronauten is dat nog moet worden toegewezen; s 1 = 2.
c. Toestandsovergangen: sn+1 = sn − xn als in toestand sn beslissing xn wordt genomen. d. Het optimaliseringsprobleem in stap n luidt: f3 (s3 ) = min0≤x3 ≤s3 p3 (x3 ), s3 = 0, 1, 2; fn (sn ) = min0≤xn ≤sn {pn (xn ) · fn+1 (sn − xn )}, sn = 0, 1, 2; n = 2, 1. De berekeningen zijn in dit geval: n = 3 : f3 (s3 ) = min0≤x3 ≤s3 p3 (x3 ) = p3 (s3 ) en x∗3 (s3 ) = s3 , 0 ≤ s3 ≤ 2. n = 2 : f2 (s2 ) = min0≤x2 ≤s2 {p2 (x2 ) · f3 (s2 − x2 )} = min0≤x2 ≤s2 {p2 (x2 ) · p3 (s2 − x2 )}, 0 ≤ s2 ≤ 2.
141
x2 s2
0
1
2
0
0.48
1
0.30
0.32
2
0.18
0.20
f2 (s2 )
x∗2 (s2 )
0.40
0
0.30
0
0.16
2
0.16
n = 1 : f1 (2) = min0≤x1 ≤2 {p1 (x1 ) · f2 (2 − x1 )}. x1 s1
0
1
2
f1 (s1 )
x∗1 (s1 )
2
0.064
0.060
0.072
0.060
1
De optimale oplossing is dus: s1 = 2 → x∗1 = 1 → s2 = 14 → x∗2 = 0 → s3 = 1 → x∗3 = 1 en heeft waarde 0.060. Voorbeeld 10.3 (vervolg) Zij xn het bedrag dat aan project n wordt toegewezen en zij w n (xn ) de opbrengst bij toekenning xn aan project n, n = 1, 2, 3, 4. Het investeringsprobleem luidt: max{
P4
n=1 wn (xn )
|
P4
n=1 xn
= 10; xn ≥ 0 en geheel, 1 ≤ n ≤ 4}.
Analoog aan de vorige voorbeelden krijgen we de volgende berekeningen. n = 4 : f4 (s4 ) = max0≤x4 ≤s4 w4 (x4 ) = w4 (s4 ) en x∗4 (s4 ) = s4 , 0 ≤ s4 ≤ 10. n = 3 : f3 (s3 ) = max0≤x3 ≤s3 {w3 (x3 ) + w4 (s3 − x3 ) | x3 ∈ {0, 6, 7, 8, 9, 10}}, 0 ≤ s3 ≤ 10. x3 f3 (s3 )
x∗3 (s3 )
0
0
0
1
2
2
0
2
4
4
0
3
6
6
0
4
8
8
0
5
10
10
0
6
12
17
17
6
7
14
19
18
19
6
8
16
21
20
21
21
6
9
18
23
22
23
22
23
6
10
20
25
24
25
24
25
6
s3
0
0
6
7
8
9
10
24
n = 2 : f2 (s2 ) = max0≤x2 ≤s2 {w2 (x2 ) + f3 (s2 − x2 ) | x2 ∈ {0, 4, 5, 8, 9, 10}}, 0 ≤ s2 ≤ 10.
142
x2 f2 (s2 )
x∗2 (s2 )
0
0
0
1
2
2
0
2
4
4
0
3
6
6
0
4
8
9
9
4
5
10
11
13
13
5
6
17
13
15
17
0
7
19
15
17
19
0
8
21
17
19
18
21
0
9
23
19
21
20
19
23
0
10
25
26
23
22
21
26
4
s2
0
0
4
5
8
9
10
23
n = 1 : f1 (10) = max0≤x1 ≤10 {w1 (x1 ) + f2 (10 − x1 ) | x1 ∈ {0, 3, 5, 7, 8, 9}}. x1 s1
0
3
5
7
8
9
f1 (s1 )
x∗1 (s1 )
10
26
27
26
24
23
23
27
3
De optimale oplossing is dus: s1 = 10 → x∗1 = 3 → s2 = 7 → x∗2 = 0 → s3 = 7 → x∗3 = 6 → s4 = 1 → x∗4 = 1 en heeft waarde 27.
10.4
Stochastische dynamische programmering
Het enige verschil met de vorige paragraaf is dat in plaats van kosten (of opbrengsten) het nu gaat om verwachte kosten (of opbrengsten). Voorbeeld 10.4 (vervolg) Zij xn het aantal exemplaren in run n, n = 1, 2, 3. Als toestanden nemen we twee mogelijkheden: een exemplaar van de gewenste kwaliteit is reeds wel (s = 0) of reeds niet (s = 1) geproduceerd. Als s = 0, dan hoeft er niet meer te worden geproduceerd ; als s = 1 en in run n worden x n exemplaren gemaakt, dan is de volgende toestand weer s = 1 met kans ( 12 )xn . ( 0 als xn = 0 Laat: pn (xn ) = 300 + 100xn als xn ≥ 1 fn (1) = minimale verwachte kosten vanaf run n in toestand 1.
Nu geldt: fn (1) = minxn ≥0 {pn (xn ) + ( 21 )xn fn+1 (1)}, n = 1, 2, 3; f4 (1) = 1600.
n = 3 : f3 (1) = minx3 ≥0 {p3 (x3 ) + ( 21 )x3 · 1600}. x3
0
1
2
3
4
5
6
f3 (1)
x∗3 (1)
1600
1200
900
800
800
850
925
800
3
143
n = 2 : f2 (1) = minx2 ≥0 {p2 (x2 ) + ( 21 )x2 · f3 (1)}. 0
1
2
3
4
5
f2 (1)
x∗2 (1)
800
800
700
700
750
825
700
2
x2
n = 1 : f1 (1) = minx1 ≥0 {p1 (x1 ) + ( 21 )x1 · f2 (1)}. 0
1
2
3
4
f1 (1)
x∗1 (1)
700
750
675
687,50
743,75
675
2
x1
De optimale oplossing is dus: x∗1 = 2, x∗2 = 2, x∗3 = 3 met verwachte kosten 675.
Voorbeeld 10.5 (vervolg) Zij xn het aantal fiches dat bij spel n wordt ingezet. Als toestand s n nemen we het aantal fiches bij het begin van spel n. Laat fn (sn ) de maximale kans om op 5 fiches uit te komen als we s n fiches hebben bij het begin van spel n. Dan geldt: fn (sn ) = max{xn |xn ≤sn ;xn +sn ≤5} { 13 fn+1 (sn − xn ) + 23 fn+1 (sn + xn )}, n = 3, 2, 1; 0 ≤ sn ≤ 5.
f4 (s4 ) =
(
1 als s4 = 5 0 als s4 6= 5
Dit resulteert in de volgende berekeningen: x3
n=3:
s3
0
1
0
0
1
0
0
2
0
0
3
0
0
4
0
2 3
5
1
f3 (s3 )
x∗3 (s3 )
0
0
0
0
0
0
0
2 3
2 3 2 3
2
1
0
f2 (s2 )
x∗2 (s2 )
0
0
0
0
4 9 2 3 8 9
1
1
0
2
3
4
1
x2
n=2:
s2
0
1
0
0
1
0
0
2
0
3 4
2 3 2 3
4 9 4 9 8 9
5
1
2
3
4
4 9 2 3
0 1
x1 n=1:
s1
0
1
2
f1 2(s1 )
x∗2 (s1 )
3
2 3
20 27
2 3
20 27
1 144
De optimale strategie is als volgt. Begin met inzet 1. Veronderstel dat dit spel wordt gewonnen, zodat de speler in het bezit is van 4 fiches. Zet nu 1 fiche in, zodat daarna o`fwel 5 fiches (kans 2 3)
2 9)
o`fwel 3 fiches in bezit zijn; in het laatste geval 2 fiches inzetten, zodat dan (met kans
alsnog 5 fiches worden bereikt. Na de eerste keer winst wordt dus met kans
2 3
+
1 3
·
2 3
=
8 9
het
doel bereikt. Als de eerste keer wordt verloren (dus 2 fiches over), dan moet vervolgens twee keer worden gewonnen; zet eerst 2 fiches in en daarna 1, dus winstkans 94 . De kans om met deze strategie het doel te bereiken is dus
10.5
2 3
·
8 9
+
1 3
·
4 9
=
20 27 .
Opgaven
Opgave 1 Een student heeft 7 weken de tijd voordat de tentamens in 4 vakken beginnen en wil deze tijd zo effici¨ent mogelijk besteden. Hij wil aan ieder vak 1, 2, 3 of 4 weken besteden en de keuze z´o maken dat de som van de te verwachten tentamencijfers zo hoog mogelijk is. Het verband tussen het aantal weken besteed aan een vak en het te verwachten cijfer staat in onderstaande tabel. aantal
verwachting van het cijfer
studieweken
vak 1
vak 2
vak 3
vak 4
1
3
5
2
6
2
5
5
4
7
3
6
6
7
9
4
7
9
8
9
Hoe zal de student deze 7 weken indelen?
Opgave 2 Beschouw een electronisch systeem bestaande uit 4 componenten, die ieder moeten functioneren wil het systeem kunnen werken. De betrouwbaarheid van het systeem kan worden vergroot door in een of meer componenten parallel eenheden te schakelen. De volgende tabel geeft de betrouwbaarheid van een dergelijke constructie. aantal parallel
kans op goed functioneren
eenheden
component 1
component 2
component 3
component 4
1
0.5
0.6
0.7
0.5
2
0.6
0.7
0.8
0.7
3
0.8
0.8
0.9
0.9
De kosten om parallel-eenheden te plaatsen staan hieronder:
145
aantal parallel
installatiekosten in euro’s
eenheden
component 1
component 2
component 3
component 4
1
100
200
100
200
2
200
400
300
300
3
300
500
400
400
Er is 1.000 euro beschikbaar. Hoeveel parallel-eenheden worden in iedere component geplaatst om de betrouwbaarheid van het systeem te maximaliseren (zonder parallel-eenheid is de betrouwbaarheid van een compenent 0.4)?
Opgave 3 Los het volgende knapzakprobleem op met dynamische programmering: max{6x1 + 8x2 + 11x3 | 3x1 + 5x2 + 7x3 ≤ 10; x1 , x2 , x3 ≥ 0 en geheel}. Opgave 4 Een bedrijf heeft twee electrische ingenieurs (EI’s), twee mechanische ingenieurs (MI’s) en een onbeperkt aantal monteurs (M’s). Het bedrijf heeft 4 werkzaamheden uit te voeren: A, B, C en D. In de volgende tabel staan voor iedere ploeg die een karwei kan uitvoeren wat de kosten ervan zijn. Karwei
M’s
1 MI
2 MI’s
1 EI
2 EI’s
1 MI en 1 EI
A
50
49
90
47
51
15
B
200
73
15
100
27
20
C
60
52
24
78
84
100
D
56
22
57
56
80
67
Iedere persoon kan bij hoogstens ´e´en werkzaamheid worden ingeschakeld. Welke planning geeft voor het bedrijf de minste kosten?
Opgave 5 Beschouw de volgende modificatie van voorbeeld 10.4: de kans dat een exemplaar de gewenste kwaliteit heeft is
2 3
en er kunnen maximaal 2 runs worden uitgevoerd. Welke productie-strategie
is optimaal?
Opgave 6 Neem aan dat in voorbeeld 10.5 gestart wordt met 2 fiches en dat 5 keer mag worden gespeeld. Hoe groot is de kans om op 5 fiches uit te kunnen komen?
146
Opgave 7 Een reisbureau heeft voor een periode van 6 jaar een hotel gepacht in een wintersportcentrum. Met de plaatselijke kolenhandelaar is een contract afgesloten waarin wordt bepaald dat hij elk jaar een vaste hoeveelheid brandstof zal leveren tegen betaling van 30.000 euro per jaar. Verder is overeengekomen dat het reisbureau, in geval van ontevredenheid over de leveranties, aan het eind van elk jaar het contract ´e´enzijdig mag opzeggen. De kolenhandelaar heeft 3 soorten kolen. Levert de kolenhandelaar gedurende een jaar kolensoort i, dan is zijn winst ai en de kans op opzegging van het contract p i , i = 1, 2, 3. De kolenhandelaar vraagt zich af welke kolensoorten hij de komende 6 jaar zal leveren om zijn verwachte winst te maximaliseren. Overige gegevens: a1 = 4.350, a2 = 7.900, a3 = 10.500; p1 = 0.2, p2 = 0.4, p3 = 0.6.
Opgave 8 Een stad verwacht de komende 10 jaar een jaarlijkse groei van de vraag naar electriciteit. Deze verwachte groei is als volgt. Jaar
1
2
3
4
5
6
7
8
9
10
Groei
2
3
1
5
2
3
4
3
2
1
Om aan de stijgende vraag te kunnen voldoen moet de installatie worden uitgebreid. Dit kan jaarlijks gebeuren tot maximaal 5 eenheden tegen de volgende kosten (in miljoen euro’s): Uitbreiding
1
2
3
4
5
Kosten
20
38
55
70
80
Deze uitbreiding moet z´o worden gepland dat steeds aan de vraag voldaan kan worden en dat de bijbehorende kosten over de periode van 10 jaar zo laag mogelijk zijn. Bij deze kosten moet een jaarlijkse rente van 10% worden verdisconteerd. Welke planning is optimaal?
147
Hoofdstuk 11
Geheeltallige programmering 11.1
Inleiding
Soms zijn bij optimaliseringsproblemen ´e´en of meer variabelen geheeltallig, bijvoorbeeld als het gaat om ondeelbare grootheden zoals een bepaald aantal personen. We spreken dan van geheeltallige programmering. Als alle variabelen geheeltallig zijn, dan heet het probleem zuiver geheeltallig, anders gemengd geheeltallig. Een speciaal geval van een geheeltallige variabele is een variabele, waarvoor geldt dat deze slechts de waarde 0 of 1 kan aannemen: we spreken dan van een (0,1)variabele of binaire variabele en het optimaliseringsprobleem waarin de geheeltallige variabelen (0,1)-variabelen zijn, heet een (0,1)-probleem of ook wel een combinatorisch optimaliseringsprobleem. Meestal beschouwen we lineaire geheeltallige optimaliseringsproblemen. In tegenstelling tot de simplex methode voor lineaire programmering, die meestal effici¨ent werkt en snel tot een optimale oplossing leidt, bestaat er voor de geheeltallige programmering geen effici¨ente methode. Het is zelfs uiterst onwaarschijnlijk dat er ooit een effici¨ente methode voor gevonden kan worden. De reden hiervoor is dat het geheeltallige programmeringsprobleem NPmoeilijk is, een begrip uit de complexiteitstheorie 1 . We zullen nu eerst een aantal voorbeelden geven van geheeltallige programmeringsproblemen. Een financieringsprobleem De komende drie jaar kunnen vijf projecten worden gefinancierd. Per project staan de jaarlijkse investeringen en de verwachte winst na 3 jaar (in miljoenen euro’s) in onderstaande tabel. Jaarlijks is 25 miljoen euro te investeren. Investering
1
Project
jaar 1
jaar 2
jaar 3
Winst
1
5
1
8
20
2
4
7
10
40
3
3
9
2
20
4
7
4
1
15
5
8
6
10
30
Zie het college Inleiding Besliskunde.
148
Gevraagd wordt welke projecten het best gefinancierd kunnen worden om de te verwachten winst te maximaliseren. Hiervoor voeren we (0,1)-variabelen x i , 1 ≤ i ≤ 5 in, waarbij xi = 1 overeenkomt met het financieren van project i. Het optimaliseringsprobleem 5x + 1 x1 + max 20x1 + 40x2 + 20x3 + 15x4 + 30x5 8x1 +
luidt dan:
4x2 + 3x3 + 7x4 + 7x2 + 9x3 + 4x4 + 10x2 + 2x3 +
8x5 ≤ 25
6x5 ≤ 25
x4 + 10x5 ≤ 25
xi ∈ {0, 1}, 1 ≤ i ≤ 5
Als we dit oplossen als LP-probleem, daarbij x i ∈ {0, 1} vervangend door 0 ≤ xi ≤ 1, 1 ≤ i ≤ 5,
dan luidt de oplossing: x1 = 0.5789, x2 = x3 = x4 = 1 en x5 = 0.7368, met waarde van de doelfunctie gelijk aan 108.682. De oplossing van het combinatorisch optimaliseringsprobleem is: x1 = x2 = x3 = x4 = 1 en x5 = 0 met optimale waarde = 95. Een productieprobleem met vaste kosten
Beschouw een productieprobleem met n producten en waarbij ( de productiekosten deels vaste Kj + cj xj als xj > 0; kosten zijn en deels kosten lineair in de hoeveelheid: C j (xj ) = 0 als xj = 0. Pn De doelfunctie wordt dan j=1 Cj (xj ) en is niet meer lineair in xj vanwege de discontinu¨ıteit in xj = 0. Deze functie is toch lineair te maken door voor iedere x j een binaire variabele yj in te
voeren met de interpretatie dat yj = 1 als xj > 0. Door nu te eisen dat 0 ≤ xj ≤ M yj , met M een
groot getal dat in alle realitische situaties een bovengrens voor de productie is, wordt C j (xj ) = Kj yj +cj xj , zodat de doelfunctie lineaire is. Het oorspronkelijke probleem heeft niets geheeltalligs,
maar door deze modellering wordt het een gemengd geheeltallig optimaliseringsprobleem. Een scheduling probleem Beschouw een scheduling probleem waarbij n verschillende operaties op ´e´en machine moeten worden uitgevoerd. Veronderstel dat er drie soorten beperkingen zijn: (1) volgorde-restricties voor een aantal taken; (2) niet-tegelijkertijd kunnen uitvoeren van twee taken op deze machine; (3) voor iedere taak j een tijdstip d j waarop deze taak af moet zijn. De vraagstelling luidt om een planning te maken die de maximale overschrijding van de tijden d j minimaliseert, rekening houdend met de overige beperkingen. Laat xj de beslissingsvariabele zijn voor het tijdstip waarop de j-de taak op de machine begint en laat tj de (gegeven) tijdsduur zijn voor de bewerking van taak j op de machine, 1 ≤ j ≤ n.
De volgorde-restrictie taak i komt voor taak j houdt in: x i + ti ≤ xj .
De taken i en j niet tegelijkertijd op de machine betekent: o`fwel x i + ti ≤ xj , o`fwel xj + tj ≤ xi . Deze eis is m.b.v. een binaire variabele y ij , waarbij yij = 1 correspondeert met de eerste
mogelijkheid en yij = 0 met de tweede, om te vormen tot twee beperkingen die beide moeten gelden: xi + ti ≤ xj + M (1 − yij ) en xj + tj ≤ xi + M yij , waarbij M voldoende groot is, bijv. het
laatste tijdstip waarop een taak af moet zijn.
De eis dat taak j op tijdstip dj af moet zijn is: xj + tj ≤ dj .
Het minimaliseren van de maximale overschrijdingen is te modelleren door T te minimaliseren en te eisen dat T ≥ xj + tj − dj voor alle j. 149
Een vestigingsprobleem Veronderstel dat er m mogelijke plaatsen zijn om filialen van een bedrijf te vestigen. Het vestigen van het i-de filiaal kost fi en filiaal i heeft capaciteit bi , 1 ≤ i ≤ m. Het bedrijf heeft n klanten en de j-de klant heeft een hoeveelheid d j nodig, 1 ≤ j ≤ n. Als er vanuit filiaal i aan klant j wordt geleverd, dan kost dit cij per eenheid.
Welke filialen moeten worden gevestigd en hoe moet de bevoorrading van de klanten worden uitgevoerd om de totale kosten te minimaliseren? hoeveelheid die vanuit filiaal i aan klant j wordt geleverd xij = de ( Zij 1 als filiaal i wordt gevestigd y = i 0 anders Dit probleem is als volgt te formuleren P P Pm m n cij xij + i=1 fi yi min i=1 j=1
11.2
als een gemengd geheeltallig programmeringsprobleem: Pm x = d , j = 1, 2, . . . , n ij j i=1 Pn x ≤ b y , i = 1, 2, . . . , m ij i i j=1 xij ≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n 0 ≤ yi ≤ 1, en geheel, 1 ≤ i ≤ m
Branch-and-bound
De branch-and-bound methode is een techniek om een geheeltallig programmeringsprobleem op te lossen. Het oorspronkelijke probleem wordt hierbij opgeslitst in deelproblemen, zeg P k , 1 ≤ k ≤ K, die tezamen equivalent zijn met het oorspronkelijke probleem P 0 . Veronderstel dat het geheeltallig programmeringsprobleem een maximaliseringsprobleem is en dat we voor het
optimum van de deelproblemen boven- en ondergrenzen hebben, zeg z k resp. z k , 1 ≤ k ≤ K.
Dan is z = max1≤k≤K z k een bovengrens voor het optimum van P 0 en z = max1≤k≤K z k een ondergrens voor het optimum van P0 (ga dit zelf na). Vaak kunnen deze grenzen worden gevonden zonder de deelproblemen zelf op te lossen. Iedere toegelaten oplossing van een deelprobleem geeft een ondergrens en iedere optimale oplossing van een relaxatie, dit is een afzwakking van het probleem, geeft een bovengrens. Het is handig om de relaxatie zo te kiezen dat deze gemakkelijk is op te lossen, bijv. het bijbehorende LP-probleem. M.b.v. het bovenstaande kunnen we een deelprobleem als afgehandeld beschouwen als z k ≤ z. In dit geval is in de verz. van de overige deelproblemen altijd een oplossing die minstens zo goed is
als de optimale oplossing van het deelprobleem P k . Daarnaast is een deelprobleem natuurlijk ook altijd afgehandeld als een optimale oplossing ervan is gevonden of als blijkt dat dit deelprobleem geen toegelaten oplossing bevat. In het algemeen kent een branch-and-bound aanpak de volgende onderdelen: Bepaling grenzen Voor de bovengrens nemen we vaak een relaxatie en voor de ondergrens een toegelaten oplossing. Als deze grenzen lastig zijn te bepalen, dan laten we de bepaling ervan meestal achterwege.
150
Vertakking Het opslitsen in nieuwe deelproblemen gebeurt vaak via een splitsingsvariabele. Dit is een variabele die geheeltallig moet zijn, zeg x. We splitsen het probleem dan in twee deelproblemen: ´e´en probleem dat uit het vorige ontstaat door daaraan toe te voegen de beperking x ≤ a, en het
andere krijgt de beperking x ≥ a + 1 voor een zeker geheel getal a. Als in de optimale oplossing
van de LP-relaxatie de variabele x een niet-geheeltallige waarde krijgt, zeg x = a + f , met a geheel en 0 < f < 1, dan wordt bovenstaande opsplitsing gemaakt. Keuze deelprobleem In iedere iteratie moet een deelprobleem worden gekozen waaraan wordt verder gewerkt. Dit verder werken resulteert dan in o`fwel het vinden van de optimale oplossing ervan, o`fwel het ontdekken dat het probleem ontoelaatbaar is, o`fwel het opsplitsen in nieuwe deelproblemen en deze van grenzen voorzien. We geven nu eerst een voorbeeld van deze techniek. We nemen hiervoor een geheeltallig lineair programmeringsprobleem en zullen voor de bovengrenzen van de deelproblemen het optimum van de LP-relaxatie nemen (als de data geheel zijn mogen we dit optimum zelfs naar beneden afronden). Voor de ondergrenzen ronden we de optimale oplossing van de LP-relaxatie af op een geheeltallig punt en als dit punt toelaatbaar is voor een (deel)probleem, dan kan de waarde van de doelfunctie in dit punt worden gebruikt als ondergrens. De best bekende toelaatbare oplossing wordt bewaard als x∗ . Voorbeeld 11.1 max 5x1 + 8x2 Initialisatie:
x1 +
x2 ≤
6
5x1 + 9x2 ≤ 45 x1 , x2 ≥ 0 en geheel
Laat z = −∞ en z = −∞. Los de LP-relaxatie van P 0 op: x1 = 49 , x2 =
15 4 ,
z = b 165 4 c = 41.
De afgeronde oplossing is x1 = 2, x2 = 4. Deze is niet toelaatbaar en kan dus niet voor een ondergrens worden gebruikt. Kies als splitsingsvariabele x 2 en beschouw de deelproblemen: P1 : P0 met toegevoegd x2 ≤ 3; P2 : P0 met toegevoegd x2 ≥ 4; z 1 = z 2 = 41.
Iteratie 1:
Kies deelprobleem P1 en los de LP-relaxatie op: x1 = 3, x2 = 3 met optimum 39: x∗1 = 3, x∗2 = 3 en z = 39. Deelprobleem P1 is nu afgehandeld. Iteratie 2: Kies deelprobleem P2 en los de LP-relaxatie op: x1 = 59 , x2 = 3, z 2 = b41c = 41. De afgeronde
oplossing is x1 = 2, x2 = 4 en deze is niet toelaatbaar. Kies als splitsingsvariabele x 1 en beschouw de deelproblemen: P3 : P2 met toegevoegd x1 ≤ 1; P4 : P2 met toegevoegd x1 ≥ 2; z 3 = z 4 = 41. Iteratie 3:
Kies deelprobleem P3 en los de LP-relaxatie op: x1 = 1, x2 =
40 9 ,
z 2 = b 365 9 c = 40. De afgeronde
oplossing is x1 = 1, x2 = 4; deze is toelaatbaar met waarde 37, wat geen verbetering is van
151
de best bekende ondergrens 39. Kies als splitsingsvariabele x 2 en beschouw de deelproblemen: P5 : P3 met toegevoegd x2 ≤ 4; P6 : P3 met toegevoegd x1 ≥ 5; z 5 = z 6 = 40.
Iteratie 4:
Kies deelprobleem P4 en los de LP-relaxatie op: P4 is ontoelaatbaar en daarmee afgehandeld. Iteratie 5: Kies deelprobleem P5 en los de LP-relaxatie op: x1 = 1, x2 = 4 met waarde 37, wat geen verbetering is van de best bekende oplossing, zodat P 5 ook is afgehandeld. Iteratie 6: Kies deelprobleem P6 en los de LP-relaxatie op: x1 = 0, x2 = 5 met optimum 40: x∗1 = 0, x∗2 = 5 en z = 40. Deelprobleem P6 is nu ook afgehandeld. Omdat dit er nu geen deelprobleem meer over is, zijn we klaar met optimale oplossing: x ∗1 = 0, x∗2 = 5 en waarde 40. De branch-and-bound techniek kan ook worden toegepast op een gemengd geheeltallig programmeringsprobleem. Om van de branch-and-bound techniek een algoritme te maken moeten nadere keuzes worden gespecificeerd, zoals: - Welk deelprobleem wordt gekozen om nader te onderzoeken? - Welke variabele wordt als splitsingsvariabele gekozen? Voor de keuze van het deelprobleem bestaan diverse strategie¨en waarvoor argumenten aanwezig zijn die voor die strategie pleiten. Zo zouden we het deelprobleem kunnen kiezen met de hoogste bovengrens. Als we erin slagen dit probleem exact op te lossen, dan hopen we daarmee een goede oplossing en hoge waarde voor z gevonden te hebben, waardoor een groot aantal deelproblemen niet meer onderzocht hoeft te worden omdat daarvoor z k ≤ z.
Een andere strategie die vaak wordt gebruikt is om het laatste deelprobleem te kiezen. De argumentatie hiervoor is een praktische: dit probleem hebben we direct beschikbaar en maakt de
implementatie eenvoudig. Voor het oplossen van een LP-relaxatie hoeft namelijk het LP-probleem niet van vooraf aan opgelost te worden. Zo’n LP-relaxatie komt uit een vorig LP-probleem met daaraan toegevoegd ´e´en nieuwe beperking. Dit houdt in dat de duale oplossing toelaatbaar blijft. Hiervoor is een speciale versie van de simplex methode, genaamd de duale simplex methode, zeer geschikt. Vaak is slechts ´e´en extra iteratiestap voldoende om de nieuwe optimale oplossing te vinden. Als we als deelprobleem om nader te onderzoeken het laatst gecre¨eerde deelprobleem nemen, dan hebben we het oude LP-tableau direct tot onze beschikking. Dit vergemakkelijkt de implementatie. Ook voor de keuze van de splitsingsvariabele is een aantal strategie¨en op te stellen. Laat fi = wi − bwi c voor de geheeltallige variabele x i die (in de oplossing van de LP-relaxatie) een nietgeheeltallige waarde wi heeft.
a. De grootste fractie regel: kies als splitsingsvariabele de variabele x i met min(fi , 1 − fi )
maximaal. Door de variabele met de grootste fractie te kiezen hopen we dat de grenzen van
de bijbehorende deelproblemen zo laag worden dat ze daardoor kunnen worden afgehandeld. b. De kleinste fractie regel: kies als splitsingsvariabele de variabele x i met min(fi , 1−fi ) minimaal. Door de variabele met de kleinste fractie te kiezen hopen we in de bijbehorende deelproblemen een goede oplossing te vinden. 152
c. De grootste co¨effici¨ent regel: kies als splitsingsvariabele de variabele x i die in de doelfunctie de grootste co¨effici¨ent heeft. Hiermee hopen we hetzelfde te beogen als met de grootste fractie regel. d. De kleinste co¨effici¨ent regel: kies als splitsingsvariabele de variabele x i die in de doelfunctie de kleinste co¨effici¨ent heeft. Hiermee hopen we hetzelfde te beogen als met de kleinste fractie regel. Het lijkt verstandig de regels b en d in het begin van het algoritme toe te passen en a en c later. Impliciete enumeratie Voor problemen waarin de variabelen alleen de waarden 0 of 1 kunnen aannemen, zoals in combinatorische problemen vaak voorkomt, geeft de LP-relaxatie veel minder informatie dan voor algemene geheeltallige problemen. Ook is de opsplitsing x = 0 of x = 1 een triviale. We kunnen deze opsplitsing dus direct maken zonder eerst een LP-probleem op te lossen. Voor dit soort problemen mogen we wel aannemen dat alle co¨effici¨enten van de doelfunctie nietnegatief zijn; als dit namelijk niet zo is, dan vervangen we deze x door het complement 1 − x en
dat is weer een (0, 1)-variabele. Een bovengrens van een deelprobleem krijgen we door de nog niet gefixeerde variabelen 1 te nemen. In plaats van de LP-relaxatie testen we wat het gevolg is van x = 0 of x = 1. Als x = 0 ontoelaatbaarheid geeft, dan fixeren we x op de waarde 1; als x = 0 tot gevolg heeft dat geen betere oplossing kan worden bereikt dan een reeds verkregen oplossing, dan nemen we x = 1.
We illustreren de impliciete enumeratie aan de hand van het volgende voorbeeld. Hierin wordt als splitsingsvariabele de variabele met de hoogste co¨effici¨ent in de doelfunctie gekozen en als deelprobleem om nader te onderzoeken het laatste deelprobleem dat is gecre¨eerd. Voorbeeld 11.2 max 10x1 + 10x2 + 9x3 + 6x4 + 5x5 + 3x6 Iteratie 1:
−2x1 + x2 + 4x3 − 3x4 + 6x5 − 2x6 ≤
2
− x1 + 2x2 − 2x3 + 4x4 − x5 + 5x6 ≤
4
x1 − 2x2 + 3x3 + x4 − 3x5 − 5x6 ≤ −3 x1 , x2 , . . . , x6 ∈ {0, 1}
Neem x1 als splitsingsvariabele: P1 : x1 = 0 met grens 33; P2 : x1 = 1 met grens 43. Iteratie 2: Kies deelprobleem P2 en neem x2 als splitsingsvariabele: P3 : x1 = 1, x2 = 0 met grens 33; P4 : x1 = x2 = 1 met grens 43. Iteratie 3: Kies deelprobleem P4 en neem x3 als splitsingsvariabele: P5 : x1 = x2 = 1, x3 = 0 met grens 34; P6 : x1 = x2 = x3 = 1 met grens 43. Iteratie 4: Kies deelprobleem P6 . Als x5 = 1, dan kan aan de eerste beperking niet meer worden voldaan, dus x 5 = 0. Met x5 = 0 kan aan de tweede beperking alleen worden voldaan als x 4 = 0 en x6 = 1. Dit geeft de toelaatbare oplossing: x ∗1 = x2 ∗ = x3 ∗ = x6 ∗ = 1, x4 ∗ = x5 ∗ = 0 met waarde 32. 153
Iteratie 5: Kies deelprobleem P5 . Om een betere oplossing dan x∗ te krijgen moet x4 = x5 = x6 = 1, maar dat geeft geen toelaatbare oplossing. Iteratie 6: Kies deelprobleem P3 . Om een betere oplossing dan x∗ te krijgen moet x3 = x4 = x5 = x6 = 1, maar ook dat geeft geen toelaatbare oplossing. Iteratie 7: Kies het laatste deelprobleem P2 . Om een betere oplossing dan x∗ te krijgen moet x2 = x3 = x4 = x5 = x6 = 1, maar ook dat geeft geen toelaatbare oplossing. De optimale oplossing is dus: x∗1 = x2 ∗ = x3 ∗ = x6 ∗ = 1, x4 ∗ = x5 ∗ = 0 met waarde 32. Opmerking In beide versies (LP-relaxatie of impliciete enumeratie) van de branch-and-bound methode hebben we steeds een aantal nog nader te onderzoeken deelproblemen. De vraag is hoe deze het beste onthouden kunnen worden zonder exorbitant veel geheugen te gebruiken. Het is een afweging tussen enerzijds een minimum aan informatie, maar dan wel bepaalde berekeningen te moeten herhalen (bijv. het opnieuw vinden van een optimaal LP-tableau) en anderzijs veel informatie bewaren. Bij branch-and-bound gebaseerd op LP-relaxaties bewaart men vaak, behalve de grenzen van het deelprobleem en de lijst van beperkingen waarmee dit deelprobleem is verkregen vanuit het oorspronkelijke probleem, de lijst van variabelen die in het optimale tableau in de basis zitten. Hiermee is snel het optimale tableau weer te vinden (in feite vereist dit ´e´en matrixinversie). Bij impliciete enumeratie bewaart men meestal, naast de grenzen van het deelprobleem, een lijst met de variabelen die gefixeerd zijn en de waarden (0 of 1) van deze variabelen. Knapzakprobleem Een combinatorisch probleem met slechts ´e´en beperking heet een knapzakprobleem. Een zinvolle en niet-triviale formulering hiervan heeft altijd positieve co¨effici¨enten in doelfunctie en beperkingen. Hiermee kan, eventueel na hernummering van de variabelen, het probleem worden geformuleerd als max
(
P ) n j=1 aj xj ≤ b , waarbij j=1 pj xj xj ∈ {0, 1}, j = 1, 2, . . . , n
Pn
p1 a1
≥
p2 a2
≥ ··· ≥
pn an
≥ 0.
Bij knapzakproblemen kan eenvoudig gebruik worden gemaakt van grenzen via de LP-relaxaties; de optimale oplossing van de LP-relaxatie is namelijk direct te bepalen. Omdat
pj aj
beschouwd kan
worden als de bijdrage aan de doelfunctie per eenheid van de beschikbare hoeveelheid b, nemen P we eerst x1 = 1, daarna x2 = 1, totdat de resterende toe te kennen hoeveelheid, zeg b − kj=1 aj kleiner is dan ak+1 . In dat geval krijgt de variabele xk+1 de resterende waarde
b−
Pk
j=1
ak+1
aj
. Als de
co¨effici¨enten geheel zijn, dan kunnen we het gevonden LP-optimum nog naar beneden afronden.
154
Voorbeeld 11.3 (
) 5x + 7x + 4x + 3x ≤ 14 1 2 3 4 max 16x1 + 22x2 + 12x3 + 8x4 x1 , x2 , x3 , x4 ∈ {0, 1} Iteratie 1:
De LP-relaxatie geeft x1 = x2 = 1, x3 = 21 , x4 = 0 met bovengrens 44.
Neem x3 als splitsingsvariabele: P1 : x3 = 0 met bovengrens 43 (voor x1 = x2 = 1, x3 = 0, x4 = 32 ); P2 : x3 = 1 met bovengrens 43 (voor x1 = 1, x2 = 75 , x3 = 1, x4 = 0). Iteratie 2: Kies deelprobleem P2 en splits dit in P3 : x2 = 0 met kandidaat-oplossing x∗1 = 1, x∗2 = 0, x∗3 = x∗4 = 1 met waarde 36 en P4 : x2 = 1 en hieruit volgt, op grond van logische conclusies, de kandidaat-oplossing x∗1 = 0, x∗2 = x∗3 = x∗4 = 1 met waarde 42. Iteratie 3: Neem het enig overgebleven deelprobleem P 1 . Om een betere oplossing te krijgen, d.w.z. 16x 1 + 22x2 + 8x4 ≥ 43, moet gelden x1 = x2 = x3 = 1, maar dit is in strijd met de beperking van het probleem.
De optimale oplossing van het probleem is dus: x ∗1 = 0, x∗2 = x∗3 = x∗4 = 1 met waarde 42.
11.3
Afkapmethoden
Beschouw het geheeltallige optimaliseringsprobleem in de gedaante max{
n X j=1
pj xj | Ax ≤ b; x ≥ 0 en geheel} met A een m × n-matrix en b ∈ R m .
(11.1)
Lineaire programmering heeft de aangename eigenschap dat het optimum in een hoekpunt van het toegelaten gebied ligt, en dat er een techniek is (de simplex methode) die van hoekpunt naar hoekpunt gaat totdat het optimale hoekpunt is gevonden. Hoewel geheeltallige programmering in principe een discreet en niet-continu optimaliseringsprobleem is, zou het op te lossen zijn als we de convexe omhulling van het toegelaten gebied kennen: dat is het kleinste convexe gebied, begrensd door hypervlakken, dat alle toegelaten geheeltallige punten bevat. Als we deze hypervlakken expliciet kennen, dan kan het geheeltallige optimaliseringsprobleem worden opgelost als LP-probleem. Een toegelaten ongelijkheid voor een verz. S ⊆ R n is een lineaire ongelijkheid, zeg
waaraan alle punten van S voldoen.
Pn
j=1 cj xj
Voorbeeld 11.4 Beschouw de ongelijkheid 3x1 − 4x2 + 2x3 − 3x4 + x5 ≤ −2 met xi ∈ {0, 1}, i = 1, 2, . . . , 5. Als x2 = x4 = 0, dan kan niet meer aan bovenstaande ongelijkheid worden voldaan. Een toegelaten ongelijkheid is dus: x 2 + x4 ≥ 1.
155
≤ c0 ,
Voorbeeld 11.5 Beschouw de ongelijkheid 13x1 + 20x2 + 11x3 + 6x4 ≤ 72 met xi geheeltallig, i = 1, 2, 3, 4. Delen we de ongelijkheid door 11, dan krijgen we
13 11 x1
+
20 11 x2
+ x3 +
6 11 x4
≤
72 11 .
Hieruit volgt dat ook moet gelden (afronden naar lagere gehele getallen): x 1 + x2 + x3 ≤
72 11 .
Omdat de linkerkant geheeltallig is kan het rechterlid naar beneden worden afgerond: x1 + x2 + x3 ≤ 6 is een toegelaten ongelijkheid..
Laat P = {x ∈ Rn+ | Ax ≤ b} en X = P ∩ Zn en u ∈ Rm + , de vector van de gewichten. Dan geldt (ga dit zelf na):
m X i=1
ui {
n X j=1
aij xj } ≤
n m X X {b ui aij c}xj
j=1 n X j=1
{b
i=1 m X i=1
ui aij c}xj
≤
m X
ui bi is een toegelaten ongelijkheid voor P
(11.2)
ui bi is een toegelaten ongelijkheid voor P
(11.3)
i=1
m X
i=1 m X
≤ b
i=1
ui bi c is een toegelaten ongelijkheid voor X
(11.4)
De volgende Stelling, die aantoont dat alle voor X toegelaten ongelijkheden te genereren zijn met bovenstaande drie ongelijkheden, die basisongelijkheden worden genoemd, is een verrassend resultaat. Het bewijs is echter een existentiebewijs en niet constructief. Stelling 11.1 Iedere voor X toegelaten ongelijkheid
Pn
j=1 cj xj
≤ c0 met ci geheeltallig, 0 ≤ i ≤
n, kan worden verkregen door (een aantal malen) ´e´en of meer van bovenstaande basisongelijkheden Pn te gebruiken, uitgaande van een bovengrens voor het optimum van j=1 cj xj , verkregen uit de LP-relaxatie. Bewijs We zullen de bewering aantonen voor binaire variabelen, d.w.z. x j ∈ {0, 1} voor alle j en P P = {x ∈ Rn | Ax ≤ b; 0 ≤ x ≤ e} met e = (1, 1, . . . , 1). Laat nj=1 cj xj ≤ c0 een toegelaten
ongelijkheid zijn met ci geheeltallig voor i = 0, 1, . . . , n. P Bewering 1: Voor zekere N ∈ Z+ is nj=1 cj xj ≤ c0 + N een toegelaten ongelijkheid voor P ,
verkregen met de LP-relaxatie. Bewijs:
Omdat P begrensd is, heeft het LP-probleem max{
Pn
j=1 cj xj
| x ∈ P } een eindige optimale
oplossing met waarde z0 van het optimum. N = dz0 e − c0 voldoet aan de gestelde eis. Bewering 2: Als de ongelijkheden Pn P P j=1 cj xj ≤ c0 + K + j∈T 0 ∪{p} xj + j∈T 1 (1 − xj )
en
Pn
j=1 cj xj
≤ c0 + K +
P
j∈T 0
xj +
P
j∈T 1 ∪{p} (1
− xj ),
met K ∈ Z+ , beide met basisongelijkheden zijn te genereren, waarbij T 0 en T 1 deelverz. van
{1, 2, . . . , n} zijn en p ∈ / T 0 ∪ T 1 , dan is Pn P P j=1 cj xj ≤ c0 + K + j∈T 0 xj + j∈T 1 (1 − xj )
ook een ongelijkheid die met basisongelijkheden is te genereren. 156
Bewijs: Neem beide ongelijkheden met gewicht 21 en tel ze op. Dan krijgen we: Pn P P 1 j=1 cj xj ≤ c0 + K + j∈T 0 xj + j∈T 1 (1 − xj ) + 2 [xp + (1 − xp )] P P = c0 + K + j∈T 0 xj + j∈T 1 (1 − xj ) + 21 .
Volgens de laatste basisongelijkheid wordt hiermee gegenereerd de ongelijkheid: Pn P P j=1 cj xj ≤ c0 + K + j∈T 0 xj + j∈T 1 (1 − xj ).
Bewering 3: Er bestaat een M ∈ Z+ z´odat voor iedere partitie van {1, 2, . . . , n} in N 0 en N 1 n X j=1
cj xj ≤ c 0 + M
X
X
xj + M
j∈N 0
j∈N 1
(1 − xj )
(11.5)
een toegelaten ongelijkheid is voor P . Bewijs: Het is voldoende om te laten zien dat aan (11.5) wordt voldaan door ieder hoekpunt x ∗ van P . P Als x∗ ∈ Zn , dan voldoet x∗ aan nj=1 cj xj ≤ c0 , dus zeker aan (11.5). P P ∗ ∗ Als x∗ ∈ / Zn , dan is er een α > 0 z´odat j∈N 0 xj + j∈N 1 (1 − xj ) ≥ α voor iedere partitie (N 0 , N 1 ) en voor ieder niet-geheeltallig hoekpunt x ∗ van P .
∗ 0 1 Neem M ≥ N α , dan geldt voor alle hoekpunten x van P en voor iedere partitie (N , N ): P Pn P ∗ ∗ ∗ j∈N 1 (1 − xj ). j=1 cj xj ≤ c0 + N ≤ co + M j∈N 0 xj + M Pn Bewering 4: Als de toegelaten ongelijkheid j=1 cj xj ≤ c0 + K + 1 met basisongelijkheden is Pn P P gegenereerd, dan kan j∈N 1 (1 − xj ) voor iedere partitie j=1 cj xj ≤ c0 + K + j∈N 0 xj +
(N 0 , N 1 ) ook met basisongelijkheden worden gegenereerd.
Bewijs: Neem de ongelijkheid gewicht Pn
1 M.
Pn
j=1 cj xj
M −1 M
≤ c0 + K + 1 met gewicht
en de ongelijkheid (11.5) met
Dit geeft de beperking P P M −1 j=1 cj xj ≤ c0 + j∈N 0 xj + j∈N 1 (1 − xj ) + M (K + 1) P P = c0 + j∈N 0 xj + j∈N 1 (1 − xj ) + K + M −K−1 . M
Op grond van de laatste basisongelijkheid wordt dan gegenereerd: Pn P P j=1 cj xj ≤ c0 + j∈N 0 xj + j∈N 1 (1 − xj ) + K. P Bewering 5: Als de ongelijkheid nj=1 cj xj ≤ c0 + K + 1 met basisongelijkheden is te genereren, P dan is de ongelijkheid nj=1 cj xj ≤ c0 + K ook met basisongelijkheden te genereren. Bewijs:
Veronderstel dat de ongelijkheid Volgens Bewering 4 geldt dan n X j=1
Pn
j=1 cj xj
≤ c0 + K + 1 met basisongelijkheden is gegenereerd.
cj xj ≤ c 0 + K +
X
xj +
j∈N 0
X
j∈N 1
(1 − xj )
(11.6)
voor alle partities (N 0 , N 1 ). Hieruit volgt dat aan de veronderstelling van Bewering 2 is voldaan met (T 0 , T 1 ) een partitie van {1, 2, . . . , n − 1} en p = n. Volgens Bewering 2 geldt dan n X j=1
cj xj ≤ c 0 + K +
X
j∈T 0
157
xj +
X
j∈T 1
(1 − xj ).
(11.7)
We zien dus dat als we (11.7) met (11.6) vergelijken de variabele x n is ge¨elimineerd. Op deze wijze gaan we Bewering 2 herhaald toepassen met (T 0 , T 1 ) partities van {1, 2, . . . , n − 1}, {1, 2, . . . , n − Pn 2}, . . . , {1}, ∅. Hieruit volgt tenslotte, als T 0 = T 1 = ∅ : j=1 cj xj ≤ c0 + K.
Het bewijs kan nu als volgt worden gegeven. Bepaal allereerst m.b.v. de LP-relaxatie de toeP P laatbare ongelijkheid nj=1 cj xj ≤ dz0 e. Zij K = dz0 e − c0 , zodat nj=1 cj xj ≤ c0 + K. Volgens P Bewering 5 (voor K −1, K −2, . . . , 1) volgt hieruit dat de toelaatbare ongelijkheid nj=1 cj xj ≤ c0 via herhaald toepassen van basisongelijkheden uit de LP-relaxatie kan worden verkregen.
Opmerking: Voor niet-binaire geheeltallige variabelen is het resultaat nu eenvoudig aan te tonen onder de milde voorwaarde dat de variabelen begrensd zijn. Zeg x wordt begrensd door U , dan is x te P k−1 y met y ∈ {0, 1} en 2K > U (gebruik de binaire schrijfwijze van schrijven als x = K k k k=1 2
x om te zien welke yk ’s 1 zijn en welke 0). Op deze wijze is het oorspronkelijke probleem om te schrijven naar een probleem met (0, 1)-variabelen. Een toelaatbare ongelijkheid voor X heet een toelaatbare snede als de ongelijkheid geen toelaatbare ongelijkheid voor P is.
Gomory’s fractie-snede algoritme Beschouw probleem (11.1) en los de LP-relaxatie ervan op met de simplex methode. Veronderstel dat het optimale LP-tableau de volgende gedaante heeft: X (xB )i = a∗i0 − a∗ij (xN )j , i = 0, 1, . . . , m,
(11.8)
j
waarbij de 0-de rij correspondeert met de doelfunctie, dus i.v.m. de optimaliteit geldt a ∗0j ≥
0 voor alle j, en xB ∪ xN de oorspronkelijke plus de verschil- en schijnvariabelen bevat. Als
de LP-relaxatie geen geheeltallige oplossing geeft, is er een rij, zeg rij r, met a ∗r0 niet geheel. Het ( toepassen van de derde basisongelijkheid op deze rij, met gewichtsvector u waarbij u i = 1 als i = r geeft de ongelijkheid 0 als i 6= r (xB )r +
X j
ba∗rj c(xN )j ≤ ba∗r0 c.
(11.9)
Vullen we in (11.9) voor (xB )r de uitdrukking uit (11.8) met i = r in, dan geeft dat de toegelaten ongelijkheid X j
{a∗rj − ba∗rj c}(xN )j ≥ a∗r0 − ba∗r0 c.
(11.10)
Noteer de fracties a∗rj − ba∗rj c met frj voor alle j, dan geeft dit de toegelaten fractie-snede X frj (xN )j ≥ fr0 . (11.11) j
Omdat fr0 > 0 is door de optimale oplossing van de LP-relaxatie, d.w.z. x B = a∗0 , xN = 0, niet aan (11.11) voldaan. Deze ongelijkheid kapt dus de LP-oplossing van het toegelaten gebied 158
af en is dus inderdaad een snede. Omdat (11.9) geheeltallige co¨effici¨enten heeft, is voor iedere geheeltallige x het verschil tusssen het rechter- en het linkerlid geheel. Omdat de fractie-snede (11.11) hieruit is ontstaan, na combinatie met de gelijkheid (11.8) voor i = r, geldt dat voor iedere geheeltallige x ook het verschil tussen het rechter- en linkerlid van (11.11) geheel is. Schrijven we (11.11) dus met een verschilvariabele s als s = −fr0 +
X
frj (xN )j ,
(11.12)
j
dan is s ook een niet-negatieve geheeltallige variabele. Voegen we de vergelijking (11.12) aan het tableau toe, dan is de bijbehorende oplossing wel duaal, maar niet primaal toelaatbaar (omdat −fr0 < 0). De duale simplex methode is hiervoor de aangewezen methode om het nieuwe probleem te optimaliseren. Deze methode is in feite de simplex methode toegepast op het gespiegelde
tableau. Dit proc´ed´e herhalen we totdat een geheeltallige oplossing wordt gevonden. Er kan worden aangetoond dat dit bij een speciale implementatie (speciale keuze van de rij waaruit de snede wordt gegenereerd) na een eindig aantal iteraties gebeurt 2 . Voorbeeld 11.6 max 3x1 − x2
3x1 − 2x2 ≤
3
2x1 + x2 ≤
5
−5x1 − 4x2 ≤ −10 x1 , x2 ≥ 0 en geheel
We voeren verschilvariabelen y1 , y2 en y3 in en lossen het LP-probleem op. Dit geeft het volgende
tableau:
30 7 13 7 9 7 31 7
x0 x1 x2 y2
y1
y3
5 7 1 7 − 72 − 73
3 7 2 7 3 7 22 7
Nemen we de rij van x2 om de snede te genereren, dan wordt deze snede: − 27
5 7 y1
3 7 y3 .
x0 x1 x2 y2 s1
30 7 13 7 9 7 31 7 - 27
y1
y3
5 7 1 7 − 72 − 73 − 75
3 7 2 7 3 7 22 7 - 37
methode wordt nu
4
1
0
x1
9 5 7 5 2 5 2 5
1 5 − 25 − 35 − 75
1 5 3 5 17 5 3 5
y2 y1 − 57
(in
y3
x0 x2
Volgens de duale simplex
s1
Neem de rij van x1 om de snede te genereren, dan wordt
de onderste rij) als pivot
deze snede:
Voegen we deze snede toe,
genomen,
dan onstaat het volgende
volgende tableau ontstaat.
s2 = − 45 + 15 s1 + 15 y3 .
s1 =
+
+
waarmee
Voeg deze snede toe, dan ontstaat het volgende tableau.
tableau. 2
het
G. Zoutendijk, ”Mathematical programming methods”, North-Holland, 1976, pp. 218-219.
159
s1
s1
y3
s2
y2
s2
1 4
17 4
x0
4
1
0
x0
4
1
0
x0
7 4
x1
9 5 7 5 2 5 2 5 - 45
1 5 − 52 − 53 − 57 − 51
1 5 3 5 17 5 3 5 - 15
x1
1
0
1
x1
1
0
1
x2
−1
−1
3
x2
17
y1
− 14
− 54
−2
−4 −2
3
y3
5 4 10 4 7 4
1
−5
x2 y2 y1 s2
y2 y1 y3
−9 4
− 24 1 4
− 22 4
− 34
Dit tableau is optimaal. Neem
Dit tableau is nog niet
de rij van x3 om de snede te
optimaal, dus we moeten
genereren, dan wordt deze
de onderste rij en meest
verder pivoten.
rechtse kolom de pivot,
wordt -4 in de rij van y2
snede: s3 = − 34 + 14 y2 + 11 s2 .
waarmee
en het volgende tableau
Volgens de duale simplex − 15
methode wordt nu
het
in
volgende
De pivot
staat hiernaast.
tableau ontstaat.
Voeg deze snede toe, dan ontstaat het volgende tableau.
Hiermee
zou s1 in de basis komen. Deze snede is daarmee niet meer bindend en kan worden weggelaten. y2
s2
x0
7 4
1 4
17 4
x0
x1
1
0
1
x2
5 4 10 4 7 4 3 -4
− 41 − 42 1 4 - 41
− 54 − 22 4 − 34 − 14
y1 y3 s3
Volgens de duale simplex − 14
s3
s2
1
1
4
x1
1
0
1
x2
2
y1
4
−1
−1
y3
1
1
y2
3
−1
Dit
−2
−5
−4
1
tableau
is
opti-
in
maal met een geheeltallige
de onderste rij en kolom
oplossing, die dus optimaal
van y2 de pivot, waarmee
is. De optimale oplossing
het
luidt: x1 = 1, x2 = 2 met
methode wordt nu
volgende
tableau
ontstaat.
waarde 1.
Gomory’s snede voor gemengd geheeltallige optimalisering Beschouw het volgende gemengd geheeltallig lineair optimaliseringsprobleem met x de vector van de geheeltallige variabelen en y de vector van de continue variabelen: n r X X max pj xj + qk yk | Ax + Cy ≤ b; x, y ≥ 0 en x geheel , j=1
k=1
met A een (m × n)-matrix, C een (m × r)-matrix en b ∈ R m .
160
(11.13)
Los de LP-relaxatie van (11.13) op met de simplex methode en veronderstel dat het optimale LP-tableau de volgende gedaante heeft: ( P P (yB )i = a∗i0 − j∈J1 a∗ij (xN )j − j∈J2 a∗ij (yN )j , i ∈ M1 P P (xB )i = a∗i0 − j∈J1 a∗ij (xN )j − j∈J2 a∗ij (yN )j , i ∈ M2
(11.14)
waarbij de 0-de rij correspondeert met de doelfunctie en M 1 ∪ M2 = {0, 1, 2, . . . , m}.
Als a∗i0 geheel is voor alle i ∈ M2 , dan is x geheeltallig en het tableau optimaal. Veronderstel dus verder dat a∗i0 niet geheel is voor een i ∈ M2 . De volgende stelling geeft een toegelaten snede. Stelling 11.2 Laat fj = a∗ij − ba∗ij c, j ∈ J1 ∪ J2 en f0 = a∗i0 − ba∗i0 c > 0, dan is X
X
fj (xN )j +
j∈J1 |fj >f0
j∈J1 |fj ≤f0
f0 (1 − fj ) (xN )j + 1 − f0
X
a∗ij (yN )j +
j∈J2 |a∗ij >0
X
j∈J2 |a∗ij <0
f0 a∗ (yN )j ≥ f0 f0 − 1 ij (11.15)
een toegelaten snede. Bewijs Laat αj ≡ a∗ij (mod 1) voor j ∈ J1 . Dan volgt uit (11.14) dat voor iedere geheeltallige x geldt: f0 ≡ (
X
αj (xN )j +
X
a∗ij (yN )j (mod 1)
(11.16)
j∈J2
j∈J1
als fj ≤ f0 ;
fj
Voor iedere toelaatbare (x, y) geldt: fj − 1 als fj > f0 . P P Als j∈J1 αj (xN )j + j∈J2 a∗ij (yN )j ≥ 0, dan:
Neem αj =
X
fj (xN )j +
j∈J2 |a∗ij >0
j∈J1 |fj ≤f0
Als
X
a∗ij (yN )j ≥
X
αj (xN )j +
j∈J1
X
j∈J2
a∗ij (yN )j ≥ f0
(11.17)
a∗ij (yN )j < 0, dan: P P P P ∗ ∗ j∈J2 aij (yN )j ≤ f0 − 1, j∈J1 αj (xN )j + j∈J2 |a∗ <0 aij (yN )j ≤ j∈J1 |fj >f0 (fj − 1)(xN )j + P
j∈J1
αj (xN )j +
P
j∈J2
ij
zodat geldt:
f0 f0 − 1
X
j∈J1 |fj >f0
(fj − 1)(xN )j +
X
a∗ij (yN )j
j∈J2 |a∗ij <0
Omdat ook geldt X
j∈J1 |fj ≤f0
fj (xN )j +
X
j∈J2 |a∗ij >0
a∗ij (yN )j ≥ 0;
f0 f0 − 1
X
≥
j∈J1 |fj >f0
f0 · (f0 − 1) = f0 f0 − 1
(fj − 1)(xN )j +
X
(11.18)
a∗ij (yN )j
j∈J2 |a∗ij <0
(11.19)
volgt uit (11.17), (11.18) en (11.19) dat (11.15) geldt. Omdat in de huidige optimale LP-oplossing xN = yN = 0, voldoet deze oplossing niet aan (11.15), zodat (11.15) inderdaad een snede is.
161
≥0
Opmerking: Ook voor deze methode kan de eindigheid worden aangetoond voor een speciale implementatie 3 . Voorbeeld 11.7 Beschouw Voorbeeld 11.6, maar zonder de eis dat x 2 geheel is. Het eerste LP-tableau dat we beschouwen is hetzelfde als het eerste tableau uit Voorbeeld 11.6.
30 7 13 7 9 7 31 7
x0 x1 x2 y2
y1
y3
5 7 1 7 − 72 − 73
3 7 2 7 3 7 22 7
x0 x1 x2 y2
Nemen we de rij van x1 om de snede te genereren. Deze snede is: s1 =
− 67
+
1 7 y1
s1
30 7 13 7 9 7 31 7 - 67
y1
y3
5 7 1 7 − 72 − 73 − 71
3 7 2 7 3 7 22 7 - 27
+
s1 3 2
x0
3
1 2
x1
1
0
1
x2
0
3 2
y2
−5
− 12
y3
3
−2 1 2
11 − 72
Dit tableau is nog niet opti-
Volgens de duale simplex methode wordt nu
2 7 y3 .
y1
− 27
maal; we voeren vervolgens
(in
een pivotstap uit in de rij van
de onderste rij) als pivot
Voegen we deze snede toe,
genomen,
waarmee
dan onstaat het volgende
volgende tableau ontstaat.
y2 en met pivot -2.
het
tableau. y2
s1
x0
7 4
1 4
17 4
x1
1
0
1
is nevenstaand tableau optimaal.
x2
5 4 5 2 7 4
− 14
− 54
De optimale oplossing luidt dus:
y1 y3
− 12 1 4
− 11 2 − 34
Omdat x1 geheeltallig is,
x1 = 1, x2 =
5 4
met waarde 74 .
Sterke toelaatbare ongelijkheden en bedekkingsongelijkheden We hebben gezien dat we vrij eenvoudig toelaatbare ongelijkheden kunnen afleiden, bijvoorbeeld Gomory’s fractie-snede voor een geheeltallig lineair programmeringsprobleem. Hoewel het bijbehorende algoritme eindig is, duurt het in de praktijk vaak erg lang voordat een optimale oplossing wordt gevonden. We zullen nu ingaan op de vraag of er niet sterkere ongelijkheden gevonden kunnen worden, die hopelijk effectiever zijn. Een sterkere ongelijkheid snijdt meer af van het gebied: als we twee toelaatbare ongelijkheden P P hebben, zeg nj=1 aj xj ≤ a0 en nj=1 bj xj ≤ b0 , dan heet de tweede ongelijkheid sterker dan de P P eerste als iedere toelaatbare x die voldoet aan nj=1 bj xj ≤ b0 ook voldoet aan nj=1 aj xj ≤ a0 . Beschouw een beperking met (0, 1)-variabelen:
Pn
j=1 aj xj
≤ a0 met xj ∈ {0, 1}, 1 ≤ j ≤ n.
Door, indien nodig, over te gaan op complementaire variabelen x j = 1 − xj , kunnen we ervoor zorgen dat alle co¨effficienten aj niet-negatief zijn. Verder mogen we aannemen dat in dat geval het rechterlid ook niet-negatief is (anders geeft de beperking ontoelaatbaarheid). 3
T.C. Hu, ”Integer programming and network flows”, Addison-Wesley, 1970, pp. 255-259.
162
Laat N = {1, 2, . . . , n}. Een B ⊆ N heet een bedekking als
P
j∈B
aj > a0 ; een bedekking B
heet minimaal als geen enkele deelverz. van B ook een bedekking is. Als B een bedekking is, dan kunnen de variabelen xj , j ∈ B niet alle gelijk aan 1 zijn, zodat voor iedere bedekking B de
ongelijkheid
X
j∈B
xj ≤ |B| − 1
(11.20)
een toelaatbare ongelijkheid is. Zo’n ongelijkheid heet een bedekkingsongelijkheid. Hoe meer variabelen, bij hetzelfde rechterlid, zo’n ongelijkheid heeft, hoe sterker de ongelijkheid is. Het is eenvoudig in te zien (ga dit zelf na) dat voor een bedekking B ook de ongelijkheid X
j∈E(B)
xj ≤ |B| − 1,
(11.21)
met E(B) = B ∪ {i | ai ≥ aj voor iedere j ∈ B}, een toelaatbare ongelijkheid is die sterker is dan
(11.20). Z’n ongelijkheid heet een uitgebreide bedekkingsongelijkheid. Voorbeeld 11.8
Beschouw de beperking 11x1 + 6x2 + 6x3 + 5x4 + 5x5 + 4x6 + x7 ≤ 19 met xi ∈ {0, 1}, 1 ≤ i ≤ 7. De ongelijkheid x3 + x4 + x5 + x6 ≤ 3 is een bedekkingsongelijkheid, die minimaal is.
De ongelijkheid x1 + x2 + x3 + x4 + x5 + x6 ≤ 3 is een uitgebreide bedekkingsongelijkheid.
De ongelijkheid 2x1 + x2 + x3 + x4 + x5 + x6 ≤ 3 is ook een toelaatbare ongelijkheid (als x 1 = 1 moet immers gelden dat x2 + x3 + x4 + x5 + x6 ≤ 1 is), die weer sterker is dan de vorige.
We kunnen ons nu de vraag stellen of we een sterkste ongelijkheid kunnen bepalen uitgaande van P de minimale bedekkingsongelijkheid j∈B xj ≤ |B| − 1, d.w.z. een ongelijkheid van de vorm X
xj +
j∈B
waarbij er geen ongelijkheid van de vorm
X
j∈N \B
P
j∈B
bj xj ≤ |B| − 1, xj +
voor alle j ∈ N \B en minstens ´e´en b∗j > bj .
P
∗ j∈N \B bj xj
(11.22)
≤ |B| − 1 bestaat met b∗j ≥ bj
Zo’n sterkste ongelijkheid kan worden bepaald met de volgende procedure die voor ieder volgend element uit j ∈ N \B berekent wat de ’maximale ruimte’ is voor x j = 1. Procedure voor een sterkste uitbreidingsongelijkheid 1. Start met een minimale bedekkingsongelijkheid, zeg Zij N \B = {j1 , j2 , . . . , jr } en laat k = 1.
P
j∈B
xj ≤ |B| − 1.
2. Los het volgende knapzakprobleem op: P Pk−1 P Pk−1 wk = max{ j∈B xj + i=1 b ji x ji | j∈B aj xj + i=1 aji xji ≤ a0 − ajk ; alle xj ∈ {0, 1}}.
3. Neem bjk = |B| − 1 − wk 4. Als k = r: stop.
Anders: k := k + 1 en ga naar stap 2.
163
Voorbeeld 11.8 (vervolg) Neem B = {3, 4, 5, 6} en j1 = 1, j2 = 2, j3 = 7. ) ( 6x + 5x + 5x + 4x ≤ 8 3 4 5 6 k = 1: Bepaal w1 = max x3 + x4 + x5 + x6 x3 , x4 , x5 , x6 ∈ {0, 1} w1 = 1, zodat b1 = 2. (
) 11x + 6x + 5x + 5x + 4x ≤ 13 1 3 4 5 6 k = 2: Bepaal w2 = max 2x1 + x3 + x4 + x5 + x6 x1 , x3 , x4 , x5 , x6 ∈ {0, 1} w2 = 2, zodat b2 = 1. (
) 11x + 6x + 6x + 5x + 5x + 4x ≤ 18 1 2 3 4 5 6 k = 3: Bepaal w3 = max 2x1 + x2 + x3 + x4 + x5 + x6 x1 , x2 , x3 , x4 , x5 , x6 ∈ {0, 1} w3 = 3, zodat b7 = 0.
De sterkste ongelijkheid die op deze wijze wordt verkregen luidt dus: 2x 1 +x2 +x3 +x4 +x5 +x6 ≤ 3.
11.4
Lagrange relaxatie
Beschouw het volgende geheeltallige programmeringsprobleem in matrix-notatie: z ∗ = max{pT x | Ax ≤ b; Cx ≤ d; x ∈ Zn+ }, met A een m × n- en C een q × n-matrix. (11.23) Veronderstel dat dit probleem vrij eenvoudig is op te lossen als de beperkingen Cx ≤ d niet aanwezig zijn, bijvoorbeeld als de rest een netwerkoptimalisatieprobleem is. Als we de ’gewone’
relaxatie nemen door deze beperkingen weg te laten, dan krijgen we vaak zwakke, d.w.z. hoge, bovengrenzen voor het optimum van (11.23). Via de zogenaamde Lagrange relaxatie kunnen meestal betere grenzen worden verkregen. Voor een u ∈ Rq+ is de Lagrange relaxatie van (11.23) gedefinieerd door: z(u) = max{pT x + uT (d − Cx) | Ax ≤ b; x ∈ Zn+ } = uT d + max{(p − C T u)T x | Ax ≤ b; x ∈ Zn+ }. (11.24)
Probleem (11.24) is inderdaad een relaxatie van (11.23), want iedere toegelaten oplossing x van (11.24) is ook toegelaten voor (11.23) en voldoet, i.v.m. de niet-negativiteit van u, aan: pT x + uT (d − Cx) ≥ pT x. Door voor x de optimale oplossing van (11.23), zeg x ∗ , te nemen, krijgen we: z(u) ≥ pT x∗ + uT (d − Cx∗ ) ≥ pT x∗ = z ∗ . Verder geldt de volgende dualiteitsstelling.
Stelling 11.3 Als voor zekere u ∈ Rq+ , x(u) een optimale oplossing is van (11.24) met Cx(u) ≤ d
en uT (d − Cx(u)) = 0, dan is x(u) een optimale oplossing van (11.23). Bewijs
Merk op dat x(u) toelaatbaar is voor (11.23), dus p T x(u) ≤ z ∗ . Verder geldt:
z(u) = pT x(u) + uT (d − Cx(u)) = pT x(u) ≤ z ∗ ≤ z(u), waaruit volgt dat pT x(u) = z ∗ .
164
Opmerking Als de beperkingen van de C-matrix gelijkheden zijn, dan vervalt de niet-negativiteit van u en luidt het analogon van Stelling 11.3: Als voor zekere u ∈ R q , x(u) een optimale oplossing is van (11.24) met Cx(u) = d, dan is x(u) een optimale oplossing van (11.23). Voorbeeld 11.9: Transportprobleem met vaste kosten Veronderstel dat n klanten bevoorraad moeten worden vanuit m mogelijke locaties. Klant j heeft dj eenheden nodig, j = 1, 2, . . . , n. Als locatie i wordt gebruikt, dan geeft dit vaste kosten fi , 1 ≤ i ≤ m; als klant j vanuit locatie i wordt geleverd, dan geeft dit een winst van p ij per eenheid van toelevering.
Het probleem is om te beslissen welke locaties worden gebruikt en hoe de toelevering geschiedt z´odat de netto winst (opbrengst - kosten) gemaximaliseerd wordt. hoeveelheid die vanuit locatie i aan klant j wordt geleverd xij = de ( Zij 1 als locatie i wordt gebruikt yi = 0 anders Dan is dit probleem te formuleren als P P Pm m n max i=1 j=1 pij xij − i=1 fi yi Beschouwen we de beperkingen
Pm
i=1
xij ≤ dj yi , 1 ≤ i ≤ m, 1 ≤ j ≤ n xij ≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n yi ∈ {0, 1}, 1 ≤ i ≤ m Pm
i=1
xij = dj , j = 1, 2, . . . , n
xij = dj , j = 1, 2, . . . , n als ’lastige beperkingen’, dan
wordt de Lagrange relaxatie P Pn m Pn z(u) = j=1 uj dj +max i=1 [ j=1 (pij − uj )xij − fi yi ] =
Pn
j=1 uj dj
+
Pm
i=1 zi (u),
waarbij
xij ≤ dj yi , 1 ≤ i ≤ m, 1 ≤ j ≤ n xij ≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n yi ∈ {0, 1}, 1 ≤ i ≤ m
xij ≤ dj yi , 1 ≤ j ≤ n Pn zi (u) = max (pij − uj )xij − fi yi xij ≥ 0, 1 ≤ j ≤ n j=1 yi ∈ {0, 1}
Het deelprobleem om zi (u) op te lossen is eenvoudig:
als yi = 0, dan is xij = 0 voor alle j, zodat de doelfunctie 0 is; als yi = 1, dan is xij = dj als pij − uj > 0 en anders 0, zodat de waarde van de doelfunctie gelijk P is aan nj=1 max[0, pij − ui ]dj − fi . P Hieruit volgt dat zi (u) = max{0, nj=1 max[0, pij − uj ]dj − fi }. We zullen nu een getallenvoorbeeld geven.
Laat n = 6, dj = 1, 1 ≤ j ≤ n en m = 5, f1 = 2, f2 = 4, f3 = 5, f4 = 3, f5 = 3. Voor de winstmatrix P en de vector u nemen we:
165
6
4
3 2 1 3
2 10 2 0 8 2 P = 1 2 4 4 6 4 3 6 1 1 2 8 5 1 3 4 5 1 1 −2 0 −3 4 −1 P − eu = −4 −4 1 −2 0 −2 0 −5 0
en u = (5, 6, 3, 2, 5, 4), zodat 0 −4 −1
3 −2 Pn 2 1 0 en j=1 uj dj = 25. −1 −3 4 2 0 −3 −2
We bepalen nu de oplossingen van de deelproblemen:
z1 (u) = max{0, 1 − 2} = 0; z2 (u) = max{0, 4 + 3 − 4} = 3; z3 (u) = max{0, 1 + 2 + 1 − 5} = 0; z4 (u) = max{0, 4 − 3} = 1; z5 (u) = max{0, 2 − 3} = 0. Hieruit volgt: z(u) = 3 + 1 + 25 = 29.
Voorbeeld 11.9: Het symmetrisch handelsreizigersprobleem Als tweede voorbeeld nemen we het symmetrisch handelsreizigersprobleem. We gebruiken binaire variabelen xij , i < j, waarbij xij = 1 correspondeert met het opnemen van de verbinding (i, j), in een van beide richtingen, in de ronde. De beperkingen van dit probleem zijn dat de graad van ieder knooppunt 2 is en dat er geen subrondes zijn. Laat S ⊆ {2, 3, . . . , n} met S ≥ 2. Als we kijken naar de verbindingen met beide eindpunten in S,
dan kunnen in een ronde die alle knooppunten bevat hoogstens |S|−1 van dergelijke verbindingen
zitten (anders is er subronde in S). Hieruit volgt de volgende formulering van dit probleem: P P x = 2, i = 1, 2, . . . , n x + ji ij j|j
Uit de beperkingen dat de graad in ieder knooppunt 2 is, volgt dat er n variabelen gelijk aan 1 P worden gekozen, dus dat i<j xij = n. Voor de Lagrange relaxatie brengen we de beperkingen P dat de graad 2 is weg, en vervangen we deze door de beperking i<j xij = n, terwijl we ook de beperking dat de graad in knooppunt 1 gelijk is aan 2 laten staan. De doelfunctie wordt dus: P Pn P P i<j cij xij + i=1 ui [2 − j|i<j xij − j|j
Dus een xij met i < j heeft in de doelfunctie de co¨effici¨ent cij − ui − uj , zodat de Lagrange
relaxatie is:
z(u) = 2
Pn
i=1
ui + min
P
i<j [cij
− ui − uj ]xij
P n j=2 x1j = 2 P Pi<j xij = n i∈S,j∈S | i<j xij ≤ |S| − 1 voor alle S ⊆ {2, 3, . . . , n} met S ≥ 2 xij ∈ {0, 1} voor alle (i, j) met i < j
166
De beperkingen van z(u) houden in dat het om n takken van de graaf gaat z´odanig dat deze op iedere deelverz. van {1, 2, . . . , n − 1} deelgraaf samenhangend is en knooppunt 1 incident is met twee takken. De andere knooppunten zijn dus incident met ´e´en tak. Een dergelijke deelgraaf
wordt een 1-boom genoemd. Deze Lagrange relaxatie is dit het probleem om een 1-boom met minimaal gewicht te vinden, waarbij de verbinding (i, j) gewicht c ij − ui − uj heeft. het is direct
in e zien (ga dit zelf na) dat een optimale oplossing hiervan wordt verkregen door een optimale
opspannende boom van de knooppunten {2, 3, . . . , n} te bepalen en daaraan toe te voegen de twee
takken incident met knooppunt 1 die het kleinste gewicht hebben. Getallenvoorbeeld
Beschouw het handelsreizigersprobleem met 5 knooppunten en met de afstanden: c12 = 30, c13 = 26, c14 = 50, c15 = 40, c23 = 24, c24 = 40, c25 = 50, c34 = 24, c35 = 26 en c45 = 30. Neem u = (0, 0, −15, 0, 0), zodat voor de gewichten geldt:
w12 = 30, w13 = 41, w14 = 50, w15 = 40, w23 = 39, w24 = 40, w25 = 50, w34 = 39, w35 = 41 en w45 = 30. De optimale 1-boom bestaat uit de takken {(1, 2), (1, 5), (2, 3), (3, 4), (4, 5)} met totaal gewicht
178, zodat z(u) = 178+2×(−15) = 148. Omdat deze relaxatie een goede ronde oplevert, namelijk [1, 2, 3, 4, 5, 1] met totale lengte 148, is dit de optimale oplossing van dit handelsreizigersprobleem. Voor een zo goed mogelijke, d.w.z. zo laag mogelijke, bovengrens van de Lagrange relaxatie (11.24) beschouwen we het Lagrange duale probleem: zLD = minu≥0 z(u). Merk op dat z ∗ ≤ zLD ; het verschil zLD − z ∗ heet het dualiteitsgat.
Als {x | Ax ≤ b; x ∈ Zn+ } uit een eindig aantal, zeg x1 , x2 , . . . , xK , elementen bestaat, dan geldt: zLD = minu≥0 {max1≤k≤K pT xk + uT (d − Cxk )}. = min{w | w ≥ pT xk + uT (d − Cxk ), 1 ≤ k ≤ K; u ∈ Rm + , w ∈ R}. Dit is een LP-probleem, maar heeft meestal wel erg veel beperkingen. Soms kan dit toch effici¨ent worden opgelost zonder expliciet alle beperkingen in te voeren. Het volgende resultaat kan worden aangetoond
4
Stelling 11.4 Als z(u) voor iedere u polynomiaal oplosbaar is, dan kan ook z LD in polynomiale tijd worden bepaald. De volgende Stelling laat zien dat de Lagrange duaal in het algemeen een scherpere bovengrens voor z ∗ geeft dan zLP , het optimum van de LP-relaxatie van het oorspronkelijke probleem: zLP = max{pT x | Ax ≤ b; Cx ≤ d; x ≤ 0}. Stelling 11.5 z ∗ ≤ zLD ≤ zLP . 4
A. Schrijver: ”Theory of linear and integer programming”, Wiley, (1986) p. 368.
167
Bewijs We hebben reeds gezien dat z ∗ ≤ zLD . Voor de relatie tussen zLD en zLP geldt: zLD = minu≥0 [uT d + max{(p − C T u)T x | Ax ≤ b; x ∈ Zn+ }] ≤ minu≥0 [uT d + max{(p − C T u)T x | Ax ≤ b; x ≥ 0}]. Omdat het optimum van een LP-probleem gelijk is aan het optimum van het duale LP-probleem is zLD ≤ minu≥0 [uT d + min{bT v | AT v ≥ p − C T u; v ≥ 0}] = min {uT d + bT v | C T u + AT v ≥ p; u, v ≥ 0}. Door nu voor de tweede keer een LP-probleem te dualiseren krijgen we: zLD ≤ max {pT x | Ax ≤ b; Cx ≤ d; x ≥ 0} = zLP . In veel praktische situaties wordt de opslitsing van de beperkingen zo gemaakt dat de hoekpunten van {x | Ax ≤ b; x ∈ Zn+ } geheeltallig zijn. In dat geval is de Lagrange relaxatie (11.24) op te lossen als een LP-probleem:
z(u) = uT d + max{(p − C T u)T x | Ax ≤ b; x ≥ 0}. Bovendien is in dat geval het optimum van de Lagrange duaal gelijk aan het optimum van de LP-relaxatie van het oorspronkelijke probleem: z LD = zLP . Dit volgt uit het bewijs van Stelling 11.5, omdat de eerste ongelijkheid nu een gelijkheid is en de verdere herschrijvingen reeds via gelijkheden tot stand kwamen. Een speciale techniek om het Lagrange duale probleem op te lossen komt uit de niet-lineaire programmering en heet de subgradi¨ent methode. Een subgradi¨ent is een generalisatie van de gradi¨ent en is gedefinieerd voor convexe functies. De functie z(u) is het maximum van een aantal (in u) lineaire functies en is daarom convex, (zie Opgave 11.13), maar niet differentieerbaar. Een subgradi¨ent van een convexe functie f : Rm → R in het punt u is een vector g(u) met de eigenschap dat f (v) ≥ f (u) + g(u)T (v − u) voor alle v ∈ Rm .
Als f continu differentieerbaar is, dan is de subgradi¨ent gelijk aan de gradi¨ent: g(u) = ∇f (u); de vector d − Cx is de subgradi¨ent van z(u) (zie ook Opgave 11.13).
De subgradi¨ent methode is het analogon van de methode van Cauchy voor niet-differenteerbare, maar wel convexe functies. Dit is een iteratieve methode, gebaseerd op de iteratie u k+1 = uk −
λk g(uk ) (- i.p.v. + omdat we minimaliseren), waarbij λ k de staplengte is. Verder moeten we rekening houden met de niet-negativiteit van de u k ’s. De subgradi¨ent methode heeft het volgende schema: 1. Kies een willekeurige u ∈ Rm en laat k = 0.
2. a. Bepaal xk als optimale oplossing van (11.24) met u = u k . b. Neem uk+1 = max{uk − λk (d − Cxk ), 0}, waarbij het maximum componentsgewijs wordt genomen.
3. Als aan een stopcriterium is voldaan: stop; Anders: k := k + 1 en ga naar stap 2. 168
De moeilijkheid is om een geschikte rij λ k ’s met bijbehorend stopcriterium te bepalen z´odat de rij van de z(uk ) convergeert (liefst met een redelijke convergentiesnelheid) naar z LD = minu≥0 z(u). Het volgende resultaat kan worden aangetoond Stelling 11.6 (i) Als
P
k
5
λk → ∞ en λk → 0 voor k → ∞, dan convergeert z(uk ) naar zLD ;
(ii) Als λk = λ0 ρk met ρ < 1, dan convergeert z(uk ) naar zLD als λ0 en ρ voldoende groot zijn; z(uk )−z , waarbij kd−Cxk k2 k u met z ≥ z(uk ) ≥ zLD
(iii) Als z ≥ zLD en λk = εk ·
het algoritme vindt een
0 < εk < 2, dan convergeert z(uk ) naar z, ofwel voor zekere k.
Onderdeel (i) van deze Stelling garandeert convergentie, maar de rij λ k ’s moet divergent zijn, bijvoorbeeld λk =
1 k,
maar in vele practische gevallen is de convergentie erg traag. Anderzijds
geven (ii) en (iii) veel snellere convergentie, maar deze hebben ook hun nadelen. In (ii) moeten de waarde voldoende groot zijn, want anders schieten convergeren we voordat het optimum is bereikt. Het nadeel van (iii) is dat een zinvolle bovengrens z van z LD dicht bij zLD moet liggen en dat deze niet altijd bekend is. In de praktijk hebben we wel vaak een ondergrens z van z LD , bijv. een toelaten oplossing van het oorspronkelijke probleem. Deze wordt dan i.p.v. z gebruikt. Als er dan geen convergentie van de rijen {u k } en {z(uk )} op blijkt te treden, dan verhogen we
z. Soms heeft een dergelijke benadering succes.
Voorbeeld 11.9: Het symmetrisch handelsreizigersprobleem (vervolg) Merk op dat het hier om een minimaliseringsprobleem gaat waarbij de graadbeperkingen gelijkheden zijn; de duale variabelen u mogen dan ook negatief zijn. De iteratie en de staplengtebepaling (volgens methode (iii) uit Stelling 11.6 met ε k = 1) van de subgradi¨ent methode wordt hier: P P = uki + λk [2 − j|i<j xkij − j|j
Pn
i=1
[2−
P
z−z(uk ) P k k 2, j|i<j xij − j|j
een + in de iteratie en z in plaats van z omdat het een minimaliseringsprobleem is. Iteratie 1: Veronderstel dat we geen goede ondergrens z van z LD hebben, maar dat we wel een bovengrens hebben, zeg via de gevonden ronde [1, 2, 3, 4, 5, 1] met lengte 148. Start met u0 = (0, 0, 0, 0, 0). De bijbehorende gewichten zijn de oorspronkelijke c ij ’s. Een 1boom met minimaal gewicht is: {(1, 2), (1, 3), (2, 3), (3, 4), (3, 5)} met gewicht 130. Omdat in deze 1-boom de knooppunten 1 t/m 5 de graden 2,2,4,1,1 hebben geldt: u1 = u 0 +
148−130 (2−2)2 +(2−2)2 +(2−4)2 +(2−1)2 +(2−1)2
· (0, 0, −2, 1, 1) = (0, 0, −6, 3, 3).
Iteratie 2: Voor de nieuwe gewichtenmatrix geldt: w 12 = 30, w13 = 32, w14 = 47, w15 = 37, w23 = 30, w24 = 37, w25 = 47, w34 = 27, w35 = 29 en w45 = 24. Een 1-boom met minimaal gewicht is: {(1, 2), (1, 3), (2, 3), (3, 4), (4, 5)} met gewicht 143. Omdat in deze 1-boom de knooppunten 1 t/m 5 de graden 2,2,3,2,1 hebben geldt: u2 = u 1 + 5
148−143 (2−2)2 +(2−2)2 +(2−3)2 +(2−2)2 +(2−1)2
11 · (0, 0, −1, 0, 1) = (0, 0, − 17 2 , 3, 2 ).
L.A. Wolsey: ”Integer programming”, Wiley-Interscience Series in Discrete Mathematics and optimization,
(1998) p. 174.
169
Iteratie 3: Voor de nieuwe gewichtenmatrix geldt: w 12 = 30, w13 = 34.5, w14 = 47, w15 = 34.5, w23 = 32.5, w24 = 37, w25 = 44.5, w34 = 29.5, w35 = 29 en w45 = 21.5. Een 1-boom met minimaal gewicht is: {(1, 2), (1, 3), (2, 3), (3, 5), (4, 5)} met gewicht 147.5. Omdat
alle data geheel zijn weten we dat z ∗ ≥ 148. Omdat we al een ronde met lengte 148 hadden is deze dus optimaal. Opmerkingen
1. Omdat de subgradi¨ent methode meestal eindigt met een waarde die (bij een maximaliseringsprobleem) groter is dan zLD , terwijl zLD in het algemeen ook weer groter is dan z ∗ , geeft deze techniek slechts een bovengrens, die vaak wel vrij redelijk is, soms beter dan de LP-relaxatie. Als de deelproblemen een voudig oplosbaar zijn, wat meestal zo is want anders wordt deze techniek niet gebruikt, dan gaat dit vaak sneller dan via de LP-relaxatie. Vandaar dat de Lagrange relaxatie bijna altijd ingebed wordt in een branch-and-bound algoritme. 2. Als we een geheeltallig lineair programmeringsprobleem hebben en we willen Lagrange relaxatie toepassen, dan is de vraag welke beperkingen we in de doelfunctie gaan opnemen. Het antwoord hierop hangt af van de afweging tussen verschillende aspecten: - de waarde van zLD , d.w.z. hoe dichter bij z ∗ des te beter; - het gemak waarmee een z(u) kan worden bepaald; - het gemak waarmee de Lagrange duaal z LD = minu≥0 z(u) kan worden bepaald. Hoewel deze drie aspecten niet alle exact zijn aan te geven, kan er vaak wel iets zinnigs over worden gezegd. We zullen dit in onderstaand voorbeeld demonstreren. Voorbeeld 11.10: Het gegeneraliseerde toewijzingsprobleem Dit probleem heeft de volgende formulering: P n ≤ 1, i = 1, 2, . . . , m j=1 xij P P P m n m max i=1 j=1 cij xij i=1 aij xij ≤ bj , j = 1, 2, . . . , n x ∈ {0, 1}, 1 ≤ i ≤ m, 1 ≤ j ≤ n ij
We beschouwen drie mogelijke Lagrange relaxaties. In de eerste brengen we alle beperkingen naar de doelfuncie. De Lagrange relaxatie heeft dan de gedaante: o nP P P Pn n m [c − u − a v ]x |x ∈ {0, 1}, 1 ≤ i ≤ m, 1 ≤ j ≤ n . z 1 (u, v) = m u + v b +max ij i ij j ij ij i j j j=1 i=1 j=1 i=1
In de tweede relaxatie laten we het tweede stelsel beperkingen in tact: P ) ( m P P P a x ≤ b , j = 1, 2, . . . , n ij ij j n m m i=1 . z 2 (u) = i=1 ui + max j=1 [cij − ui ]xij i=1 xij ∈ {0, 1}, 1 ≤ i ≤ m, 1 ≤ j ≤ n
Als laatste relaxatie laten we het eerste stelsel beperkingen in tact: P ( ) n P P P x ≤ 1, i = 1, 2, . . . , m ij m n j=1 z 3 (v) = nj=1 vj bj + max . i=1 j=1 [cij − aij vj ]xij xij ∈ {0, 1}, 1 ≤ i ≤ m, 1 ≤ j ≤ n
1 2 3 Laat zLD = minu,v≥0 z 1 (u, v), zLD = minu≥0 z 2 (u) en zLD = minv≥0 z 3 (v). Omdat de eerste
en de derde relaxatie als LP-probleem kunnen worden opgelost (de hoekpunten zijn geheeltallig), 170
1 = z3 = z geldt: zLD LP . LD
De eerste relaxatie z 1 (u, v) is simpel op te lossen door inspectie: als c ij − ui − aij vj > 0, dan nemen we xij = 1, anders is xij = 0.
Ook de derde relaxatie is eenvoudig met inspectie op te lossen: voor iedere i kijken we voor welke j de waarde cij − aij vj het grootste is, zeg voor j = k. Als cik − aik vk > 0, dan nemen we xik = 1 en xij = 0, j 6= k; anders is xij = 0 voor alle j.
3 1 , omdat bij Beide zijn dus zeer eenvoudig oplosbaar, maar z LD is eenvoudiger te bepalen dan zLD 3 1 zLD over n variabelen geoptimalisserd moet worden en bij z LD over n + m variabelen. 2 kleiner zijn dan zLP , dus deze relaxatie heeft de voorkeur wat In de tweede relaxatie kan zLD
betreft scherpte van de te verkrijgen grens. Anderszijds zijn de deelproblemen z 2 (u) in het algemeen niet eenvoudig oplosbaar.
11.5
Andere technieken
Het succesvol oplossen van geheeltallige optimaliseringsmethoden is vaak een combinatie van de hiervoor besproken technieken: branch-and-bound (of enumeratie) en afkapmethoden. Ook is het meestal verstandig eerst enige preprocessing te doen. Preprocessing Hierbij wordt onderzocht of het aantal variabelen en/of beperkingen gereduceerd kan worden. We zullen dit demonstreren aan de hand van een voorbeeld. Voorbeeld 11.11 max 2x1 + x2 − x3
5x1 − 2x2 + 8x3 ≤ 15 8x1 + 3x2 − x3 ≥
9
x1 + x 2 + x 3 ≤
6
0 ≤ x1 ≤ 3 en geheel
0 ≤ x2 ≤ 1 en geheel 1 ≤ x3 en geheel
a. Reductie van de variabelen
Dit kan vaak m.b.v. de grenzen van de variabelen. Zo volgt uit de eerste beperking: 5x1 ≤ 15 + 2x2 − 8x3 ≤ 15 + 2 − 8 = 9 → x1 ≤ 1
De tweede beperking geeft: 8x1 ≥ 9 − 3x2 + x3 ≥ 9 − 3 + 1 = 7 → x1 ≥ 1, zodat met hetgeen uit de eerste beperking volgt geldt dat x 1 = 1, dus x1 is hiermee als variabele ge¨elimineerd.
Met x1 = 1 geeft de eerste beperking 8x3 ≤ 10 + 2x2 ≤ 10 + 2 = 12, zodat x3 ≤ 1. Omdat anderzijds x3 ≥ 1, volgt hieruit dat x3 = 1: ook x3 is ge¨elimineerd.
Met x1 = x3 = 1 volgt uit de tweede beperking dat 3x 2 ≥ 2, dus x2 ≥ 1, wat met de beperking x2 ≤ 1 oplevert dat x2 = 1. In dit geval zijn dus alle variabelen ge¨elimineerd. b. Reductie van de beperkingen
Omdat uit de eerste beperking volgt dat 8x 3 ≤ 15 − 5x1 + 2x2 ≤ 15 − 0 + 2 = 17, geldt dat x3 ≤ 2, zodat x1 + x2 + x3 ≤ 3 + 1 + 2 = 6: de derde beperking is dus overbodig. 171
c. Variabelen fixeren op grenswaarde Beschouw het probleem zonder de overbodige derde beperking. Door x 2 te vergroten wordt het probleem beter: d.z.w. meer ’ruimte’ voor de overige variabelen in de beperkingen en toename van de doelfunctie. Het is dus optimaal om x 2 gelijk aan zijn bovengrens 1 te nemen. Op analoge wijze geldt dat het optimaal is om x 3 te fixeren op zijn ondergrens 1, waarna op triviale wijze volgt dat x1 = 1. Het bovenstaande laat zich generaliseren tot het volgende. P Beschouw de vergelijking a0 x0 + nj=1 aj xj ≤ b met lj ≤ xj ≤ uj , j = 1, 2, . . . , n en x0 ≥ 0 en geheel. Dan geldt:
b−
P
j|aj >0
aj l j −
P
j|a <0
b−
P
j|aj >0
aj l j −
P
j|aj <0
aj u j
j Als a0 > 0, dan geldt: x0 ≤ a0 P P (dus als j|aj >0 aj lj + j|aj <0 aj uj > b, dan is de beperking ontoelaatbaar).
Als a0 < 0, dan geldt: x0 ≥
a0
aj u j
.
Als we het probleem max{px | Ax ≤ b; l ≤ x ≤ u} beschouwen, dan geldt: als aij ≤ 0 voor alle i en pj > 0, dan is in een optimale oplossing x j = uj ; als aij ≥ 0 voor alle i en pj < 0, dan is in een optimale oplossing x j = lj . Branch-and-Cut Een Branch-and-Cut algoritme is een Branch-and-Bound algoritme waarin ook sneden worden gebruikt naast het oplossen van de bijbehorende LP-problemen. Het is de kunst om een goede afweging te vinden tussen het extra werk dat men moet doen en het extra voordeel dat hiermee behaald kan worden. We zullen de werking ervan globaal demonsteren aan de hand van het gegeneraliseerd toewijzingsprobleem (zie Voorbeeld 11.10). Voorbeeld 11.12 We beschouwen een gegeneraliseerd toewijzingsprobleem met m = 10, n = 5 en met de volgende matrices C, A en vector b: 110 16 25 78 65 69 54 28 19 93 45 45 89 31 72 83 62 17 77 18 C= 37 115 87 59 89 102 98 74 78 96 87 55 74 27 99 91 88 97 99 99
59
71 9 20 39 , A = 97 61 77 5 51
95
1
21 66 59
54 53 44 26 60 3 91 43 42 5 72 30 56 72 9 44 1 71 13 27 en b = 20 99 87 52 85 72 96 97 73 49 75 82 83 44 59 68 8 87 74 4 69 83 98 88 45
91
87 109 . 88 64
Door preprocessing toe te passen vinden we: x 11 = 0 (omdat a11 > b1 ), x32 = 0 (omdat a32 > b2 ), x62 = 0 (omdat a62 > b2 ), x72 = 0 (omdat a72 > b2 ) en x65 = 0 (omdat a65 > b5 ). 172
Iteratie 1 Het LP-optimum is 595.6. Na 14 sneden (de details laten we achterwege) is deze waarde gedaald tot 554.1, met bijbehorende LP-oplossing (we geven allen de niet-nul variabelen): x12 = 1; x23 = x25 = 0.5, x31 = 0.76, x33 = 0.24, x43 = x45 = 0.5, x52 = 0.74, x54 = 0.26, x61 = 1, x73 = x75 = 0.5, x82 = 1, x91 = 0.76, x94 = 0.24, x10,1 = 0.24, x10,4 = 0.76. De variabele x73 kiezen we als splitsingsvariabele: deelprobleem 1 met x 73 = 1 en deelprobleem 2 met x73 = 0. Iteratie 2 Kies deelprobleem 1. Na drie sneden is de waarde van de doelfunctie gedaald tot 537 en de oplossing geheeltallig. Iteratie 3 Kies deelprobleem 2. Na ´e´en snede is de waarde van de doelfunctie gedaald tot 548.9. De variabele x13 wordt gekozen als splitsingsvariabele: deelprobleem 3 met x 13 = 1 en deelprobleem 4 met x13 = 0. Iteratie 4 Kies deelprobleem 4. De oplossing hiervan is geheeltallig met waarde 545. De oplossing luidt (we geven allen de niet-nul variabelen): x 12 = x23 = x31 = x43 = x52 = x61 = x75 = x82 = x91 = x10,4 = 1. Iteratie 5 Kies deelprobleem 3. De LP-oplossing hiervan is kleiner dan 545. Hiermee is het probleem opgelost met behulp van 18 sneden en branch-and-bound met 4 deelproblemen. Als branch-and-bound zonder sneden was toegepast, dan waren 4206 deelproblemen nodig geweest.
11.6
Opgaven
Opgave 1 Beschouw het volgende vestigingsprobleem. Een aantal (n) winkels moet vanuit een aantal (m) magazijnen bevoorraad worden. Winkel j heeft d j eenheden nodig. De vraag luidt: waar kunnen deze winkels het beste gevestigd worden? In plaats i zijn vaste investeringskosten f i en is de productiecapaciteit bi . Bij de bevoorrading van winkel j vanuit een magazijn in plaats i zijn er vaste kosten f ij en variabele kosten cij per eenheid; bovendien is de capaciteit op deze route b ij . Formuleer dit probleeem als een gemengd geheeltallig lineair programmeringsprobleem. Opgave 2 Beschouw het gebied in de R2 met 0 ≤ x1 ≤ 10, 0 ≤ x2 ≤ 10 met als extra voorwaarden: als x1 > 5, dan is x2 ≤ 5 en als x2 > 5, dan is x1 ≤ 5.
Geef m.b.v. continue en geheeltallige variabelen een lineaire beschrijving van dit niet-convexe
gebied. 173
Opgave 3 Een luchtvaartmaatschappij overweegt om nieuwe vliegtuigen aan te schaffen voor lange, middellange en korte vluchten. Deze kosten per stuk resp. 33.5, 25 en 17.5 miljoen euro. In totaal is er 750 miljoen euro beschikbaar. De jaarlijkse winst van de vliegtuigen wordt geschat op 2.1, 1.5 en 1.15 miljoen euro respectievelijk. De maatschappij heeft voldoende personeel om maximaal 30 vliegtuigen tijdens de vluchten te bemannen. Voor het onderhoud zijn maximaal 120 personen beschikbaar. Een vliegtuig voor de lange vlucht heeft op de vlucht 5 onderhoudslieden nodig, voor een middellange vlucht zijn er 4 nodig en voor een korte vlucht 3. De maatschappij vraagt zich af hoeveel vliegtuigen van elk type aangeschaft moeten worden om de totale winst te maximaliseren, terwijl aan de beperkingen wordt voldaan. a. Formuleer dit probleem als een geheeltallig lineair programmeringsprobleem. b. Bepaal met de branch-and-bound methode een optimale oplossing. Opgave 4 Los het volgende gemengd geheeltallig lineair programmeringsprobleem met branch-and-bound op: max −3x1 − 2x2 Opgave 5
x1 − 2x2 + x3 = 2x1 + x2 + x4 = x ,x ≥ 0 1 4 x2 , x3 ≥ 0 en geheel
5 2 3 2
Los het volgende (0, 1)-programmeringsprobleem met impliciete enumeratie op: x1 + x2 −x3 − 2x4 + x5 ≤ 1 7x1 −3x3 + 4x4 + 3x5 ≤ 9 max 3x1 + 2x2 + 5x3 + 2x4 + 3x5 + 3x4 + 3x5 ≤ 0 −11x1 + 6x2 x1 , x2 , x3 , x4 , x5 ∈ {0, 1} Opgave 6
Beschouw het knapzakprobleem in de gedaante: P ( ) n Pn a x ≤ b j=1 j j max , waarbij ap11 ≥ ap22 ≥ · · · ≥ apnn ≥ 0. j=1 pj xj xj ∈ {0, 1}, j = 1, 2, . . . , n P P Toon aan dat als kj=1 aj ≤ b en k+1 j=1 aj > b, dan is de oplossing van de LP-relaxatie:
xj = 1, 1 ≤ j ≤ k, xk+1 =
b−
Pk
j=1
ak+1
aj
en xj = 0, k + 2 ≤ j ≤ n.
Opgave 7 Los het volgende knapzakprobleem op: ( ) 5x + 4x + 7x + 6x + 2x ≤ 15 1 2 3 4 5 max 5x1 + 3x2 + 6x3 + 6x4 + 2x5 x1 , x2 , x3 , x4 , x5 ∈ {0, 1} 174
Opgave 8 Beschouw het volgende probleem: ) ( 2x + 2x + · · · + 2x = n 1 2 n , waarbij n oneven is. max x1 xj ∈ {0, 1}, 1 ≤ j ≤ n a. Bewijs dat dit probleem ontoelaatbaar is.
b. Zij J een deelverz. van {1, 2, . . . , n} met hoogstens
n−1 2
elementen.
Geef iedere xj , j ∈ J een waarde 0 of 1 en bewijs dat het LP-probleem P ( ) P 2x = n − 2x j j j ∈J / j∈J max x1 0 ≤ xj ≤ 1, j ∈ /J toelaatbaar is.
c. Bewijs dat iedere branch-and-bound procedure om het oorspronkelijke probleem op te lossen minstens 2
n−1 2
deelproblemen moet onderzoeken.
Opgave 9 Leid uit de ongelijkheid 3x1 − 4x2 + 2x3 − 3x4 + x5 ≤ −2 m.b.v. basisongelijkheden de toegelaten
ongelijkheid x2 + x4 ≥ 1 af. Opgave 10 Los met Gomory’s max −4x1 − 5x2 Opgave 11
fractie-snede het volgende probleem op: −x − 4x ≤ −5 1 2 −3x1 − 2x2 ≤ −7 x1 , x2 ≥ 0 en geheel
Los met Gomory’s snede het volgende gemengd geheeltallige probleem op: 7x − 2x ≤ 14 1 2 x ≤ 3 2 max 4x1 − x2 2x1 − 2x2 ≤ 3 x1 ≥ 0 en geheel; x2 ≥ 0 Opgave 12
Beschouw een zuiver geheeltallig lineair programmeringsprobleem. Hierop kan zowel Gomory’s fractie-snede als Gomory’s snede voor een gemengd geheeltallige probleem worden toegepast. Toon aan dat Gomory’s snede voor een gemengd geheeltallige probleem sterker is dan Gomory’s fractie-snede. Opgave 13 Beschouw de Lagrange relaxatie met de notatie uit paragraaf 11.4. a. Bewijs dat de Lagrange functie z(u) een convexe functie in u is. b. Toon aan dat d − Cx de subgradi¨ent van z(u) in u is.
175
Opgave 14 Beschouw het transportprobleem met vaste kosten uit paragraaf 11.4. Laat n = 6, dj = 1, 1 ≤ j ≤ n en m = 5, f1 = 4, f2 = 8, f3 = 11, f4 = 7, f5 = 5. Voor de winstmatrix 6 4 3 2 10 2 P = 1 2 4 3 6 1 5 1 3
P en de vector u nemen we: 2 1 3 0 8 2 4 6 4 en u = (5, 6, 3, 2, 6, 4). 1 2 8 4 5 1
a. Bepaal z(u) en de bijbehorende x(u), y(u).
b. Pas x(u), y(u) aan om een toelaatbare oplossing van dit transportprobleem te krijgen. c. Geef een afschatting hoe ver de netto winst van deze toelaatbare oplossing afligt van de optimale waarde. Opgave 15 Los het symmetrische handelsreizigersprobleem m.b.v. Lagrange relazatie op voor een probleem met 6 steden en de volgende afstanden: c 12 = 8, c13 = 2, c14 = 14, c15 = 26, c16 = 13, c23 = 7, c24 = 4, c25 = 16, c26 = 8, c34 = 23, c35 = 14, c36 = 9, c45 = 12, c46 = 6 en c56 = 5. Opgave 16 Beschouw het volgende knapzakprobleem: ) ( 3x + x + 4x ≤ 4 1 2 3 . max 10x1 + 4x2 + 14x3 x1 , x2 , x3 ∈ {0, 1}
a. Bepaal de Lagrange duaal zLD door de knapzakvoorwaarde te dualiseren en wat is de bijbehorende optimale duale variabele?
b. Pas de subgradi¨ent methode toe met als staplengte λ k = λ0 ρk , met λ0 = 1 en ρ = 21 . Start met u0 = 0. Laat zien dat deze methode niet convergeert naar de optimale duale variabele. Opgave 17 Beschouw het volgende geheeltallig lineair programmeringsprobleem 8x + 2x + x + 4x ≤ 10 1 2 3 4 x1 + x 2 ≤1 max 16x1 + 10x2 + 4x4 x3 + x 4 ≤ 1 x1 , x2 , x3 , x4 ∈ {0, 1} a. Laat zien dat de LP-relaxatie de waarde 18 oplevert.
.
b. Dualiseer de eerste beperking en toon aan dat deze Lagrange duaal ook de waarde 18 geeft.
c. Dualiseer de laatste twee beperkingen. Pas de subgradi¨ent methode toe, met versie (iii) uit Stelling 11.6 voor de staplengte en neem ε k = 1, om aan te tonen dat deze Lagrange duaal de waarde 16 geeft; start met u = (0, 0). Neem i.p.v. z een ondergrens z, en wel de best verkregen tussentijdse toelaatbare oplossing (begin met z = 0).
176
Opgave 18 Beschouw het volgende (0,1)-probleem max 5x1 − 7x2 − 10x3 + 3x4 − 5x5
x1 + 3x2 − 5x3 +
x4 + 4x5 ≤ 0
−2x1 − 6x2 + 3x3 − 2x4 − 2x5 ≤ −4 2x2 − 2x3 −
x4 +
x1 , x2 , x3 , x4 , x5 ∈ {0, 1}
Pas preprocessing toe om dit probleem zoveel mogelijk te vereenvoudigen.
177
x5 ≤ −2
.
TABEL I: KANSEN STANDAARD NORMALE VERDELING Laat z standaard normaal verdeeld zijn; notatie: z = N (0, 1). In onderstaande tabel staan de getallen P[0 ≤ z ≤ z] voor z = 0.00, 0.01, . . . , 3.09.
Voorbeeld: P[0 ≤ z ≤ 1.56] = 0.4406 (zie de rij van 1.5 en de kolom van .06). z
.00
.01
.02
.03
.04
.05
.06
.07
.08
.09
0.0
.0000
.0040
.0080
.0120
.0160
.0199
.0239
.0279
.0319
.0359
0.1
.0398
.0438
.0478
.0517
.0557
.0596
.0636
.0675
.0714
.0753
0.2
.0793
.0832
.0871
.0910
.0948
.0987
.1026
.1064
.1103
.1141
0.3
.1179
.1217
.1255
.1293
.1331
.1368
.1406
.1443
.1480
.1517
0.4
.1554
.1591
.1628
.1664
.1700
.1736
.1772
.1808
.1844
.1879
0.5
.1915
.1950
.1985
.2019
.2054
.2088
.2123
.2157
.2190
.2224
0.6
.2257
.2291
.2324
.2375
.2389
.2422
.2454
.2486
.2517
.2549
0.7
.2580
.2611
.2642
.2673
.2704
.2734
.2764
.2794
.2823
.2852
0.8
.2881
.2910
.2939
.2967
.2995
.3023
.3051
.3078
.3106
.3133
0.9
.3159
.3186
.3212
.3238
.3264
.3289
.3315
.3340
.3365
.3389
1.0
.3413
.3438
.3461
.3485
.3508
.3531
.3554
.3577
.3599
.3621
1.1
.3643
.3665
.3686
.3708
.3729
.3749
.3770
.3790
.3810
.3830
1.2
.3849
.3869
.3888
.3907
.3925
.3944
.3962
.3980
.3997
.4015
1.3
.4032
.4049
.4066
.4082
.4099
.4115
.4131
.4147
.4162
.4177
1.4
.4191
.4207
.4222
.4236
.4251
.4265
.4279
.4292
.4306
.4319
1.5
.4332
.4345
.4357
.4370
.4382
.4394
.4406
.4418
.4429
.4441
1.6
.4452
.4463
.4474
.4484
.4495
.4505
.4515
.4525
.4535
.4545
1.7
.4554
.4564
.4573
.4582
.4591
.4599
.4608
.4616
.4625
.4633
1.8
.4641
.4649
.4656
.4664
.4671
.4678
.4686
.4693
.4699
.4706
1.9
.4713
.4719
.4726
.4732
.4738
.4744
.4750
.4756
.4761
.4767
2.0
.4772
.4778
.4783
.4788
.4793
.4798
.4805
.4808
.4812
.4817
2.1
.4821
.4826
.4830
.4834
.4838
.4842
.4846
.4850
.4854
.4857
2.2
.4861
.4864
.4868
.4871
.4875
.4878
.4881
.4884
.4887
.4890
2.3
.4893
.4896
.4898
.4901
.4904
.4906
.4909
.4911
.4913
.4916
2.4
.4918
.4920
.4922
.4925
.4927
.4929
.4931
.4932
.4934
.4936
2.5
.4938
.4940
.4941
.4943
.4945
.4946
.4948
.4949
.4951
.4952
2.6
.4953
.4955
.4956
.4957
.4959
.4960
.4961
.4962
.4963
.4964
2.7
.4965
.4966
.4967
.4968
.4969
.4970
.4971
.4872
.4973
.4974
2.8
.4974
.4975
.4976
.4977
.4977
.4978
.4979
.4979
.4980
.4981
2.9
.4981
.4982
.4982
.4983
.4984
.4984
.4985
.4985
.4986
.4986
3.0
.4987
.4987
.4987
.4988
.4988
.4989
.4989
.4989
.4990
.4990
178
TABEL II: STANDAARD NORMALE VERLIES INTEGRAAL N (z) In onderstaande tabel staan de getallen N (z) =
R∞ z
1 2
(y−z) √12π e− 2 y dy voor z = 0.00, 0.01, . . . , 3.09.
Voorbeeld: N (0.91) = 0.09860 (zie de rij van 0.9 en de kolom van .01). z
.00
.01
.02
.03
.04
.05
.06
.07
.08
.09
0.0
.3989
.3940
.3890
.3841
.3793
.3744
.3697
.3649
.3602
.3356
0.1
.3509
.3464
.3418
.3373
.3328
.3284
.3240
.3197
.3154
.3111
0.2
.3069
.3027
.2986
.2944
.2904
.2863
.2824
.2784
.2745
.2706
0.3
.2668
.2630
.2592
.2555
.2518
.2481
.2445
.2409
.2374
.2339
0.4
.2304
.2270
.2236
.2203
.2169
.2137
.2104
.2072
.2040
.2009
0.5
.1978
.1947
.1917
.1887
.1857
.1828
.1799
.1771
.1742
.1714
0.6
.1687
.1659
.1633
.1606
.1580
.1554
.1528
.1503
.1478
.1453
0.7
.1429
.1405
.1381
.1358
.1334
.1312
.1289
.1267
.1245
.1223
0.8
.1202
.1181
.1160
.1140
.1120
.1100
.1080
.1061
.1042
.1023
0.9
.1004
.09860
.09680
.09503
.09328
.09156
.08986
.08819
.08654
.08491
1.0
.08332
.08174
.08019
.07866
.07716
.07568
.07422
.07279
.07138
.06999
1.1
.06862
.06727
.06595
.06465
.06336
.06210
.06086
.05964
.05844
.05726
1.2
.05610
.05496
.05384
.05274
.05165
.05059
.04954
.04851
.04750
.04650
1.3
.04553
.04457
.04363
.04270
.04179
.04090
.04002
.03916
.03831
.03748
1.4
.03667
.03587
.03508
.03431
.03356
.03281
.03208
.03137
.03067
.02998
1.5
.02931
.02865
.02800
.02736
.02674
.02612
.02552
.02494
.02436
.02380
1.6
.02324
.02270
.02217
.02165
.02114
.02064
.02015
.01967
.01920
.01874
1.7
.01829
.01785
.01742
.01699
.01658
.01617
.01578
.01539
.01501
.01464
1.8
.01428
.01392
.01357
.01323
.01290
.01257
.01226
.01195
.01164
.01134
1.9
.01105
.01077
.01049
.01022
.00996
.00970
.00945
.00920
.00896
.00872
2.0
.00849
.00827
.00805
.00783
.00762
.00742
.00722
.00702
.00684
.00665
2.1
.00647
.00629
.00612
.00595
.00579
.00563
.00547
.00532
.00517
.00503
2.2
.00489
.00475
.00462
.00449
.00436
.00424
.00411
.00400
.00388
.00377
2.3
.00366
.00356
.00345
.00335
.00326
.00316
.00307
.00298
.00289
.00280
2.4
.00272
.00264
.00256
.00248
.00241
.00234
.00227
.00220
.00213
.00207
2.5
.00200
.00194
.00188
.00183
.00177
.00172
.00166
.00161
.00156
.00151
2.6
.00146
.00142
.00137
.00133
.00129
.00125
.00121
.00117
.00113
.00111
2.7
.00106
.00103
.00099
.00096
.00093
.00090
.00087
.00084
.00081
.00079
2.8
.00076
.00074
.00071
.00069
.00067
.00064
.00062
.00060
.00058
.00056
2.9
.00054
.00052
.00051
.00049
.00047
.00046
.00044
.00042
.00041
.00040
3.0
.00038
.00037
.00036
.00034
.00033
.00032
.00031
.00030
.00029
.00028
179
TABEL III: OVERSCHRIJDINGSKANSEN VAN DE STUDENT-VERDELING Laat Z(n) een Student-verdeling hebben met n vrijheidsgraden. In deze tabel staat tα (n), waarbij P[Z(n) ≥ tα (n)] = α voor α = 0.1, 0.05, 0.025, 0.01 en 0.005, en voor n = 1, 2, . . . , 30, 40, 60, 120 en ∞.
Voorbeeld: t0.025 (14) = 2.145, want P[Z(14) ≥ 2.145] = 0.025 (zie de rij van n = 14 en de kolom
van α = 0.025).
.1
.05
.025
.01
.005
1
3.078
6.314
12.706
31.821
63.657
2
1.886
2.920
4.303
6.965
9.925
3
1.638
2.353
3.182
4.541
5.841
4
1.533
2.132
2.776
3.747
4.604
5
1.476
2.015
2.571
3.365
4.032
6
1.440
1.943
2.447
3.143
3.707
7
1.415
1.895
2.363
2.998
3.499
8
1.397
1.860
2.306
2.896
3.355
9
1.383
1.833
2.262
2.821
3.250
10
1.372
1.812
2.228
2.764
3.169
11
1.363
1.797
2.201
2.718
3.106
12
1.356
1.782
2.179
2.681
3.055
13
1.350
1.771
2.160
2.650
3.012
14
1.345
1.761
2.145
2.624
2.977
15
1.341
1.753
2.131
2.602
2.947
16
1.337
1.746
2.120
2.583
2.921
17
1.333
1.740
2.110
2.567
2.898
18
1.330
1.734
2.101
2.552
2.878
19
1.328
1.729
2.093
2.539
2.861
20
1.325
1.725
2.086
2.528
2.845
21
1.323
1.721
2.080
2.518
2.831
22
1.321
1.717
2.074
2.508
2.819
23
1.319
1.714
2.069
2.500
2.807
24
1.318
1.711
2.064
2.492
2.797
25
1.316
1.708
2.060
2.485
2.787
26
1.315
1.706
2.056
2.479
2.779
27
1.314
1.703
2.052
2.473
2.771
28
1.313
1.701
2.048
2.467
2.763
29
1.311
1.699
2.045
2.462
2.756
30
1.310
1.697
2.042
2.457
2.750
40
1.303
1.684
2.021
2.423
2.704
60
1.296
1.671
2.000
2.390
2.660
120
1.289
1.658
1.980
2.358
2.617
∞
1.282
1.645
1.960
2.326
2.576 180
TABEL IV: OVERSCHRIJDINGSKANSEN VAN DE CHI-KWADRAAT-VERDELING Laat Z(n) een Chi-kwadraat-verdeling hebben met n vrijheidsgraden. In deze tabel staat χ2α (n), waarbij P[Z(n) ≥ χ2α (n)] = α voor α = 0.990, 0.975, 0.950, 0.900, 0.500, 0.100, 0.050, 0.025 en 0.010, en voor n = 1, 2, . . . , 30, 40, 60, 80 en 100.
Voorbeeld: χ20.025 (14) = 26.119, want P[Z(14) ≥ 26.119] = 0.025 (zie de rij van n = 14 en de
kolom van α = 0.025). .990
.975
.950
.900
.500
0.100
0.050
0.025
0.010
1
0.000
0.000
0.004
0.016
0.455
2.706
3.844
5.023
6.635
2
0.020
0.051
0.103
0.211
1.386
4.605
5.991
7.378
9.210
3
0.115
0.216
0.352
0.584
2.366
6.251
7.815
9.348
11.345
4
0.297
0.484
0.711
1.064
3.357
7.779
9.488
11.143
13.277
5
0.554
0.831
1.145
1.610
4.351
9.236
11.071
12.833
15.086
6
0.872
1.237
1.635
2.204
5.348
10.645
12.592
14.449
16.812
7
1.239
1.690
2.167
2.833
6.346
12.017
14.067
16.013
18.475
8
1.647
2.180
2.733
3.490
7.344
13.362
15.508
17.535
20.090
9
2.088
2.700
3.325
4.168
8.343
14.684
16.919
19.023
21.666
10
2.558
3.247
3.940
4.865
9.342
15.987
18.307
20.483
23.209
11
3.053
3.816
4.575
5.578
10.341
17.275
19.675
21.920
24.725
12
3.571
4.408
5.226
6.304
11.340
18.549
21.026
23.337
26.217
13
4.107
5.009
5.892
7.042
12.340
19.812
22.362
24.736
27.688
14
4.660
5.629
6.571
7.790
13.340
21.064
23.645
26.119
29.141
15
5.229
6.262
7.261
8.547
14.339
22.307
24.996
27.488
30.578
16
5.812
6.908
7.962
9.312
15.339
23.542
26.296
28.845
32.000
17
6.408
7.564
8.672
10.085
16.338
24.769
27.587
30.191
33.409
18
7.015
8.231
9.390
10.865
17.388
25.989
28.869
31.526
34.409
19
7.623
8.907
10.117
11.651
18.338
27.204
30.143
32.852
36.191
20
8.260
9.591
10.851
12.443
19.337
28.412
31.410
34.170
37.566
21
8.897
10.282
11.591
13.240
20.337
29.615
32.671
35.479
38.932
22
9.542
10.982
12.338
14.042
21.337
30.813
33.924
36.781
40.289
23
10.196
11.689
13.091
14.848
22.377
32.007
35.173
38.076
41.638
24
10.856
12.401
13.848
15.659
23.337
33.196
36.415
39.364
42.980
25
11.524
13.120
14.611
16.473
24.377
34.382
37.653
40.647
44.314
26
12.198
13.844
15.379
17.292
25.336
35.563
38.885
41.923
45.642
27
12.879
14.573
16.151
18.114
26.336
36.741
40.113
43.194
46.963
28
13.565
15.308
16.928
18.939
27.336
37.916
41.337
44.461
48.278
29
14.266
16.047
17.708
19.768
28.336
39.088
42.557
45.722
49.588
30
14.954
16.791
18.493
20.599
29.336
40.256
43.773
46.979
50.899
40
22.164
24.433
26.509
29.051
39.335
51.805
55.759
59.342
63.691
60
37.485
40.482
43.188
46.459
59.335
74.397
79.082
83.298
88.379
80
53.540
57.153
60.392
64.278
79.334
96.578
101.879
106.629
112.329
100
70.065
74.222
77.930
82.358
99.334
118.498
124.342
129.561
135.807
181
TABEL V: ASELECTE GETALLEN VAN 5 CIJFERS
In onderstaande tabel staan 200 aselecte getallen van 5 cijfers (lees ze regel voor regel).
09656
96657
64842
49222
49506
10145
48555
23505
90430
04180
24712
55799
60857
73479
33581
17360
30406
05842
72044
90764
07202
96341
23699
76171
79126
04512
15426
15980
88898
06358
84575
46820
54083
43918
46989
05379
70682
43081
66171
38942
38144
87037
46626
70529
27918
34191
98668
33482
43998
75733
48048
56349
01986
29814
69800
91609
65374
22928
09704
59343
41936
58566
31276
19952
01352
18834
99596
09302
20087
19063
73391
9406
03822
81845
76158
41352
40596
14325
27020
17546
57580
08954
73554
28698
29022
11568
35668
59906
39557
27217
92646
41113
91411
52615
69302
86419
61224
41936
56939
27816
07118
12707
35622
81485
73354
49800
05648
60805
28898
60933
57842
57831
24130
75408
83784
64307
91620
40810
06539
70387
65078
44981
81009
33697
98324
46928
34198
96032
98426
77488
04294
96120
67629
55265
26248
40602
25566
12520
89785
93932
48381
06807
43775
09708
73199
53406
02910
83292
59249
18597
00459
62045
19249
67095
22752
24636
16965
91836
00582
46721
38824
81681
33323
64086
55970
04849
24819
20749
51711
86173
91465
22232
02907
01050
07121
53536
71070
26916
47620
01619
50874
00807
77751
73952
03073
69063
16894
85570
81746
07568
266644
75871
15618
50310
72610
66205
82640
88205
73453
90232
182
TABEL VI: ASELECTE TREKKINGEN UIT DE NORMALE VERDELING In onderstaande tabel staan 240 aselecte trekkingen uit de standaard normale verdeling, afgerond op 4 cijfers na de komma (lees de getallen regel voor regel).
-0.3817
1.7309
0.1020
0.1781
-2.1976
0.2756
0.8807
-0.0815
0.9479
0.8028
-1.4627
-0.0787
0.9825
-0.9018
0.1992
1.2393
-0.8749
-0.6252
-0.1124
0.5100
0.3425
-2.5194
0.7917
-0.6435
-0.8305
0.5140
1.0899
1.1004
-0.3905
-0.0751
0.2134
0.2637
0.0484
0.4427
0.7435
0.1946
1.1059
-0.7671
1.6726
-2.3685
1.9877
-0.3445
0.2755
0.3305
-1.2995
0.5384
0.8722
-1.0991
0.5924
-1.0997
-0.8110
1.5247
0.6916
-0.2860
-0.0646
0.9836
-0.8654
0.2936
-0.6669
-2.7949
1.2422
3.2860
1.8091
-0.1199
-0.9951
-1.2879
1.2767
-0.5209
-0.4755
-0.4369
1.7016
-0.8645
-0.5770
0.6983
0.9749
1.9517
0.5771
-0.8968
1.0238
-1.8262
-2.2935
-0.2379
0.4626
-0.5964
-0.8931
0.7290
-1.7184
-0.8512
-1.0430
-0.5693
0.7397
0.0578
-0.8564
0.0379
1.1788
-1.5122
-1.2791
0.3306
0.9229
0.5169
0.2863
-0.2170
0.7516
-0.6194
0.7882
-1.8403
1.1957
-0.0081
-0.3016
0.2164
-0.9733
-1.2938
-1.1274
-0.8729
0.6601
-1.2445
1.2535
0.1542
0.3109
-0.2190
1.0996
-0.4117
-0.3625
-0.9987
-1.0937
0.6487
2.0155
0.2707
1.5944
-0.9749
-0.0864
-0.9278
-0.3483
-1.1420
0.0262
1.7378
-0.0644
1.4343
0.9960
0.3269
0.2443
0.5603
1.9258
0.5536
-1.0949
0.6032
-1.4501
0.4264
-0.6752
0.0338
-0.4326
-1.0698
-1.6900
0.3524
0.5440
-0.4991
-0.2465
2.2318
-1.3405
-0.5392
1.6935
1.1556
0.2844
0.3268
0.1115
-0.8292
1.0769
-1.4394
0.4225
-0.1589
0.2875
0.1739
0.3121
-0.4311
0.3326
-0.0997
0.1986
0.1609
0.4360
1.2305
0.3443
1.5596
0.3378
-1.7689
2.3660
-0.5133
-0.6426
0.3270
-0.6778
0.7603
0.5787
0.4870
0.4032
0.6988
-0.3843
0.2841
1.5372
-0.6841
0.7115
-0.7106
0.7738
0.5707
-0.0395
0.3851
-0.1621
-1.9569
1.6740
0.8431
1.2604
-0.6320
0.9049
-1.3804
0.7392
0.6756
-0.4579
-1.3956
0.3706
-1.0403
0.8779
-0.4107
-0.4386
1.7108
-0.4503
-0.6238
0.5754
1.6640
0.0940
0.2241
-0.4473
0.6381
0.7867
-2.5127
-0.3218
2.3873
-0.6108
1.1309
1.8718
0.8949
0.0993
-0.4548
183