• No results found

BESLISKUNDE (ONDERDEEL VAN CALEIDOSCOOP) L.C.M. KALLENBERG UNIVERSITEIT LEIDEN NAJAAR 2008

N/A
N/A
Protected

Academic year: 2021

Share "BESLISKUNDE (ONDERDEEL VAN CALEIDOSCOOP) L.C.M. KALLENBERG UNIVERSITEIT LEIDEN NAJAAR 2008"

Copied!
48
0
0

Bezig met laden.... (Bekijk nu de volledige tekst)

Hele tekst

(1)

BESLISKUNDE

(ONDERDEEL VAN CALEIDOSCOOP)

L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

NAJAAR 2008

(2)

Voorwoord

Deze tekst is een onderdeel van het vak Caleidoscoop, dat in het eerste semester wordt gegeven.

Het doel van dit onderdeel is twee¨erlei:

1. Oefenen in het zelfstandig bestuderen van een wiskundetekst en daar enkele vragen over beantwoorden.

2. Het vertrouwd raken met een aantal begrippen uit de mathematische besliskunde.

Onderwerpen uit de besliskunde komen later in de studie in de volgende vakken aan de orde:

Modelleren 1

Dit vak wordt in het tweede semester gegeven en door Delft verzorgd. Enkele problemen hebben betrekking besliskunde en het is nuttig daar alvast wat van gezien te hebben via dit studiemate- riaal.

Besliskunde 1

Dit voor alle studenten verplichte vak wordt in het derde semester in Leiden gegeven. Een aantal basisonderwerpen uit de discrete wiskunde en de mathematische besliskunde wordt behandeld.

Besliskunde 2

Dit is een keuzevak in het laatste jaar van de bachelorstudie (vijfde semester). Naast een aan- tal basisonderwerpen komen ook enkele meer geavanceerde onderwerpen uit de mathematische besliskunde aan de orde.

Besliskunde 3

Dit is eveneens een keuzevak in het laatste jaar van de bachelorstudie (zesde semester). In dit vak worden meer geavanceerde onderwerpen en meer praktische modellen uit de mathematische besliskunde behandeld.

Bachelerscriptie en Masters

Het is ook mogelijk over een onderwerp uit de mathematische besliskunde je bachelorscriptie te maken. Daarover wordt je later in je studie verder ge¨ınformeerd, evenals over de mogelijkheden in de Masterfase van de studie. Voor meer informatie over studieonderdelen van de mathematische besliskunde kun je terecht bij dhr. L.C.M. Kallenberg (kamer 223) of bij mw. F.M. Spieksma (kamer 228).

De zwaarte van dit studieonderdeel van Caleidoscoop bedraagt 1 ECTS, d.w.z. dat je geacht wordt ongeveer 28 uur hieraan te besteden. Hiervoor moet dit dictaat worden bekeken en moeten enkele opgaven (bij voorkeur samen met een andere student) worden gemaakt. Welke opgaven dit zijn en wat de inleverdatum is wordt tijdens het college Caleidoscoop verteld.

(3)

Inhoudsopgave

1 Inleiding 1

1.1 Wat is besliskunde? . . . 1

1.2 Geschiedenis . . . 2

1.3 Voorbeeld . . . 2

1.4 Overzicht van een aantal besliskundige modellen . . . 3

1.5 Opgaven . . . 6

2 Mathematische programmering 8 2.1 Lineaire programmering . . . 8

2.2 Geheeltallige lineaire optimalisering . . . 13

2.3 Niet-lineaire programmering . . . 15

2.3.1 Onbeperkte optimalisering . . . 16

2.3.2 Beperkte optimalisering . . . 17

2.4 Opgaven . . . 21

3 Netwerk optimalisatie 25 3.1 Dijkstra’s algoritme voor het kortste pad probleem . . . 25

3.2 Ford-Fulkerson algoritme voor het maximale-stroom-probleem . . . 28

3.3 Opgaven . . . 31

4 Markov (beslissings)ketens 32 4.1 Markov ketens . . . 32

4.2 Markov beslissingsketens . . . 35

4.3 Opgaven . . . 44

(4)

Hoofdstuk 1

Inleiding

1.1 Wat is besliskunde?

Vanwege de breedte en diversiteit van het vak, is het niet eenvoudig om een goede en beknopte definitie van besliskunde te geven. We volstaan daarom met de volgende korte omschrijving:

Besliskunde houdt zich bezig met het opstellen, oplossen en analyseren van wiskundige modellen die dienen om kwantitatieve besluitvorming te ondersteunen.

In de praktijk worden bij het oplossen van een besliskundig probleem de volgende stadia onder- scheiden:

a. Formulering van het probleem

Een besliskundig probleem kent een beslisser die een bepaald doel nastreeft. De beslisser kan het systeem be¨ınvloeden (sturen) door bepaalde beslissingen of acties te nemen.

b. Constructie van het wiskundig model

Het wiskundig model is een, meestal vereenvoudigde, voorstelling van de werkelijkheid. De beslissingen worden gemodelleerd als beslissingsvariabelen. Het gedrag van het systeem moet worden beschreven d.m.v. wiskundige relaties. De doelstelling moet worden vertaald in termen van de beslissingsvariabelen van het model. Het model is een abstractie van de werkelijkheid.

Bij het maken van een model moet rekening worden gehouden met enerzijds de (wiskundige) oplosbaarheid van het model en anderzijds moet het een voldoende nauwkeurige weergave van de realiteit zijn. Het nagaan of een model werkelijk bruikbaar is wordt validatie genoemd.

c. Oplossen of analyseren van het model

Voor het oplossen van besliskundige modellen zijn allerlei methoden (algoritmen) ontwikkeld, die vaak ge¨ımplementeerd zijn in software-producten. Vaak is daarom in de praktijk niet zichtbaar dat achter vele toepassingen besliskunde zit. Voorbeelden hiervan zijn o.a. navigatiesystemen dis in auto’s zitten en routeplanningen geven (TomTom), het snel vinden van informatie op internet met zoekmachines zoals Google, en het zorgen dat er een optimaal bereik is voor mobiele telefoons. De methoden die gebruikt worden zijn meestal exacte of heuristische algoritmen. Met een heuristische methode hoopt men snel een goede, maar niet noodzakelijk exacte, oplossing van het probleem te vinden.

