OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is...

187
OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG UNIVERSITEIT LEIDEN VOORJAAR 2003

Transcript of OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is...

Page 1: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

OPERATIONS RESEARCH TECHNIEKEN

L.C.M. KALLENBERG

UNIVERSITEIT LEIDEN

VOORJAAR 2003

Page 2: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

2.7 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

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

Page 3: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

Page 4: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

11.3 Afkapmethoden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 155

11.4 Lagrange relaxatie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

11.5 Andere technieken . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 171

11.6 Opgaven . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

iii

Page 5: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 doel-

matigheid 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

Page 6: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

strategieen. Daarnaast kunnen er ook andere grootheden zoals stochastische variabelen, parame-

ters 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 procede 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

Page 7: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 eenmalige 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 getrans-

porteerd. 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

Page 8: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

2. Het toewijzingsprobleem

Een aantal taken moet door een even groot aantal personen worden uitgevoerd (iedere persoon

een 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

Page 9: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

D. Overige technieken

1. Dynamische programmering

Dynamische programmering is een mathematische techniek om beslissingsproblemen op te lossen

die een systeem betreffen dat een sequentieel 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 nevenvoor-

waarden, 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 een 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 cooperatieve 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

Page 10: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 hoeveel-

heden.

Laat cij de kosten voorstellen die gemaakt worden als een 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:

C =

3 7 3 4

5 7 2 6

8 13 9 3

, a =

15

30

55

en b =

30

10

15

45

.

2.2 LP-formulering

Laat xij de hoeveelheid zijn die van depot i naar bestemming j verzonden wordt. Het transport-

probleem kan nu als volgt worden geformuleerd:

min

m∑

i=1

n∑

j=1

cijxij

∑nj=1 xij ≤ ai, 1 ≤ i ≤ m

∑mi=1 xij ≥ bj , 1 ≤ j ≤ n

xij ≥ 0 voor alle (i, j)

(2.1)

Wil het probleem een toegelaten oplossing hebben, dan moet de totale vraag niet groter zijn

dan het totale aanbod, d.w.z. Σmi=1 ai ≥ Σn

j=1 bj . We mogen aannemen dat Σmi=1 ai = Σn

j=1 bj,

immers: als namelijk het aanbod groter is dan de vraag, dan voegen we een extra bestemming

6

Page 11: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

n + 1 toe, en nemen we bn+1 = Σmi=1 ai − Σn

j=1 bj met bijbehorende kosten ci,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 stan-

daardformulering nemen:

min

m∑

i=1

n∑

j=1

cijxij

∑nj=1 xij = ai, 1 ≤ i ≤ m

∑mi=1 xij = bj , 1 ≤ j ≤ n

xij ≥ 0 voor alle (i, j)

(2.2)

Voorbeeld 2.1 (vervolg)

In ons voorbeeld geldt Σmi=1 ai = Σn

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 + x31 = 30

x12 + x22 + x32 = 10

x13 + x23 + x33 = 15

x14 + x24 + x34 = 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 ≤ 3

u1 +v2 ≤ 7

u1 +v3 ≤ 3

u1 +v4 ≤ 4

u2 +v1 ≤ 5

u2 +v2 ≤ 7

u2 +v3 ≤ 2

u2 +v4 ≤ 6

u3 +v1 ≤ 8

u3 +v2 ≤ 13

u3 +v3 ≤ 9

u3 +v4 ≤ 3

Het duale probleem bij de algemene formulering (2.2) luidt:

max {m∑

i=1

aiui +

n∑

j=1

bjvj | ui + vj ≤ cij voor alle (i, j) } (2.3)

7

Page 12: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 ai 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 een-eenduidig 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 represen-

teren in het volgende tableau:

b1 b2 · · · bn

a1 c11 x11 c12 x12 · · · c1n x1n

a2 c21 x21 c22 x22 · · · c2n x2n

· · · · · · · · · ·· · · · · · · · · ·· · · · · · · · · ·

am cm1 xm1 cm2 xm2 · · · cmn xmn

Dit tableau heeft m + 1 rijen en 2n + 1 kolommem en is dus veel compacter dan het simplex-

tableau 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:

1Voor het bewijs verwijzen we naar het College Grafentheorie.

8

Page 13: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

30 10 15 45

15 3 15 7 3 4

30 5 15 7 10 2 5 6

55 8 13 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 bestem-

ming 3), vervolgens over het op een na goedkoopste traject, etc. Om een opspannende boom te

krijgen, moet per stap precies een bestemming of depot worden ’afgesloten’, behalve in de laatste

iteratie waar we zowel een bestemming als een 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 45

15 3 15 7 3 4

30 5 15 7 0 2 15 6

55 8 13 10 9 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 een 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

i∈I1

ai =∑

j∈J1

bj met I1 en J1 echte deelverzamelingen van {1, 2, . . . ,m} resp. {1, 2, . . . , n}.

