BESLISKUNDE
(ONDERDEEL VAN CALEIDOSCOOP)
L.C.M. KALLENBERG UNIVERSITEIT LEIDEN
NAJAAR 2008
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.
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
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.
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?
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.
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.
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.
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.
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.
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.
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.
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 , d−i , 1 ≤ i ≤ n :
min
Xn i=1
(d+i + d−i )
¯¯
¯¯
¯¯
¯¯
d+i − d−i + a+xi− a−xi+ b+− b− = yi 1 ≤ i ≤ n d+i , d−i ≥ 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+d−1+d+2+d−2+d+3+d−3+d+4+d−4+d+5+d−5+d+6+d−6+d+7+d−7+d+8+d−8+d+9+d−9+d+10+ d−10 onder de voorwaaarden
d+1 − d−1 + a+ − a− + b+ − b− = 13 d+2 − d−2 + 6a+ − 6a− + b+ − b− = 10 d+3 − d−3 + 15a+ − 15a− + b+ − b− = −3 d+4 − d−4 + 20a+ − 20a− + b+ − b− = −2 d+5 − d−5 + 35a+ − 35a− + b+ − b− = 12 d+6 − d−6 + 48a+ − 48a− + b+ − b− = 19 d+7 − d−7 + 60a+ − 60a− + b+ − b− = 39 d+8 − d−8 + 75a+ − 75a− + b+ − b− = 46 d+9 − d−9 + 86a+ − 86a− + b+ − b− = 64 d+10 − d−10 + 100a+ − 100a− + b+ − b− = 75
d+1, d−1, d+2, d−2, d+3, d3−, d+4, d−4, d+5, d−5, d+6, d−6, d+7, d−7, d+8, d−8, d+9, d−9, d+10, d−10, 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.
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)
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)
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):
x∗1= 0, x∗2= 15, x∗3= 25, x∗4= 25, u0= −51 resp. y∗1 = 25, y∗2 = 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}.
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
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.