(5)

d. Robuustheid testen

Bij robuustheid gaat het erom hoe de oplossing verandert als de data (iets) veranderen. Dit wordt ook wel gevoeligheidsanalyse genoemd. Het is natuurlijk belangrijk om goede data te hebben, maar niet altijd zijn exacte data beschikbaar. Het is dan van belang te onderzoeken wat de gevolgen zijn van (kleine) veranderingen in de data. Helaas is dit niet altijd (goed) uitvoerbaar.

e. Implementatie

De voorgestelde besluiten moeten (eventueel) in de organisatie worden doorgevoerd. Soms stuit dit op bepaalde (sociale, politieke of economische) problemen.

1.2 Geschiedenis

Hoewel bepaalde onderdelen van de besliskunde een eerdere oorsprong hebben, kan worden vast- gesteld dat de besliskunde pas goed tot ontwikkeling is gekomen in en na de Tweede Wereldoorlog.

Tijdens de 2e WO werd in Engeland en de Verenigde Staten onderzoek gedaan naar het (kunnen) uitvoeren van bepaalde militaire operaties. Dit heeft geleid tot de Engelse benaming van het vakgebied: Operations Research. Na de oorlog kwamen er ook toepassingen in de industrie. Eerst bij grote bedrijven zoals olie- en vliegtuigmaatschappijen, later ook in allerlei kleinere bedrijven.

Voor vele problemen, bijvoorbeeld uit de voorraadtheorie en uit de logistiek, zijn methoden en software-producten ontwikkeld. Besliskunde wordt ook uitgebreid toegepast in de dienstensector, bijvoorbeeld bij banken. Een wezenlijke factor voor de snelle ontwikkeling van de besliskunde is de gelijktijdige snelle ontwikkeling van de computer geweest. Vanaf het begin was de computer een onmisbaar stuk gereedschap. De huidige methoden zijn slechts bruikbaar dankzij het bestaan van snelle en krachtige computers.

1.3 Voorbeeld

Een bedrijf produceert 4 producten: A, B, C en D. Ieder product vereist, per eenheid die wordt geproduceerd, een gegeven aantal uren werk op 3 machines en eveneens een bepaalde gegeven hoeveelheid grondstof (in kg). De 3 machines zijn 400, 500 resp. 300 uur beschikbaar, en er is 150 kg grondstof aanwezig. Ieder product levert per eenheid een bepaalde winst op (in euro’s).

De gegevens van dit probleem staan in onderstaande tabel.

A B C D beschikbaar

machine 1 1.0 1.0 0.5 0.5 400 machine 2 0.5 0.7 0.8 0.5 500 machine 3 0.3 0.2 0.5 0.3 300 grondstof 0.2 0.3 0.2 0.2 150

winst 5 12 6 7

Hieruit is bijvoorbeeld af te leiden dat de productie van ´e´en eenheid van product B 1 uur op machine 1, 0.7 uur op machine 2 en 0.2 uur op machine 3 nodig heeft, 0.3 kg grondstof vereist en 12 euro aan winst oplevert.

Een logische vraag die gesteld kan worden is: welk productieschema maximaliseert de winst?

(6)

Oplossing

Neem de volgende beslissingsvariabelen: xA = het aantal eenheden dat van product A wordt geproduceerd (xB, xC en xD worden analoog gedefinieerd). Het model wordt nu:

maximaliseer 5xA + 12xB + 6xC + 7xD (winst)

onder de voorwaarden

xA + xB + 0.5xC + 0.5xD ≤ 400 (machine 1) 0.5xA + 0.7xB + 0.8xC + 0.5xD ≤ 500 (machine 2) 0.3xA + 0.2xB + 0.5xC + 0.3xD ≤ 300 (machine 3) 0.2xA + 0.3xB + 0.2xC + 0.2xD ≤ 150 (grondstof)

xA, xB, xC, xD ≥ 0 (niet-negativiteit) Indien dit model met het softwarepakket ORSTAT wordt opgelost (dit pakket is te downloaden van www.math.leidenuniv.nl/˜kallenberg/lp.zip), dan vinden we als optimale oplossing:

xA= 0, xB = 100, xC = 0, xD = 600 en de winst is 5400 euro.

1.4 Overzicht van een aantal besliskundige modellen

A. Mathematische programmering

De mathematische programmering houdt zich bezig met het optimaliseren (maximaliseren of min- imaliseen) van een functie onder nevenvoorwaarden. Veronderstel dat er n beslissingsvariabelen zijn die we noteren met x1, x2, . . . , xnen dat een functie van deze variabelen moet worden gemax- imaliseerd, zeg de functie f (x1, x2, . . . , xn). Verder nemen we aan dat er m beperkingen zijn waaraan voldaan moet worden. Zo’n beperking is ook een functie van de beslissingsvariabelen.

Laat de i-de beperking gegeven worden door de functie gi(x1, x2, . . . , xn) ≤ 0. Met deze notaties schrijven we de algemene formulering voor een mathematisch programmeringprobleem als:

max{f (x1, x2, . . . , xn) | gi(x1, x2, . . . , xn) ≤ 0, i = 1, 2, . . . , m} (1.1) Omdat voor iedere functie f geldt dat max f (x) = −min{−f (x)} (het maximum van een functie f is tegengesteld aan het minimum van de ’omgeklapte’ functie −f ), zijn maximaliserings- en minimaliseringsproblemen in elkaar om te zetten, d.w.z. dat ze equivalent zijn.

Beperkingen met ≥ kunnen worden omgezet in ≤ (door met -1 te vermenigvuldigen) en gelijkhe- den kunnen worden vervangen door twee ongelijkheden (eis zowel ≥ als ≤, dan is dit hetzelfde als =).

Ieder mathematisch programmeringsprobleem is op deze wijze om te zetten in een probleem dat de gedaante (1.1) heeft. Als de functies f en gi, 1 ≤ i ≤ m, alle lineair zijn en als de variabelen niet-negatief zijn, dan krijgen we een zogenaamde lineair programmeringsprobleem:

max (

p1x1+ p2x2+ · · · + pnxn

¯¯

¯¯

¯

ai1x1+ ai2x2+ · · · + ainxn ≤ bi, 1 ≤ i ≤ m xj ≥ 0, 1 ≤ j ≤ n

)