(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 een na goedkoopste route vanuit het

desbetreffende depot of naar de desbetreffende bestemming wordt gekozen. In ons voorbeeld zijn

de boetes:

9

Page 14: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 waar-

van 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 een 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 45

15 3 15 7 3 4

30 5 5 7 10 2 15 6

55 8 10 13 9 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 vj dat getal wordt afgetrokken

(ga dit zelf na). Een 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

Page 15: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

dat behoort bij u1 als wortel, zeg knooppunt 1. De waarden van de andere ui’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 xij met

ui + vj > cij zijn de kandidaten om in de basis te komen (pivotkolom): de bijbehorende ver-

schilvariabelen 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 · [ui + vj − cij ] af. Een goede keuze lijkt dus

om die tak (i, j) te kiezen waarvoor ui + vj − cij maximaal is. Dit komt overeen met de meest

gebruikelijke keuze van de pivotkolom in de simplexmethode, nl. die kolom waarvan de coefficient

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 5 0 -6

0 3 15 7 3 4

2 5 5− 7 10 2 5+ 6

9 8 + 13 9 10− 3 45

c = 425 d = 10.

3 5 0 -2

0 3 15 7 3 4

2 5 5 7 10 2 15 6

var 5 8 13 9 3 45

c = 385 optimaal

Eindigheid

Als d = 0, dan is er sprake van degeneratie en geldt (2.4) voor zekere deelverz. I1 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. I1 en J1 (2.4) niet geldt, dan is er geen degeneratie en is de

eindigheid van de methode zonder meer gegarandeerd.

11

Page 16: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 coefficient cij van een niet-basis-variabele xij wordt gewijzigd. Uit het

voorafgaande volgt dat de huidige basis optimaal blijft zolang cij ≥ 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 coefficient 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 cij ≥ ui + vj

voor alle (i, j) met xij niet in de basis, krijgen we het bereik van cij waarvoor de huidige oplossing

optimaal is.

Voorbeeld 2.1 (vervolg)

Beschouw de waarde van c31 (de huidige waarde is 8). De berekening van de ui’s en de vj ’s doen

we in onderstaand tableau.

3 5 0 6 - λ

0 3 15 7 3 4

2 5 5 7 10 2 15 6

λ − 3 λ 10 13 9 3 45

Er moet gelden:

13 ≥ λ + 2; 9 ≥ λ − 3; 4 ≥ 6 − λ; 6 ≥ 8 − λ.

Hieruit volgt: 2 ≤ λ ≤ 11, zodat de huidige

oplossing optimaal blijft voor 2 ≤ c31 ≤ 11.

(ii) Veranderingen van de voorraad en de vraag

We beschouwen het geval dat de voorraad in een depot, zeg depot i, met λ verandert en dat de

vraag in een bestemming, zeg bestemming j, met eveneens λ verandert (λ mag zowel positief als

negatief zijn).

Merk op dat Σmi=1 ai = Σn

j=1 bj blijft gelden en dat volgens de dualiteitsstelling van de lineaire

programmering geldt:

nieuw optimum (2.2) = nieuw optimum (2.3) = Σmi=1 aiui + Σn

j=1 bjvj + λ(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

Page 17: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 xij 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: x11 = 15 + λ, x21 = 5 − λ, x21 = 10 + λ. Voor

−10 ≤ λ ≤ 5 blijven dezelfde variabelen in de basis. Het optimale tableau voor λ = 4 staat

hieronder:

3 5 0 -2

0 3 19 7 3 4

2 5 1 7 14 2 15 6

5 8 10 13 9 3 45

2.6 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 mj 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 tj 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 xij de hoeveelheid van gere-

cycled materiaal i zijn dat wordt gebruikt voor product j.

Bovenstaand probleem kan dan als volgt als LP-probleem worden geformuleerd:

min

n∑

j=1

vj

∑nj=1 xij ≤ ai, 1 ≤ i ≤ m

tj ·∑m

i=1 xij + vj ≥ dj , 1 ≤ j ≤ n

vj ≥ mj , 1 ≤ j ≤ n

xij ≥ 0 voor alle (i, j)

(2.5)

13

Page 18: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Neem als depots {0, 1, . . . ,m} en de bestemmingen {1, 2, . . . , n}. Laat c0j = 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 c0jx0j = tjx0j =

vj − mj = het extra nieuwe materiaal voor product j, j = 1, 2, . . . , n.

De doelfunctie is dus equivalent met∑n

j=1 c0jx0j =∑m

i=0

∑nj=1 cijxij .

Merk verder op dat:

vj ≥ mj ⇔ x0j ≥ 0, j = 1, 2, . . . , n en

tj ·∑m

i=1 xij +vj ≥ dj ⇔∑m

i=1 xij ≥ dj−vj

tj=

dj−mj

tj− vj−mj

tj⇔∑m

i=0 xij ≥ dj−mj

tj, j = 1, 2, . . . , n.

Noemdj−mj

tj= bj , j = 1, 2, . . . , n. Het is nu in te zien dat (2.5) equivalent is met:

min

m∑

i=0

n∑

j=1

cijxij

∑nj=1 xij ≤ ai, 1 ≤ i ≤ m

∑mi=1 xij ≥ bj , 1 ≤ j ≤ n

xij ≥ 0, 0 ≤ i ≤ m, 1 ≤ j ≤ n

(2.6)

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:

C =

9 8 10 7 6 8

6 7 8 11 9 11

10 9 12 10 7 10

11 12 9 10 11 8

, a =

61

42

38

51

en b =

30

38

31

29

28

36

.

a. Bepaal de startoplossing met de regel van Vogel.

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

Page 19: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 mini-

maliseert; 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

Page 20: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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:

C =

(

4 2 4

12 8 4

)

, a =

(

15

15

)

en b =

10

10

10

.

16

Page 21: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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:

C =

3 2 3

3 10 2

6 α 3

, a =

5

10

15

en b =

7

8

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 mj kg nieuw papier moet worden gebruikt, 1 ≤ j ≤ 13.

Van het gerecyclede materiaal kan voor de nieuwe papiersoort j slechts de fractie tj 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 Sj

1 3475 0 0.85 {1, 2}2 1223 699 0.90 {1, 2, 3, 4}3 2260 1077 0.85 {2, 3, 4, 5, 6}4 2700 1285 0.85 {2, 3, 4, 5, 6}5 2950 1965 0.90 {5, 6}6 1112 848 0.95 {4, 5, 6}7 3910 2980 0.80 {7, 8, 10}8 1673 1275 0.80 {7, 8, 10}9 3855 367 0.85 {1, 2, 4}

10 12100 9210 0.90 {10}11 7382 6320 0.95 {6}12 7215 0 0.93 {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}13 4000 381 0.90 {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

Page 22: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Hoofdstuk 3

Toewijzingsprobleem

3.1 Probleemstelling en LP-formulering

Een belangrijk speciaal geval van het transportprobleem krijgen we als n = m en ai = 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 een. Voor iedere combinatie van project i en divisie j is een bepaald getal cij

bekend, zijnde de kosten als project i door divisie j wordt uitgevoerd.

Zij xij = 1 als project i door divisie j wordt uitgevoerd en xij = 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 xij = 0 of 1

weglaten):

min

n∑

i=1

n∑

j=1

cijxij

∑nj=1 xij = 1, 1 ≤ i ≤ n

∑ni=1 xij = 1, 1 ≤ j ≤ n

xij ≥ 0 voor alle (i, j)

(3.1)

Het duale probleem van (3.1) luidt:

max

n∑

i=1

ui +

n∑

j=1

vj | ui + vj ≤ cij voor alle (i, j)

(3.2)

De voorwaarden van (3.1) en de geheeltalligheid zorgen er voor dat iedere basisoplossing zowel in

iedere rij als in iedere kolom precies een 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.

1Zie het college Discrete Wiskunde.

18

Page 23: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 zodat 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 program-

mering dat x optimaal is voor (3.1) en (u, v) optimaal is voor (3.2).

Als startoplossing nemen we:

{

ui = min1≤j≤n cij voor i = 1, 2, . . . , n

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 cij 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 een 0.

S = {(i, j) | dij = 0}, dus als xij =

{

1, (i, j) ∈ S

0, (i, j) /∈ S, dan is aan (3.3) voldaan.

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

Page 24: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 xij = 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

Konig en Egervary2 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 :=

dij + d i /∈ I, j /∈ J

dij − d i ∈ I, j ∈ J

dij anders

Het is eenvoudig in te zien dat voor de nieuwe waarden weer geldt: ui+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.

2Stelling 16.2 in het dictaat Discrete Wiskunde.3Zie het college Grafentheorie.

20

Page 25: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 vj 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 v∗j geeft aan dat rij i resp. kolom j wordt doorgestreept):

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∗

s = 3; d = 15.

275 0 -15 0 90

60∗ 45 0∗ 40 30

35∗ 0∗ 0 70 100

50∗ 40 25 0∗ 60

40∗ 0 15 90 0∗

s = 4; optimaal

De optimale oplossing luidt:

x12 = x21 = x33 = x44 = 1

(de overige variabele zijn 0)

met waarde 275.

3.3 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′, v′) de waarden van de duale variabelen zijn

verkregen uit een tableau behorende bij (u, v), dan geldt:

waarde doelfunctie (3.2) in nieuw tableau

=∑n

i=1 u′i +∑n

j=1 v′j =∑n

i=1 ui +∑n

j=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

Page 26: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 c12 ≤ 45 + 30 + 0 = 75.

Neem (i, j) = (1, 1): de huidige oplossing is in ieder geval optimaal als c11 ≥ 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

een 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

Page 27: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 3

Drie werkzaamheden moeten worden uitgevoerd, ieder door een 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 een 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 transport-

probleem op te lossen:

C =

3 5

6 2

4 3

, a =

2

3

1

en b =

(

4

2

)

.

23

Page 28: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 een

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 een 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

Page 29: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Hoofdstuk 4

Project Planning

4.1 Probleemstelling en modellering

Probleemstelling

Een project bestaat uit een aantal activiteiten die gedeeltelijk afhankelijk en gedeeltelijk on-

afhankelijk 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

Page 30: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 gerepre-

senteerd 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 a a

a

- -��

��� @@

@@R

N M

I P

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

a a a a- - -I IJ J

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 een dummy (P), geeft een goed model van het probleem uit voorbeeld

4.1.

a

a

a

a

a

a

a

a

a

��

��

��

���

-@

@@

@@

@@@R

6

?

-@

@@

@@

@@@R-

��

���

-

@@

@@R

��

��

��

���

-

����������������*

@@

@@

@@

@@R1 2

3

4

5

6

7

8

9

F

A D G J K

B E L

C

H

N PM

I

26

Page 31: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Het netwerk mag geen geen ronde bevatten, want anders is er inconsistentie (waarom?). De

knooppunten kunnen dan altijd zo 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 ej 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 een activiteit met deze toestand als beginpunt

moet starten om de totale tijdsduur van het project niet boven en uit te laten komen. De

berekening van deze getallen gaat met achterwaartse recursie:{

ln = en

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 sij toekennen: sij = lj − ei − tij.

De speling sj van toestand j is gedefinieerd door sj = 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

Page 32: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Voorbeeld 4.1 (vervolg)

Voor het voorbeeld verlopen de berekeningen als volgt:

Berekening vroegste tijdstippen ej Berekening laatste tijdstippen li

Toestand j Voorgangers i ei + tij ej Toestand i Opvolgers j lj − tij li

1 - - 0 9 - - 13

2 1 3 3 8 9 11 11

3 1 4 7 9 10 10

2 5 5 6 8 11 11

4 1 3 5 7 8 8

2 4 4 9 9

5 2 5 4 6 8

3 8 8 8 7 7

6 4 7 7 3 5 5 5

7 3 9 7 6

5 10 10 2 3 3 3

8 4 8 8 4 6

6 7 5 6

9 5 12 1 2 0 0

7 13 13 3 1

8 10 4 4

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

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

Page 33: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 eenmaal 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 tij de tijdsduur van

activiteit (i, j) is, dan moet dus gelden: xj ≥ xi + tij.

De totale tijdsduur van het project is xn − 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 xij 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

(i,j)

tijxij

−∑j x1j = −1

−∑j xij +∑

j xji = 0, i = 2, 3, . . . , n − 1∑

j xjn = 1

xij ≥ 0 voor alle (i, j)

(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 een waarde van j en xjn = 1 voor eveneens precies een 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:

1Voor het bewijs verwijzen we naar het College Grafentheorie.

29

Page 34: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

− x1 + x3 ≥ 4

− x1 + x2 ≥ 3

− x1 + x4 ≥ 3

− x2 + x3 ≥ 2

− x2 + x5 ≥ 2

− x3 + x7 ≥ 4

− x3 + x5 ≥ 3

− x2 + x4 ≥ 1

− x4 + x8 ≥ 4

− x5 + x7 ≥ 2

− x7 + x9 ≥ 3

− x5 + x9 ≥ 4

− x8 + x9 ≥ 2

− x4 + x6 ≥ 3

− x6 + x8 ≥ 0

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 = 1

−x12 +x23 +x24 +x25 = 0

−x13 −x23 +x35 +x37 = 0

−x14 −x24 +x46 +x48 = 0

−x25 −x35 +x57 +x59 = 0

−x46 +x68 = 0

−x37 −x57 +x79 = 0

−x48 −x68 +x89 = 0

−x59 −x79−x89 = −1

De optimale oplossing van het duale probleem is: x12 = 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 ei ≤ xi ≤ li voor

1 ≤ i ≤ n, waaruit volgt dat voor de speling sij 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: ei = xi = li en ej = xj = lj .

30

Page 35: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 de-

terministische 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:

f(t) =

{

Γ(α+β)Γ(α)Γ(β) · ( t−a

b−a )α−1 · ( b−tb−a )β−1 · 1

b−a a ≤ t ≤ b

0 elders,(4.3)

waarbij de Gammafunctie Γ(p) =∫∞0 xp−1e−xdx (via partiele integratie is af te leiden dat

Γ(p) = (p − 1) · Γ(p − 1); voor p ∈ N is dus Γ(p) = (p − 1)!).

Voor deze Beta-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 varieren 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 ′(m) = 0, krijgen we (ga dit ook zelf na): m = a(β−1)+b(α−1)α+β−2 .

Aanname 2

E(t) = a+4m+b6 .

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+b2 .

In het andere geval is dus α + β = 6.

Aanname 3

VAR(t) =(

b−a6

)2.

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

Page 36: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Bovenstaande drie aannamen impliceren dat ofwel α = β = 4 ofwel α + β = 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+b6 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

geeffectueerd (K).

Het bijbehorende netwerk is (de activiteiten L en M zijn dummies):

a

a

a

a

a

a

a

a

a

��

��

��

���

-@

@@

@@

@@@R

@@

@@

@@

@@R-

��

��

��

���

-

-

-@

@@

@@

@@@R

-

@@

@@

@@

@@R

61 3

2

4

5

6

7

89

A

D

G

K

J

B E

F

L

C

H

MI

32

Page 37: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

De getallen a, m, b en de daaruit afgeleide verwachting ( a+4m+b6 ) en variantie (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 49 0 9 1

B = (1,3) 3 6 9 6 1 0 6 0

C = (1,4) 1 3 5 3 49 0 5 2

d = (2,6) 2 4 12 5 259 8 21 8

E = (3,5) 2 3 4 3 19 6 9 0

f = (4,5) 3 4 5 4 19 3 9 2

G = (4,7) 2 2 2 2 0 3 25 20

H = (5,8) 3 7 11 7 169 9 16 0

I = (5,7) 2 4 6 4 49 9 16 3

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+ 19 + 16

9 +4 = 629 .

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:

X = T−E(T )√V ar(T )

= T−25q

629

, d.w.z. T = 25 +√

623 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 yij tussen een minimale

waarde aij en een maximale waarde bij ligt. Als k(yij) deze kosten voorstelt, dan geldt:

k(yij) = cij − yijvij 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

Page 38: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Aanpak via lineaire programmering

We willen de totale directe kosten minimaliseren, d.w.z. min∑

(i,j) (cij − yijvij) wat equivalent

is met∑

(i,j) cij − max∑

(i,j) yijvij . Dus voor de beslissing welke yij’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:

max

(i,j)

vijyij

xi + yij − xj ≤ 0 voor alle (i, j)

xn − x1 ≤ T

aij ≤ yij ≤ bij voor alle (i, j)

(4.4)

Voorbeeld 4.3

Beschouw onderstaand netwerk met de in de tabel gegeven getallen aij , bij , cij en vij .

Neem T = 12.

a

a

a

a

a

@@

@@

@@

@@R

-

- ?��

���

@@

@@R

1 2

3 4

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

y12 + x1 − x2 ≤ 0

y13 + x1 − x3 ≤ 0

y24 + x2 − x4 ≤ 0

y25 + x2 − x5 ≤ 0

y34 + x3 − x4 ≤ 0

y45 + x4 − x5 ≤ 0

−x1 + 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

Page 39: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 ti 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 ti. 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

(i,j)

tiyij

−∑j ysj = −1

−∑j yij +∑

j yji = 0, i 6= s, t∑

j yjt = 1

yij ≥ 0 voor alle (i, j) ∈ A

(4.6)

Opmerking

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

Page 40: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Het duale probleem is:

max {4yAF +4yAG +3yBD +3yBE +3yBH +3yCI +3yCN +2yDF +2yDG +2yEJ +2yEL +4yFK +

3yGJ + 3yGL + yHI + yHN + 4yIM + 2yJK + 3yKt + 4yLt + 2yMt + 3yNM}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−yFK = 0; yAG+yDG−yGJ−yGL = 0;

yBH − yHI − yHN = 0; yCI + yHI − yIM = 0; yGJ + yEJ − yJK = 0; yFK + yJK − yKt = 0;

yGL +yEL−yLt = 0; yIM +yNM −yMt = 0; −yNM +yCN +yHN = 0; yKt +yLt +yMT = 1.

De optimale oplossing van het duale probleem is: ysB = 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 tij 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 tij

geldt. Het bijbehorende LP-probleem luidt dan:

min

{

ut − us

uj ≥ ui + ti, (i, j) ∈ A

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

introduceren met lij =

{

ti voor alle (i, j) ∈ A

−tij voor alle (j, i) ∈ B,dan is het duale probleem van (4.7) het

onderstaande probleem, dat weer als een langste pad probleem in het netwerk met pijlen corre-

sponderend met A ∪ B kan worden beschouwd.

max

(i,j)

lijyij

−∑j ysj = −1

−∑j yij +∑

j yji = 0, i 6= s, t∑

j yjt = 1

yij ≥ 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 cij 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:

min

(i,j)

[uj − ui − lij]cij

ut − us ≤ T

uj ≥ ui + lij , voor alle (i, j)

(4.9)

36

Page 41: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Het duale probleem van (4.9) is:

max

(i,j)

lijyij − Tyts

yts −∑j ysj = 0

−∑j yij +∑

j yji = −∑j cij +∑

j cji, i 6= s, t

−yts +∑

j yjt = 0

yij ≥ 0 voor alle (i, j)

(4.10)

Probleem (4.10) is een minimale kostenstroom in een circulatienetwerk2 (het oorspronkelijke

netwerk met daaraan toegevoegd de pijl (t, s)). De kosten op de pijl (i, j) zijn lij als (i, j) 6= (t, s)

en −T voor de pijl (t, s). Voor de nettoproductie si in knooppunt i geldt:

si =

{

0 i = s, t

−∑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 − xivi met ai ≤ xi ≤ bi en vi ≥ 0 voor activiteit i. Nemen we

als beslissingsvariabelen yi de reductie van de langste tijdsduur voor activiteit i : yi = bi−xi, dan

wordt het LP-probleem het project binnen T tijdseenheden af te hebben tegen minimale kosten:

min

i

viyi

ut − us ≤ T

uj − ui ≥ [bi − yi] voor alle (i, j)

0 ≤ yi ≤ bi − ai voor alle i

(4.11)

Als we de substitutie wi = ui − yi uitvoeren, dan wordt het probleem:

min

i

viui −∑

i

viwi

−ut + us ≥ −T

uj − wi ≥ bi voor alle (i, j)

ui − wi ≥ 0 voor alle i

−ui + wi ≥ ai − bi voor alle i

(4.12)

In de formulering van (4.12) heeft iedere rij een +1 en een -1. Dit houdt in dat het duale

probleem een minimale kostenstroom probleem is. Hiervoor zijn efficiente 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).

2Zie hiervoor het college Grafentheorie.3Zie hiervoor het college Grafentheorie.

37

Page 42: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 zodat 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

Page 43: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 zodanig 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 Beta-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 ofwel α = β = 4 ofwel α + β = 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

Page 44: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 stochastis-

che tijdsduur worden uitgevoerd. De gegevens hiervan staan in onderstaande tabel.

40

Page 45: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 een 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

Page 46: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Hoofdstuk 5

Minimale opspannende boom

5.1 Probleemstelling

Beschouw een niet-gerichte samenhangende graaf G = (V,E) waarin aan iedere tak (i, j) een

reeel 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 zodat 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 pij 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

Page 47: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

naar de beste opspannende boom T . Voor een gegeven boom T is de kans dat het bericht niet in

handen van de vijand komt gelijk aan:∏

(i,j)∈T (1 − pij). Het probleem luidt dus:

minT {1 −∏(i,j)∈T (1 − pij)} ↔ maxT∏

(i,j)∈T (1 − pij) ↔

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 lij = −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

Page 48: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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. Wk 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 een 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: ci = 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 een 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(e1) ≤ 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

Page 49: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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}; c4 = c6 = 2; c = 3; k = 3.

Iteratie 3:

e3 = (4, 5); T = {(3, 5), (4, 6), (4, 5)}; c3 = c5 = 2; k = 4.

Iteratie 4:

e4 = (2, 4); T = {(3, 5), (4, 6), (4, 5), (2, 4)}; W = {3, 5, 4, 6, 2}; c2 = 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}; c7 = 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}; c1 = 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 t1, 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 tk aan T∗ toe te voegen ontstaat een kring C

die tenminste een tak bevat die niet tot T behoort, zeg tak ep. Omdat t1, t2, . . . , tk−1, ep ∈ T∗,

bevat deze verz. takken geen kring, en omdat tk ∈ T , is dus l(tk) ≤ l(ep). Door T ′ = T∗ + tk − ep

45

Page 50: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

te nemen ontstaat een opspannende boom met l(T ′) = l(T∗)+ l(tk)− l(ep) ≤ l(T∗) ≤ l(T ′), zodat

l(T ′) = l(T∗), terwijl T ′ 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 een 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(n2).

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(n2) 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 zodat 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 LS

van een optimale Steiner boom. Zij ρ = inf{alle instanties}Ls

LT, dan is ρLT de beste (algemene)

ondergrens is voor LS .

Stelling 5.3 Voor algemene metrische ruimtes is de Steiner ratio ρ = 12 .

Bewijs

Neem een optimale Steiner boom met lengte LS . 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 2LS , waar alle oorsponkelijke punten en de

1genoemd naar de 19-de eeuwse wiskundige Jacob Steiner.2M.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

Page 51: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 → ρ ≥ 12 .

Beschouw een n-dimensionale ruimte met als metriek: d(x, y) =∑n

i=1 |xi − yi| (ga zelf na dat dit

een goede metriek is). Neem als oorspronkelijke punten de eenheidsvectoren ei, 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 ei is gelijk

aan 1, i = 1, 2, . . . , n. De verbindingen van s naar alle ei’s geven een Steiner boom met lengte n.

Hieruit volgt dat ρ ≤ n2n−2 voor alle n. Door n naar ∞ te laten gaan zien we dat ρ ≤ 1

2 . Hiermee

is bewezen dat voor algemene metrische ruimtes ρ = 12 .

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 ratio12

√3 is3. Het heeft 22 jaar geduurd voordat het bewijs hiervoor werd gevonden4. 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 ≥ 12

√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.

3E.N. Gilbert and H.O. Pollak: ”Steiner minimal trees”, SIAM Journal of Applied Mathematics 16 (1968) 1-29.4D.-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

Page 52: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 = 12(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

Page 53: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

Page 54: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 een 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)-strategieen: 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

varieren:

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

Page 55: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 zo bepalen dat de bijbehorende kosten minimaal

zijn. We kunnen de kosten als volgt uitrekenen:

Bestelkosten: per jaar DQ bestellingen en er moet in totaal D worden besteld: D

Q · A + DC.

Voorraadkosten: de gemiddelde voorraad is 12Q, zodat de voorraadkosten per jaar 1

2h · Q zijn.

Voor de totale kosten K als functie van de bestelgrootte Q geldt: K(Q) = DQ · A + DC + 1

2hQ.

De optimale waarde van Q, zeg Q∗, vinden we door deze functie te differentieren en de afgeleide

0 te stellen: K ′(Q) = −DAQ−2 + 12h = 0. Hieruit volgt (omdat K ′′(Q) = 2DAQ−3 > 0, vinden

we een minimum):

Q∗ =

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 DQ∗ · A =

ADh2 en de voorraadkosten zijn 1

2hQ∗ =√

ADh2 . Beide kosten zijn dus in het optimum aan

elkaar gelijk.

51

Page 56: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 varieren:

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:

a

a

a

a

a a a a

a

��

��

��

��

��

��

��

��

��

��

�� A

AAAAAAAAAAAAAAAAAAAAA

s

0

r

S

T1 T2 T3 T4

productie geen productie

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 = T1 + 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

Page 57: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Voor dit model gelden de volgende relaties, waarbij Q = de hoeveelheid die in een cykel wordt

geproduceerd):

1. Q = TD (de hoeveelheid Q wordt in tijdsduur T opgemaakt met snelheid D).

2. Q = TP P (Q = productiesnelheid P × productietijd TP ).

3. T1(P − D) = −s; T2(P − D) = S; TP (P − D) = S − s

(de voorraad wordt met snelheid P − D opgebouwd).

4. T3D = S; T4D = −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 − DP (als

er directe levering is, dan is P = ∞ en R = 1). Omdat Q = TD = TPP , geldt:

R = 1 − DP = 1 − TP

T = T3+T4T = (T3+T4)D

TD = S−sQ → S = s + QR.

We kunnen dus de kosten (per tijdseenheid) uitdrukken in de beslissingsvariabelen Q en s.

Bestelkosten

Een cykel heeft tijdsduur T = QD en daarin wordt een bestelling gedaan. Het aantal bestellingen

per tijdseenheid is dus 1T , zodat de bestelkosten per tijdseenheid zijn:

1T · (A + QC) = D

Q · (A + QC) = ADQ + DC

Voorraadkosten

Per cykel is er gedurende T2 + T3 tijdseenheden een voorraad, die gemiddeld 12S groot is. Per

tijdseenheid zijn dus de voorraadkosten:

T2+T3T · 1

2hS =S

P−D+ S

DQD

· 12hS = SP

Q(P−D)12hS = 1

2hS2

QR = 12

h(s+QR)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+T4T · 1

2p(−s) =−s

P−D+−s

DQD

· 12p(−s) = −sP

Q(P−D)12p(−s) = 1

2ps2

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) = ADQ + 1

2 · h(s+QR)2+ps2

QR .

De optimale waarden van de beslissingsvariabelen Q en s kunnen worden gevonden door partieel

te differentieren:

∂K∂s = 0 → 1

QR [h(s + QR) + ps] = 0 → s = − hh+p · QR en S = s + QR = p

h+p · QR.

Met deze waarde van s wordt de kostenfunctie de volgende functie van parameter Q:

ADQ + 1

2 · h( ph+p

·QR)2+p( hh+p

·QR)2

QR = ADQ + 1

2 · hph+p · QR.

Nu deze functie partieel differentieren naar Q:

∂K∂Q = 0 → −ADQ−2 + 1

2h

h+p · R = 0 → Q =√

2ADR · h+p

hp .

53

Page 58: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

De minimale kosten vinden we door de optimale waarden van Q,S en s in te vullen:

K(Q, s) = ADq

2ADR

·h+php

+ 12 · h( p

h+p·QR)2+p(− h

h+p·QR)2

QR =√

ADR·hp2(h+p) + 1

2 · hph+p · QR

=√

ADR·hp2(h+p) +

ADR·hp2(h+p) =

2ADR·hph+p .

Uit het bovenstaande volgt ook het volgende voor de minimale kosten K(Q, s):

- K(Q, s) = hph+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: hS2

ps2 = ph .

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 zo gekozen worden dat als de

bestelling wordt geleverd (of de productie werkelijk start) het voorraadniveau s is. We onder-

scheiden de volgende mogelijkheden:

Mogelijkheid 1: L ≤ T3 + T4 = QD · R.

Dan is er gedurende de levertijd geen productie, dus r − s = DL, zodat r = s + DL.

Mogelijkheid 2: QD · R = T3 + 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

snelheid P − D opgebouwd, geldt: r − s = (P − D)(T − L), zodat r = s + (P − D)( QD − L).

Mogelijkheid 3: L > T = QD .

In dit geval moet er meer dan een cyclus vooruit worden besteld en wel m = b LT c = bLD

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 =√

2ADh ; s = 0;S = Q; kosten = hS;m = bLD

Q c; r = LD − mQ.

Model II: tekorten zijn wel toegestaan en directe levering

Q =√

2AD · h+php ; s = − h

h+p · Q;S = s + Q; kosten = hS;m = bLDQ c; r = s + LD − mQ.

Model III: tekorten zijn niet toegestaan en productie

R = 1 − DP ;Q =

2ADhR ; s = 0;S = QR; kosten = hS;m = bLD

Q c;

r =

{

LD − mQ als L − m · QD ≤ QR

D = SD

{(m + 1)QD − L}(P − D) als L − m · Q

D > QRD = S

D

.

Model IV: tekorten zijn wel toegestaan en productie

R = 1 − DP ;Q =

2ADR · h+p

hp ; s = − hh+p · QR;S = s + QR; kosten = hS;m = bLD

Q c;

r =

{

LD − mQ + s als L − m · QD ≤ QR

D

{(m + 1)QD − L}(P − D) + s als L − m · Q

D > QRD

.

54

Page 59: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 een 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 een 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 (een 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) = ADQ + 1

2hQ. Als we

optimale waarde Q∗, waarvoor geldt dat f(Q∗) = 2ADQ∗ = 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∗

2ADQ∗

+12h(1+α)Q∗

hQ∗ − 1 = 12(1+α) + 1

2(1+α)− 1 = α2

2(1+α) .

Hieruit volgt dat een afwijking van 50% van de optimale Q∗ (α = 12) 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 < C0 voor Q1 ≤ Q < Q2

Ci < Ci−1 voor Qi ≤ Q < Qi+1, i = 2, 3, . . . , n − 1

Cn < Cn−1 voor Qn ≤ Q.

Laat Ki(Q) de kostenfunctie zijn bij inkoopprijs Ci. We hebben gezien dat Ci in Ki(Q) voorkomt

als term DCi, wat impliceert dat de verschillende kostenfuncties een constante verschillen. Voor

55

Page 60: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 [Qi, 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 zodanig dat

Kk(Qk) = minj+1≤i≤nKi(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 Ci = 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 bestelstrategieen

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 Qi

de bestelgrootte is van product i, dan is de voorraad van product i gemiddeld 12Qi, zodat de

gemiddelde investering in de voorraad van product i gelijk is aan 12CiQi. Het aantal bestellingen

per tijdseenheid van product i is Di

Qi, i = 1, 2, . . . , n. De totale investering TI(Q) en het totaal

aantal bestellingen per tijdseenheid TB(Q) worden gedefinieerd door:

TI(Q) =∑n

i=112CiQi en TB(Q) =

∑ni=1

Di

Qi.

Stelling 6.1 Voor elke bestelstrategie Q = (Q1, Q2, . . . , Qn) geldt:

TI(Q) × TB(Q) ≥ 1

2(

n∑

i=1

CiDi)2. (6.2)

Bewijs

Volgens de ongelijkheid van Schwartz geldt voor ieder tweetal n-dimensionale vectoren x en y

dat (∑n

i=1 x2i ) × (

∑ni=1 y2

i ) ≥ (∑n

i=1 xiyi)2. Passen we deze ongelijkheid toe met xi =

Di

Qien

yi =√

12CiQi, dan vinden we het gevraagde resultaat.

Merk op dat het rechterlid van (6.2) onafhankelijk is van de bestelstrategie Q. Beschouwen we in

het XY -vlak de kromme xy = c, met c = 12 (∑n

i=1

√CiDi)

2, dan geeft iedere bestelstrategie Q een

punt in het XY -vlak aan de ’buitenkant’ van deze kromme, die de afwegingskromme heet. Laat

56

Page 61: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

de X-as corresponderen met TB(Q) en de Y -as met TI(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 TB(Q) en TI(Q), een ’betere’ strategie Q∗ kunnen bepalen

met TB(Q∗) ≤ TB(Q), T I(Q∗) ≤ TI(Q) en met TB(Q∗) × TI(Q) = c = 12(∑n

i=1

√CiDi)

2.

Kies een punt P ∗ = (P ∗1 , P ∗

2 ) op de afwegingskromme met P ∗1 ≤ TB(Q) en P ∗

2 ≤ TI(Q).

Laat λ∗ =P ∗

2P ∗

1en neem Q∗ zodanig dat Q∗

i =√

2λ∗Di

Ci, i = 1, 2, . . . , n.

We zullen nu laten zien dat TB(Q∗) = P ∗1 en TI(Q∗) = P ∗

2 . Er geldt:

TB(Q∗) =∑n

i=1Di

r

2λ∗DiCi

=∑n

i=1

CiDi

2λ∗ =√

12λ∗ ·∑n

i=1

√CiDi

en

TI(Q∗) =∑n

i=112Ci

2λ∗Di

Ci=∑n

i=1

λ∗CiDi

2 =√

λ∗

2 ·∑ni=1

√CiDi.

Hieruit volgt:

TB(Q∗) × TI(Q∗) = 12(∑n

i=1

√CiDi)

2 = c,

dus (TB(Q∗), T I(Q∗)) ligt op de afwegingskromme, evenals (P ∗1 , P ∗

2 ). Verder geldt:

TB(Q∗) =√

12λ∗ ·∑n

i=1

√CiDi =

12λ∗ ·

√2c =

P ∗1

2P ∗2·√

2P ∗1 P ∗

2 = P ∗1 en

TI(Q∗) =√

λ∗

2 ·√

2c =√

P ∗2

2P ∗1·√

2P ∗1 P ∗

2 = P ∗2 .

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 In = 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

Page 62: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Een optimale strategie kan worden gevonden met dynamische programmering, in dit geval achter-

waartse 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:

fn(In) =

hn(In) + cn(dn − In), n = N

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 fn(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) =

{

0 als x = 0, 1 ≤ n ≤ 5

7 als x ≥ 1, 1 ≤ n ≤ 5

hn(y) = y, y ≥ 0, 1 ≤ n ≤ 5.

De berekeningen zijn als volgt:

n = 5 : f5(0) = 7 voor x5 = 1; f5(1) = 1 voor x5 = 0.

n = 4 : 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.

n = 3 : 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;

f3(9) = 14 voor x3 = 0.

n = 2 : 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.

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 differen-

tie ∆f(k) := f(k +1)− f(k) een dalende functie is, d.w.z. ∆f(k +1) ≤ ∆f(k), ofwel ∆2f(k) ≤ 0

voor alle relevante waarden van k. Kostenfuncties hebben vaak de eigenschap dat het stijgende

58

Page 63: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

functies zijn, maar dat de toename van de stijging afneemt; dit houdt in dat deze functies concaaf

zijn. Veronderstel dat de kostenfuncties hn en cn voor alle n concaaf zijn, dan geldt het volgende

resultaat.

Stelling 6.2 Als de de kostenfuncties hn en cn voor alle n concaaf zijn, dan zijn er optimale

producties xn en bijbehorende voorraden In zodanig dat In · xn = 0 voor n = 1, 2, . . . , N .

Bewijs

Beschouw een optimaal productieplan. Als er meer zijn, kies dan een optimaal productieplan

waarvoor∑N

n=1(xn + In) minimaal is.

Veronderstel dat de bewering niet waar is, d.w.z. er is een n met In > 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 xm > 0 en xm+1 = xm+2 = · · · = xn−1 = 0.

Beschouw nu twee andere productieplannen, die dus niet goedkoper zijn dan het optimale.

Laat x′m = xm+1, x′

n = xn−1 (de andere producties onveranderd), zodat I ′k = Ik+1, m < k ≤ n,

en geldt:

cm(xm) + cn(xn) +∑n

k=m+1 hk(Ik) ≤ cm(xm + 1) + cn(xn − 1) +∑n

k=m+1 hk(Ik + 1).

Neem daarnaast x′′m = xm − 1, x′′

n = xn + 1 (de andere producties onveranderd), zodat

I ′′k = Ik − 1, m < k ≤ n. Dit geeft de ongelijkheid:

cm(xm) + cn(xn) +∑n

m+1 hk(Ik) ≤ cm(xm − 1) + cn(xn + 1) +∑n

k=m+1 hk(Ik − 1).

Tel beide ongelijkheden bij elkaar op en herschik de termen:

0 ≤ ∆2cm(xm − 1) + ∆2cn(xn − 1) +∑n

k=m+1 ∆2hk(Ik − 1).

De concaviteit houdt in dat ∆2ck(k) ≤ 0 en ∆2hk(k) ≤ 0 voor alle k, zodat bovenstaande drie

ongelijkheden alle gelijkheidheden zijn en alle drie productieplannen optimaal. Echter, voor het

tweede productieplan geldt dat∑N

n=1(x′′n + I ′′n) =

∑Nn=1(xn + In) − (n − m) <

∑Nn=1(xn + In),

wat een tegenspraak oplevert.

Stelling 6.2 houdt in dat in periode n alleen de productie van de hoeveelheden 0, dn, 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;

f3(9) = 14 voor x3 = 0.

n = 2 : 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.

n = 1 : f1(0) = 23 voor x1 = 5.

De berekening van de optimale strategie is hetzelfde als eerder.

59

Page 64: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 In negatief

zijn (d.w.z. dat er −In tekort is) en we veronderstellen dat als In < 0 de boetekosten pn(In) zijn

in periode n, n = 1, 2, . . . , N . Voor iedere 1 ≤ n ≤ N is de voorraadfunctie hn(In) = 0 voor

In < 0 en de boetefunctie pn(In) = 0 voor In > 0.

In dit model wordt de recursieformule:

fn(In) =

hn(In) + cn(dn − In) + pn(In), n = N

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 −(d1+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 pn(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; 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.

n = 4 : 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.

n = 3 : 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.

n = 2 : 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.

n = 1 : 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

Page 65: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

vraag D = 1N

∑Nn=1 dn, de variantie V = 1

N

∑Nn=1 d2

n−D2 en de variabiliteitscoefficient V C = VD2 .

Experimenteel onderzoek van Petersen en Silver heeft aangetoond dat als V C ≤ 0.20 het continue

model met D = 1N

∑Nn=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 ideeen:

- elke productiehoeveelheid moet precies genoeg zijn voor de vraag in een aantal opeenvolgende

perioden;

- beschouw eerst de productie voor een 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 ) = 1T {A + h

∑Tn=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) = 1

3(7 + 4 + 2 × 5) = 7, dus x1 = 5 (productie voor de

perioden 1 en 2).

K(1) = 7; K(2) = 12 (7 + 3) = 5; K(3) = 1

3 (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)-strategieen. Deze zijn van het type:

61

Page 66: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 fL(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 = 12 (I1 + I2) = r − µL + 1

2Q.

De gemiddelde bestelkosten zijn, analoog aan het vorige model: DC + ADQ . De variabele kosten

DC zijn onafhankelijk van de strategie en worden weer weggelaten, zodat de kostenfunctie is:

K(Q, r) = ADQ + h · (r − µL + 1

2Q).

We willen de kosten minimaliseren onder de voorwaarde dat de klanten een gegarandeerd service-

niveau 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 xL, de vraag gedurende de levertijd, N(µL, σ2L)-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{AD

Q+ h · [1

2Q + r − µL] | P(xL > r) ≤ α} (6.3)

62

Page 67: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Omdat r lineair met een positieve coefficient voorkomt in de doelfunctie en de beperking niet van

Q afhangt, moet r de kleinste waarde zijn die aan de beperking voldoet. Laat yL = xL−µL

σL, dan

is yL N(0, 1)-verdeeld. De beperking van (6.3) is equivalent met P(yL > r−µL

σL) ≤ α, en uit Tabel

I volgt de waarde, zeg zα, voor r−µL

σL, zodat r = µL + σL · zα.

Omdat r niet afhangt van Q, heeft de optimale Q dezelfde waarde als in model I van de continue

deterministische modellen: Q =√

2ADh .

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.

Dan geldt voor de verwachting: E B =∫∞r (x − r)fL(x)dx.

De kans dat een willekeurige klant een tekort aantreft is E BQ . We moeten dus oplossen het

probleem:

min

{

AD

Q+ h · [1

2Q + r − µL]

1

Q

∫ ∞

r(x − r)fL(x)dx ≤ β

}

(6.4)

Voor β niet te groot is het aannemelijk (zie de eerdere discussie over de gevoeligheidsanalyse) dat

Q, berekend met de wortelformule, d.w.z. Q =√

2ADh , een goede benadering is voor de optimale

bestelgrootte.

We moeten r bepalen zodat∫∞r (x − r)fL(x)dx ≤ β · Q. Door te substitueren y = x−µL

σLkunnen

we schrijven:

∫∞r (x − r)fL(x)dx =

∫∞r (x − r) 1

σL

√2π

e− 1

2(

x−µLσL

)2dx = σL

∫∞r−µL

σL

(y − r−µL

σL) 1√

2πe−

12y2

dy

= σL · N( r−µL

σL),

waarbij N(z) =∫∞z (y − z) 1√

2πe−

12y2

dy. De waarden van N(z) zijn getabelleerd (zie Tabel II).

We moeten r dus zo bepalen dat N( r−µL

σL) ≤ βQ

σLen r zo klein mogelijk. Zij z(β) de grootste

waarde uit Tabel II kleiner dan of gelijk aan βQσL

, dan is 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:

Laat Φ(y) = 1√2π

e−12y2

. Voor z < 0 geldt:

N(z) =∫∞z (y − z)Φ(y)dy =

∫ −zz (y − z)Φ(y)dy +

∫∞−z[(y + z) − 2z]Φ(y)dy

=∫ −zz yΦ(y)dy − z

∫ −zz Φ(y)dy + N(−z) − 2z

∫∞−z Φ(y)dy.

63

Page 68: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Omdat Φ(y) symmetrisch is om 0, geldt:∫ −zz yΦ(y)dy = 0 en

∫∞−z Φ(y)dy =

∫ z−∞ Φ(y)dy.

Hieruit volgt:

N(z) = −z∫ −zz Φ(y)dy + N(−z) − z

∫∞−z Φ(y)dy − z

∫ z−∞ Φ(y)dy

= N(−z) − z[∫ z−∞ Φ(y)dy +

∫ −zz Φ(y)dy +

∫∞−z Φ(y)dy] = N(−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)-strategieen, 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 DQ cykels per tijdseenheid zijn, hebben

we in dit model te maken met de volgende verwachte kosten:

K(Q, r) = ADQ + h · Igem + qD

Q E B = ADQ + h · [12Q + r − µL] + qD

Q

∫∞r (x − r)fL(x)dx.

De optimale waarden van de beslissingsvariabelen worden gevonden door partieel te differentieren:

∂K∂Q = −ADQ−2 + 1

2h−qDQ−2∫∞r (x−r)fL(x)dx = 0 → Q =

2Dh {A + q ·

∫∞r (x − r)fL(x)dx}.

∂K∂r = h + qDQ−1 · ∂

∂r

∫∞r (x − r)fL(x)dx = 0 1 →

∫∞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 (x−r)fL(x)dx. Dit is ook in te zien door op te merken dat er per cykel naast vaste bestelkosten

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) =√

2Dh {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:

Stap 1: Kies een willekeurige ε > 0, laat k = 0 en Q0 =√

2ADh .

Stap 2: Bepaal rk zodat∫∞rk

fL(x)dx = hQk

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 rk en Qk precies geschieden.

Bepaling rk

Er moet gelden:∫∞rk

fL(x)dx = hQk

qD , d.w.z. P[xL ≥ rk] = hQk

qD . Zoek in Tabel I zk zodanig dat

voor een N(0, 1)-verdeelde z geldt dat P[z ≤ zk] = hQk

qD . Omdat xL−µL

σLook N(0, 1)-verdeeld is,

volgt hieruit dat rk = µL + σL · zk.

1Volgens de regel van Leibnitz geldt als g(y) =R b(y)

a(y)h(y, x)dx, dan is ∂g

∂y=

R b(y)

a(y)∂

∂yh(y, x)dx+h(y, b(y)) ∂

∂yb(y)−

h(y, a(y)) ∂∂y

a(y).

64

Page 69: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Bepaling Qk+1

Voor de bepaling van Qk+1 moet∫∞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∫∞rk

(x − rk)fL(x)dx = σL · N( rk−µL

σL). Er geldt dus:

Qk+1 =√

2Dh {A + q · σL · N( rk−µL

σL)}, waarbij de waarde van N( rk−µL

σ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(r) =√

2Dh {A + q · σL · N( rk−µL

σL)} = 2000

1 + 83N( rk−800

200 ) en r(Q) = hQqD = 3Q

80.000 .

De berekeningen van de successieve approximatie staan in onderstaand tabel.

k QkhQk

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: een periode en geen vaste bestelkosten;

Model b: een periode en wel vaste bestelkosten;

Model c: oneindig veel perioden en geen vaste bestelkosten.

Model a: een 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:

- eenmalige beslissing, d.w.z. te beschouwen als beslissingsprobleem over een 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

Page 70: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

De vraagstelling luidt: hoeveel moet er worden ingekocht om de verwachte opbrengst te maxi-

maliseren?

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;

- restwaarde: r ·∫ Q0 (Q − x)f(x)dx;

- boetekosten: q ·∫∞Q (x − Q)f(x)dx;

- opbrengst verkoop: s ·∫ Q0 xf(x)dx + s ·

∫∞Q Qf(x)dx.

De totale kostenfunctie K(Q) kan geschreven worden als:

K(Q) = c ·Q− r ·∫ Q0 (Q− x)f(x)dx + q ·

∫∞Q (x−Q)f(x)dx− s ·

∫ Q0 xf(x)dx− s ·

∫∞Q Qf(x)dx

= c·Q−r·∫ Q0 (Q−x)f(x)dx+q·

∫∞Q (x−Q)f(x)dx−s·{ED−

∫∞Q xf(x)dx}−s·

∫∞Q Qf(x)dx

= c · Q − r ·∫ Q0 (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:

K ′(Q) = c−r·∫ Q0 f(x)dx−(q+s)·

∫∞Q f(x)dx = c−r·

∫ Q0 (Q−x)f(x)dx−(q+s)·{1−

∫ Q0 f(x)dx}

= c − q − s − (r − q − s)∫ Q0 f(x)dx.

Voor de optimale waarde van Q moet gelden dat K ′(Q) = 0, d.w.z.

P(D ≤ Q) =∫ Q0 f(x)dx = q+s−c

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 exponentieel verdeeld is met parameter λ = 110.000 , d.w.z.

f(x) =

{

110.000e

−x10.000 als x ≥ 0

0 als x < 0

Laat c = 20, s = 40, q = 5 en r = 9. Voor de optimale Q moet gelden:

66

Page 71: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

∫ Q0 f(x)dx = 1 − e

−Q10.000 = q+s−c

q+s−r = 2536 = 0.6944.

Hieruit volgt: e−Q

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−cq+s−r en D−µ

σ N(0, 1)-verdeeld is, volgt uit Tabel I de

waarde van Q−µσ , zeg k, zodat Q = µ + σk.

Het verwachte tekort =∫∞Q (x − Q)f(x)dx = σN(Q−µ

σ ) = σN(k) (zie de vorige paragraaf).

Het verwachte overschot =∫ Q0 (Q − x)f(x)dx =

∫∞0 (Q − x)f(x)dx −

∫∞Q (Q − x)f(x)dx

= Q − µ +∫∞Q (x − Q)f(x)dx = Q − µ + σN(k) = σk + σN(k).

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 zodanig 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 = 4q+s−cq+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

Page 72: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Model b: een 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.

De bestelkosten voldoen aan:

{

A + c(y − z) als y > z;

0 als y = z.

Laat L(y) = −r ·∫ y0 (y − x)f(x)dx + (q + s) ·

∫∞y (x − y)f(x)dx.

Voor de kostenfunctie K(y) van dit model geldt:

K(y) = −s · E D +

{

A + c(y − z) + L(y) als y > z;

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

wordt bepaals door:∫ S0 f(x)dx = q+s−c

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) ·∫ y0 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.

20s + 45∫∞s (x − s) 1

10.000 e−x

10.000 dx − 9∫ s0 (s − x) 1

10.000 e−x

10.000 dx =

20S + 45∫∞S (x − S) 1

10.000 e−x

10.000 dx − 9∫ S0 (S − x) 1

10.000 e−x

10.000 dx + A,

d.w.z.

20s + 45∫∞s (x − s) 1

10.000 e−x

10.000 dx − 9∫ s0 (s − x) 1

10.000 e−x

10.000 dx =

237.120 + 45∫∞11.856(x − 11.856) 1

10.000 e−x

10.000 dx − 9∫ 11.8560 (11.856 − x) 1

10.000 e−x

10.000 dx + 800.

Hieruit volgt, na enig rekenwerk, dat s = 10.674.

68

Page 73: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 xn 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);

2. opbrengst verkoop : s · min(xn, yn);

3. voorraadkosten : h · max(0, yn − xn);

4. boetekosten tekorten : q · max(0, xn − yn);

5. opbrengst nalevering : αs · max(0, xn − yn).

Voor Fn kunnen we de volgende recurrente betrekking opstellen:

Fn(In) = minyn≥In{c · (yn − In) +∫ yn

0 [−sx + h(yn − x)]f(x)dx

+∫∞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):

F (I) = miny≥I{c · (y − I) +∫ y0 [−sx + h(y − x)]f(x)dx

+∫∞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-

entieren naar y m.b.v. de regel van Leibnitz:

c+h ·∫ y0 f(x)dx− syf(y)+ [−s−αs− q] ·

∫∞y f(x)dx+ syf(y)+α ·

∫∞0

∂∂yF (y−x)f(x)dx = 0,

d.w.z.

c + h ·∫ y0 f(x)dx + [(α − 1)s − q] ·

∫∞y f(x)dx + α ·

∫∞0

∂∂yF (y − x)f(x)dx = 0.

Nu geldt dat ∂∂yF (y−x) = −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:

c + h ·∫ y0 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:

∫ y0 f(x)dx = q+(1−α)(s−c)

q+(1−α)s+h .

69

Page 74: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

nu:∫ y0 f(x)dx = q+s−c

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 exponentieel verdeeld is met parameter λ = 110.000 .

Laat c = 20, s = 40, q = 5, h = 4 en α = 0.8. Voor de optimale y moeten we oplossen:

∫ y0 f(x)dx = q+(1−α)(s−c)

q+(1−α)s+h → 1 − e−y

10.000 = 5+0.2(40−20)5+0.2×40+4 = 0.5294 → y = 7.537.

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

Page 75: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

Page 76: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 7

Beschouw een voorraadsysteem waarbij vier verschillende producten in voorraad gehouden wor-

den. 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 een machine, die maar een 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: Qi = DiT, 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 QiRi, met Ri = 1 − Di

Pi.

b. Bewijs dat de totale vaste plus voorraadkosten per tijdseenheid gelijk zijn aan:∑n

i=1Ai

T + 12T∑n

i=1 hiDiRi.

c. We willen deze totale kosten willen minimaliseren onder de voorwaarde dat∑n

i=1(ti+Di

PiT ) ≤ T

(verklaar deze voorwaarde). Ga na dat de optimale T voldoet aan:

T = max(T1, T2) met T1 =√

2Pn

i=1 AiPn

i=1 hiDiRien T2 =

Pni=1 ti

1−Pn

i=1DiPi

.

72

Page 77: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 9

Beschouw een voorraadmodel met n producten in voorraad, waarbij door coordinatie 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 Ai gemaakt.

Stel dat voor product i de vraag per tijdseenheid gelijk is aan Di eenheden en dat de voorraad-

kosten per eenheid en per tijdseenheid gelijk zijn aan hi.

De volgende strategie met parameters T, m1,m2, . . . ,mn wordt beschouwd: elke T tijdseenheden

wordt een aanvulorder geplaatst en product i wordt om de mi aanvulorders meegenomen, waarbij

tenminste een 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

gelijk zijn aan 1T (A +

∑ni=1

Ai

mi) + 1

2T∑n

i=1 himiDi.

b. Ga na dat bij vaste (m1,m2, . . . ,mn) de bovenstaande kostenfunctie minimaal is voor

T ∗ =

2(A+Pn

i=1Aimi

)Pn

i=1 himiDi.

c. Het resultaat van onderdeel b is de basis voor het volgende heuristische algoritme2

Stap 1: Nummer de producten zodat Ai

hiDihet kleinst is voor product 1. Neem m1 = 1.

Stap 2: Neem mi =√

Ai

hiDi· h1D1

A+A1, i = 2, 3, . . . , n, afgerond naar het dichtstbijzijnde positieve

gehele getal.

Stap 3: Bereken T ∗ =

2(A+Pn

i=1Aimi

)Pn

i=1 himiDi.

Stap 4: Neem de bestelgrootte Qi = miDiT∗, 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 D1 = 2, D2 = 3, D3 = 5, D4 = 2,

voorraadkosten hn(I) = I voor alle n en met als productiekosten cn(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, D1 = 3, D2 = 2 en D3 = 6.

De voorraadkosten zijn 4 als er voorraad is en 0 als er geen voorraad is.

Voor de productiekosten geldt: cn(x) =

{

0 als x = 0

cn als x ≥ 1, waarbij c1 = 14, c2 = 16 en c3 = 10.

2E.A. Silver, D. Pyke and R. Peterson, ”Inventory Management and Production Planning and Scheduling”, 3rd

edition (1998).

73

Page 78: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 een 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 produc-

tiekosten 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

Page 79: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 zodat 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 cd-

speler. 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 toeges-

taan. 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 23 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 service-

eis?

75

Page 80: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

gelijk is aan Q2 + 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 niet-

verkochte 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 kranten-

verkoper 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

Page 81: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 23

Beschouw model a uit paragraaf 6.5 (een 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 een periode met een stochastische vraag die uniform verdeeld

is op [50, 250]. Veronderstel dat het aanvangsniveau van de voorraad 100 eenheden is. De inkoop-

kosten 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 wor-

den 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

Page 82: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 telecommuni-

catie, 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 service-

niveau, 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

Page 83: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 t0 < 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 limt→0o(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 {Xn, n = 1, 2, . . . } is de rij

van tussentijden. Op grond van eigenschap 2 zijn de Xn’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 exponentiele 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

1S.M. Ross, ”Applied Probability Models with Optimization Applications”, Holden-Day, 1970 (chapter 2).

79

Page 84: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 exponentiele 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 exponentieel verdeeld is met

parameter λ, dan melden potentiele 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

Page 85: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 34 om een tussentijd van 45 minuten aan te

treffen en een kans 14 op een tussentijd van 15 minuten. Dus de verwachting van de tussentijd

die zo’n persoon aantreft is 34 · 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 een 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:

12(1 + c2

X) E(X),

waarbij cX de variatiecoefficient van X is, d.w.z. c2X = VAR(X)

E(X)2.

7.3 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:

2R.B. Cooper: ”Introduction to Queueing Theory”, 2e edition, North Holland, 1981 (chapter 5, section 7).

81

Page 86: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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:

λ = limt→∞E[N(t)]

t : de gemiddelde aankomstsnelheid;

L = limt→∞ 1t

∫ t0 E[L(s)]ds : het gemiddeld aantal klanten in het systeem;

Lq = limt→∞1t

∫ t0 E[Lq(s)]ds : het gemiddeld aantal klanten in de wachtrij;

W = limn→∞1n

∑nm=1 E[Vm] : de gemiddelde verblijftijd van een klant in het systeem;

Wq = limn→∞1n

∑nm=1 E[Wm] : 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 waarschi-

jnlijkheid. Beschouw de stochastische uitdrukking 1t

∫ t0 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

de convergentie van de verwachtingen, d.w.z. dat limt→∞1t

∫ t0 E[L(s)]ds naar L convergeert.

Analoge uitspraken gelden voor λ, Lq, 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 voor tijdstip t weer

vertrokken zijn. We zullen de volgende drie beweringen bewijzen:

Bewering 1: Voor alle t ≥ 0 geldt dat X(t)t ≥ 1

t

∫ t0 L(s)ds ≥ Y (t)

t .

Bewering 2: limt→∞X(t)

t = λW .

Bewering 3: limt→∞X(t)

t = limt→∞Y (t)

t .

Veronderstel dat deze beweringen zijn bewezen. Dan is het bewijs als volgt te geven:

λW = limt→∞1t

∫ t0 L(s)ds = L.

Bewijs Bewering 1:

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]

zijn binnengekomen en zij Y (t) =∑

{n|Tn+Vn≤t} Vn, de som van de verblijftijden van de klanten

82

Page 87: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

moeten afrekenen dan is de opbrengst in het interval [0, t] gelijk aan∫ t0 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

geval weer eerder dan in het derde is het duidelijk dat X(t) ≥∫ t0 L(s)ds ≥ Y (t) voor alle t ≥ 0,

waaruit bewering 1 volgt.

Bewijs Bewering 2:

Merk op dat limn→∞ 1n

∑nm=1 Vm = limt→∞ 1

N(t)

∑N(t)m=1 Vm, waaruit volgt dat

λW ={

limt→∞N(t)

t

}

{

limn→∞ 1n

∑nm=1 Vm

}

= limt→∞ 1t

∑N(t)m=1 Vm

= limt→∞1t

{m|Tm≤t} Vm = limt→∞X(t)

t .

Hieruit volgt Bewering 2.

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 limn→∞Vn

Tn= 0 volgt dat er voor iedere

ε > 0 een Nε is zodat Vn

Tn< ε 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:

Y (t) =∑

n∈S1(t)

Vn +∑

n∈S2(t)

Vn. (7.2)

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

n∈S3(t)

Vn ≤∑

n∈S2(t)

Vn. (7.3)

Uit (7.2) en (7.3) volgt dat

Y (t) ≥∑

n∈S1(t)

Vn +∑

n∈S3(t)

Vn =∑

n∈S1(t)

Vn −∑

n∈S4(t)

Vn +∑

n∈S3(t)

Vn +∑

n∈S4(t)

Vn. (7.4)

Laat vervolgens S5(t) = {n | Tn + εTn ≤ t} = {n | Tn ≤ t1+ε}. Dan kunnen we schrijven

Y (t) ≥∑

n∈S1(t)

Vn −∑

n∈S4(t)

Vn +∑

n∈S5(t)

Vn =∑

n∈S1(t)

Vn −∑

n∈S4(t)

Vn + X(t

1 + ε). (7.5)

Nu geldt

X(t)

t≥ Y (t)

t≥ 1

t

n∈S1(t)

Vn −∑

n∈S4(t)

Vn

+X( t

1+ε)

t. (7.6)

Omdat∑

n∈S1(t)Vn −∑n∈S4(t)

Vn begrensd wordt door∑

n≤NεVn geldt:

limt→∞1t

{

n∈S1(t)Vn −∑n∈S4(t)

Vn

}

= 0.

83

Page 88: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Verder geldt limt→∞X( t

1+ε)

t = lims→∞X(s)

(1+ε)s = 11+ε lims→∞

X(s)s . Hiermee volgt uit (7.6) dat

limt→∞

X(t)

t≥ lim

t→∞Y (t)

t≥ 1

1 + εlimt→∞

X(t)

t. (7.7)

Omdat (7.7) geldt voor alle ε > 0, geldt dat limt→∞X(t)

t = limt→∞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 Wq goed gedefinieerd en eindig zijn. Dan geldt: Lq = λWq.

Voor wachttijdsystemen met een Poisson aankomstproces geldt dat op de lange duur een bin-

nenkomende 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 aankomst-

proces waarin de klanten precies om de twee minuten arriveren en een bedieningsduur van precies

een 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 regener-

atiepunten 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 ), (7.9)

3R.W. Wolff, ”Poisson arrivals see time averages”, Operations Research 30 (1982) 223-231.

84

Page 89: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

zodat

E(NA)

E(N)=

E(TA)

E(T ). (7.10)

Op grond van de theorie van renewal processen4 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 een 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 2 . . . n − 1 n n + 1 . . .-

λ0 -λ1 -

λn−1 -λn

�µ1

�µ2

�µn

�µn+1

De analyse van het geboorte-sterfte proces is erg moeilijk als het systeem in een transiente 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.

4S.M. Ross, ”Applied Probability Models with Optimization Applications”, Holden-Day, 1970 (chapter 3).5R.W. Wolff, ”Stochastic modelling and the theory of queues”, Prentice-Hall,1989, chapter 4.

85

Page 90: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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)t − Bn(t)

t

∣≤ 1

t , wat impliceert dat limt→∞An(t)

t = limt→∞Bn(t)

t .

Omdat

limt→∞An(t)

t = de gemiddelde snelheid waarmee het systeem toestand n bereikt

en

limt→∞Bn(t)

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 µ1P1 = λ0P0

1 λ0P0 + µ2P2 = (λ1 + µ1)P1

2 λ1P1 + µ3P3 = (λ2 + µ2)P2

· · · · · · · ·· · · · · · · ·· · · · · · · ·n λn−1Pn−1 + µn+1Pn+1 = (λn + µn)Pn

· · · · · · · ·· · · · · · · ·· · · · · · · ·

86

Page 91: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Dit stelsel kan worden opgelost door alle kansen in P0 uit te drukken:

toestand 0: P1 = λ0µ1

P0

toestand 1: P2 = λ1µ2

P1 + 1µ2

(µ1P1 − λ0P0) = λ1µ2

P1 = λ1λ0µ2µ1

P0

toestand 2: P3 = λ2µ3

P2 + 1µ3

(µ2P2 − λ1P1) = λ2µ3

P2 = λ2λ1λ0µ3µ2µ1

P0

· · · · · · ·· · · · · · ·

toestand n: Pn+1 = λn

µn+1Pn + 1

µn+1(µnPn − λn−1Pn−1) = λn

µn+1Pn = λnλn−1···λ0

µn+1µn···µ1P0

· · · · · · ·· · · · · · ·

Laat Cn = λn−1λn−2···λ0

µnµn−1 ···µ1, n = 1, 2, . . . en neem C0 = 1. Dan geldt: Pn = CnP0, n = 0, 1, . . . .

Met behulp van de relatie∑∞

n=0 Pn = 1 volgt hieruit dat [∑∞

n=0 Cn]P0 = 1, zodat

Pn =Cn

∑∞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 λ)

geldt: λ =∑∞

n=0 λnPn. 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 =

∞∑

n=0

nPn; Lq =

∞∑

n=s

(n − s)Pn; λ =

∞∑

n=0

λnPn; W =L

λ; Wq =

Lq

λ(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

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 geboorte-

sterfte 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

Page 92: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 exponentiele bedienings-

duur 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 een

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:

Pn =ρn

∑∞n=0 ρn

= (1 − ρ)ρn, n ∈ N0 (7.13)

Lq =∞∑

n=1

(n − 1)Pn = (1 − ρ)∞∑

n=1

(n − 1)ρn = (1 − ρ)ρ2∞∑

n=1

∂ρn−1

∂ρ

= (1 − ρ)ρ2 ∂

∂ρ

∞∑

n=1

ρn−1 = (1 − ρ)ρ2 ∂

∂ρ(1 − ρ)−1 =

ρ2

1 − ρ(7.14)

Wq =Lq

λ=

ρ

µ(1 − ρ); W = Wq +

1

µ=

1

µ(1 − ρ); L = λW =

ρ

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 exponentiele 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 exponentiele verdeling

is deze tijdsduur 1λ . De regeneratietijd is dus 1

λ · 11−ρ en de gemiddelde tijdsduur dat de bediende

bezig is, is dus 1λ · 1

1−ρ · (1 − P0) = ρλ(1−ρ) = 1

µ · 11−ρ , wat gelijk is aan W , de tijd die een klant in

het systeem verblijft.

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 zo maken dat de totale kosten per etmaal minimaal zijn. Welke

waarde van µ is optimaal?

88

Page 93: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Dit is een M/M/1-model. Laten we een uur als tijseenheid nemen, dan is λ = 524 .

De gemiddelde ligkosten (per uur) van de schepen = 25 × L = 25λµ−λ = 125

24µ−5 .

De gemiddelde kosten (per uur) voor de kraan zijn 500024 µ.

Voor de kostenfunctie f(µ) geldt dus: f(µ) = 12524µ−5 + 5000

24 µ. f ′(µ) = 0 geeft: − 24×125(24µ−5)2

+ 500024 = 0,

waaruit volgt (24µ − 5)2 = 242×1255000 = 14.4, zodat 24µ − 5 =

√14.4 = 3.7947.

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(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) = Pn = (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 een 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 exponentiele 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

kan worden aangetoond (zie Opgave 14) dat T (n) als dichtheid µe−µx (µx)n

n! heeft, zodat geldt:

P(W ∗ ≤ t | n klanten in het systeem) =∫ t0 µe−µx (µx)n

n! dx.

We kunnen nu schrijven:

P(W ∗ ≤ t) =∑∞

n=0 (1 − ρ)ρn ·∫ t0 µe−µx (µx)n

n! dx = (1 − ρ)∫ t0 µe−µx(

∑∞n=0

(λx)n

n! )dx

= (µ − λ)∫ t0 e−(µ−λ)xdx = 1 − e−(µ−λ)t.

De verblijftijd is dus ook exponentieel verdeeld met parameter µ − λ. De verwachting hiervan is1

µ−λ , wat overeenkomt met de formule voor de gemiddelde verblijftijd W .

6Naar de Deense wiskundige Erlang, de grondlegger van de wachttijdtheorie, begin twintigste eeuw.

89

Page 94: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

nu s bedienden en veronderstellen we dat ρ = λsµ < 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 =

{

nµ voor 1 ≤ n ≤ s − 1

sµ voor n ≥ s

Hieruit volgt Cn =

{

(λ/µ)n

n! voor n < s(λ/µ)s

s! · ρn−s voor n ≥ s

Uit de formules (7.11) en (7.12) volgt:

P0 =

{

s−1∑

n=0

(λ/µ)n

n!+

(λ/µ)s

s!·

∞∑

n=s

ρn−s

}−1

=

{

s−1∑

n=0

(λ/µ)n

n!+

(λ/µ)s

s!· 1

1 − ρ

}−1

(7.16)

Pn =

{

(λ/µ)n

n! · P0 voor n < s(λ/µ)s

s! · ρn−s · P0 voor n ≥ s(7.17)

Vervolgens gaan we Lq berekenen:

Lq =∑∞

n=s(n − s)Pn =∑∞

j=0 jPs+j =∑∞

j=0 j (λ/µ)s

s! · ρjP0

= (λ/µ)s

s! · ρP0 ·∑∞

j=0∂ρj

∂ρ = (λ/µ)s

s! · ρP0 · ∂∂ρ [∑∞

j=0 ρj ].

Omdat ∂∂ρ [∑∞

j=0 ρj] = ∂∂ρ [(1 − ρ)−1] = (1 − ρ)−2, krijgen we:

Lq = (λ/µ)s

s! · ρP0 · (1 − ρ)−2 = (λ/µ)s

s! · ρ(1−ρ)2

·{

∑s−1n=0

(λ/µ)n

n! + (λ/µ)s

s! · 11−ρ

}−1(7.18)

Hieruit volgen de overige grootheden volgens de formule van Little:

Wq =Lq

λ; W = Wq +

1

µ; L = λW (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 exponentiele toename als ρ naar 1 nadert.

De fractie van de tijd dat alle bedienden bezet zijn is:∑∞

n=s Pn = P0∑∞

n=s(λ/µ)s

s! · ρn−s = (λ/µ)s

s! · P0(1 − ρ)−1.

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, een voor geldzaken en een 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

Page 95: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Overwogen wordt beide loketten open te stellen voor zowel geld- als postzaken met een gezamen-

lijke 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 syste-

men. Voor het loket geldzaken is λ = 15, µ = 20, dus de fractie van de tijd dat dit loket bezet is

is ρ = 34 . Het gemiddeld aantal klanten voor geldzaken Lg = ρ

1−ρ = 3. De wachttijd voordat de

klant aan de beurt is bedraagt ρµ(1−ρ) = 0.15 uur (9 minuten).

Voor het loket postzaken is λ = 18, µ = 20, dus de fractie van de tijd dat dit loket bezet is is

ρ = 910 . Het gemiddeld aantal klanten voor postzaken Lp = ρ

1−ρ = 9. De wachttijd voordat de

klant aan de beurt is bedraagt ρµ(1−ρ) = 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 ρ = 34), dan hebben we hierboven gezien dat L(1) = 3. Uit de formules van het

M/M/1 model volgt dat Lq(1) = 94 . Voor het M/M/2 model (waarin ρ dus weer 3

4 is) krijgen

we: Lq(2) = 2714 en L(2) = 24

7 . We zien dus het opmerkelijke verschijnsel dat Lq(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 ≥ Nen µn =

{

nµ voor 1 ≤ n ≤ s − 1

sµ voor n ≥ s

Hieruit volgt Cn =

{

(λ/µ)n

n! voor 0 ≤ n ≤ s − 1(λ/µ)s

s! · ( λsµ )n−s voor s ≤ n ≤ N

Laat weer ρ = λsµ (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

Page 96: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

P0 =

{

s−1∑

n=0

(λ/µ)n

n!+

(λ/µ)s

s!·

N∑

n=s

ρn−s

}−1

(7.20)

Pn =

(λ/µ)n

n! · P0 voor 0 ≤ n ≤ s − 1(λ/µ)s

s! · ρn−s · P0 voor s ≤ n ≤ N

0 voor n > N

(7.21)

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 PN = (λ/µ)s/s!Ps

n=0(λ/µ)n/n!.

Dit heet de Erlang verliesformule. Ook nu gaan we eerst Lq berekenen:

Lq =∑∞

n=s(n − s)Pn =∑N−s

j=0 jPs+j =∑N−s

j=0 j (λ/µ)s

s! · ρjP0

= (λ/µ)s

s! · ρP0 ·∑N−s

j=0∂ρj

∂ρ = (λ/µ)s

s! · ρP0 · ∂∂ρ [∑N−s

j=0 ρj ].

Omdat ∂∂ρ [∑m

j=0 ρj] = ∂∂ρ [1−ρm+1

1−ρ ] = 1(1−ρ)2

· [1 − ρm − mρm(1 − ρ)], krijgen we:

Lq = (λ/µ)s

s! · ρ(1−ρ)2

· [1 − ρN−s − (N − s)ρN−s(1 − ρ)]P0 (7.22)

Vervolgens berekenen we λ:

λ =∞∑

n=0

λnPn =N−1∑

n=0

λPn = λ(1 − PN ) = λ[1 − ρNss

s!P0] (7.23)

Hieruit volgen de overige grootheden volgens de formule van Little:

Wq =Lq

λ; W = Wq +

1

µ; L = λW (7.24)

Voor het speciale geval s = 1 krijgen we de volgende formules voor P0, λ en Lq (merk op dat

deze voor N → ∞ overeenkomen met de formules van het M/M/1 model):

P0 =

{

1 + ρ ·N∑

n=1

ρn−1

}−1

= {1 + ρ · 1 − ρN

1 − ρ}−1 =

1 − ρ

1 − ρN+1(7.25)

λ = λ · [1 − ρNP0] = λ · 1 − ρN

1 − ρN+1(7.26)

Lq =ρ2

(1 − ρ)2· [1 − ρN−1 − (N − 1)ρN−1(1 − ρ)] · 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.

P0 = {1 +∑N

n=1 1}−1 = 1N+1 ; Pj = 1

N+1 , 1 ≤ j ≤ N ; Lq =∑N−1

n=0 jPj+1 = 12

(N−1)NN+1 ;

λ = λ · (1 − P0) = λ · NN+1 ; Wq =

Lq

λ= N−1

2λ ; W = Wq + 1µ = Wq + 1

λ = N+12λ ; L = λW = N

2 .

92

Page 97: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 potentiele 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

de stationaire situatie: λn = (N − n)λ, 0 ≤ n ≤ N en µn =

{

nµ voor 1 ≤ n ≤ s − 1

sµ voor s ≤ n ≤ N

Hieruit volgt: Cn =

{

N !(N−n)!n! · (λ/µ)n voor 0 ≤ n ≤ s − 1

N !(N−n)!s!sn−s · (λ/µ)n−s voor s ≤ n ≤ N

en

P0 =

{

s−1∑

n=0

N !

(N − n)!n!· (λ/µ)n +

N !ss

s!

N∑

n=s

1

(N − n)!sn· (λ/µ)n

}−1

(7.28)

De berekening van de vier karakteristieke getallen verloopt als volgt:

λ =∑N

n=0 λnPn =∑N

n=0 λ(N − n)Pn = λN∑N

n=0 Pn − λ∑N

n=0 nPn = λ(N − L).

Lq =∑N

n=s(n − s)CnP0. Omdat L = Lq + λµ = Lq + λ

µ · (N − L), volgt hieruit dat L =λN+µLq

λ+µ .

Met behulp van (7.28) levert dit de volgende formules op:

Pn =N !ss

(N − s)!s!sn· (λ/µ)nP0, s ≤ n ≤ N (7.29)

Lq =

N∑

n=s

(n − s)Pn; L =λN + µLq

λ + µ; λ = λ(N − L); Wq =

Lq

λ; W =

L

λ(7.30)

Tenslotte beschouwen we weer het speciale geval s = 1, waarvoor de volgende formules voor P0

en Lq gelden:

P0 =

{

N∑

n=0

N !

(N − n)!· (λ/µ)n

}−1

(7.31)

Lq =N∑

n=1

(n − 1)Pn = L − (1 − P0) =λN + µLq

λ + µ− (1 − P0)

Hieruit volgt dat

Lq = N − λ + µ

λ· (1 − P0) (7.32)

7.6 Het M/G/1 model

Veronderstel dat de bedieningsduur T een willekeurige tijdsduur heeft met verwachting τ , vari-

antie σ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

Page 98: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

wordt: Nk+1 =

{

Nk + Xk+1 − 1 als Nk ≥ 1;

Xk+1 als Nk = 0.Laat δ(Nk) =

{

1 als Nk ≥ 1;

0 als Nk = 0.

We kunnen nu schrijven Nk+1 = Nk + Xk+1 − δ(Nk), zodat

N2k+1 = N2

k + X2k+1 + δ(Nk)2 + 2NkXk+1 − 2Nkδ(Nk) − 2Xk+1δ(Nk)

= N2k + X2

k+1 + δ(Nk) + 2NkXk+1 − 2Nk − 2Xk+1δ(Nk),

waaruit volgt:

E Nk+1 = ENk + E Xk+1 − E δ(Nk)

en

E N2k+1 = EN2

k + E X2k+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: limk→∞ E Nk = limk→∞ E Nk+1.

Laat voor de stationaire grootheden de index k weg. Dit levert het volgende op.

Uit de formule van ENk+1 volgt:

E δ(N) = E X = het verwachte aantal binnenkomsten tijdens een bediening = λτ .

Uit de formule voor E N 2k+1 en het bovenstaande volgt:

0 = E X2 + E X + 2 E N · E X − 2 E N − 2 E X2.

Hieruit volgt:

EN =EX2 + 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 exponentiele verdeling

is bekend dat E{N(t)} = VAR{N(t)} = λt. EX en E X2 kunnen als volgt worden berekend:

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 = λτ .

E X2 = E{E(X2|T )} =∫∞0 E(X2|T = t)f(t)dt =

∫∞0 E{[N(t)]2}f(t)dt

=∫∞0 {VAR[N(t)] + [E{N(t)}]2}f(t)dt =

∫∞0 {λt + (λt)2}f(t)dt

= λτ + λ2∫∞0 t2f(t)dt = λτ + λ2(σ2 + τ2).

Vullen we deze waarden (7.33) in, dan krijgen we:

E N =λτ + λ2(σ2 + τ2) + λτ(1 − 2λτ)

2(1 − λτ)= λτ +

λ2(σ2 + τ2)

2(1 − λτ)(7.34)

Laat ρ = λτ , dan luiden de formules van dit model:

L = ρ +λ2σ2 + ρ2

2(1 − ρ); Lq =

λ2σ2 + ρ2

2(1 − ρ); W =

L

λ; Wq =

Lq

λ(7.35)

94

Page 99: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Voor de tijdsduur Wq dat men moet wachten voordat men bediend wordt, volgt uit bovenstaande

formule dat

Wq =ρ

1 − ρ· {τ

2+

σ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{TWq +∫ T0 (T − x)dx} = τWq + 1

2 E(T 2) = τWq + 12{VAR(T ) + E(T )2} = τWq + 1

2(σ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 λτ = ρ): ρ{Wq + σ2

2τ + τ2}.

Anderzijds ontvangt het systeem per tijdseenheid de werklast, d.w.z. Wq, zodat geldt:

Wq = ρ{Wq + σ2

2τ + τ2} → Wq = ρ

1−ρ · {σ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:

Wq =ρτ

2(1 − ρ); Lq = λWq; L = Lq + ρ; W =

L

λ(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 exponentiele verdeling met parameter µk hebben.

Met behulp van deze interpretatie zijn de verwachting en de variantie eenvoudig te bepalen:

E(T ) =∑k

i=1 E(Ti) =∑k

i=1 (µk)−1 = 1µ ; VAR(T ) =

∑ki=1 VAR(Ti) =

∑ki=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)

(k − 1)!, x ≥ 0. (7.38)

95

Page 100: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Voor k = 1 is f(x) = µe−µx, de dichtheid van de exponentiele 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 =k + 1

2k· λ

µ(µ − λ); Lq = λWq; L = Lq +

λ

µ; W =

L

λ(7.39)

7.7 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 een klant op tijdstip t en de bediening van deze klant loopt af voor 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 Pm dat er m klanten bij wachtrij 2 zijn

geldt weer: Pm = (1 − ρ2)ρm2 , 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)ρ

m2 , 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

0, 0 µ2P0,1 = λP0,0

n, 0;n ≥ 1 λPn−1,0 + µ2Pn,1 = (λ + µ1)Pn,0

0,m;m ≥ 1 µ2P0,m+1 + µ1P1,m−1 = (λ + µ2)P0,m

n,m;n,m ≥ 1 λPn−1,m + µ2Pn,m+1 + µ1Pn+1,m−1 = (λ + µ1 + µ2)Pn,m

96

Page 101: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Stelling 7.3 Pn,m = (1 − ρ1)ρn1 (1 − ρ2)ρ

m2 , 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.

µ2P0,1 = µ2(1 − ρ1)(1 − ρ2)ρ2 = λ(1 − ρ1)(1 − ρ2) = λP0,0.

λPn−1,0+µ2Pn,1 = λ(1−ρ1)ρn−11 (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.

µ2P0,m+1 + µ1P1,m−1 = µ2(1 − ρ1)(1 − ρ2)ρm+12 + µ1(1 − ρ1)ρ1(1 − ρ2)ρ

m−12 =

(1 − ρ1)(1 − ρ2)ρm2 [µ2ρ2 + µ1ρ1ρ

−12 ] = (λ + µ2)Po,m, m ≥ 1.

λPn−1,m + µ2Pn,m+1 + µ1Pn+1,m−1 = λ(1 − ρ1)ρn−11 (1 − ρ2)ρ

m2 + µ2(1 − ρ1)ρ

n1 (1 − ρ2)ρ

m+12 +

µ1(1 − ρ1)ρn+11 (1 − ρ2)ρ

m−12 = (1 − ρ1)ρ

n1 (1 − ρ2)ρ

m2 [λρ−1

1 + µ2ρ2 + µ1ρ1ρ−12 ] =

(µ1 + λ + µ2)Pn,m

Met behulp van deze statioaire kansen zijn de karakteristieke grootheden L en W weer uit te

rekenen:

L =∑∞

n,m=0(n + m)Pn,m = (1 − ρ1)(1 − ρ2){∑∞

n,m=0 nρn1ρm

2 +∑∞

n,m=0 mρn1ρm

2 } =

= (1 − ρ1)(1 − ρ2){ρ1∑∞

m=0 ρm2

∑∞n=1 nρn−1

1 + ρ2∑∞

n=0 ρn1

∑∞m=1 mρm−1

2 }= (1 − ρ1)(1 − ρ2){ρ1(1 − ρ2)

−1(1 − ρ1)−2 + ρ2(1 − ρ−1

1 (1 − ρ2)−2}

= ρ1

1−ρ1+ ρ2

1−ρ2= λ

µ1−λ + λµ2−λ .

W = Lλ = 1

µ1−λ + 1µ2−λ .

Opmerking

Als we een tandem wachtrij hebben met s1 bedienden bij wachtrij 1 en s2 bedienden bij wachtrij

2, waarbij verondersteld wordt dat λs1µ1

< 1 en λs2µ2

< 1, dan geldt ook dat de wachtrijen zich in

de evenwichtssituatie gedragen als onafhankelijke M/M/s1- 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 bagage-

controle zijn onafhankelijke stochastische variabelen die exponentieel verdeeld zijn met verwacht-

ingswaarde 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

= 7560k < 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/s-

model (zie (7.18) en (7.19)) de L1 (aantal personen bij de veiligheidscontrole) en L2 (aantal

97

Page 102: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

personen bij de bagagecontrole) en dus ook het totaal aantal personen in het controleproces

(L1 + L2) berekenen:

k L1 L2 L1 + L2

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 ri, i = 1, 2, . . . ,K.

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

wachtrij j met kans pij, 1 ≤ j ≤ K, of hij verlaat het systeem met kans pi0 = 1 −∑Kj=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 toe-

standverz. {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 = rj +K∑

i=1

λipij, j = 1, 2, . . . ,K (7.41)

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(n1, 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∏

j=1

(1 − ρj)ρnj

j , nj ∈ N0, 1 ≤ j ≤ K (7.43)

98

Page 103: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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, p11 =

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 een 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∑

j=1

{het gemiddeld aantal klanten bij wachtrij j} =K∑

j=1

λj

µj − λj(7.44)

Met behulp van de formule van Little vinden we (voor λ, de gemiddelde aankomstsnelheid bij het

systeem, geldt: λ =∑K

j=1 rj):

W =L

λ=

∑Kj=1

λj

µj−λj∑K

j=1 rj

(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 .

Het stelsel (7.41) is:

{

λ1 = 4 + 14λ2

λ2 = 5 + 12λ1

waaruit volgt dat λ1 = 6 en λ2 = 8, zodat ρ1 = 34 en

ρ2 = 45 . Dit geeft volgens (7.43), (7.44) en (7.45):

P(n,m) = 14 · (3

4)n · 15 · (4

5 )m, n,m ∈ N0; L = 68−6 + 8

10−8 = 7; W = Lr1+r2

= 74+5 = 7

9 .

Opmerking

De productvorm (7.43) is gevonden onder de veronderstelling dat alle bedieningstijden exponen-

tieel zijn. Tevens is verondersteld dat elke wachtrij slechts een 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

7F. 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

Page 104: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

(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 een 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 pij

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 ni klanten aanwezig zijn, waarbij

n1+n2 + · · ·+nK = N . Ook in dit geval kan worden bewezen dat P(n1, 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∑

i=1

λipij , j = 1, 2, . . . ,K (7.46)

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∑

i=1

πipij , j = 1, 2, . . . ,K (7.47)

K∑

j=1

πj = 1 (7.48)

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:

P(n1, n2, . . . , nK) = C ·K∏

i=1

(

λi

µi

)ni

= C · αn1+n2+···+nK

K∏

i=1

(

πi

µi

)ni

= C · αNK∏

i=1

(

πi

µi

)ni

= C ′ ·K∏

i=1

(

πi

µi

)ni

, (7.49)

waarbij C ′ een normeringsconstante is. Deze constante is in het algemeen lastig te bepalen. We

moeten namelijk sommeren over alle mogelijke combinaties (n1, n2, . . . , nK) met n1 + n2 + · · · +8Zie het college Inleiding Besliskunde.

100

Page 105: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 ′ 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 ni andere klanten ziet bij de wachtrij i, waarbij n1 +

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 be-

horende bij een 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

exponentiele bedieningsduren geldt voor de gemiddelde tijd dat deze klant bij wachtrij i verblijft:

Wn(i) =Ln−1(i) + 1

µi, 1 ≤ i ≤ K (7.50)

Passen we de formule van Little toe, dan krijgen we voor Ln(i):

Ln(i) = λn(i)Wn(i), 1 ≤ i ≤ K (7.51)

Verder geldt weer

λn(i) = αnπi, 1 ≤ i ≤ K, (7.52)

waarbij πi bepaald wordt door (7.47) en (7.48). Omdat∑K

i=1 Ln(i) = n, volgt uit (7.51) en (7.52)

dat n = αn∑K

i=1 πiWn(i), d.w.z. αn = nPK

i=1 πiWn(i). Hiermee zijn LN (i) en WN (i), het gemiddeld

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.

9Zie het dictaat Discrete Wiskunde.

101

Page 106: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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) = 1µi

voor i = 1, 2, . . . ,K en laat n = 1.

2. αn = nPK

i=1 πiWn(i); λn(i) = n

PKi=1 πiWn(i)

· πi, 1 ≤ i ≤ K; Ln(i) = λn(i)Wn(i), 1 ≤ i ≤ K.

Als n = N : stop;

Anders: ga naar stap 3.

3. n := n + 1; Wn(i) = Ln−1(i)+1µi

, 1 ≤ i ≤ K.

Ga naar stap 2.

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 exponentiele 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 een 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 Lq = λ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(NA) = λ E(TA) (zie (7.8)).

102

Page 107: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 3

Een wachttijdsysteem heeft twee bedienden en het systeem kan maximaal 5 klanten bevatten. De

stationaire kansverdeling is als volgt: P0 = 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, Lq 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 een kassa en de bedieningsduur is exponentieel met een gemiddelde

van 2 minuten. Als er 3 of meer klanten bij de kassa staan wordt de cassiere 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, Lq, 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

exponentiele bedieningsduur heeft met een gemiddelde van 2 minuten.

Bereken voor dit gewijzigde model L, Lq, 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 een kapper en de behandeltijd van de klanten is exponentieel met een

gemiddelde van 30 minuten. Een aankomende klant gaat met kans 13n 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

Page 108: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 9

Beschouw een wachtrijsysteem met een 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 een 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: een of twee?

Opgave 12

Bij een pompstation komen auto’s aan volgens een Poissonproces met een gemiddelde van een

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

Page 109: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 = T1+T2+· · ·+Tn met T1, T2, . . . , Tn onderling onafhanke-

lijke identiek verdeelde stochastische variabelen die elk negatief exponentieel verdeeld zijn met

parameter µ.

Toon aan dat de dichtheid T gelijk is aan µe−µx (µx)n−1

(n−1)! .

Opgave 15

Vergelijk het M/M/2 systeem met bedieningssnelheid µ en het M/M/1 systeem met bedieningss-

nelheid 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.

Toon aan dat in het algemmen geldt: Lq(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

Page 110: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

exponentiele 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 een-

bediende systeem. Nieuwe opdrachten van buiten komen aan bij machine 1 volgens een Poisson

proces met een gemiddelde van een 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 12 naar machine

2 en met kans 12 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 12 naar het andere station en

met kans 12 voegt de klant zich bij het huidige station voor een nieuwe bediening.

106

Page 111: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 een 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 een van de twee disks bezoeken. Neem aan dat

na afloop van een bediening bij de processor een job met kans 13 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 exponentiele 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

Page 112: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 strategieen 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 een 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 allereer-

ste 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 besliss-

ingsboom worden gemodelleerd.

108

Page 113: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 = (aij), waarvan de rijen corresponderen met de strategieen

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 ongun-

stige 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 zodanig dat α·maxj akj+(1−α)·minj akj = maxi{α·maxj aij+(1−α)·minj aij}.

109

Page 114: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 zodat dit

maximale verlies minimaal wordt:

kies k zdd. maxj bkj = mini[maxj bij].

Het voorbeeld heeft als verliesmatrix

B =

1 0 5 0

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.

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 pj (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:

kies k zdd.∑

j pjakj = maxi[∑

j pjaij ].

Passen we deze regel toe op Voorbeeld 8.1, dan krijgen we:

j pjaij =

4.0 voor i = 1

2.7 voor i = 2

3.7 voor i = 3

→ object A wordt gekozen.

110

Page 115: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

b. Minimaal verwacht verlies

Kies de strategie die het verwacht verlies (dit staat in de matrix B) minimaliseert:

kies k zdd.∑

j pjbkj = mini[∑

j pjbij ].

Passen we deze regel toe op Voorbeeld 8.1, dan krijgen we:

j pjbij =

1.0 voor i = 1

2.3 voor i = 2

1.3 voor i = 3

→ object A wordt gekozen.

Het is geen toeval dat volgens beide criteria object A wordt gekozen. Dit is altijd het geval omdat∑

j pjaij +∑

j pjbij een constante is, d.w.z. onafhankelijk van i:

j pjbij =∑

j pj[maxl alj − aij ] =∑

j pj · maxl alj −∑

j pjaij , d.w.z.

j pjbij +∑

j pjaij =∑

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∑

j pj ·maxl alj. Zonder volledige informatie verwachten we (volgens criterium a) een uitbetaling

van maxi [∑

j pjaij ]. De waarde van volledige informatie (WV I) is het verschil hiertussen:

WV I =∑

j pj · maxl alj − maxi[∑

j pjaij ].

Merk op dat WV 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 pj verbeterd kunnen worden tot a-posteriori kansen.

Veronderstel dat er N mogelijke toestanden T1, T2, . . . , TN zijn. Neem verder aan dat we een

experiment uitvoeren met als mogelijke uitkomsten U1, U2, . . . , UM en dat de voorwaardelijke

kansen pij = P[Ui | Tj ] bekend zijn voor alle i en j. De a-posteriori kansen qji zijn gedefinieerd

door: qji = P[Tj | Ui].

Lemma 8.1 qji =pijpj

P

k pikpkvoor alle i en j.

Bewijs

qji = P[Tj | Ui] =P[Tj∩Ui]

P[Ui]=

P[Ui | Tj ]·P[Tj ]P

k P[Tk∩Ui]=

P[Ui | Tj ]·P[Tj ]P

k P[Ui | Tk ]·P[Tk] =pijpj

P

k pikpk.

111

Page 116: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Nadat een experiment is uitgevoerd en we de uitkomst ervan kennen, zeg Ui, 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. p1 = 0.7 en p2 = 0.3.

j pjaij =

{

240 voor i = 1

460 voor i = 2→ beslissing B: niet verkopen.

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.

Dan is de matrix P van de voorwaardelijke kansen: P =

(

0.6 0.2

0.4 0.8

)

.

De a-posteriori kansen zijn:

q11 = 0.6×0.70.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.30.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:

j qj1aij =

{

138 voor i = 1

86 voor i = 2→ beslissing A: wel verkopen.

Als de uitkomst van de proef U2 (’olie’) is, dan beslissen we als volgt:

j qj2aij =

{

336 voor i = 1

812 voor i = 2→ beslissing B: niet verkopen.

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

Page 117: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 =

i P[Ui] ·maxl∑

j qjialj −maxl[∑

j pjalj] =∑

i[∑

k pikpk] ·maxl∑

j qjialj −maxl[∑

j pjalj ].

8.4 Beslissingsbomen

Tot nu toe hebben we te maken gehad met het nemen van een 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 een 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 (beslissings-

of 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

Page 118: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Voorbeeld 8.2 (vervolg)

B

B

T

T

T

B

B

E

E

E

E

2000

-200

660

60

0.3

0.7

0.3

0.7

460

240

optie B

optie A

460geenproefboring

T

T

T

T

E

E

E

E

E

E

E

E 30

630

-230

1970

30

630

-230

19700.46

0.54

0.46

0.54

0.13

0.87

0.13

0.87

108

56

optie A

optie B

optie A

optie B

306

782

108U1(0.48)

56U2(0.52)

458.48

welproefboring

460

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 17

3 14 8 9 2

1 5 14 20 −3

7 19 10 2 0

114

Page 119: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 2

Uit 4 machines wordt er een gekozen. Als machine i wordt gekozen, dan is de opbrengst Ki +ciQi

met Ki, ci gegeven getallen en Qi een getal waarvan we alleen weten dat het tussen Ai 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 p1 = 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

Page 120: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 categorieen: 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

verkoop 45.000 45.000 45.000 45.000

De maatschappij kan een bodemonderzoek laten verrichten. De kosten van een dergelijk onder-

zoek 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 waarne-

mingen:

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

Page 121: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 experi-

menten 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 een vast tijdstip beschrijft, dan spreken we van een statisch simulatie model (ook wel Monte

117

Page 122: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 toe-

stand 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 een 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

Page 123: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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.

Het gemiddelde van deze n stochastische variabelen, Xn = 1n

∑ni=1 Xi, heet het steekproefgemid-

delde. Omdat

E[Xn] = 1n

∑ni=1 E[Xi] = µ,

is het steekproefgemiddelde een zuivere schatter van µ. Bovendien geldt volgens de Sterke wet

van de grote aantallen dat Xn in waarschijnlijkheid convergeert naar µ1, d.w.z. voor iedere ε > 0

geldt:

limn→∞ P[|Xn − µ| < ε] = 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 Xn:

VAR[Xn] = VAR[ 1n

∑ni=1 Xi] = 1

n2

∑ni=1 VAR[Xi] = σ2

n .

1n

∑ni=1(Xi −Xn)2 is geen zuivere schatter van σ2. Dat geldt wel voor de steekproefvariantie S2

n,

gedefinieerd door:

S2n = 1

n−1

∑ni=1(Xi − Xn)2.

Verder gebruiken we Sn =√

S2n als de steekproefdeviatie.

Lemma 9.1 S2n is een zuivere schatter voor σ2.

Bewijs

Omdat∑n

i=1(Xi − Xn)2 =∑n

i=1 X2i − n[Xn]2, kunnen we schrijven:

(n − 1) E[S2n] = E[

∑ni=1 X2

i ] − n · E[X2n] = n · E[X2

i ] − n · E[X2n].

Aangezien voor iedere stochastische variabele Y geldt dat E[Y 2] = VAR[Y ] + (E[Y ])2, geldt:

E[X2i ] = VAR[Xi] + (E[Xi])

2 = σ2 + µ2 en E[X2n] = VAR[Xn] + (E[Xn])2 = σ2

n + µ2.

Hiermee krijgen we:

(n − 1) E[S2n] = n(σ2 + µ2) − n(σ2

n + µ2) = (n − 1)σ2, d.w.z. E[S2n] = σ2.

1L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.

243.

119

Page 124: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 = Xn−µσ/

√n

, dan geldt volgens de Centrale Limietstelling2 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 Sn te nemen. Volgens een resultaat

dat bekend staat als de Stelling van Slutsky3 geldt namelijk dat ook limn→∞ P(Zn ≤ x) = Φ(x)

voor alle x, met Zn = Xn−µSn/

√n. Dit betekent dat voor n voldoende groot Zn bij benadering

N(0, 1)-verdeeld is.

Laat z 12α het 1

2α-percentiel van de N(0, 1)-verdeling zijn, d.w.z. P[−z 12α ≤ Z ≤ z 1

2α] = 1−α met

Z een N(0, 1)-verdeelde stochastische variabele. Voor n voldoende groot weten we dus dat

1 − α ≈ P[−z 12α ≤ Zn ≤ z 1

2α] = P[Xn −

z 12αSn√

n≤ µ ≤ Xn +

z 12αSn√

n], (9.1)

d.w.z. dat [Xn −z 1

2 αSn

√n

, Xn +z 1

2 αSn

√n

] 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 Zn 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

gewenste breedte ε van het betrouwbaarheidsinterval is bereikt, d.w.z.z 1

2 αSn

√n

≤ 12ε, ofwel n ≥

(

2z 1

2 αSn

ε

)2

. Voor toenemende n zal Sn niet al te zeer veranderen (S2n is een zuivere schatter van

σ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 Xn en S2n. 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):

2L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.

235.3L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.

246.

120

Page 125: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Xn+1 = Xn +Xn+1 − Xn

n + 1en S2

n+1 = (1 − 1

n)S2

n + (n + 1)(Xn+1 − Xn)2 (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 X1 en X2 en laat n = 2.

b. Bereken Xn = 12(X1 + X2) en S2

n = (X1 − Xn)2 + (X2 − Xn).

2. Als n ≥ N en n ≥(

2z 12 α

ε

)2

S2n: stop en neem Xn als schatting voor de te bepalen grootheid.

Anders: ga naar stap 3.

3. a. Doe een nieuwe waarneming Xn+1.

b. Bereken Xn+1 = Xn + Xn+1−Xn

n+1 en S2n+1 = (1 − 1

n)S2n + (n + 1)(Xn+1 − Xn)2.

c. n := n + 1 en ga naar stap 2.

Opmerking 1

Stel dat de waarnemingen X1, X2, . . . , Xn alleen de waarden 0 of 1 kunnen aannemen (Bernouilli

data). In dat geval simuleer je in feite een onbekende kans p, waarbij Xi =

{

1 met kans p

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 S2n te gebruiken als benadering voor deze variantie. Een natuurlijke schatting

voor de variantie is dan Xn(1 − Xn) (ga na dat voor Bernouilli data S2n = n

n−1Xn(1 − Xn); zie

ook Opgave 1). Bovenstaand Algoritme 9.1 kan dan eenvoudig zo worden aangepast dat alleen

Xn wordt gebruikt.

Het betrouwbaarheidsinterval wordt dan: [Xn −z 1

2 α√n·√

Xn(1 − Xn), Xn +z 1

2 α√n·√

Xn(1 − Xn)].

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 12α = 1.96) met een intervalbreedte van 10−8.

Omdat Xn ≈ 10−6, geldt Xn(1 −Xn) ≈ 10−6, zodat moet gelden: 2 · 1.96√n·√

10−6 ≤ 10−8, d.w.z.

dat ruwweg moet gelden: 4√n≤ 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 Zn 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

Page 126: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Onder deze aanname heeft Zn een zogenaamde Student-verdeling met n−1 vrijheidsgraden4. 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 12α(n − 1) ≤ Zn ≤ t 1

2α(n − 1)] = P[Xn −

t 12α(n − 1)Sn

√n

≤ µ ≤ Xn +t 1

2α(n − 1)Sn

√n

],

(9.3)

waarbij t 12α(n − 1) een waarde is die voor een aantal waarden voor α en n uit een tabel is af te

lezen (Tabel III). Bijvoorbeeld als α = 0.05 en n = 15, dan is t 12α(n − 1) = 2.145.

Voor uitspraken over de variantie, weer onder de aanname dat de trekkingen Xi normaal verdeeld

zijn, gaan we als volgt te werk. Zij Tn−1 = (n − 1)S2n

σ2 , dan heeft deze stochast een Chi-kwadraat

verdeling met (n − 1) vrijheidsgraden5, 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

bepaald, volgens: P[ (n−1)S2n

χ212 α

(n−1)≤ σ2 ≤ (n−1)S2

n

χ2

1− 12 α

(n−1)] = 1 − α.

Als α = 0.05 en n = 15, dan is χ212α(n − 1) = 26.119 en χ2

1− 12α(n − 1) = 5.629 (zie Tabel IV).

9.3 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 een 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 een cijfer gaan genereren, en dat we {0, 1, 2, 3, 4} associeren 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.

4L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.

220.5L.J. Bain and M. Engelhardt, ”Introduction to Probability and Mathematical Statistics”, Duxbury (1987) p.

217.

122

Page 127: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

We hebben in feite 14 keer het spel gesimuleerd met de volgende resultaten (ga dit zelf na):

spel resultaat aantal worpen

1 M K K M K M K M M M M 11

2 M K K K K 5

3 K M M M M 5

4 M M K M K K M M M 9

5 K M M K M M M 7

6 M K M K M M M 7

7 M M K M M 5

8 M M M 3

9 M K M K M M K M K K K K M K M K K 17

10 M K K K K 5

11 M K K K K 5

12 M M M 3

13 K M K K M M M M M 9

14 K K M K M K K 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 Xi = het aantal worpen in het i-de spel.

Steekproefgemiddelde X14 = (11 + 5 + · · · + 7)/14 = 7.00.

Steekproefvariantie S214 = [(11 − 7.00)2 + (5 − 7.00)2 + · · · (7 − 7.00)2]/13 = 13.54.

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 χ2

0.975(13) = 5.009 (zie Tabel

IV) gelden de volgende uitspraken met kans 0.95:

X14 − t0.025(13) · S14√14

≤ µ ≤ X14 + t0.025(13) · S14√14

d.w.z. 4.89 ≤ µ ≤ 9.11

13S214

χ20.025(13)

≤ σ2 ≤ 13S214

χ20.975(13)

d.w.z. 7.11 ≤ σ2 ≤ 35.1

Hoewel het steekproefgemiddelde X14 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 0 1 2 3 4 5 6 7 8 9 10 11 12 13

frequentie 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

levertijd 7 8 9 10 11 12 13 14

frequentie 0.07 0.13 0.18 0.26 0.18 0.10 0.05 0.03

123

Page 128: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

De verwachting en de variantie van de vraag kunnen geschat worden door:

X = [26 × 0 + 14 × 2 + · · · + 1 × 13]/100 = 3.21

S2 = [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 1 2 3 4 5 6 7 8

kosten (in euro’s) 168 143 152 171 159 162 171 154

124

Page 129: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 t0.025(7) = 2.363.

Dus met een kans van 95% liggen de jaarlijkse kosten tussen 160−2.363· S√8≈ 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: 7S2

χ20.025(7)

= 70016.013 ≈ 43.7 ≤ σ2 ≤ 7S2

χ20.975(7)

= 7001.690 ≈ 414.

Voorbeeld 9.3

Beschouw een wachtrijmodel met een 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 een 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 Xi 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 = 13811 = 12.55 en steekproefvariantie = 300.73

10 = 30.07.

Tijd in wachtrij: steekproefgemiddelde = 3911 = 3.55 en steekproefvariantie = 172.73

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

Page 130: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

tijdstip 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

9.4 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 een 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

Page 131: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

gekozen. Bekend is dat de keuze: a = 843314861, c = 453816693 en m = 2147483648 (231)

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.

Exponentiele verdeling

Veronderstel dat X een exponentiele 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 = X1 + X2 + · · · + Xk met Xi een exponentiele

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.

3. x =∑k

i=1 xi.

127

Page 132: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 exponentiele 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 tussen-

tijden exponenieel verdeeld zijn (met dezelfde parameter λ). We kunnen dus random trekkingen

ui ∈ [0, 1] nemen en hieruit tussentijden ti = − 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] = n2 en VAR[Tn] = n

12 .

Zij Zn =Tn−n

2√n/12

. Volgens de Centrale limietstelling is Zn 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

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 verdeling6.

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.

6Zie bijvoorbeeld J.H. Ahrends and U. Dieter, ”An alias method for sampling from the normal distribution”,

Computing 42 (1982) 159-170.

128

Page 133: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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):

F (x) =

0.1 0 ≤ x < 1

0.4 1 ≤ x < 2

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 1n . Zij u een aselect getal uit [0, 1), dan hoort

bij u de waarde x = i ⇔ i−1n ≤ u < i

n , 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! e−λ, n = 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+1pn, n = 0, 1, . . . .

We trekken eerst een willekeurig getal u ∈ [0, 1]. Als u < e−λ = p0, dan associeren we deze

trekking met x = 0, die immers een kans p0 heeft. Als p0 ≤ u < p0 + p1 = p0 + λp0, dan

associeren 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+1p, 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] = pqn−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

succeskans p heeft. Aangezien∑n

i=1 P[X = i] = 1− de kans op geen succes in de eerste n

pogingen = 1 − qn, n ≥ 1.

We kunnen nu een trekking uit X genereren uit een trekking u ∈ [0, 1] door 1−qn−1 ≤ u < 1−qn

te associeren met x = n, immers:

129

Page 134: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

de kans hierop is (1 − qn) − (1 − qn−1) = qn−1 − qn = qn−1(1 − q) = pqn−1 = P[X = n].

Omdat 1 − qn−1 ≤ U < 1 − qn ⇔ qn < 1 − U ≤ qn−1 geldt dat X = min{n | qn < 1 − U}.Aangezien 1 − U ook uniform verdeeld is op [0, 1], kunnen we voor x ook nemen:

x = min{n | qn < 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:

P[X = i] =

(

n

i

)

piqn−i, 0 ≤ i ≤ n, waarbij 0 < p < 1 en q = 1 − p.

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] = n−ii+1 · p

q · P[X = i], tezamen met de beginconditie dat

P[X = 0] = qn. Dit geeft het volgende algoritme.

1. Trek random een u ∈ [0, 1]; i = 0; a = pq ; b = qn; F = b.

2. Als u < F : neem x = i en stop;

Anders: b := n−ii+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 > 12 , 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 efficiente 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 zodat 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

Page 135: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Bewijs

P[X = i] = P[Y = i | acceptatie] = P[Y = i en acceptatie]

P[acceptatie]=

P[Y = i]·P[U≤ fic·gi

]

P[acceptatie]=

gi· fic·gi

P[acceptatie]

= fi

c·P[acceptatie]voor alle i.

Sommeer bovenstaande gelijkheid over alle i : 1 =∑∞

i=1 P[X = i] = 1c·P[acceptatie]

,

waaruit volgt dat P[acceptatie] = 1c . 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 trekkin-

gen 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 {gi, 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 variabelen7.

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 gi = 110 , 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 = b10u1c + 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 stochastis-

che variabele met verwachting µ en variantie σ2. Uit de waarnemingen X1, X2, . . . , Xn worden µ

en σ2 als volgt benaderd:

1. De verwachting µ: het steekproefgemiddelde Xn =∑n

i=1 Xi is hiervoor een zuivere schatter.

2. De variantie σ2: de steekproefvariantie S2 = 1n−1

∑ni=1(Xi − Xn)2 is hiervoor een zuivere

schatter.

Het steekproefgemiddelde Xn is, zeker als n niet erg groot is, vaak onbetrouwbaar als benadering

voor µ. De variantie van Xn is dan nog vaak vrij groot zijn (we hebben gezien dat VAR[Xn] = σ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.

7H.C. Tijms: ”Operationele analyse: een inleiding in methoden en methoden”, Epsilon Uitgaven, Utrecht, 2002

pp. 435- 437.

131

Page 136: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 pi 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 ni (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 [ai, bi] van [0, 1],

dan kan u ∈ [0, 1] worden vervangen door u′ = ai + (bi − ai)u ∈ [ai, bi]. Nadat we aldus ni

waarnemingen hebben uit strook i, geven we deze het gewicht wi = npi

nivoor 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 condi-

tionele 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 ni uit strook i komen, i = 1, 2, . . . , k.

4. Xn = 1n

∑ki=1 wi· (de som van de waarnemingen uit strook i).

Voorbeeld 9.5

Beschouw de exponentiele verdeling met parameter λ = 1. Het is bekend dat de verwachting

hiervan gelijk aan 1 is, maar veronderstel dat we deze verwachting met simulatie willen be-

naderen. 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.

8S.M. Ross, ”A course in Simulation”, Macmillan, 1991 (chapter 2).

132

Page 137: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

i ui xi = −ln(1 − ui) i ui xi = −ln(1 − ui)

1 0.495 0.684 6 0.698 1.199

2 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

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 p1 = 0.64, p2 = 0.32 en p3 = 0.04.

Neem nu n1 = 4, n2 = 4 en n3 = 2, zodat w1 = 6.44 = 1.6, w2 = 3.2

4 = 0.8 en w3 = 0.42 = 0.2.

In onderstaande tabel staat het schema voor de berekeningen.

strook i ui u′i x′

i = −ln(1 − u′i) strook i ui u′

i x′i = −ln(1 − u′

i)

1 1 0.495 0.317 0.381 2 6 0.698 0.864 1.995

1 2 0.335 0.215 0.242 2 7 0.013 0.644 1.033

1 3 0.791 0.507 1.568 2 8 0.761 0.884 2.154

1 4 0.469 0.300 0.357 3 9 0.290 0.972 3.561

2 5 0.279 0.729 1.306 3 10 0.693 0.988 4.398

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′ = 1 − u. Dit geeft

een rij waarnemingen {Xi} en een rij {X ′i}. Intuıtief is ook nu weer duidelijk dat we op deze

wijze corrigeren voor ’oneerlijke’ trekkingen. Laat Xn =∑n

i=1 Xi en X′n =

∑ni=1 X ′

i, dan nemen

we in dit geval voor het steekproefgemiddelde: X ∗ = Xn+X′n

2 . Omdat E[Xn] = E[X′n] = µ en

VAR[Xn] = VAR[X′n] = σ2

n , en omdat Xn en X′n negatief gecorreleerd zijn geldt:

E[X∗] = E[Xn]+E[X′n]

2 = µ;

VAR[X∗] = 14 [VAR[Xn] + VAR[X

′n] + 2cov(Xn, X

′n)] ≤ 1

4{VAR[Xn] + 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

Page 138: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

i ui xi = −ln(1 − ui) u′i x′

i = −ln(1 − u′i)

1 0.495 0.684 0.505 0.702

2 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

Xn = 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:

Xn+1 = Xn + Xn+1−Xn

n+1 en S2n+1 = (1 − 1

n)S2n + (n + 1)(Xn+1 − Xn)2.

Opgave 2

Veronderstel dat de waarnemingen X1, X2, · · · ∈ {0, 1}. Toon dan aan dat voor n ≥ 1 geldt:

S2n+1 = n+1

n Xn+1(1 − Xn+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] = n2 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):

a. f(x) =

{

2x 0 ≤ x ≤ 1

0 elders

b. f(x) =

{

120 10 ≤ x ≤ 30

0 elders

134

Page 139: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

c. f(x) =

{

(x−1)3

4 1 ≤ x ≤ 3

0 elders

d. f(x) =

1 + x − 1 ≤ x ≤ 0

1 − x 0 ≤ x ≤ 1

0 elders

Opgave 6

Beschouw de kansverdeling met dichtheid f(x) =

{

1x2 x ≥ 1

0 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 strategieen:

a. bestel iedere maand 100 eenheden;

b. bestel eens per 4 maanden 400 eenheden.

Ga met simulatie na wat de kosten van beide strategieen zijn over een periode van 1 jaar; neem

aan dat beginvoorraad 100 stuks bedraagt. Voer voor beide strategieen vier runs uit, gebaseerd

op de aselecte getallen van Tabel VI.

135

Page 140: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 9

Beschouw een wachttijdmodel met een 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,Lq,W,Wq en ρ.

b. Bepaal met de ’gewone’ simulatietechniek L,Lq,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 een 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 strategieen:

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 een 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 strategieen gedurende 10.000 uur.

136

Page 141: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 peri-

odieke modellen.

Een algemene karakteristiek van dynamische programmering is dat voor oplossen van het prob-

leem een recursieve formulering wordt opgesteld. Het vinden van een dergelijke recursieve formu-

lering 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

Page 142: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 een team zijn doel bereikt. Als alleen de drie basis-

bemanningen 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 pro-

jecten. 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 3 8 3 6

4 4 9 4 8

5 5 13 5 13 5 10

6 6 17 6 12

7 7 18 7 18 7 14

8 8 19 8 18 8 21 8 16

9 9 21 9 19 9 22 9 18

10 10 23 10 24 10 20

Welk investeringsprogramma levert de hoogste winst (d.w.z. opbrengst - kosten) op?

Voorbeeld 10.4

Een bedrijf moet een 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

Page 143: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 ofwel kwijtraakt ofwel verdubbelt. De kans op

kwijtraken is 13 en op verdubbelen 2

3 . 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 gemeen-

schappelijke eigenschappen. Deze worden hieronder besproken.

Meerstapsbeslissingen

Bij dynamische programmering wordt in een bepaald tijdsbestek sequentieel een aantal beslissin-

gen 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 definieren 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(sn) 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 eenstapsbeslissingsprobleem op te lossen:

139

Page 144: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 sn en beslissing xn, sn+1 de

toestand in stap n + 1 waarin het systeem vanuit toestand sn door beslissing xn overgaat en

fn+1(sn+1) de optimale kosten vanaf stap n + 1 zijn, gegeven toestand sn+1 op dat moment.

Bij een N -stapsbeslissingsprobleem, uitgaande van een vaste begintoestand s1, 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 sn 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 (de-

terministisch) 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 pn(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:

max{∑3n=1 pn(xn) | ∑3

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 sn in stap n het aantal

teams is dat nog moet worden toegewezen; s1 = 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

Page 145: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

x2

s2 0 1 2 3 4 5 f2(s2) x∗2(s2)

0 0 0 0

1 50 20 50 0

2 70 70 45 70 0

3 80 90 95 75 95 2

4 100 100 115 125 110 125 3

5 130 120 125 145 160 150 160 4

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 pn(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) | ∑3n=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 sn in stap n het aantal

topastronauten is dat nog moet worden toegewezen; s1 = 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

Page 146: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

x2

s2 0 1 2 f2(s2) x∗2(s2)

0 0.48 0.40 0

1 0.30 0.32 0.30 0

2 0.18 0.20 0.16 0.16 2

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 wn(xn) de opbrengst bij toekenning

xn aan project n, n = 1, 2, 3, 4.

Het investeringsprobleem luidt:

max{∑4n=1 wn(xn) | ∑4

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

s3 0 6 7 8 9 10 f3(s3) x∗3(s3)

0 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 24 25 6

n = 2 : f2(s2) = max0≤x2≤s2{w2(x2) + f3(s2 − x2) | x2 ∈ {0, 4, 5, 8, 9, 10}}, 0 ≤ s2 ≤ 10.

142

Page 147: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

x2

s2 0 4 5 8 9 10 f2(s2) x∗2(s2)

0 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 23 26 4

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 xn

exemplaren gemaakt, dan is de volgende toestand weer s = 1 met kans ( 12)xn .

Laat: pn(xn) =

{

0 als xn = 0

300 + 100xn als xn ≥ 1

fn(1) = minimale verwachte kosten vanaf run n in toestand 1.

Nu geldt: fn(1) = minxn≥0{pn(xn) + (12 )xnfn+1(1)}, n = 1, 2, 3; f4(1) = 1600.

n = 3 : f3(1) = minx3≥0{p3(x3) + (12 )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

Page 148: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

n = 2 : f2(1) = minx2≥0{p2(x2) + (12 )x2 · f3(1)}.

x2 0 1 2 3 4 5 f2(1) x∗2(1)

800 800 700 700 750 825 700 2

n = 1 : f1(1) = minx1≥0{p1(x1) + (12 )x1 · f2(1)}.

x1 0 1 2 3 4 f1(1) x∗1(1)

700 750 675 687,50 743,75 675 2

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 sn 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 sn

fiches hebben bij het begin van spel n.

Dan geldt: fn(sn) = max{xn|xn≤sn;xn+sn≤5}{13fn+1(sn − xn) + 2

3fn+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:

n = 3 :

x3

s3 0 1 2 3 4 f3(s3) x∗3(s3)

0 0 0 0

1 0 0 0 0

2 0 0 0 0 0

3 0 0 23

23 2

4 0 23

23 1

5 1 1 0

n = 2 :

x2

s2 0 1 2 3 4 f2(s2) x∗2(s2)

0 0 0 0

1 0 0 0 0

2 0 49

49

49 1

3 23

49

23

23 0

4 23

89

89 1

5 1 1 0

n = 1 :

x1

s1 0 1 2 f12(s1) x∗2(s1)

3 23

2027

23

2027 1

144

Page 149: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 ofwel 5 fiches (kans23) ofwel 3 fiches in bezit zijn; in het laatste geval 2 fiches inzetten, zodat dan (met kans 2

9)

alsnog 5 fiches worden bereikt. Na de eerste keer winst wordt dus met kans 23 + 1

3 · 23 = 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 49 . De kans om met deze

strategie het doel te bereiken is dus 23 · 8

9 + 13 · 4

9 = 2027 .

10.5 Opgaven

Opgave 1

Een student heeft 7 weken de tijd voordat de tentamens in 4 vakken beginnen en wil deze tijd

zo efficient mogelijk besteden. Hij wil aan ieder vak 1, 2, 3 of 4 weken besteden en de keuze zo

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

Page 150: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 betrouw-

baarheid 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 een 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 23 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

Page 151: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 eenzijdig 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 pi, 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 zo 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

Page 152: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Hoofdstuk 11

Geheeltallige programmering

11.1 Inleiding

Soms zijn bij optimaliseringsproblemen een of meer variabelen geheeltallig, bijvoorbeeld als het

gaat om ondeelbare grootheden zoals een bepaald aantal personen. We spreken dan van geheeltal-

lige 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 optimaliserings-

probleem. Meestal beschouwen we lineaire geheeltallige optimaliseringsproblemen.

In tegenstelling tot de simplex methode voor lineaire programmering, die meestal efficient werkt

en snel tot een optimale oplossing leidt, bestaat er voor de geheeltallige programmering geen

efficiente methode. Het is zelfs uiterst onwaarschijnlijk dat er ooit een efficiente methode voor

gevonden kan worden. De reden hiervoor is dat het geheeltallige programmeringsprobleem NP-

moeilijk is, een begrip uit de complexiteitstheorie1. 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

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

1Zie het college Inleiding Besliskunde.

148

Page 153: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Gevraagd wordt welke projecten het best gefinancierd kunnen worden om de te verwachten winst

te maximaliseren.

Hiervoor voeren we (0,1)-variabelen xi, 1 ≤ i ≤ 5 in, waarbij xi = 1 overeenkomt met het

financieren van project i. Het optimaliseringsprobleem luidt dan:

max

20x1 + 40x2 + 20x3 + 15x4 + 30x5

5x1 + 4x2 + 3x3 + 7x4 + 8x5 ≤ 25

x1 + 7x2 + 9x3 + 4x4 + 6x5 ≤ 25

8x1 + 10x2 + 2x3 + x4 + 10x5 ≤ 25

xi ∈ {0, 1}, 1 ≤ i ≤ 5

Als we dit oplossen als LP-probleem, daarbij xi ∈ {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

kosten zijn en deels kosten lineair in de hoeveelheid: Cj(xj) =

{

Kj + cjxj als xj > 0;

0 als xj = 0.

De doelfunctie wordt dan∑n

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 xj een binaire variabele yj in te

voeren met de interpretatie dat yj = 1 als xj > 0. Door nu te eisen dat 0 ≤ xj ≤ Myj , met M een

groot getal dat in alle realitische situaties een bovengrens voor de productie is, wordt Cj(xj) =

Kjyj+cjxj , 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 een 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 dj waarop deze taak af moet zijn.

De vraagstelling luidt om een planning te maken die de maximale overschrijding van de tijden dj

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: xi + ti ≤ xj .

De taken i en j niet tegelijkertijd op de machine betekent: ofwel xi + ti ≤ xj , ofwel xj + tj ≤xi. Deze eis is m.b.v. een binaire variabele yij, 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 +Myij , 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

Page 154: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 dj 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?

Zij

xij = de hoeveelheid die vanuit filiaal i aan klant j wordt geleverd

yi =

{

1 als filiaal i wordt gevestigd

0 anders

Dit probleem is als volgt te formuleren als een gemengd geheeltallig programmeringsprobleem:

min

∑mi=1

∑nj=1 cijxij +

∑mi=1 fiyi

∑mi=1 xij = dj, j = 1, 2, . . . , n

∑nj=1 xij ≤ biyi, i = 1, 2, . . . ,m

xij ≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n

0 ≤ yi ≤ 1, en geheel, 1 ≤ i ≤ m

11.2 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 Pk, 1 ≤k ≤ K, die tezamen equivalent zijn met het oorspronkelijke probleem P0. Veronderstel dat

het geheeltallig programmeringsprobleem een maximaliseringsprobleem is en dat we voor het

optimum van de deelproblemen boven- en ondergrenzen hebben, zeg zk resp. zk, 1 ≤ k ≤ K.

Dan is z = max1≤k≤K zk een bovengrens voor het optimum van P0 en z = max1≤k≤K zk 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 zk ≤ 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 Pk. 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

Page 155: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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: een

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 ofwel het vinden van de optimale oplossing ervan, ofwel het

ontdekken dat het probleem ontoelaatbaar is, ofwel 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

x1 + x2 ≤ 6

5x1 + 9x2 ≤ 45

x1, x2 ≥ 0 en geheel

Initialisatie:

Laat z = −∞ en z = −∞. Los de LP-relaxatie van P0 op: x1 = 94 , x2 = 15

4 , z = b1654 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 x2 en beschouw de deelproblemen:

P1 : P0 met toegevoegd x2 ≤ 3; P2 : P0 met toegevoegd x2 ≥ 4; z1 = z2 = 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 = 95 , x2 = 3, z2 = b41c = 41. De afgeronde

oplossing is x1 = 2, x2 = 4 en deze is niet toelaatbaar. Kies als splitsingsvariabele x1 en beschouw

de deelproblemen: P3 : P2 met toegevoegd x1 ≤ 1; P4 : P2 met toegevoegd x1 ≥ 2; z3 = z4 = 41.

Iteratie 3:

Kies deelprobleem P3 en los de LP-relaxatie op: x1 = 1, x2 = 409 , z2 = b365

9 c = 40. De afgeronde

oplossing is x1 = 1, x2 = 4; deze is toelaatbaar met waarde 37, wat geen verbetering is van

151

Page 156: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

de best bekende ondergrens 39. Kies als splitsingsvariabele x2 en beschouw de deelproblemen:

P5 : P3 met toegevoegd x2 ≤ 4; P6 : P3 met toegevoegd x1 ≥ 5; z5 = z6 = 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 P5 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 program-

meringsprobleem. 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 strategieen 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 zk ≤ 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 een 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 een extra iteratiestap voldoende om de nieuwe optimale oplossing te

vinden. Als we als deelprobleem om nader te onderzoeken het laatst gecreeerde 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 strategieen op te stellen. Laat fi =

wi − bwic voor de geheeltallige variabele xi die (in de oplossing van de LP-relaxatie) een niet-

geheeltallige waarde wi heeft.

a. De grootste fractie regel: kies als splitsingsvariabele de variabele xi 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 xi 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

Page 157: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

c. De grootste coefficient regel: kies als splitsingsvariabele de variabele xi die in de doelfunctie

de grootste coefficient heeft. Hiermee hopen we hetzelfde te beogen als met de grootste fractie

regel.

d. De kleinste coefficient regel: kies als splitsingsvariabele de variabele xi die in de doelfunctie

de kleinste coefficient 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 com-

binatorische 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 coefficienten van de doelfunctie niet-

negatief 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 ontoe-

laatbaarheid 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 coefficient in de doelfunctie gekozen en als

deelprobleem om nader te onderzoeken het laatste deelprobleem dat is gecreeerd.

Voorbeeld 11.2

max

10x1 + 10x2 + 9x3 + 6x4 + 5x5 + 3x6

−2x1 + x2 + 4x3 − 3x4 + 6x5 − 2x6 ≤ 2

x1 − 2x2 + 3x3 + x4 − 3x5 − 5x6 ≤ −3

− x1 + 2x2 − 2x3 + 4x4 − x5 + 5x6 ≤ 4

x1, x2, . . . , x6 ∈ {0, 1}

Iteratie 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 x5 = 0.

Met x5 = 0 kan aan de tweede beperking alleen worden voldaan als x4 = 0 en x6 = 1.

Dit geeft de toelaatbare oplossing: x∗1 = x2∗ = x3∗ = x6∗ = 1, x4∗ = x5∗ = 0 met waarde 32.

153

Page 158: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 be-

waren. 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 een 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 een beperking heet een knapzakprobleem. Een zinvolle en

niet-triviale formulering hiervan heeft altijd positieve coefficienten in doelfunctie en beperkingen.

Hiermee kan, eventueel na hernummering van de variabelen, het probleem worden geformuleerd

als

max

{

∑nj=1 pjxj

∑nj=1 ajxj ≤ b

xj ∈ {0, 1}, j = 1, 2, . . . , n

}

, waarbij 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. Omdatpj

ajbeschouwd kan

worden als de bijdrage aan de doelfunctie per eenheid van de beschikbare hoeveelheid b, nemen

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 waardeb−

Pkj=1 aj

ak+1. Als de

coefficienten geheel zijn, dan kunnen we het gevonden LP-optimum nog naar beneden afronden.

154

Page 159: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Voorbeeld 11.3

max

{

16x1 + 22x2 + 12x3 + 8x4

5x1 + 7x2 + 4x3 + 3x4 ≤ 14

x1, x2, x3, x4 ∈ {0, 1}

}

Iteratie 1:

De LP-relaxatie geeft x1 = x2 = 1, x3 = 12 , x4 = 0 met bovengrens 44.

Neem x3 als splitsingsvariabele: P1 : x3 = 0 met bovengrens 43 (voor x1 = x2 = 1, x3 = 0, x4 = 23);

P2 : x3 = 1 met bovengrens 43 (voor x1 = 1, x2 = 57 , 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 P1. Om een betere oplossing te krijgen, d.w.z. 16x1 +

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∑

j=1

pjxj | Ax ≤ b;x ≥ 0 en geheel} met A een m × n-matrix en b ∈ Rm. (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 hyper-

vlakken expliciet kennen, dan kan het geheeltallige optimaliseringsprobleem worden opgelost als

LP-probleem.

Een toegelaten ongelijkheid voor een verz. S ⊆ Rn is een lineaire ongelijkheid, zeg

∑nj=1 cjxj ≤ c0,

waaraan alle punten van S voldoen.

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: x2 + x4 ≥ 1.

155

Page 160: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 1311x1 + 20

11x2 + x3 + 611x4 ≤ 72

11 .

Hieruit volgt dat ook moet gelden (afronden naar lagere gehele getallen): x1 + x2 + x3 ≤ 7211 .

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 ∩ Z

n en u ∈ Rm+ , de vector van de gewichten. Dan geldt

(ga dit zelf na):

m∑

i=1

ui{n∑

j=1

aijxj} ≤m∑

i=1

uibi is een toegelaten ongelijkheid voor P (11.2)

n∑

j=1

{bm∑

i=1

uiaijc}xj ≤m∑

i=1

uibi is een toegelaten ongelijkheid voor P (11.3)

n∑

j=1

{bm∑

i=1

uiaijc}xj ≤ bm∑

i=1

uibic 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∑n

j=1 cjxj ≤ c0 met ci geheeltallig, 0 ≤ i ≤n, kan worden verkregen door (een aantal malen) een of meer van bovenstaande basisongelijkheden

te gebruiken, uitgaande van een bovengrens voor het optimum van∑n

j=1 cjxj, verkregen uit de

LP-relaxatie.

Bewijs

We zullen de bewering aantonen voor binaire variabelen, d.w.z. xj ∈ {0, 1} voor alle j en

P = {x ∈ Rn | Ax ≤ b; 0 ≤ x ≤ e} met e = (1, 1, . . . , 1). Laat

∑nj=1 cjxj ≤ c0 een toegelaten

ongelijkheid zijn met ci geheeltallig voor i = 0, 1, . . . , n.

Bewering 1: Voor zekere N ∈ Z+ is∑n

j=1 cjxj ≤ c0 + N een toegelaten ongelijkheid voor P ,

verkregen met de LP-relaxatie.

Bewijs:

Omdat P begrensd is, heeft het LP-probleem max{∑nj=1 cjxj | x ∈ P} een eindige optimale

oplossing met waarde z0 van het optimum. N = dz0e − c0 voldoet aan de gestelde eis.

Bewering 2: Als de ongelijkheden∑n

j=1 cjxj ≤ c0 + K +∑

j∈T 0∪{p} xj +∑

j∈T 1(1 − xj)

en∑n

j=1 cjxj ≤ c0 + K +∑

j∈T 0 xj +∑

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∑n

j=1 cjxj ≤ c0 + K +∑

j∈T 0 xj +∑

j∈T 1(1 − xj)

ook een ongelijkheid die met basisongelijkheden is te genereren.

156

Page 161: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Bewijs:

Neem beide ongelijkheden met gewicht 12 en tel ze op. Dan krijgen we:

∑nj=1 cjxj ≤ c0 + K +

j∈T 0 xj +∑

j∈T 1(1 − xj) + 12 [xp + (1 − xp)]

= c0 + K +∑

j∈T 0 xj +∑

j∈T 1(1 − xj) + 12 .

Volgens de laatste basisongelijkheid wordt hiermee gegenereerd de ongelijkheid:∑n

j=1 cjxj ≤ c0 + K +∑

j∈T 0 xj +∑

j∈T 1(1 − xj).

Bewering 3: Er bestaat een M ∈ Z+ zodat voor iedere partitie van {1, 2, . . . , n} in N 0 en N1

n∑

j=1

cjxj ≤ c0 + M∑

j∈N0

xj + M∑

j∈N1

(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 .

Als x∗ ∈ Zn, dan voldoet x∗ aan

∑nj=1 cjxj ≤ c0, dus zeker aan (11.5).

Als x∗ /∈ Zn, dan is er een α > 0 zodat

j∈N0 x∗j +

j∈N1(1 − x∗j) ≥ α voor iedere partitie

(N0, N1) en voor ieder niet-geheeltallig hoekpunt x∗ van P .

Neem M ≥ Nα , dan geldt voor alle hoekpunten x∗ van P en voor iedere partitie (N 0, N1):

∑nj=1 cjx

∗j ≤ c0 + N ≤ co + M

j∈N0 x∗j + M

j∈N1(1 − x∗j ).

Bewering 4: Als de toegelaten ongelijkheid∑n

j=1 cjxj ≤ c0 + K + 1 met basisongelijkheden is

gegenereerd, dan kan∑n

j=1 cjxj ≤ c0 + K +∑

j∈N0 xj +∑

j∈N1(1 − xj) voor iedere partitie

(N0, N1) ook met basisongelijkheden worden gegenereerd.

Bewijs:

Neem de ongelijkheid∑n

j=1 cjxj ≤ c0 + K + 1 met gewicht M−1M en de ongelijkheid (11.5) met

gewicht 1M . Dit geeft de beperking

∑nj=1 cjxj ≤ c0 +

j∈N0 xj +∑

j∈N1(1 − xj) + M−1M (K + 1)

= c0 +∑

j∈N0 xj +∑

j∈N1(1 − xj) + K + M−K−1M .

Op grond van de laatste basisongelijkheid wordt dan gegenereerd:∑n

j=1 cjxj ≤ c0 +∑

j∈N0 xj +∑

j∈N1(1 − xj) + K.

Bewering 5: Als de ongelijkheid∑n

j=1 cjxj ≤ c0 + K + 1 met basisongelijkheden is te genereren,

dan is de ongelijkheid∑n

j=1 cjxj ≤ c0 + K ook met basisongelijkheden te genereren.

Bewijs:

Veronderstel dat de ongelijkheid∑n

j=1 cjxj ≤ c0 + K + 1 met basisongelijkheden is gegenereerd.

Volgens Bewering 4 geldt dan

n∑

j=1

cjxj ≤ c0 + K +∑

j∈N0

xj +∑

j∈N1

(1 − xj) (11.6)

voor alle partities (N 0, N1). 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∑

j=1

cjxj ≤ c0 + K +∑

j∈T 0

xj +∑

j∈T 1

(1 − xj). (11.7)

157

Page 162: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

We zien dus dat als we (11.7) met (11.6) vergelijken de variabele xn is geelimineerd. Op deze wijze

gaan we Bewering 2 herhaald toepassen met (T 0, T 1) partities van {1, 2, . . . , n− 1}, {1, 2, . . . , n−2}, . . . , {1}, ∅. Hieruit volgt tenslotte, als T 0 = T 1 = ∅ :

∑nj=1 cjxj ≤ c0 + K.

Het bewijs kan nu als volgt worden gegeven. Bepaal allereerst m.b.v. de LP-relaxatie de toe-

laatbare ongelijkheid∑n

j=1 cjxj ≤ dz0e. Zij K = dz0e − c0, zodat∑n

j=1 cjxj ≤ c0 + K. Volgens

Bewering 5 (voor K−1,K−2, . . . , 1) volgt hieruit dat de toelaatbare ongelijkheid∑n

j=1 cjxj ≤ 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

schrijven als x =∑K

k=1 2k−1yk met yk ∈ {0, 1} en 2K > U (gebruik de binaire schrijfwijze van

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:

(xB)i = a∗i0 −∑

j

a∗ij(xN )j , i = 0, 1, . . . ,m, (11.8)

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 ui ={

1 als i = r

0 als i 6= rgeeft de ongelijkheid

(xB)r +∑

j

ba∗rjc(xN )j ≤ ba∗r0c. (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

j

{a∗rj − ba∗rjc}(xN )j ≥ a∗r0 − ba∗r0c. (11.10)

Noteer de fracties a∗rj − ba∗rjc met frj voor alle j, dan geeft dit de toegelaten fractie-snede

j

frj(xN )j ≥ fr0. (11.11)

Omdat fr0 > 0 is door de optimale oplossing van de LP-relaxatie, d.w.z. xB = a∗0, xN = 0,

niet aan (11.11) voldaan. Deze ongelijkheid kapt dus de LP-oplossing van het toegelaten gebied

158

Page 163: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

af en is dus inderdaad een snede. Omdat (11.9) geheeltallige coefficienten 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 +∑

j

frj(xN )j , (11.12)

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 procede 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 gebeurt2.

Voorbeeld 11.6

max

3x1 − x2

3x1 − 2x2 ≤ 3

−5x1 − 4x2 ≤ −10

2x1 + x2 ≤ 5

x1, x2 ≥ 0 en geheel

We voeren verschilvariabelen y1, y2 en y3 in en lossen het LP-probleem op. Dit geeft het volgende

tableau:

y1 y3

x0307

57

37

x1137

17

27

x297 −2

737

y2317 −3

7227

Nemen we de rij van x2 om

de snede te genereren, dan

wordt deze snede:

s1 = −27 + 5

7y1 + 37y3.

Voegen we deze snede toe,

dan onstaat het volgende

tableau.

y1 y3

x0307

57

37

x1137

17

27

x297 −2

737

y2317 −3

7227

s1 -27 −5

7 -37

Volgens de duale simplex

methode wordt nu − 57 (in

de onderste rij) als pivot

genomen, waarmee het

volgende tableau ontstaat.

s1 y3

x0 4 1 0

x195

15

15

x275 −2

535

y225 −3

5175

y125 −7

535

Neem de rij van x1 om de

snede te genereren, dan wordt

deze snede:

s2 = −45 + 1

5s1 + 15y3.

Voeg deze snede toe, dan

ontstaat het volgende tableau.

2G. Zoutendijk, ”Mathematical programming methods”, North-Holland, 1976, pp. 218-219.

159

Page 164: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

s1 y3

x0 4 1 0

x195

15

15

x275 −2

535

y225 −3

5175

y125 −7

535

s2 -45 −1

5 -15

Volgens de duale simplex

methode wordt nu − 15 in

de onderste rij en meest

rechtse kolom de pivot,

waarmee het volgende

tableau ontstaat.

s1 s2

x0 4 1 0

x1 1 0 1

x2 −1 −1 3

y2 −9 −4 17

y1 −2 −2 3

y3 4 1 −5

Dit tableau is nog niet

optimaal, dus we moeten

verder pivoten. De pivot

wordt -4 in de rij van y2

en het volgende tableau

staat hiernaast. Hiermee

zou s1 in de basis komen.

Deze snede is daarmee niet

meer bindend en kan wor-

den weggelaten.

y2 s2

x074

14

174

x1 1 0 1

x254 −1

4 −54

y1104 −2

4 −224

y374

14 −3

4

Dit tableau is optimaal. Neem

de rij van x3 om de snede te

genereren, dan wordt deze

snede: s3 = −34 + 1

4y2 + 11s2.

Voeg deze snede toe, dan

ontstaat het volgende tableau.

y2 s2

x074

14

174

x1 1 0 1

x254 −1

4 −54

y1104 −2

4 −224

y374

14 −3

4

s3 -34 -1

4 −14

Volgens de duale simplex

methode wordt nu − 14 in

de onderste rij en kolom

van y2 de pivot, waarmee

het volgende tableau

ontstaat.

s3 s2

x0 1 1 4

x1 1 0 1

x2 2 −1 −1

y1 4 −2 −5

y3 1 1 −1

y2 3 −4 1

Dit tableau is opti-

maal met een geheeltallige

oplossing, die dus optimaal

is. De optimale oplossing

luidt: x1 = 1, x2 = 2 met

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:

max

n∑

j=1

pjxj +

r∑

k=1

qkyk | Ax + Cy ≤ b;x, y ≥ 0 en x geheel

, (11.13)

met A een (m × n)-matrix, C een (m × r)-matrix en b ∈ Rm.

160

Page 165: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Los de LP-relaxatie van (11.13) op met de simplex methode en veronderstel dat het optimale

LP-tableau de volgende gedaante heeft:

{

(yB)i = a∗i0 −∑

j∈J1a∗ij(xN )j −

j∈J2a∗ij(yN )j , i ∈ M1

(xB)i = a∗i0 −∑

j∈J1a∗ij(xN )j −

j∈J2a∗ij(yN )j , i ∈ M2

(11.14)

waarbij de 0-de rij correspondeert met de doelfunctie en M1 ∪ 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∗ijc, j ∈ J1 ∪ J2 en f0 = a∗i0 − ba∗i0c > 0, dan is

j∈J1|fj≤f0

fj(xN )j +∑

j∈J1|fj>f0

f0(1 − fj)

1 − f0(xN )j +

j∈J2|a∗ij>0

a∗ij(yN )j +∑

j∈J2|a∗ij<0

f0

f0 − 1a∗ij(yN )j ≥ f0

(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 ≡∑

j∈J1

αj(xN )j +∑

j∈J2

a∗ij(yN )j (mod 1) (11.16)

Neem αj =

{

fj als fj ≤ f0;

fj − 1 als fj > f0.Voor iedere toelaatbare (x, y) geldt:

Als∑

j∈J1αj(xN )j +

j∈J2a∗ij(yN )j ≥ 0, dan:

j∈J1|fj≤f0

fj(xN )j +∑

j∈J2|a∗ij>0

a∗ij(yN )j ≥∑

j∈J1

αj(xN )j +∑

j∈J2

a∗ij(yN )j ≥ f0 (11.17)

Als∑

j∈J1αj(xN )j +

j∈J2a∗ij(yN )j < 0, dan:

j∈J1|fj>f0(fj − 1)(xN )j +

j∈J2|a∗ij<0 a∗ij(yN )j ≤

j∈J1αj(xN )j +

j∈J2a∗ij(yN )j ≤ f0 − 1,

zodat geldt:

f0

f0 − 1

j∈J1|fj>f0

(fj − 1)(xN )j +∑

j∈J2|a∗ij<0

a∗ij(yN )j

≥ f0

f0 − 1· (f0 − 1) = f0 (11.18)

Omdat ook geldt

j∈J1|fj≤f0

fj(xN )j +∑

j∈J2|a∗ij>0

a∗ij(yN )j ≥ 0;f0

f0 − 1

j∈J1|fj>f0

(fj − 1)(xN )j +∑

j∈J2|a∗ij<0

a∗ij(yN )j

≥ 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

Page 166: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 x2 geheel is. Het eerste LP-tableau dat we

beschouwen is hetzelfde als het eerste tableau uit Voorbeeld 11.6.

y1 y3

x0307

57

37

x1137

17

27

x297 −2

737

y2317 −3

7227

Nemen we de rij van x1

om de snede te genereren.

Deze snede is:

s1 = −67 + 1

7y1 + 27y3.

Voegen we deze snede toe,

dan onstaat het volgende

tableau.

y1 y3

x0307

57

37

x1137

17

27

x297 −2

737

y2317 −3

7227

s1 -67 −1

7 -27

Volgens de duale simplex

methode wordt nu − 27 (in

de onderste rij) als pivot

genomen, waarmee het

volgende tableau ontstaat.

y1 s1

x0 3 12

32

x1 1 0 1

x2 0 −12

32

y2 −5 −2 11

y3 3 12 −7

2

Dit tableau is nog niet opti-

maal; we voeren vervolgens

een pivotstap uit in de rij van

y2 en met pivot -2.

y2 s1

x074

14

174

x1 1 0 1

x254 −1

4 −54

y152 −1

2 −112

y374

14 −3

4

Omdat x1 geheeltallig is,

is nevenstaand tableau optimaal.

De optimale oplossing luidt dus:

x1 = 1, x2 = 54 met waarde 7

4 .

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 bijbe-

horende 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 kun-

nen worden, die hopelijk effectiever zijn.

Een sterkere ongelijkheid snijdt meer af van het gebied: als we twee toelaatbare ongelijkheden

hebben, zeg∑n

j=1 ajxj ≤ a0 en∑n

j=1 bjxj ≤ b0, dan heet de tweede ongelijkheid sterker dan de

eerste als iedere toelaatbare x die voldoet aan∑n

j=1 bjxj ≤ b0 ook voldoet aan∑n

j=1 ajxj ≤ a0.

Beschouw een beperking met (0, 1)-variabelen:∑n

j=1 ajxj ≤ a0 met xj ∈ {0, 1}, 1 ≤ j ≤ n.

Door, indien nodig, over te gaan op complementaire variabelen xj = 1 − xj , kunnen we ervoor

zorgen dat alle coeffficienten aj niet-negatief zijn. Verder mogen we aannemen dat in dat geval

het rechterlid ook niet-negatief is (anders geeft de beperking ontoelaatbaarheid).

3T.C. Hu, ”Integer programming and network flows”, Addison-Wesley, 1970, pp. 255-259.

162

Page 167: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Laat N = {1, 2, . . . , n}. Een B ⊆ N heet een bedekking als∑

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

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

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 x1 = 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

de minimale bedekkingsongelijkheid∑

j∈B xj ≤ |B| − 1, d.w.z. een ongelijkheid van de vorm

j∈B

xj +∑

j∈N\Bbjxj ≤ |B| − 1, (11.22)

waarbij er geen ongelijkheid van de vorm∑

j∈B xj +∑

j∈N\B b∗jxj ≤ |B| − 1 bestaat met b∗j ≥ bj

voor alle j ∈ N\B en minstens een 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 xj = 1.

Procedure voor een sterkste uitbreidingsongelijkheid

1. Start met een minimale bedekkingsongelijkheid, zeg∑

j∈B xj ≤ |B| − 1.

Zij N\B = {j1, j2, . . . , jr} en laat k = 1.

2. Los het volgende knapzakprobleem op:

wk = max{∑j∈B xj +∑k−1

i=1 bjixji

| ∑j∈B ajxj +∑k−1

i=1 ajixji

≤ 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

Page 168: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Voorbeeld 11.8 (vervolg)

Neem B = {3, 4, 5, 6} en j1 = 1, j2 = 2, j3 = 7.

k = 1: Bepaal w1 = max

{

x3 + x4 + x5 + x6

6x3 + 5x4 + 5x5 + 4x6 ≤ 8

x3, x4, x5, x6 ∈ {0, 1}

}

w1 = 1, zodat b1 = 2.

k = 2: Bepaal w2 = max

{

2x1 + x3 + x4 + x5 + x6

11x1 + 6x3 + 5x4 + 5x5 + 4x6 ≤ 13

x1, x3, x4, x5, x6 ∈ {0, 1}

}

w2 = 2, zodat b2 = 1.

k = 3: Bepaal w3 = max

{

2x1 + x2 + x3 + x4 + x5 + x6

11x1 + 6x2 + 6x3 + 5x4 + 5x5 + 4x6 ≤ 18

x1, x2, x3, x4, x5, x6 ∈ {0, 1}

}

w3 = 3, zodat b7 = 0.

De sterkste ongelijkheid die op deze wijze wordt verkregen luidt dus: 2x1+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 − CTu)T x | Ax ≤ b;x ∈ Z

n+}.

(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:

pTx + uT (d − Cx) ≥ pTx. Door voor x de optimale oplossing van (11.23), zeg x∗, te nemen,

krijgen we: z(u) ≥ pTx∗ + uT (d − Cx∗) ≥ pTx∗ = 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 pT 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

Page 169: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 ∈ Rq, 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 pij per

eenheid van toelevering.

Het probleem is om te beslissen welke locaties worden gebruikt en hoe de toelevering geschiedt

zodat de netto winst (opbrengst - kosten) gemaximaliseerd wordt.

Zij

xij = de hoeveelheid die vanuit locatie i aan klant j wordt geleverd

yi =

{

1 als locatie i wordt gebruikt

0 anders

Dan is dit probleem te formuleren als

max

∑mi=1

∑nj=1 pijxij −

∑mi=1 fiyi

∑mi=1 xij = dj , j = 1, 2, . . . , n

xij ≤ djyi, 1 ≤ i ≤ m, 1 ≤ j ≤ n

xij ≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n

yi ∈ {0, 1}, 1 ≤ i ≤ m

Beschouwen we de beperkingen∑m

i=1 xij = dj , j = 1, 2, . . . , n als ’lastige beperkingen’, dan

wordt de Lagrange relaxatie

z(u) =∑n

j=1 ujdj+max

∑mi=1[∑n

j=1(pij − uj)xij − fiyi]

xij ≤ djyi, 1 ≤ i ≤ m, 1 ≤ j ≤ n

xij ≥ 0, 1 ≤ i ≤ m, 1 ≤ j ≤ n

yi ∈ {0, 1}, 1 ≤ i ≤ m

=∑n

j=1 ujdj +∑m

i=1 zi(u), waarbij

zi(u) = max

∑nj=1(pij − uj)xij − fiyi

xij ≤ djyi, 1 ≤ j ≤ n

xij ≥ 0, 1 ≤ j ≤ n

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

is aan∑n

j=1 max[0, pij − ui]dj − fi.

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

Page 170: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

P =

6 4 3 2 1 3

2 10 2 0 8 2

1 2 4 4 6 4

3 6 1 1 2 8

5 1 3 4 5 1

en u = (5, 6, 3, 2, 5, 4), zodat

P − eu =

1 −2 0 0 −4 −1

−3 4 −1 −2 3 −2

−4 −4 1 2 1 0

−2 0 −2 −1 −3 4

0 −5 0 2 0 −3

en∑n

j=1 ujdj = 25.

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:

min

i<j cijxij

j|i<j xij +∑

j|j<i xji = 2, i = 1, 2, . . . , 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

Uit de beperkingen dat de graad in ieder knooppunt 2 is, volgt dat er n variabelen gelijk aan 1

worden gekozen, dus dat∑

i<j xij = n. Voor de Lagrange relaxatie brengen we de beperkingen

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:∑

i<j cijxij +∑n

i=1 ui[2 −∑j|i<j xij −∑

j|j<i xji] =∑

i<j cijxij + 2∑n

i=1 ui −∑n

i=1 ui[∑

j|i<j xij] −∑n

i=1 ui[∑

j|j<i xji] =

2∑n

i=1 ui +∑

i<j cijxij −∑n

i=1 ui[∑

j|i<j xij] −∑n

j=1 uj [∑

i|i<j xij ].

Dus een xij met i < j heeft in de doelfunctie de coefficient cij − ui − uj , zodat de Lagrange

relaxatie is:

z(u) = 2∑n

i=1 ui + min

i<j [cij − ui − uj ]xij

∑nj=2 x1j = 2

i<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

Page 171: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

De beperkingen van z(u) houden in dat het om n takken van de graaf gaat zodanig 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 een 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 cij − 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 pTxk + 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 efficient

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 zLD 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 .

4A. Schrijver: ”Theory of linear and integer programming”, Wiley, (1986) p. 368.

167

Page 172: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Bewijs

We hebben reeds gezien dat z∗ ≤ zLD. Voor de relatie tussen zLD en zLP geldt:

zLD = minu≥0 [uT d + max{(p − CTu)T x | Ax ≤ b;x ∈ Zn+}]

≤ minu≥0 [uT d + max{(p − CTu)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 − CT u; v ≥ 0}]

= min {uT d + bT v | CTu + 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 − CT 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: zLD = 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 subgradient methode. Een subgradient is een generalisatie van de

gradient 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 subgradient 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 subgradient gelijk aan de gradient: g(u) = ∇f(u); de

vector d − Cx is de subgradient van z(u) (zie ook Opgave 11.13).

De subgradient 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 uk+1 = uk −λkg(uk) (- i.p.v. + omdat we minimaliseren), waarbij λk de staplengte is. Verder moeten we

rekening houden met de niet-negativiteit van de uk’s.

De subgradient 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 = uk.

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

Page 173: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

De moeilijkheid is om een geschikte rij λk’s met bijbehorend stopcriterium te bepalen zodat de rij

van de z(uk) convergeert (liefst met een redelijke convergentiesnelheid) naar zLD = minu≥0 z(u).

Het volgende resultaat kan worden aangetoond 5

Stelling 11.6 (i) Als∑

k λ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;

(iii) Als z ≥ zLD en λk = εk · z(uk)−z‖d−Cxk‖2 , waarbij 0 < εk < 2, dan convergeert z(uk) naar z, ofwel

het algoritme vindt een uk met z ≥ z(uk) ≥ zLD voor zekere k.

Onderdeel (i) van deze Stelling garandeert convergentie, maar de rij λk’s moet divergent zijn,

bijvoorbeeld λk = 1k , 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 zLD dicht bij zLD moet liggen

en dat deze niet altijd bekend is. In de praktijk hebben we wel vaak een ondergrens z van zLD,

bijv. een toelaten oplossing van het oorspronkelijke probleem. Deze wordt dan i.p.v. z gebruikt.

Als er dan geen convergentie van de rijen {uk} 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 gelijkhe-

den 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 subgradient methode wordt hier:

uk+1i = uk

i + λk[2 −∑j|i<j xkij −

j|j<i xkji];

λk = z−z(uk)Pn

i=1 [2−P

j|i<j xkij−

P

j|j<i xkji]

2 ,

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 zLD 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 cij ’s. Een 1-

boom 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 = u0 + 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: w12 = 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 = u1 + 148−143(2−2)2+(2−2)2+(2−3)2+(2−2)2+(2−1)2

· (0, 0,−1, 0, 1) = (0, 0,− 172 , 3, 11

2 ).

5L.A. Wolsey: ”Integer programming”, Wiley-Interscience Series in Discrete Mathematics and optimization,

(1998) p. 174.

169

Page 174: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Iteratie 3:

Voor de nieuwe gewichtenmatrix geldt: w12 = 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 subgradient methode meestal eindigt met een waarde die (bij een maximalise-

ringsprobleem) 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 zLD = minu≥0z(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:

max

∑mi=1

∑nj=1 cijxij

∑nj=1 xij ≤ 1, i = 1, 2, . . . ,m

∑mi=1 aijxij ≤ bj , j = 1, 2, . . . , n

xij ∈ {0, 1}, 1 ≤ i ≤ m, 1 ≤ j ≤ n

We beschouwen drie mogelijke Lagrange relaxaties. In de eerste brengen we alle beperkingen naar

de doelfuncie. De Lagrange relaxatie heeft dan de gedaante:

z1(u, v) =∑m

i=1 ui+∑n

j=1 vjbj+max{

∑mi=1

∑nj=1[cij − ui − aijvj]xij |xij ∈ {0, 1}, 1 ≤ i ≤ m, 1 ≤ j ≤ n

}

.

In de tweede relaxatie laten we het tweede stelsel beperkingen in tact:

z2(u) =∑m

i=1 ui + max

{

∑mi=1

∑nj=1[cij − ui]xij

∑mi=1 aijxij ≤ bj, j = 1, 2, . . . , n

xij ∈ {0, 1}, 1 ≤ i ≤ m, 1 ≤ j ≤ n

}

.

Als laatste relaxatie laten we het eerste stelsel beperkingen in tact:

z3(v) =∑n

j=1 vjbj + max

{

∑mi=1

∑nj=1[cij − aijvj]xij

∑nj=1 xij ≤ 1, i = 1, 2, . . . ,m

xij ∈ {0, 1}, 1 ≤ i ≤ m, 1 ≤ j ≤ n

}

.

Laat z1LD = minu,v≥0 z1(u, v), z2

LD = minu≥0 z2(u) en z3LD = minv≥0 z3(v). Omdat de eerste

en de derde relaxatie als LP-probleem kunnen worden opgelost (de hoekpunten zijn geheeltallig),

170

Page 175: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

geldt: z1LD = z3

LD = zLP .

De eerste relaxatie z1(u, v) is simpel op te lossen door inspectie: als cij − ui − aijvj > 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 − aijvj het grootste is, zeg voor j = k. Als cik − aikvk > 0, dan nemen we xik = 1

en xij = 0, j 6= k; anders is xij = 0 voor alle j.

Beide zijn dus zeer eenvoudig oplosbaar, maar z3LD is eenvoudiger te bepalen dan z1

LD, omdat bij

z3LD over n variabelen geoptimalisserd moet worden en bij z1

LD over n + m variabelen.

In de tweede relaxatie kan z2LD kleiner zijn dan zLP , dus deze relaxatie heeft de voorkeur wat

betreft scherpte van de te verkrijgen grens. Anderszijds zijn de deelproblemen z2(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 + x2 + x3 ≤ 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 x1 = 1, dus x1 is hiermee als variabele geelimineerd.

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 geelimineerd.

Met x1 = x3 = 1 volgt uit de tweede beperking dat 3x2 ≥ 2, dus x2 ≥ 1, wat met de beperking

x2 ≤ 1 oplevert dat x2 = 1. In dit geval zijn dus alle variabelen geelimineerd.

b. Reductie van de beperkingen

Omdat uit de eerste beperking volgt dat 8x3 ≤ 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

Page 176: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

c. Variabelen fixeren op grenswaarde

Beschouw het probleem zonder de overbodige derde beperking. Door x2 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 x2 gelijk aan zijn bovengrens 1 te nemen.

Op analoge wijze geldt dat het optimaal is om x3 te fixeren op zijn ondergrens 1, waarna op

triviale wijze volgt dat x1 = 1.

Het bovenstaande laat zich generaliseren tot het volgende.

Beschouw de vergelijking a0x0 +∑n

j=1 ajxj ≤ b met lj ≤ xj ≤ uj , j = 1, 2, . . . , n en x0 ≥ 0 en

geheel. Dan geldt:

Als a0 > 0, dan geldt: x0 ≤b−

P

j|aj>0 aj lj−P

j|aj<0 ajuj

a0

(dus als∑

j|aj>0 ajlj +∑

j|aj<0 ajuj > b, dan is de beperking ontoelaatbaar).

Als a0 < 0, dan geldt: x0 ≥b−P

j|aj>0 aj lj−P

j|aj<0 ajuj

a0.

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 xj = uj ;

als aij ≥ 0 voor alle i en pj < 0, dan is in een optimale oplossing xj = 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:

C =

110 16 25 78 59

65 69 54 28 71

19 93 45 45 9

89 31 72 83 20

62 17 77 18 39

37 115 87 59 97

89 102 98 74 61

78 96 87 55 77

74 27 99 91 5

88 97 99 99 51

, A =

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

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

en b =

91

87

109

88

64

.

Door preprocessing toe te passen vinden we: x11 = 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

Page 177: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 x73 = 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 een snede is de waarde van de doelfunctie gedaald tot 548.9. De variabele

x13 wordt gekozen als splitsingsvariabele: deelprobleem 3 met x13 = 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): x12 = 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 dj eenheden nodig.

De vraag luidt: waar kunnen deze winkels het beste gevestigd worden?

In plaats i zijn vaste investeringskosten fi en is de productiecapaciteit bi. Bij de bevoorrading

van winkel j vanuit een magazijn in plaats i zijn er vaste kosten fij en variabele kosten cij per

eenheid; bovendien is de capaciteit op deze route bij .

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

Page 178: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 3

Een luchtvaartmaatschappij overweegt om nieuwe vliegtuigen aan te schaffen voor lange, middel-

lange 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

x1 − 2x2 + x3 = 52

2x1 + x2 + x4 = 32

x1, x4 ≥ 0

x2, x3 ≥ 0 en geheel

Opgave 5

Los het volgende (0, 1)-programmeringsprobleem met impliciete enumeratie op:

max

3x1 + 2x2 + 5x3 + 2x4 + 3x5

x1 + x2 −x3 − 2x4 + x5 ≤ 1

7x1 −3x3 + 4x4 + 3x5 ≤ 9

−11x1 + 6x2 + 3x4 + 3x5 ≤ 0

x1, x2, x3, x4, x5 ∈ {0, 1}

Opgave 6

Beschouw het knapzakprobleem in de gedaante:

max

{

∑nj=1 pjxj

∑nj=1 ajxj ≤ b

xj ∈ {0, 1}, j = 1, 2, . . . , n

}

, waarbij p1

a1≥ p2

a2≥ · · · ≥ pn

an≥ 0.

Toon aan dat als∑k

j=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−

Pkj=1 aj

ak+1en xj = 0, k + 2 ≤ j ≤ n.

Opgave 7

Los het volgende knapzakprobleem op:

max

{

5x1 + 3x2 + 6x3 + 6x4 + 2x5

5x1 + 4x2 + 7x3 + 6x4 + 2x5 ≤ 15

x1, x2, x3, x4, x5 ∈ {0, 1}

}

174

Page 179: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

Opgave 8

Beschouw het volgende probleem:

max

{

x1

2x1 + 2x2 + · · · + 2xn = n

xj ∈ {0, 1}, 1 ≤ j ≤ n

}

, waarbij n oneven is.

a. Bewijs dat dit probleem ontoelaatbaar is.

b. Zij J een deelverz. van {1, 2, . . . , n} met hoogstens n−12 elementen.

Geef iedere xj, j ∈ J een waarde 0 of 1 en bewijs dat het LP-probleem

max

{

x1

j /∈J 2xj = n −∑j∈J 2xj

0 ≤ xj ≤ 1, j /∈ J

}

toelaatbaar is.

c. Bewijs dat iedere branch-and-bound procedure om het oorspronkelijke probleem op te lossen

minstens 2n−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 fractie-snede het volgende probleem op:

max

−4x1 − 5x2

−x1 − 4x2 ≤ −5

−3x1 − 2x2 ≤ −7

x1, x2 ≥ 0 en geheel

Opgave 11

Los met Gomory’s snede het volgende gemengd geheeltallige probleem op:

max

4x1 − x2

7x1 − 2x2 ≤ 14

x2 ≤ 3

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 subgradient van z(u) in u is.

175

Page 180: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 P en de vector u nemen we:

P =

6 4 3 2 1 3

2 10 2 0 8 2

1 2 4 4 6 4

3 6 1 1 2 8

5 1 3 4 5 1

en u = (5, 6, 3, 2, 6, 4).

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: c12 = 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:

max

{

10x1 + 4x2 + 14x3

3x1 + x2 + 4x3 ≤ 4

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 subgradient methode toe met als staplengte λk = λ0ρk, met λ0 = 1 en ρ = 1

2 . Start

met u0 = 0. Laat zien dat deze methode niet convergeert naar de optimale duale variabele.

Opgave 17

Beschouw het volgende geheeltallig lineair programmeringsprobleem

max

16x1 + 10x2 + 4x4

8x1 + 2x2 + x3 + 4x4 ≤ 10

x1 + x2 ≤ 1

x3 + x4 ≤ 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 subgradient 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

Page 181: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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 + x5 ≤ −2

x1, x2, x3, x4, x5 ∈ {0, 1}

.

Pas preprocessing toe om dit probleem zoveel mogelijk te vereenvoudigen.

177

Page 182: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

Page 183: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

TABEL II: STANDAARD NORMALE VERLIES INTEGRAAL N(z)

In onderstaande tabel staan de getallen N(z) =∫∞z (y−z) 1√

2πe−

12y2

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

Page 184: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

Page 185: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

Page 186: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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

Page 187: OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG ...kallenberg/ORT2003.pdf · Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen

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