(1.2)

Het probleem uit sectie 1.3 is een voorbeeld van een lineair programmeringsprobleem.

(7)

B. Netwerk optimalisatie

Een netwerk is een gerichte graaf (dit is een graaf waarin iedere verbinding een gegeven richting heeft: er is dus sprake van ´e´enrichtingsverkeer en de verbindingen heten pijlen) met een functie, die op de pijlen gedefinieerd is. Een pijl met beginpunt i en eindpunt j noteren we met het geordende paar (i, j). Laat A de verz. van de pijlen zijn. Een functie l op de pijlen geeft aan iedere pijl een re¨eel getal, dus l : A → R. We noteren de functiewaarde op de pijl (i, j) met lij. In een netwerk kunnen diverse optimaliseringsproblemen worden bekeken. Als voorbeeld noemen we het kortste pad probleem. Dan is er ´e´en functie op de pijlen, lengte genaamd, en het probleem luidt: Bepaal het kortste pad van knooppunt 1 naar knooppunt n. Hierbij is de lengte van een pad de som van de lengtes van de pijlen op dit pad.

Voorbeeld 1

Beschouw het kortste pad probleem van knooppunt 1 naar knooppunt 8 in onderstaande graaf (de getallen naast de pijlen zijn de lengtes).

s s

s s s s

s s

-

- -

-

? 6

¡¡¡¡¡¡µ

@@

@@

@@R

@@

@@

@@R

¡¡¡¡¡¡µ

¡¡¡¡¡¡µ

@@

@@

@@R ¡¡¡¡¡¡µ

@@

@@

@@R

1 4 5

8

3 7

2 6 6

14 8 3 4 8

14 6 6 4 10

12 10

3

C. Markov ketens

Soms zijn we ge¨ınteresseerd in hoe een bepaalde stochastische karakteristiek (stochastisch betekent dat de uitkomst afhankelijk is van toeval, zoals bij de prijs van een aandeel, of het aantal klanten in een rij bij een balie, of de voorraad in een winkel) van een proces dat in de loop van de tijd verandert.

Het wiskundig model dat een dergelijk proces beschrijft heet een stochastisch proces. Veronderstel dat we het proces op discrete tijdstippen t = 0, 1, 2, . . . waarnemen. ’Waarnemen’ betekent dat we de toestand van het systeem registreren. De toestand op tijdstip t noteren we met Xten een stochastisch proces wordt genoteerd met {Xt | t = 0, 1, . . . }.

Voorbeeld 2

Veronderstel dat we beginnen met 2 euro, d.w.z. op tijdstip 0 hebben we 2 euro. Op de tijdstippen t = 1, 2, . . . spelen we een spel met inzet van 1 euro en een winstkans p (dus verlieskans 1 − p).

Als toestand Xtop tijdstip t nemen het aantal euro’s dat we op tijdstip t bezitten. De kans dat de toestand op tijdstip 1 toestand 3 is, is dus p en met kans 1 − p is de toestand op tijdstip 1 toestand 1 (andere toestanden kunnen op tijdstip 1 niet voorkomen). We stellen ons ten doel om het bedrag van 4 euro te verkrijgen. Als we dat hebben bereikt, dan stoppen we (we moeten ook stoppen als we 0 euro hebben). Stoppen modelleren we doordat er niets meer verandert, d.w.z.

dat we met kans 1 in die toestand blijven.

(8)

Als de toekomstige ontwikkeling van het systeem alleen afhangt van het heden en niet van het verleden dan noemen we zo’n proces een Markov keten. In bovenstaand voorbeeld is dit het geval, want alleen het bedrag dat we hebben (de ’toestand’) is van invloed op de toekomstige toestand.

De systeemovergangen op de tijdstippen die we bekijken heten de overgangswaarschijnlijkheden.

Deze overgangswaarschijnlijkheden kunnen worden opgesteld in matrix, de overgangsmatrix. De toestandsverzameling noteren we met S (vanwege de Engelse benaming ’state’) en de overgangs- matrix met P (vanwege de Engelse benaming ’probability’). We nemen aan dat S een eindige verzameling is.

Voorbeeld 2 (vervolg)

De toestandsverzameling S = {0, 1, 2, 3, 4} en de overgangsmatrix P van de Markov keten is

P =









1 0 0 0 0

1 − p 0 p 0 0

0 1 − p 0 p 0

0 0 1 − p 0 p

0 0 0 0 1







 .

Voorbeeld 3

Veronderstel dat een beestje op ieder tijdstip t = 0, 1, . . . in ´e´en van de vier hoekpunten van nevenstaand vierkant zit. Op ieder tijdstip maakt het beestje een sprong. Indien mogelijk springt het beestje naar rechts, anders met gelijke kansen naar ´e´en van de twee aangrenzende hoekpun- ten. Noemen we het hoekpunt waar het beestje op tijdstip t zit Xt (dus Xt ∈ {1, 2, 3, 4}), dan is {Xt | t = 0, 1, . . . } een Markov keten met overgangsmatrix:

s s

s s

1 3

2 4

P =





0 1 0 0

0.5 0 0 0.5

0 0 0 1

0 0.5 0.5 0





Van een Markov keten kunnen we een netwerk maken. We zullen dit voor Voorbeeld 3 uitwerken.

Als knooppunten nemen we de vier hoekpunten. Een pijl correspondeert met een positieve over- gangskans en de functiewaarde van de pijl is de overgangskans. Dit geeft het volgende netwerk:

1 s s

2

s

3 s4

-

1 0.5¾ -

1 0.5¾

60.5

?

0.5

Een Markov keten is op zich geen beslissingsmodel, maar is wel de basis voor andere beslissings- modellen, zoals het Markov beslissingsmodel dat in het volgende onderdeel wordt besproken.

(9)

D. Markov beslissingsketens

Bij Markov beslissingsketens hebben we niet te maken met ´e´en Markov keten, maar met meer ketens. Het komt er in dit model op neer dat beslist moet worden welke Markov keten het beste voldoet aan een bepaald optimaliteitscriterium. Formeel is het model als volgt gedefinieerd:

1. Er is eindige toestandsruimte S.

2. In iedere toestand i ∈ S is een eindige actieverzameling A(i).

3. Als in toestand i actie a ∈ A(i) wordt gekozen, dan gebeurt het volgende: er is een directe opbrengst ri(a) en met kans pij(a) is het systeem op het volgende tijdstip in toestand j.

Een strategie f is een beslisregel die voor iedere toestand i aangeeft welke actie f (i) ∈ A(i) wordt gekozen.

Voorbeeld 4

Veronderstel dat in Voorbeeld 3 het beestje in ieder hoekpunt ook de optie heeft om te blijven zitten. Als het in hoekpunt i blijft zitten, dan is er een uitbetaling van 1 euro (voor iedere i), en als het verspringt dan is de uitbetaling i − 2 euro (1 ≤ i ≤ 4). De actieverz. hebben twee elementen, zeg 1 en 2, waarbij actie 1 betekent het beestje bijft zitten en bij actie 2 springt het.

Het hierbij behorende beslissingsmodel is:

S = {1, 2, 3, 4}; A(i) = {1, 2}, 1 ≤ i ≤ 4; ri(1) = 1, 1 ≤ i ≤ 4; ri(2) = i − 2, 1 ≤ i ≤ 4;

p11(1) = 1, p12(1) = p13(1) = p14(1) = 0; p21(1) = 0, p22(1) = 1, p23(1) = p24(1) = 0;

p31(1) = p32(1) = 0, p33(1) = 1, p34(1) = 0; p41(1) = p42(1) = p43(1) = 0, p44(1) = 1.

p11(2) = 0, p12(2) = 1, p13(2) = p14(2) = 0; p21(2) = 0.5, p22(2) = p23(2) = 0, p24(2) = 0.5;

p31(2) = p32(2) = p33(2) = 0, p34(2) = 1; p41(2) = 0, p42(2) = p43(2) = 0.5, p44(2) = 0.

Het optimaliseringsprobleem zou bijvoorbeeld kunnen zijn: welke strategie maximaliseert de gemiddelde verwachte opbrengst over een oneindig lange tijdsperiode?

1.5 Opgaven

Opgave 1.1

McRonald maakt voor een zusterbedrijf elke week twee soorten steak sauzen: Spicy Gonzales en Cool Gringo. Elk van de sauzen wordt gemaakt door het mengen van twee ingredi¨enten, die we A en B noemen. Hoewel een zekere mate van vrijheid is toegestaan bij het maken van de sauzen, moet voldaan worden aan de volgende eisen:

1. Cool Gringo mag niet voor meer dan 75% bestaan uit ingredi¨ent A;

2. Spicy Gonzales moet voor tenminste 25% uit ingredi¨ent A en voor tenminste 50% uit ingredi¨ent B bestaan;

3. Per week kunnen ten hoogste 40 liter van ingredi¨ent A en ten hoogste 30 liter van ingredi¨ent B worden ingekocht.

McRonald kan tegen een prijs van 7 euro per liter Spicy Gonzales en tegen een prijs van 6 euro per liter Cool Gringo de sauzen verkopen, terwijl de ingredi¨enten A en B resp. 3 en 4 euro per liter kosten. McRonald wil zijn winst maximaliseren.

Stel hiervoor een lineair programmeringsprobleem op en los dit op.

(10)

Opgave 1.2

Twee spelers, A en B, hebben elk twee zuivere munten en spelen herhaald het volgende spel. Beide spelers gooien tegelijk een munt op. Als ze beiden kop of beiden munt gooien, dan ontvangt speler A een munt van speler B; gooien ze iets verschillends, dan moet speler A een munt aan speler B geven. Het spel stopt zodra een der spelers geen munt meer heeft.

a. Modelleer dit model als een Markov keten en geef de overgangsmatrix.

b. Wat denk je dat het verwachte aantal spellen is dat gespeeld kan worden, voordat wordt gestopt?

Opgave 1.3

Ieder jaar, aan het begin van het seizoen, voert een tuinder een aantal proeven uit om de bodemgesteldheid te testen. Op grond van deze testen wordt de bodem als goed, redelijk of slecht geclassificeerd. De ervaring heeft uitgewezen dat de klasse die aan de bodem wordt toegekend nooit verbetert, een stochastisch karakter heeft en alleen afhangt van de klasse van het afgelopen jaar.

Als de bodem goed is, dan is deze het volgende jaar goed met kans 0.2, redelijk met kans 0.5 en slecht met kans 0.3; een redelijke bodem is het volgende jaar redelijk met kans 0.5 en slecht met kans 0.5.

De tuinder kan de grond echter ook verbeteren door te bemesten. Als de grond goed is, dan kost bemesten 1.000 euro, als deze redelijk is 2.000 euro en als de grond slecht is 4.000 euro. In het geval van bemesten hebben we de volgende gegevens over de classificatie in het daarop volgende jaar: als de bodem goed is, dan is deze het volgende jaar goed met kans 0.3, redelijk met kans 0.6 en slecht met kans 0.1; een redelijke bodem is het volgende jaar goed met kans 0.2, redelijk met kans 0.6 en slecht met kans 0.2; een slechte bodem is het volgende jaar goed met kans 0.1, redelijk met kans 0.4 en slecht met kans 0.5.

De tuinder heeft, om te beslissen of hij wel of niet zal bemesten, een opbrengstfunctie opgesteld.

Deze opbrengstfunctie geeft zijn winst gedurende ´e´en jaar en is als volgt: goede grond levert hem 10.000 euro winst, redelijke grond 6.000 euro en slechte grond 2.000 euro.

Stel de Markov beslissingsketen op voor het beslissingsprobleem van de tuinder: wanneer wel en wanneer niet bemesten.

(11)

Hoofdstuk 2

Mathematische programmering

2.1 Lineaire programmering

Het lineaire programmeringsprobleem (LP-probleem) heeft de gedaante

max (

p1x1+ p2x2+ · · · + pnxn

¯¯

¯¯

¯

ai1x1+ ai2x2+ · · · + ainxn ≤ bi, 1 ≤ i ≤ m xj ≥ 0, 1 ≤ j ≤ n

)

(2.1)

In Paragraaf 1.3 hebben we een voorbeeld gegeven van een ’recht-toe-recht-aan’ LP-probleem.

Hieronder geven we enkele voorbeelden van problemen waarvan het LP-karakter minder gemakke- lijk herkenbaar is.

Voorbeeld 5: Snijprobleem

Bij dit probleem wordt gevraagd om uit een (willekeurig) lange rol met een breedte van 300 cm met zo weinig mogelijk afval het volgende te snijden: 550 m met een breedte van 170 cm, 800 m met een breedte van 125 cm en 500 m met een breedte van 50 cm (de stukken van een bepaalde breedte mogen uit verschillende ’losse’ stukken bestaan). Alleen guillotine snedes zijn toegestaan, d.w.z. eerst moet een bepaalde lengte van de rol worden afgesneden, waarna van dit stuk diverse breedtes kunnen worden afgesneden. Stukken van dezelfde breedte kunnen daarna aan elkaar worden genaaid tot een stuk met een grotere lengte.

We lossen dit snijprobeem als volgt op:

De breedte van 300 cm kan d.m.v. guillotine sneden op de volgende wijze worden benut:

1x170 cm + 1x125 cm met afval 5 cm en stel dat we hiervan een lengte x1 nemen;

1x170 cm + 2x50 cm met afval 30 cm en stel dat we hiervan een lengte x2 nemen;

2x125 cm + 1x50 cm zonder afval en stel dat we hiervan een lengte x3 nemen;

1x125 cm + 3x50 cm met afval 25 cm en stel dat we hiervan een lengte x4 nemen;

6x50 cm zonder afval en stel dat we hiervan een lengte x5 nemen;

Op deze wijze krijgen we, door stukken met dezelfde breedte aan elkaar te naaien, een stuk met lengte x1+ x2 en met een breedte van 170 cm, een stuk met lengte x1 + 2x3 + x4 en met een breedte van 125 cm, en een stuk met lengte 2x2+ x3+ 3x4+ 6x5 en met een breedte van 50 cm.

Als afval houden we allereerst 5x1+ 30x2+ 25x4 over, maar ook nog wat eventueel meer gemaakt wordt dan noodzakelijk is i.v.m. de guillotine snedes.

(12)

Dit laatste geeft 170(x1+x2−55000)+125(x1+2x3+x4−80000)+50(2x2+x3+3x4+6x5−50000).

De totale hoeveelheid afval is dus: 300x1+ 300x2+ 300x3+ 300x4+ 300x5− 21.850.000.

Dit is minimaal als x1+ x2+ x3+ x4+ x5 minimaal is.

Het bijbehorende LP-probleem luidt dus:

min x1 + x2 + x3 + x4 + x5

zdd. x1 + x2 ≥ 55000 (breedte 170)

x1 + + 2x3 + x4 ≥ 80000 (breedte 125)

2x2 + x3 + 3x4 + 6x5 ≥ 50000 (breedte 50) x1, x2, x3, x4, x5 0 (niet-negativiteit)

Voorbeeld 6: L1-approximatie

Veronderstel dat n punten (xi, yi), 1 ≤ i ≤ n, in het platte vlak zijn gegeven. We willen een rechte lijn y = ax+b bepalen die deze punten het beste benadert m.b.t. de zogenaamde L1-approximatie, d.w.z. de beslissingsvariabelen a en b moeten zo worden gekozen zodat

Xn i=1

|yi− (axi+ b)|

(dit is de som van de vertikale afstanden tussen de punten en de lijn) minimaal is.

Introduceer de afhankelijke variabelen

di = yi− (axi+ b), i = 1, 2, . . . , n

(di is een afhankelijke vanriabele, want als a en b bekend zijn, dan ook di). Het probleem is nu te schrijven met als variabelen a, b en di, 1 ≤ i ≤ n:

min







 Xn i=1

|di|

¯¯

¯¯

¯¯

¯¯

di = yi− (axi+ b), i = 1, 2, . . . , n







. (2.2)

Dit is nog geen LP-probleem: de absolute waarde is niet toegestaan in een LP-formulering en de variabelen moeten niet-negatief zijn. We merken allereerst op dat de absolute waarde van een variabele d te schrijven is als de som van twee niet-negatieve variabelen en zodat het verschil de waarde zelf is.

In een voorbeeld: als d = 4, dan is |4| is te schijven als 4 + 0 en 4 − 0 = 4; als d = −4, dan is

| − 4| als 0 + 4 en 0 − 4 = −4.

Algemeen: |d| = d++ d en d = d+− d, waarbij d+, d≥ 0: neem namelijk d+= max(0, d) en d= max(0, −d).

Vervolgens moeten ook a en b vervangen worden door niet-negatieve variabelen. Met eenzelfde substitutie a = a+− a, waarbij a+= max(0, a), a= max(0, −a) ≥ 0, en b = b+− b, waarbij b+= max(0, b), b= max(0, −b) ≥ 0, is dit te bereiken.

(13)

Hieruit volgt dat de L1-approximatie is op te lossen met het volgende LP-probleem, waarin we als niet-negatieve variabelen hebben: a+, a, b+, b en d+i , di , 1 ≤ i ≤ n :

min







 Xn i=1

(d+i + di )

¯¯

¯¯

¯¯

¯¯

d+i − di + a+xi− axi+ b+− b = yi 1 ≤ i ≤ n d+i , di 0 1 ≤ i ≤ n a+, a, b+, b 0







. (2.3)

Getallenvoorbeeld

Beschouw de volgende 10 getallen in onderstaande tabel en bepaal hiervoor de L1-approximatie.

i 1 2 3 4 5 6 7 8 9 10

xi 1 6 15 20 35 48 60 75 86 100 yi 13 10 -3 -2 12 19 39 46 64 75 Het LP-model voor deze data wordt:

min d+1+d1+d+2+d2+d+3+d3+d+4+d4+d+5+d5+d+6+d6+d+7+d7+d+8+d8+d+9+d9+d+10+ d10 onder de voorwaaarden

d+1 d1 + a+ a + b+ − b = 13 d+2 d2 + 6a+ 6a + b+ − b = 10 d+3 d3 + 15a+ 15a + b+ − b = −3 d+4 d4 + 20a+ 20a + b+ − b = −2 d+5 d5 + 35a+ 35a + b+ − b = 12 d+6 d6 + 48a+ 48a + b+ − b = 19 d+7 d7 + 60a+ 60a + b+ − b = 39 d+8 d8 + 75a+ 75a + b+ − b = 46 d+9 d9 + 86a+ 86a + b+ − b = 64 d+10 − d10 + 100a+ − 100a + b+ − b = 75

d+1, d1, d+2, d2, d+3, d3, d+4, d4, d+5, d5, d+6, d6, d+7, d7, d+8, d8, d+9, d9, d+10, d10, a+, a, b+, b ≥ 0 Met ORSTAT geeft dit de oplossing a = 0.9176 en b = −16.7647, dus de lijn 0.9176x − 16.7647, en als waarde van de doelfunctie 73.9412.

Voorbeeld 7: Matrixspel

Twee spelers, S1 en S2, spelen het volgende spel bij een gegeven m × n-matrix A = (aij).

Onafhankelijk van elkaar kiest speler S1 een rij en speler S2 een kolom. Als S1 rij i kiest en S2 kolom j, dan ontvangt S1 het bedrag aij van S2 (als aij negatief is, dan ontvangt S1 een negatief bedrag, d.w.z. dat hij dan -aij aan S2 betaalt).

De vraagstelling luidt: welke strategie is het beste voor S1 en welke is het beste voor S2? We moeten allereerst afspreken wat we onder een ’strategie’ verstaan. We laten toe dat de keuze van beide spelers stochastisch is, d.w.z. door loting tot stand komt. Een dergelijke strategie heet een gemengde strategie. Veronderstel dat S1 rij i met kans xikiest (1 ≤ i ≤ m) en dat S2 kolom j met kans yj kiest (1 ≤ j ≤ n). De vectoren x en y heten de (gemengde) strategie¨en van S1 resp.

S2. Omdat de vectoren x en y kansvectoren zijn voldoen ze aan Xm

i=1

xi= 1, xi≥ 0, 1 ≤ i ≤ m en Xn j=1

yj = 1, yj ≥ 0, 1 ≤ j ≤ n.

(14)

De verwachting van een stochastische uitkomst is gedefinieerd als de som over alle mogelijke uitkomsten van het product van de kans op een uitkomst en de uitkomst zelf. In het geval van het matrixspel zijn de mogelijke uitkomsten de keuzes van S1en S2, dus de paren (i, j) met 1 ≤ m en 1 ≤ j ≤ n. De kans op zo’n paar is xiyj en de uitkomst zelf is de uitbetaling aij. De verwachte

’uitbetaling’ van S2 aan S1, als S1 en S2 de strategie¨en x resp. y spelen, noteren met v(x, y) en is dus gelijk aan

Xm i=1

Xn j=1

aijxiyj.

Als speler S1 strategie x speelt, dan is hij er in ieder geval zeker van om de minimale waarde van Pm

i=1

Pn

j=1 aijxiyj te ontvangen, waarbij het minimum wordt genomen over alle mogelijkheden van de vector y: speler S1 krijgt dus minstens

u(x) = min



 Xm

i=1

Xn j=1

aijxiyj

¯¯

¯¯

¯¯ Xn j=1

yj = 1; yj ≥ 0, 1 ≤ j ≤ n



. (2.4)

Speler S1 wil dus zijn strategie x zo bepalen dat

u(x) ≥ u(x) voor alle strategie¨en x voor speler S1. (2.5) Het minimaliseringsprobleem (2.4) om u(x) te bepalen is eenvoudig op te lossen:

u(x) = min1≤j≤n Xm i=1

aijxi, (2.6)

immers: als speler S1 strategie x kiest, dan moet speler S2 kiezen uit de uitbetalingen Pm

i=1aijxi, 1 ≤ j ≤ n. Hij zal dus kiezen voor de kleinste waarde, d.w.z. dat (2.6) juist is.

u(x) = min1≤j≤nPm

i=1 aijxi heeft de volgende eigenschappen:

(1) u(x) ≤Pm

i=1 aijxi voor j = 1, 2, . . . , n.

(2) u(x) is het grootste getal met eigenschap (1) (anders is u(x) < min1≤j≤nPm

i=1 aijxi).

Speler S1 wil u(x) maximaliseren over zijn strategie¨en x. Het bovenstaande houdt in dat u0 = max

( u(x)

¯¯

¯¯

¯ Xm

i=1

xi = 1; xi ≥ 0, 1 ≤ i ≤ m )

gevonden kan worden met het volgende LP-probleem:

max







u0

¯¯

¯¯

¯¯

¯¯

u0 Pm

i=1 aijxi ≤ 0, 1 ≤ j ≤ n Pm

i=1 xi = 1

xi ≥ 0, 1 ≤ i ≤ m







. (2.7)

Op analoge wijze geldt dat als speler S2 strategie y speelt, hij er in ieder geval zeker van is om de maximale waarde van Pm

i=1

Pn

j=1 aijxiyj te betalen, waarbij het maximum wordt genomen over alle mogelijkheden van vector x: speler S2 betaalt dus hoogstens

w(y) = max



 Xm

i=1

Xn j=1

aijxiyj

¯¯

¯¯

¯ Xm

i=1

xi= 1; xi≥ 0, 1 ≤ i ≤ m



 (2.8)

(15)

en hij wil zijn optimale strategie y zo bepalen dat

w(y) ≤ w(y) voor alle strategie¨en y voor speler S2. (2.9)

Verder geldt dat

w(y) = max1≤i≤m Xn j=1

aijyj (2.10)

en dat w(y) = max1≤i≤mPn

j=1 aijyj de volgende eigenschappen heeft:

(1) w(y) ≥Pn

j=1 aijyj voor i = 1, 2, . . . , m.

(2) w(y) is het kleinste getal met eigenschap (1).

Het bovenstaande houdt in dat

w0 = min



w(y)

¯¯

¯¯

¯¯ Xn j=1

yj = 1; yj ≥ 0, 1 ≤ j ≤ n



 gevonden kan worden met het volgende LP-probleem:

min







w0

¯¯

¯¯

¯¯

¯¯

w0 Pn

j=1 aijyj ≥ 0, 1 ≤ i ≤ m Pn

j=1 yj = 1

yj ≥ 0, 1 ≤ i ≤ n







. (2.11)

Er is een algemene theorie over lineaire programmering waaruit volgt dat de optima van de problemen (2.7) en (2.11) aan elkaar gelijk zijn:

u0 = w0. (2.12)

Getallenvoorbeeld

Beschouw de uitbetalingsmatrix A =





−2 2 −3

1 −1 −1

0 −1 1

−1 1 −1





en laat x = (0,12,12, 0).

Dan is Pm

i=1 aijxi gelijk an 12, −1, 0 voor j = 1, 2 en 3, respectievelijk. Het minimum hiervan is -1, wat de beste keuze is voor S2: u(x) = −1.

Neem vervolgens y = (13,13,13). Dan is Pn

j=1 aijyj gelijk aan −1, −13, 0, −13 voor i = 1, 2, 3 en 4.

Het maximum over deze 4 rijen is 0, wat de beste keuze is voor S1: w(y) = 0.

De LP-problemen voor S1 en S2 zijn resp.

max















 u0

¯¯

¯¯

¯¯

¯¯

¯¯

¯¯

¯

u0 + 2x1 − x2 + x4 ≤ 0

u0 − 2x1 + x2 + x3 − x4 ≤ 0 u0 + 3x1 + x2 − x3 + x4 ≤ 0 x1 + x2 + x3 + x4 = 1

xi ≥ 0, 1 ≤ i ≤ 4

















(2.13)

(16)

en

min



















 w0

¯¯

¯¯

¯¯

¯¯

¯¯

¯¯

¯¯

¯

w0 + 2y1 − 2y2 + 3y3 ≥ 0 w0 y1 + y2 + y3 ≥ 0

w0 + y2 y3 ≥ 0

w0 + y1 y2 + y3 ≥ 0 y1 + y2 + y3 = 1

yj ≥ 0, 1 ≤ j ≤ 3





















(2.14)

met bijbehorende optimale oplossingen (berekend met ORSTAT; merk op dat u0 een vrije vari- abele is die dus in ORSTAT moet worden omgeschreven naar twee niet-negatieve variabelen):

x1= 0, x2= 15, x3= 25, x4= 25, u0= −51 resp. y1 = 25, y2 = 52, y3= 15 en w0= −15.

De waarde van dit matrixspel is dus −15 en (0,15,25,52) resp. (25,25,15) zijn de optmale strategie¨en.

2.2 Geheeltallige lineaire optimalisering

Het model van de geheeltallige lineaire optimalisering verschilt van de lineaire programmering doordat de variabelen geheel moeten zijn. De formulering van zo’n probleem luidt dus:

max



 Xn j=1

pjxj

¯¯

¯¯

¯ Pn

j=1aijxj ≤ bi, 1 ≤ i ≤ m xj ≥ 0 en geheel, 1 ≤ j ≤ n



. (2.15)

Soms zijn er problemen waarin sommige variabelen wel en andere niet geheeltallig zijn; we spreken dan van gemengd geheeltallige lineaire programmering. Indien alle variabelen 0 of 1 moeten zijn, dan heet het model combinatorische optimalisering. Hoewel het aantal mogelijkheden eindig is, is het in het algemeen niet eenvoudig om grotere combinatorische optimaliseringsproblemen daadwerkelijk op te lossen. Eerst bespreken we een recht-tot-recht-aan probleem en daarna een tweetal minder triviale problemen.

Voorbeeld 8: Projectontwikkeling

Een projectontwikkelaar beschouwt 7 mogelijke projecten (A, B, C, D, E, F en G) voor de komende 5 jaren. Ieder project vereist ieder jaar een bepaalde investering en ieder jaar heeft de projectontwikkelaar een bepaald budget. Ieder gerealiseerd project levert een bepaalde netto contante waarde op. De data staan in onderstaande tabel (in miljoenen euro’s):

jaar A B C D E F G beschikbaar

1 40 20 25 80 20 90 50 250

2 10 30 30 40 20 25 10 125

3 25 0 20 30 20 0 0 75

4 25 0 10 10 10 10 30 50

5 10 35 0 15 10 20 0 50

netto contante waarde 250 180 225 300 150 275 200

Welke projecten zal de projectontwikkelaar kiezen als hij zijn totale netto constante waarde wil maximaliseren? Neem als beslissingvariabelen xA, xB, xC, xD, xE, xF, xG∈ {0, 1}.

(17)

Het probleem wordt dan:

max 250xA + 180xB + 225xC + 300xD + 150xE + 275xF + 200xG

40xA + 20xB + 25xC + 80xD + 20xE + 90xF + 50xG ≤ 250 10xA + 30xB + 30xC + 40xD + 20xE + 25xF + 10xG ≤ 125

25xA + 20xC + 30xD + 20xE 75

25xA + 10xC + 10xE + 10xF + 30xG 50

10xA + 35xB + 15xD + 10xE + 20xF 50

xA, xB, xC, xD, xE, xF, xG ∈ {0, 1}

Indien dit model met ORSTAT wordt opgelost, dan geeft dit als optimale oplossing:

xA= 1, xB = 0, xC = 1, xD = 1, xE = 0, xF = 1 en xG= 0 en de waarde = 1050.

Dit betekent dus dat de projecten A, C, D en F worden gekozen.

Voorbeeld 9: Brandweercentrales

Veronderstel dat er n plaatsen zijn waar brandweercentrales gevestigd kunnen worden.

De volgende gegevens zijn bekend:

T = de maximale tijdsduur waarbinnen iedere plaats vanuit de dichtstbijzijnde centrale bereikt moet kunnen worden worden;

j = de kosten om een centrale in plaats j te vestigen;

tij = de tijsduur om van plaats i naar plaats j te komen.

Vraagstelling: Waar moeten de centrales gevestigd worden om de totale kosten te minimaliseren, terwijl in iedere plaats voldaan is aan de bereikbaarheidseis?

Neem als beslissingsvariabelen xj ∈ {0, 1}, 1 ≤ j ≤ n met xj = 1 als in plaats j een centrale wordt gevestigd.

Laat

Nj := {i | tij ≤ T }, 1 ≤ j ≤ n,

d.w.z. Nj is de verz. van plaatsen i zdd. aan de bereikbaarheidseis voor plaats j is voldaan als er een centrale in i is. Omdat iedere plaats j zelf binnen tijdsduur T bereikt moet kunnen worden, is de bereikbaarheidseis equivalent met

X

i∈Nj

xi ≥ 1, 1 ≤ j ≤ n.

Het optimaliseringsprobleem is dus als volgt te formuleren:

min



 Xn j=1

cjxj

¯¯

¯¯

¯ P

i∈Njxi≥ 1, 1 ≤ j ≤ n xj ∈ {0, 1}, 1 ≤ j ≤ n



. (2.16)

Getallenvoorbeeld

Hieronder staat een tabel met reistijden tussen 5 plaatsen en de vestigingskosten per plaats.

Van/naar Plaats 1 Plaats 2 Plaats 3 Plaats 4 Plaats 5 Vestigingskosten

Plaats 1 0 11 9 10 17 4

Plaats 2 11 0 8 12 12 8

Plaats 3 12 14 0 15 10 6

Plaats 4 9 12 15 0 13 5

Plaats 5 15 10 12 13 0 7

(18)

Als we T = 10 nemen, dan is N1 = {1, 4}, N2 = {2, 5}, N3= {1, 2, 3}, N4 = {1, 4}, N5= {3, 5}.

Het optimaliseringsprobleem is

min

















4x1+8x2+6x3+5x4+7x5

¯¯

¯¯

¯¯

¯¯

¯¯

¯¯

¯

x1 + x4 ≥ 1; x1 ∈ {0, 1}

x2 + x5 ≥ 1; x2 ∈ {0, 1}

x1 + x2 + x3 ≥ 1; x3 ∈ {0, 1}

x1 + x4 ≥ 1; x4 ∈ {0, 1}

x3 + x5 ≥ 1; x5 ∈ {0, 1}















 .

(2.17) Indien dit met ORSTAT wordt opgelost, dan geeft dit als optimale oplossing: x1 = 1, x2 = 0, x3= 0, x4 = 0 en x5= 1 en de waarde = 11. Dit betekent dat er centrales komen in de plaatsen 1 en 5.

Voorbeeld 10: Verpakkingsprobleem

Veronderstel dat we n voorwerpen hebben met gegeven volumes ai ∈ (0, 1], 1 ≤ i ≤ n.

Deze voorwerpen moeten in dozen worden verpakt. De dozen zijn alle identiek met volume 1 en er zijn voldoende dozen aanwezig, zeg n stuks. Gevraagd wordt hoe de voorwerpen in de dozen te verpakken zdd. zo min mogelijk dozen worden gebruikt.

Dit probleem kan worden opgelost door de volgende variabelen te introduceren:

yj ∈ {0, 1}, waarbij yj = 0 (1) betekent dat doos j niet (wel) wordt gebruikt.

xij ∈ {0, 1}, waarbij xij = 0 (1) betekent dat voorwerp i niet (wel) in doos j wordt verpakt.

De doelfunctie luidt: minPn

j=1yj. Verder hebben we de beperkingenPn

j=1xij = 1, 1 ≤ i ≤ n, d.w.z. dat ieder voorwerp in precies ´e´en doos wordt gestopt, en tenslotte zijn er de beperkingen Pn

j=1aixij ≤ yj, 1 ≤ j ≤ n, d.w.z. als de j-de doos niet wordt gebruikt (yj = 0), dan kan er ook niets in (xij = 0 voor alle i) en als deze wel wordt gebruikt (yj = 1), dan kan er maximaal volume 1 in (P

i|xij=1ai ≤ 1, ofwelPn

i=1aixij ≤ 1).

Het probleem is dus te formuleren als:

min



 Xn j=1

yj

¯¯

¯¯

¯ Pn

j=1xij = 1, 1 ≤ i ≤ n; yj ∈ {0, 1}, 1 ≤ j ≤ n Pn

i=1aixij ≤ yj, 1 ≤ j ≤ n; xij ∈ {0, 1}, 1 ≤ i, j ≤ n



. (2.18)

2.3 Niet-lineaire programmering

Als er ook niet-lineaire functies in het optimaliseringsprobleem voorkomen, dan spreken we van niet-lineaire programmering. We onderscheiden de volgende gevallen:

a. Onbeperkte optimalisering: max f (x1, x2, . . . , xn), waarbij f een niet-lineaire functie is.

b. Beperkte optimalisering: max {f (x1, x2, . . . , xn) | gi(x1, x2, . . . , xn) ≤ 0, i = 1, 2, . . . m}, waarbij de functies f en gi, 1 ≤ i ≤ m willekeurige, in het algemeen niet-lineaire, functies zijn.

Referenties

GERELATEERDE DOCUMENTEN

In dit voorbeeld laten we, voor een eenvoudig geval, zien hoe uit de differentiaalvergelijkingen de toestandsovergangen p ij (t) bepaald kunnen worden.. Beschouw allereerst het

Beschouw een systeem met drie stations, waar klanten van buiten aankomen bij station 1 aan- komen volgens een Poisson proces met parameter r 1 = 4. Alle bedieningsduren

NETWERK OPTIMALISATIE (7 pagina’s) 3.1 Dijkstra’s algoritme voor het kortste pad probleem2. 3.2 Ford-Fulkerson algoritme voor het maximale-stroom-probleem

Er kan worden aangetoond dat de resultaten van het verdisconteerde model ook voor dit model gelden, met verdisconteringsfactor α = 1, indien S 0 minstens ´e´en element bevat en er

1 Als de parameters gespecificeerd zijn, bijvoorbeeld in het kortste pad probleem als het netwerk N is gegeven (een netwerk is een gerichte graaf met ´e´en of meer functies op

De duale simplex methode 2 doet iets omgekeerds: we hebben steeds een toelaatbaar hoekpunt van het duale LP-probleem en zodra de bijbehorende oplossing van het oorspronkelijke

⇒ Laat A totaal unimodulair zijn en in iedere kolom precies twee niet-nul elementen hebben (in verband met wat moet worden aangetoond is dit geen beperking).. Construeer de

Stelling 1.12 kan ook worden gebruikt om het aantal opspannende bomen van een niet-gerichte graaf te bepalen: maak er een gerichte graaf van door iedere tak een willekeurige richting