OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

Maat: px
Weergave met pagina beginnen:

Download "OPERATIONS RESEARCH TECHNIEKEN L.C.M. KALLENBERG UNIVERSITEIT LEIDEN"

Transcriptie

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

2 Inhoudsopgave 1 Inleiding Wat is Operations Research? Overzicht van de te behandelen technieken Transportprobleem Probleemstelling LP-formulering Tableau en startoplossing Algemene iteratiestap Gevoeligheidsanalyse Toepassing Opgaven Toewijzingsprobleem Probleemstelling en LP-formulering De Hongaarse methode Eindigheid en gevoeligheidsanalyse Opgaven Project Planning Probleemstelling en modellering Berekening van het kritieke pad Bepaling van het kritieke pad met lineaire programmering Het PERT-model Projectplanning met kosten Een alternatief model Opgaven Minimale opspannende boom Probleemstelling De methode van Prim De methode van Kruskal Steiner bomen Opgaven i

3 6 Voorraadtheorie Inleiding Continue deterministische modellen Periodieke deterministische modellen Continue stochastische modellen Periodieke stochastische modellen Opgaven Wachttijdtheorie Inleiding Wachttijdparadox De formule van Little en PASTA Geboorte-sterfte processen Wachttijdmodellen gebaseerd op het geboorte-sterfte proces Het M/G/1 model Netwerken van wachtrijen Opgaven Beslissingstheorie Inleiding Beslissen zonder kansen Beslissen met kansen Beslissingsbomen Opgaven Simulatie Inleiding Statistische verwerking van gegevens Voorbeelden van simulaties Aselecte getallen en aselecte trekkingen Variantie reducerende technieken Opgaven Dynamische programmering Inleiding Terminologie Deterministische dynamische programmering Stochastische dynamische programmering Opgaven Geheeltallige programmering Inleiding Branch-and-bound ii

4 11.3 Afkapmethoden Lagrange relaxatie Andere technieken Opgaven iii

5 Hoofdstuk 1 Inleiding 1.1 Wat is Operations Research? De naam Operations Research (afgekort OR) dateert van vlak voor de Tweede Wereldoorlog. Het Bawdsey Research Station in Engeland kreeg in 1939 de opdracht te onderzoeken hoe de tijdsduur tussen de eerste radarmelding van vijandelijke vliegtuigen en het moment waarop de Engelse luchtmacht in actie kwam, kon worden verkort. Aan dit soort onderzoekingen werd de naam Operations Research gegeven. Het is niet eenvoudig om een definitie van OR te geven: de in de literatuur gegeven definities lopen dan ook sterk uiteen. De OR is te beschouwen als een verzameling van technieken die kunnen worden toegepast om de kwaliteit van kwantitatieve beslissingen te verbeteren. Vandaar de Nederlandse benaming: Besliskunde. In de OR houdt men zich bezig met het toepassen van kwantitatieve methoden om de doelmatigheid van een bepaald systeem te vergroten. In het meest ideale geval wordt een optimale oplossing bepaald. Vaak kan dit echter niet, of vindt men dat te kostbaar. Men volstaat dan met een benaderende oplossing of met een kwantitatieve analyse. In de praktijk worden bij het oplossen van een OR-probleem de volgende stadia onderscheiden: 1. Formulering van het probleem. 2. Constructie van het mathematisch model. 3. Bepaling van een (optimale) oplossing of van een analyse. 4. Onderzoek naar de robuustheid en betrouwbaarheid van de oplossing of van de analyse. 5. Het voorleggen van de uitkomsten aan de opdrachtgever. We zullen deze vijf stadia nader toelichten. Probleemformulering Een probleem dat tot de OR behoort heeft de volgende structuur: a. Er is een beslisser (persoon of groep) die een doel heeft dat nagestreefd wordt. b. De beslisser kan het systeem sturen door het kiezen van acties. c. Onderzocht wordt wat goede of optimale acties zijn, d.w.z. mogelijke acties moeten met elkaar vergeleken kunnen worden. 1

6 Bij veel problemen is de uitkomst van een actie niet met zekerheid aan te geven. We spreken dan van beslissen in onzekerheid, in tegenstelling tot beslissen in zekerheid, waarbij het resultaat van de acties wel met zekerheid bekend is. Constructie van het model Een model is een, meestal vereenvoudigde, voorstelling van de werkelijkheid. Het doel van een model is om het gedrag van een systeem te beschrijven. In een mathematisch model voor een OR-probleem komen de acties (de bestuurbare componenten) voor als beslissingsvariabelen of als strategieën. Daarnaast kunnen er ook andere grootheden zoals stochastische variabelen, parameters of constanten in voorkomen. Het gedrag van het systeem wordt weergegeven door relaties tussen bovengenoemde grootheden in de vorm van functies, vergelijkingen en restricties. Ook de doelstelling wordt vertaald in termen van de variabelen van het model. Het model heet deterministisch als het correspondeert met het beslissen in zekerheid; bij beslissen in onzekerheid noemen we het model stochastisch. Nadat het model is opgesteld moet worden nagegaan of dit model voldoet (validatie), d.w.z. of het een geschikte voorstelling van de werkelijkheid is. Dit kan vaak worden gedaan door gegevens die uit het verleden of heden bekend zijn met dit model te berekenen, waarna de berekende waarden met de bekende waarden vergeleken kunnen worden. Oplossen of analyseren van het model Er zijn vele manieren mogelijk om een model op te lossen of te analyseren. De keuze van de methode is uiteraard sterk afhankelijk van het model. De methoden om een OR-probleem op te lossen kunnen ruwweg als volgt worden onderverdeeld: 1. analytische methoden; 2. algoritmische methoden; 3. heuristische methoden. Bij een analytische methode wordt een oplossing afgeleid in de vorm van een formule. Door de gegevens van een specifiek probleem in deze formule in te vullen krijgen we de oplossing. Een voorbeeld van deze methode is de zogenaamde wortelformule uit de voorraadtheorie. Bij een algoritmische methode wordt meestal gestart met een bepaalde beginoplossing, waarna het algoritme een nieuwe oplossing bepaalt; deze neemt dan de plaats in van de beginoplossing en vervolgens wordt er weer een nieuwe oplossing bepaald, etc. Een dergelijk iteratief procwdw is geschikt om een OR-model op te lossen als een startoplossing eenvoudig te vinden is en als de rij tussentijdse oplossingen convergeert naar de gewenste oplossing. Een voorbeeld van een algoritmische methode is de simplex-methode voor het model van de lineaire programmering. Als bovenstaande methoden niet kunnen worden toegepast of als er redenen zijn om ze niet toe te willen passen, dan kan vaak gebruik gemaakt worden van een heuristische methode. Hierbij wordt een procédé 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

7 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 éénmalige operatie betreft die niet is te testen of te duur is om te testen. In die situatie kan simulatie een uitkomst zijn om aannemelijk te maken dat het voorstel een verbetering inhoudt. Zelfs als de opdrachtgever er van overtuigd is dat de voorstellen een verbetering zijn, dan kan hij desondanks niet bereid zijn om deze te implementeren, bijv. op grond van de sociale of maatschappelijke gevolgen er van. In een dergelijke overlegsituatie komt men er soms achter dat het gehanteerde model onvoldoende geschikt is, of dat de probleemformulering niet correct is geweest. In dat geval zullen een aantal stappen opnieuw moeten worden uitgevoerd. Dit kan zich dan zo herhalen totdat, bij succes, de implementatie werkelijkheid wordt. 1.2 Overzicht van de te behandelen technieken In dit college zullen we aandacht besteden aan een groot aantal technieken om OR-problemen op te lossen. Naast het bespreken van de theorie van deze technieken zal ook het oplossen van vraagstukken aan bod komen, zowel met de hand als met de computer. Bij dit laatste kan gebruik worden gemaakt van beschikbare programmatuur. De onderwerpen die aan bod komen zijn: A. Speciale lineaire modellen 1. Het transportprobleem Een bepaald product moet van een aantal depots naar een aantal bestemmingen worden getransporteerd. Er is bekend wat er in ieder depot in voorraad is en wat iedere bestemming nodig heeft. Aan iedere route van depot naar bestemming zijn transportkosten per eenheid van vervoer verbonden. Welk transportschema minimaliseert de totale kosten? 3

8 2. Het toewijzingsprobleem Een aantal taken moet door een even groot aantal personen worden uitgevoerd (iedere persoon één 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

9 D. Overige technieken 1. Dynamische programmering Dynamische programmering is een mathematische techniek om beslissingsproblemen op te lossen die een systeem betreffen dat een sequentiëel karakter heeft, of dat als zodanig gemodelleerd kan worden. Dergelijke problemen zijn vaak met een recursieve aanpak op te lossen. 2. Geheeltallige lineaire programmering In dit model wordt gezocht naar het optimum van een lineaire functie onder lineaire nevenvoorwaarden, waarbij de variabelen geheeltalige waarden moeten aannemen. 3. Heuristieken In situaties waarin technieken om een optimale oplossing te vinden niet beschikbaar of te kostbaar zijn, kan een heuristische methode uitkomst bieden. We hopen dan met ad hoc regels in vrij korte tijd een goede oplossing te kunnen vinden. 4. Speltheorie In de speltheorie houdt men zich bezig met modellen die conflictsituaties beschrijven. Niet alle conflictsituaties zijn in één model te vangen. We onderscheiden bijvoorbeeld: a. Het aantal deelnemers (tweepersoonsspelen of spelen met meer personen); b. Het al dan niet geoorloofd zijn van combines (wel of niet coöperatieve 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

10 Hoofdstuk 2 Transportprobleem 2.1 Probleemstelling Er is een aantal, zeg m, depots van waaruit naar diverse, zeg n, bestemmingen goederen vervoerd moeten worden. De vraag kan dan gesteld worden hoeveel er vanuit de diverse depots naar de verschillende bestemmingen verzonden moet worden opdat de totale transportkosten minimaal zijn. We veronderstellen dat de transportkosten evenredig zijn met de te transporteren hoeveelheden. Laat c ij de kosten voorstellen die gemaakt worden als één eenheid van depot i naar bestemming j wordt vervoerd, a i de totale voorraad in depot i en b j 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 = , a = 30 en b = LP-formulering Laat x ij de hoeveelheid zijn die van depot i naar bestemming j verzonden wordt. Het transportprobleem kan nu als volgt worden geformuleerd: n m n j=1 x ij a i, 1 i m min c ij x ij m i=1 i=1 j=1 x ij b j, 1 j n x ij 0 voor alle (i, j) Wil het probleem een toegelaten oplossing hebben, dan moet de totale vraag niet groter zijn dan het totale aanbod, d.w.z. Σ m i=1 a i Σ n j=1 b j. We mogen aannemen dat Σ m i=1 a i = Σ n j=1 b j, immers: als namelijk het aanbod groter is dan de vraag, dan voegen we een extra bestemming (2.1) 6

11 n + 1 toe, en nemen we b n+1 = Σ m i=1 a i Σ n j=1 b j met bijbehorende kosten c i,n+1 = 0 voor alle i, d.w.z. dat het overschot zonder kosten naar de extra bestemming wordt afgevoerd. Als de totale vraag Σ n j=1 b ij gelijk is aan het totale aanbod Σ m i=1 a i, dan geldt voor iedere toegelaten oplossing x dat de ongelijkheden in (2.1) gelijkheden zijn. Vandaar dat we als standaardformulering nemen: m min i=1 n c ij x ij j=1 n j=1 x ij = a i, 1 i m m i=1 x ij = b j, 1 j n x ij 0 voor alle (i, j) (2.2) Voorbeeld 2.1 (vervolg) In ons voorbeeld geldt Σ m i=1 a i = Σ n j=1 b j, zodat de standaardformulering is: min 3x x x x x x x x x x x x 34 onder de voorwaarden: x 11 + x 12 + x 13 + x 14 = 15 x 21 + x 22 + x 23 + x 24 = 30 x 31 + x 32 + x 33 + x 34 = 55 x 11 + x 21 + x 31 = 30 x 12 + x 22 + x 32 = 10 x 13 + x 23 + x 33 = 15 x 14 + x 24 + x 34 = 45 x 11, x 12, x 13, x 14, x 21, x 22, x 23, x 24, x 31, x 32, x 33, x 34 0 De formulering van het duale probleem is: max 15u u u v v v v 4 onder de voorwaarden: u 1 +v 1 3 u 1 +v 2 7 u 1 +v 3 3 u 1 +v 4 4 u 2 +v 1 5 u 2 +v 2 7 u 2 +v 3 2 u 2 +v 4 6 u 3 +v 1 8 u 3 +v 2 13 u 3 +v 3 9 u 3 +v 4 3 Het duale probleem bij de algemene formulering (2.2) luidt: m n max { a i u i + b j v j u i + v j c ij voor alle (i, j) } (2.3) i=1 j=1 7

12 Het transport probleem is een LP-probleem met een speciale structuur. Zonder bewijs 1 vermelden we de volgende eigenschappen: (i) Ieder pivotelement is gelijk aan 1, en, als alle a i en b j geheeltallig zijn, dan zijn in iedere basisoplossing x alle x ij 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 één-éénduidig verband tussen de verz. van de bases van probleem (2.3) en de verz. van de opspannende bomen in de graaf, die corresponderen met een toelaatbaar vervoersschema. 2.3 Tableau en startoplossing In plaats van in een simplex tableau zullen we oplossingen van het transport probleem representeren in het volgende tableau: b 1 b 2 b n a 1 c 11 x 11 c 12 x 12 c 1n x 1n a 2 c 21 x 21 c 22 x 22 c 2n x 2n a m c m1 x m1 c m2 x m2 c mn x mn Dit tableau heeft m + 1 rijen en 2n + 1 kolommem en is dus veel compacter dan het simplextableau dat m+n+1 rijen en mn+1 kolommen bevat. We zullen laten zien dat we alle benodigde informatie uit bovenstaand kunnen halen. We moeten starten met een basisoplossing, d.w.z. met een opspannende boom waarover alles vervoerd kan worden. We zullen hier drie gebruikelijke keuzes bespreken en aan de hand van ons voorbeeld toelichten. a. De Noord-West regel Hierbij gebruiken we routes die in het tableau zoveel mogelijk in de Noord-West hoek (linksboven) staan. We beginnen te kijken wat van depot 1 naar bestemming 1 vervoerd kan worden: het minimum van a 1 en b 1. In het voorbeeld is dit 15. Alles wat beschikbaar is in depot 1 is nu op. Daarom kijken we vervolgens wat van depot 2 naar bestemming 1 kan worden vervoerd. Deze hoeveelheid is 15, want daarmee is aan de vraag van 30 voldaan. Vervolgens kan er 10 van depot 2 naar bestemming 2 en 5 van depot 2 naar bestemming 3. Tenslotte wordt er van depot 3 een hoeveelheid 10 vervoerd naar bestemming 3 en 45 naar bestemming 4. Bij deze regel hoort dus het starttableau: 1 Voor het bewijs verwijzen we naar het College Grafentheorie. 8

13 Kosten: = 425. Omdat we in het tableau iedere keer ofwel een stap naar rechts, ofwel een stap naar omlaag gaan, komen we nooit in reeds bezochte punten terug. In de bijbehorende graaf zijn dus geen kringen en we krijgen dus een opspannende boom. Een nadeel van deze regel is dat er geen enkele rekening wordt gehouden met de kosten. De volgende regel komt aan dit bezwaar tegemoet. b. De minimale-kosten regel Vervoer zoveel mogelijk over het goedkoopste traject (in het voorbeeld van depot 2 naar bestemming 3), vervolgens over het op één na goedkoopste traject, etc. Om een opspannende boom te krijgen, moet per stap precies één bestemming of depot worden afgesloten, behalve in de laatste iteratie waar we zowel één bestemming als één 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: Kosten: = 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 één 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 a i = i I 1 j J 1 b j met I 1 en J 1 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 één na goedkoopste route vanuit het desbetreffende depot of naar de desbetreffende bestemming wordt gekozen. In ons voorbeeld zijn de boetes: 9

14 bestemming boete depot boete = = = = = = = 1 Vervolgens wordt die bestemming of dat depot gekozen waarvoor de boete maximaal is (in het voorbeeld: depot 3), en wijzen we zo veel mogelijk toe aan de goedkoopste route in de betreffende kolom of rij (in het voorbeeld: 45 aan route depot 3 - bestemming 4), waarna een depot of een bestemming wordt afgesloten (in het voorbeeld: bestemming 4). We kiezen dus dat traject waarvan het alternatief zo ongunstig mogelijk is. Deze procedure wordt herhaald met inachtneming van de afgesloten bestemmingen en depots. In elke stap moeten de boetes worden aangepast. Om ook hier een opspannende boom te krijgen moet in iedere stap precies één 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: Kosten: = 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: u i + v j = c ij voor alle (i, j) met x ij 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 u i hetzelfde getal wordt opgeteld en van iedere v j dat getal wordt afgetrokken (ga dit zelf na). Eén der variabelen kan dus willekeurig worden gekozen. We spreken af dat we u 1 = 0 zullen nemen. Beschouw de bij de basis x behorende boom en neem het knooppunt 10

15 dat behoort bij u 1 als wortel, zeg knooppunt 1. De waarden van de andere u i s en v j s zijn te bepalen door in de boom vanuit knooppunt 1 naar de eindpunten te lopen, immers: voor tak (i, j) geldt: v j = c ij u i, zodat we v j kunnen uitrekenen als u i bekend is; omgekeerd kunnen we via u i = c ij v j, u i uitrekenen als v j bekend is. Vervolgens gaan we na of deze (u, v) toelaatbaar is voor (2.3). Is dit het geval, dan weten we uit de lineaire programmering dat x een optimale oplossing is van (2.2) en dat (u, v) een optimale oplossing van (2.3) is. Als (u, v) niet toelaatbaar is voor (2.3)), dan gaan we als volgt te werk. De variabelen x ij met u i + v j > c ij zijn de kandidaten om in de basis te komen (pivotkolom): de bijbehorende verschilvariabelen van het duale probleem (deze staan in het simplex-tableau in de getransformeerde doelfunctie) zijn dan negatief. Toevoegen van de corresponderende tak aan de boom doet een kring ontstaan. Deze is in het tableau op te sporen en we geven de takken er van afwisselend een + en een - (de toegevoegde tak krijgt een +). Over de + takken zal meer vervoerd gaan worden en over de - takken evenveel minder. De hoeveelheid die we gaan vervoeren is het minimum van de waarden van de takken met een -; noem deze hoeveelheid d. Hierdoor krijgt een der - takken de waarde 0 en deze tak verlaat de boom (pivotrij). Als de hoeveelheid d vervoerd gaat worden over de toegevoegde tak, dan nemen - omdat ieder pivotelement gelijk is aan 1 - de totale kosten met d [u i + v j c ij ] af. Een goede keuze lijkt dus om die tak (i, j) te kiezen waarvoor u i + v j c ij maximaal is. Dit komt overeen met de meest gebruikelijke keuze van de pivotkolom in de simplexmethode, nl. die kolom waarvan de coëfficiënt 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): c = 425 d = var c = 385 optimaal Eindigheid Als d = 0, dan is er sprake van degeneratie en geldt (2.4) voor zekere deelverz. I 1 en J 1. In dat geval kan de eindigheid in gevaar komen. Het is mogelijk dit te voorkomen met de zogenaamde ε-perturbatie, d.w.z. in plaats van 0 nemen we een klein getal ε. Aan het einde vervangen we ε weer door 0. Indien voor geen enkele deelverz. I 1 en J 1 (2.4) niet geldt, dan is er geen degeneratie en is de eindigheid van de methode zonder meer gegarandeerd. 11

16 2.5 Gevoeligheidsanalyse We zullen de volgende veranderingen van het probleem onderzoeken: (i) veranderingen in de doelfunctie; (ii) veranderingen van de voorraad en de vraag. (i)veranderingen in de doelfunctie Veronderstel eerst dat de coëfficiënt c ij van een niet-basis-variabele x ij wordt gewijzigd. Uit het voorafgaande volgt dat de huidige basis optimaal blijft zolang c ij u i + v j. Voorbeeld 2.1 (vervolg) Beschouw de waarde van c 32 (de huidige waarde is 13). Omdat u 3 = 5 en v 2 = 5,is de huidige oplossing optimaal voor c Veronderstel vervolgens dat de coëfficiënt c ij van een basis-variabele x ij wordt gewijzigd. Stel c ij = λ en bereken opnieuw de u i en v j waarden als functie van λ. Door te eisen dat c ij u i + v j voor alle (i, j) met x ij niet in de basis, krijgen we het bereik van c ij waarvoor de huidige oplossing optimaal is. Voorbeeld 2.1 (vervolg) Beschouw de waarde van c 31 (de huidige waarde is 8). De berekening van de u i s en de v j s doen we in onderstaand tableau λ λ 3 λ Er moet gelden: 13 λ + 2; 9 λ 3; 4 6 λ; 6 8 λ. Hieruit volgt: 2 λ 11, zodat de huidige oplossing optimaal blijft voor 2 c (ii) Veranderingen van de voorraad en de vraag We beschouwen het geval dat de voorraad in één depot, zeg depot i, met λ verandert en dat de vraag in één bestemming, zeg bestemming j, met eveneens λ verandert (λ mag zowel positief als negatief zijn). Merk op dat Σ m i=1 a i = Σ n j=1 b j blijft gelden en dat volgens de dualiteitsstelling van de lineaire programmering geldt: nieuw optimum (2.2) = nieuw optimum (2.3) = Σ m i=1 a iu i + Σ n j=1 b jv j + λ(u i + v j ) = oude optimum +λ(u i + v j ), 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 x ij een basis-variabele is: Vervang x ij door x ij +λ mits λ zdd. x ij +λ 0. Het is duidelijk dat x toelaatbaar is en optimaal, want (u, v) blijft optimaal. 12

17 Voorbeeld 2.1 (vervolg) Neem het eerste depot en ook de eerste bestemming. Voor λ 15 is de verandering in de optimale oplossing: x 11 = 15 + λ en het optimum = λ(0 + 3) = λ. Beschouw vervolgens het geval dat x ij een niet-basis-variabele is: In de boom is een unieke keten van i naar j. Doorloop deze keten, beginnend met (i, k) en vermeerder en verminder afwisselend de bijbehorende basisvariabelen met λ, beginnend door x ik te vermeerderen met λ. Ga door tot knooppunt j is bereikt. Omdat een oneven aantal veranderingen heeft plaats gehad, is er in rij i en kolom j een hoeveelheid λ bijgekomen, d.w.z. de voorraad in depot i en de vraag in bestemming j is met λ toegenomen. λ moet nu nog wel voldoen aan de eis dat de nieuwe variabelen niet-negatief zijn. De verkregen oplossing is dan weer toelaatbaar en ook optimaal, omdat (u, v) optimaal is voor (2.3). Voorbeeld 2.1 (vervolg) Neem het eerste depot en de tweede bestemming. De keten is: depot 1 bestemming 1 depot 2 bestemming 2. De veranderingen zijn: x 11 = 15 + λ, x 21 = 5 λ, x 21 = 10 + λ. Voor 10 λ 5 blijven dezelfde variabelen in de basis. Het optimale tableau voor λ = 4 staat hieronder: 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 a i beschikbaar, i = 1, 2,..., m. Naar product j is een vraag d j die moet worden gemaakt uit minstens m j nieuw materiaal en verder uit gerecyclede materialen. Als gerecycled materiaal wordt gebruikt voor product j, dan kan van iedere eenheid van het gerecyclede materiaal slechts de fractie t j effectief worden gebruikt. Gevraagd wordt naar een productieproces dat zo min mogelijk nieuw materiaal gebruikt. Laat v j de hoeveelheid nieuw materiaal zijn voor product j en laat x ij de hoeveelheid van gerecycled materiaal i zijn dat wordt gebruikt voor product j. Bovenstaand probleem kan dan als volgt als LP-probleem worden geformuleerd: n j=1 n x ij a i, 1 i m min v j t j m i=1 x ij + v j d j, 1 j n j=1 v j m j, 1 j n x ij 0 voor alle (i, j) (2.5) 13

18 Neem als depots {0, 1,..., m} en de bestemmingen {1, 2,..., n}. Laat c 0j = t j, j = 1, 2,..., n en c ij = 0, 1 i m, 1 j n. Neem verder x 0j = v j m j t j, j = 1, 2,..., n, dan is c 0j x 0j = t j x 0j = v j m j = het extra nieuwe materiaal voor product j, j = 1, 2,..., n. De doelfunctie is dus equivalent met n j=1 c 0jx 0j = m i=0 n j=1 c ijx ij. Merk verder op dat: v j m j x 0j 0, j = 1, 2,..., n en t j m i=1 x ij +v j d j m i=1 x ij d j v j t j Noem d j m j t j = d j m j t j v j m j t j m i=0 x ij d j m j t j, j = 1, 2,..., n. = b j, j = 1, 2,..., n. Het is nu in te zien dat (2.5) equivalent is met: m min i=0 n c ij x ij j=1 n j=1 x ij m i=1 x ij x ij a i, 1 i m b j, 1 j n 0, 0 i m, 1 j n Probleem (2.6) is van het type (2.1), zodat deze toepassing is op te lossen als transportprobleem. (2.6) 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 = , a = en b = 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

19 A B C D E F 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 depot Voor iedere eenheid die de eerste klant niet ontvangt moet een boete van 90 euro worden betaald, bij de tweede klant is een dergelijke boete 80 euro en bij de derde klant 110 euro. a. Formuleer een transportprobleem dat de som van de transportkosten en de boetes minimaliseert; los vervolgens dit probleem met de hand op. b. Veronderstel dat het bedrijf voor 100 euro per eenheid de voorraad in depot 1 en/of depot 2 kan aanvullen, en dat alle klanten de door hen verlangde hoeveelheid moeten ontvangen. Formuleer het probleem dat de som van de transportkosten en de aanvulkosten minimaliseert eveneens als een transportprobleem. Los het geformuleerde transportprobleem met de hand op. Opgave 5 Een bedrijf produceert 3 soorten staal in 3 verschillende fabrieken. De tijd (in minuten) nodig voor de productie van 1 ton staal (onverschillig welk soort) en de productiekosten (in honderden euro s) voor ieder soort staaal staan voor iedere fabriek in onderstaande tabel: staal 1 staal 2 staal 3 tijd fabriek fabriek fabriek 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

20 Opgave 6 Een bedrijf moet van een product de komende 4 maanden 5000, 8000, resp 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 Transportkosten naar Tussenpunt Punt 4 Punt 5 Punt 6 Punt 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 =, a = en b =

21 b. Wat wordt de optimale oplossing bij de volgende veranderingen: (i) c 13 = 1; (ii) c 11 = 6; (iii) c 21 = 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 = , a = 10 en b = 8. 6 α 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 d j (in kg) gevraagd, waarvoor minstens m j kg nieuw papier moet worden gebruikt, 1 j 13. Van het gerecyclede materiaal kan voor de nieuwe papiersoort j slechts de fractie t j effectief worden gebruikt (1 j 13) en bovendien is niet al het gerecycelde materiaal geschikt voor ieder nieuw product. Zij S j {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 d j m j t j S j {1, 2} {1, 2, 3, 4} {2, 3, 4, 5, 6} {2, 3, 4, 5, 6} {5, 6} {4, 5, 6} {7, 8, 10} {7, 8, 10} {1, 2, 4} {10} {6} {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} {1, 2, 3, 4, 5, 6, 7, 8, 9, 10} Van gerecycled soort i is een hoeveelheid van 3100 kg beschikbaar, 1 i 10. Los het volgende probleem als transportprobleem op: Welk productieproces voldoet aan de vraag, terwijl er zo min mogelijk nieuw papier voor wordt gebruikt? Gebruik het computerpakket om de optimale oplossing te bepalen. 17

22 Hoofdstuk 3 Toewijzingsprobleem 3.1 Probleemstelling en LP-formulering Een belangrijk speciaal geval van het transportprobleem krijgen we als n = m en a i = b j = 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 één. Voor iedere combinatie van project i en divisie j is een bepaald getal c ij bekend, zijnde de kosten als project i door divisie j wordt uitgevoerd. Zij x ij = 1 als project i door divisie j wordt uitgevoerd en x ij = 0 als dit niet het geval is. Dit geeft de volgende LP-formulering van het toewijzingsprobleem (omdat voor dit probleem net als bij het transportprobleem iedere basisoplossing geheeltallig is, mogen we de eis dat x ij = 0 of 1 weglaten): n min i=1 n c ij x ij j=1 n j=1 x ij = 1, 1 i n n i=1 x ij = 1, 1 j n x ij 0 voor alle (i, j) (3.1) Het duale probleem van (3.1) luidt: n max u i + i=1 n v j u i + v j c ij voor alle (i, j) j=1 (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 één x-variabele gelijk aan 1 heeft. Dit betekent dat voor een basisoplossing (die volgens de theorie van het transportprobleem m + n 1 = 2n 1 x-variabelen bevat) precies n variabelen de waarde 1 hebben, terwijl de overige n 1 x-variabelen van de basis de waarde 0 bezitten. Iedere basis is dus sterk gedegenereerd. Dit is de reden dat het oplossen van een toewijzingsprobleem, alsof het een transportprobleem is, vaak tot zeer veel iteraties leidt (in theorie kan zelfs cycling voorkomen, maar in de praktijk komt dit bijna nooit voor). Daarom zijn voor dit model speciale algoritmen ontwikkeld, waarvan we de Hongaarse methode zullen bespreken. Deze is ontwikkeld door H. Kuhn en gebaseerd op het werk van Hongaarse wiskundigen over koppelingen in een bipartiete graaf 1. 1 Zie het college Discrete Wiskunde. 18

23 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 De voetbalbond wil de scheidsrechters die wedstrijden laten leiden zódat 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): x ij {c ij u i v j } = 0 voor alle (i, j) (3.3) Wanneer x nu ook nog toelaatbaar is voor (3.1), dan volgt uit de theorie van de lineaire programmering dat x optimaal is voor (3.1) en (u, v) optimaal is voor (3.2). Als startoplossing nemen we: { ui = min 1 j n c ij voor i = 1, 2,..., n v j = min 1 i n {c ij u i } voor j = 1, 2,..., n Voor iedere (i, j) geldt: v j c ij u i, dus (u, v) is toelaaatbaar voor (3.2). Laat S = {(i, j) u i + v j = c ij }. We nemen x ij = 0 als (i, j) / S. Hoe x op S ook wordt gekozen, op deze wijze is altijd voldaan aan (3.3). Beschouw de gereduceerde kostenmatrix, waarin iedere c ij is vervangen door d ij = c ij u i v j. 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 één 0. { 1, (i, j) S S = {(i, j) d ij = 0}, dus als x ij =, dan is aan (3.3) voldaan. 0, (i, j) / S Voorbeeld 3.1 (vervolg) We starten met u 1 = 45, u 2 = 35, u 3 = 50, u 4 = 40, v 1 = 0, v 2 = 0, v 3 = 0 en v 4 = 90. We schrijven deze gegevens als volgt in een tableau met linksboven de waarde van de doelfunctie van (3.2): 19

24 Veronderstel dat de matrix D n onafhankelijke nullen heeft (d.w.z. nullen die in verschillende rijen en kolommen voorkomen). Door op deze plaatsen x ij = 1 te nemen en x ij = 0 te stellen op de overige plaatsen krijgen we een x die toelaatbaar is voor (3.1), en dus optimaal is. Vandaar dat we het maximum aantal onafhankelijke nullen gaan bepalen. Volgens de stelling van König en Egerváry 2 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{d ij i I, j J}. Merk op dat d positief is. Verander (u, v) en D als volgt: { { ui + d i I u i := u i i / I ; v vj j J j := v j d j / J ; d ij := d ij + d d ij d d ij i / I, j / J i I, j J anders Het is eenvoudig in te zien dat voor de nieuwe waarden weer geldt: u i +v j c ij en d ij = c ij u i v j 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 u i in rij i van C, i = 1, 2,..., n. Construeer een nieuwe matrix C door in C van rij i het getal u i af te trekken, i = 1, 2,..., n. b. Bepaal in C in kolom j het kleinste getal v j, j = 1, 2,..., n. Construeer de gereduceerde kostenmatrix D door in C van kolom j het getal v j af te trekken, j = 1, 2,..., n. 2 Stelling 16.2 in het dictaat Discrete Wiskunde. 3 Zie het college Grafentheorie. 20

25 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 u i met d als de desbetreffende rij niet is doorgestreept en verlaag v j met d als de desbetreffende kolom wel is doorgestreept; de waarde van de doelfunctie stijgt met (n s) d. c. Trek d af van alle elementen van de gereduceerde kosten matrix die niet zijn doorgestreept; tel d op bij alle elementen die zowel door een horizontale als een vertikale lijn zijn doorgestreept. d. Ga naar stap 2. Stap 4 Neem x ij = 1 als het bijbehorende element van de gereduceerde kostenmatrix een onafhankelijke nul is; neem anders x ij = 0. Deze x is een optimale oplossing van het toewijzingsprobleem. Voorbeeld 3.1 (vervolg) Passen we het algoritme toe, dan krijgen we (de 0 s geven de s onafhankelijke nullen en een u i of vj geeft aan dat rij i resp. kolom j wordt doorgestreept): s = 3; d = s = 4; optimaal De optimale oplossing luidt: x 12 = x 21 = x 33 = x 44 = 1 (de overige variabele zijn 0) met waarde 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 u i + n j=1 v j + 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

26 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 x ij = 1: Als c ij kleiner wordt, dan zal deze toewijzing zeker nog worden gekozen. Als c ij 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 x ij = 0: Als c ij groter wordt, dan zal deze toewijzing zeker nog steeds niet worden gekozen. Als c ij kleiner wordt, zeg met λ afneemt, dan is de huidige oplossing nog steeds niet optimaal zolang λ d ij. Voorbeeld 3.1 (vervolg) Neem (i, j) = (1, 2): de huidige oplossing is in ieder geval optimaal als c = 75. Neem (i, j) = (1, 1): de huidige oplossing is in ieder geval optimaal als c = Opgaven Opgave 1 Los het toewijzingsprobleem op voor de volgende kosten matrix: Opgave 2 Zes werknemers zijn beschikbaar om zes opdrachten uit te voeren. Iedere werknemer kan slechts één 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 O O O O O O

27 Opgave 3 Drie werkzaamheden moeten worden uitgevoerd, ieder door één 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 c ij 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 P P P P P 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 O O O O a. Als iedere werknemer slechts één opdracht mag uitvoeren, welke toewijzing minimaliseert de totale tijdsduur van alle werknemers? b. Als iedere werknemer maximaal twee opdrachten mag uitvoeren, welke toewijzing minimaliseert dan de totale tijdsduur van alle werknemers? Opgave 5 Ieder transportprobleem kan worden geformuleerd als een toewijzingsprobleem. Bepaal, om het idee waar dit op gebaseerd is te illustreren, een toewijzingsprobleem om het volgende transportprobleem op te lossen: 3 5 C = 6 2, a = en b = ( 4 2 ). 23

28 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 één uur tijdsverschil zitten. Het vluchtschema is hieronder gegeven. Vlucht- Vertrek Aankomst Vlucht- Vertrek Aankomst nummer New York Chicago nummer Chicago New York Toelichting op tijdsverschillen in linker (New York - Chicago) en rechter deel (Chicago - New York) van de tabel: de tijden zijn lokale tijden; er is één 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

29 Hoofdstuk 4 Project Planning 4.1 Probleemstelling en modellering Probleemstelling Een project bestaat uit een aantal activiteiten die gedeeltelijk afhankelijk en gedeeltelijk onafhankelijk van elkaar kunnen worden uitgevoerd: sommige activiteiten kunnen tegelijkertijd worden uitgevoerd, andere kunnen pas starten als bepaalde andere activiteiten klaar zijn. Iedere activiteit heeft een zekere - deterministische of stochastische - tijdsduur, waarin deze kan worden uitgevoerd. We zijn geïnteresseerd in vragen als: - Wat is de kortste tijdsduur van het totale project? - Wat is het vroegste en wat is het laatste tijdstip waarop een activiteit kan starten zonder dat daardoor de totale tijdsduur van het project verandert? We zullen twee technieken bespreken: CPM en PERT. PERT is vooral geschikt voor problemen waarin de tijdsduur van de activiteiten onzeker, d.w.z. stochastisch, is; CPM is juist geschikt voor problemen met een deterministische tijdsduur. Voorbeeld 4.1 Veronderstel dat een bouwproject verdeeld kan worden in de activiteiten A, B,..., N. De tijdsduur van de activiteiten is deterministisch. Deze tijden en de volgorde beperkingen staan in onderstaande tabel. Wat is de kortste tijdsduur van het totale project? Hoe moet de planning zijn om deze te bereiken? Activiteit Tijdsduur Voorganger Activiteit Tijdsduur Voorganger A 4 - H 1 B B 3 - I 4 C, H C 3 - J 2 G, E D 2 B K 3 F, J E 2 B L 4 G, E F 4 A, D M 2 I, N G 3 A, D N 3 C, H 25

30 Modellering Om een project te modelleren wordt een netwerk gebruikt, d.w.z. een gerichte graaf waarbij aan iedere pijl een getal is toegekend. De pijlen corresponderen met de activiteiten en de getallen bij de pijlen met de tijdsduur; de knooppunten komen overeen met bepaalde stadia waarin de realisatie van het project verkeert. Zo is er een knooppunt dat correspondeert met het begin en een knooppunt dat correspondeert met het einde van het project. Aan het netwerk leggen we de eis op dat er geen evenwijdige pijlen in mogen voorkomen. Het is altijd mogelijk hieraan te voldoen door dummy activiteiten (activiteiten met tijdsduur 0) in te voeren. In het Voorbeeld 4.1 heeft activiteit M als voorgangers I en N. Deze situatie kan dus niet gerepresenteerd worden door twee evenwijdige pijlen voor I en N, gevolgd door pijl M. In plaats daarvan voeren we een dummypijl P in en modelleren we het als: I P N M Door eventueel aan ieder paar activiteiten I en J met I een directe voorganger van J een dummy, zeg IJ, toe te voegen en dit te modelleren als I IJ 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? bekend. Voorbeeld 4.1 (vervolg) Hiervoor is geen goede methode Onderstaand netwerk, met één dummy (P), geeft een goed model van het probleem uit voorbeeld F 7 A D G J K 1 B 2 E L 5 H 6 C M N P 4 I

31 Het netwerk mag geen geen ronde bevatten, want anders is er inconsistentie (waarom?). De knooppunten kunnen dan altijd zó genummerd worden dat de pijlen van een laag naar een hoger nummer lopen (zie voorbeeld 4.1). Ga na dat deze nummering op eenvoudige wijze gevonden kan worden door de volgende procedure uit te voeren : Stap 1: i = 1. Stap 2: a. Kies een knooppunt zonder binnenkomende pijlen en geef dit nummer i. b. Laat knooppunt i en de daarvan uitgaande pijlen weg. Stap 3: a. i := i + 1. b. Ga naar stap 2, tenzij alle knooppunten genummerd zijn (dan stopt het algoritme). 4.2 Berekening van het kritieke pad De activiteiten van het project corresponderen met de pijlen; van de knooppunten kunnen we zeggen dat ze de toestanden van het project voorstellen. Voor iedere toestand j gaan we twee grootheden berekenen: het vroegste tijdstip e j en het laatste tijdstip l j. 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 t ij de tijdsduur van de activiteit met beginpunt i en eindpunt j is. { e 1 = 0 e j = max{e i + t ij (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 e 1, e 2,..., e n inderdaad sequentieel worden berekend. Het laatste tijdstip is het tijdstip waarop tenminste één activiteit met deze toestand als beginpunt moet starten om de totale tijdsduur van het project niet boven e n uit te laten komen. berekening van deze getallen gaat met achterwaartse recursie: { ln = e n l i = min{l j t ij (i, j) is een pijl van het netwerk}, i = n 1, n 2,..., 1. De Aan iedere activiteit (i, j) kunnen we ook een speling s ij toekennen: s ij = l j e i t ij. De speling s j van toestand j is gedefinieerd door s j = l j e i. 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 e n 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

32 Voorbeeld 4.1 (vervolg) Voor het voorbeeld verlopen de berekeningen als volgt: Berekening vroegste tijdstippen e j Berekening laatste tijdstippen l i Toestand j Voorgangers i e i + t ij e j Toestand i Opvolgers j l j t ij l i Toestand Speling Activiteit Speling Activiteit Speling 1 0 A 1 J B 0 K C 4 L D 0 M E 3 N F 1 P G H I 3 Het kritieke pad is: , 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

33 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 éénmaal 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 x j = tijdstip waarop knooppunt j bereikt wordt, j = 1, 2,..., n. Als t ij de tijdsduur van activiteit (i, j) is, dan moet dus gelden: x j x i + t ij. De totale tijdsduur van het project is x n x 1, zodat de lengte van het kritieke pad gevonden wordt als oplossing van het LP probleem min{x n x 1 x j x i + t ij voor alle (i, j)}. (4.1) Hoe wordt nu het kritieke pad gevonden? Beschouw daartoe het duale LP-probleem. Laat x ij de duale variabele zijn behorende bij activiteit (i, j). Het duale probleem heeft de volgende gedaante (in formulering (4.1) staat voor de pijl (i, j) een +1 bij het eindpunt en een -1 bij het beginpunt): max (i,j) t ij x ij j x 1j = 1 j x ij + j x ji = 0, i = 2, 3,..., n 1 j x jn = 1 x ij 0 voor alle (i, j) (4.2) De matrix van beperkingen van probleem (4.2) is de incidentiematrix van het netwerk. Hieruit volgt 1 dat de hoekpunten, en dus ook een optimale oplossing, geheeltallig is. Dit impliceert dat x 1j = 1 voor precies één waarde van j en x jn = 1 voor eveneens precies één 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 x 9 x 1 onder de voorwaarden: 1 Voor het bewijs verwijzen we naar het College Grafentheorie. 29

34 x 1 + x 3 4 x 1 + x 2 3 x 1 + x 4 3 x 2 + x 3 2 x 2 + x 5 2 x 3 + x 7 4 x 3 + x 5 3 x 2 + x 4 1 x 4 + x 8 4 x 5 + x 7 2 x 7 + x 9 3 x 5 + x 9 4 x 8 + x 9 2 x 4 + x 6 3 x 6 + x 8 0 De optimale oplossing is: x 1 = 0, x 2 = 3, x 3 = 5, x 4 = 4, x 5 = 8, x 6 = 7, x 7 = 10, x 8 = 8, x 9 = 13. De minimale tijdsduur van het totale project is dus 13. Het duale probleem is: max 4x x x x x x x 35 + x x x x x x x 46 onder de voorwaarden x 13 + x 12 + x 14 = 1 x 12 + x 23 + x 24 + x 25 = 0 x 13 x 23 + x 35 + x 37 = 0 x 14 x 24 + x 46 + x 48 = 0 x 25 x 35 + x 57 + x 59 = 0 x 46 + x 68 = 0 x 37 x 57 + x 79 = 0 x 48 x 68 + x 89 = 0 x 59 x 79 x 89 = 1 De optimale oplossing van het duale probleem is: x 12 = x 23 = x 35 = x 57 = x 79 = 1 en de overige variabelen zijn 0. Het kritieke pad is dus: Het nadeel van lineaire programmering t.o.v. het recursief berekenen is dat met de LP oplossing de speling niet bepaald kan worden. Het verband tussen beide technieken is dat e i x i l i voor 1 i n, waaruit volgt dat voor de speling s ij geldt: s ij = l j e i t ij x j x i t ij, d.w.z. dat de verschilvariabele van de bij activiteit (i, j) behorende beperking van (4.1) een ondergrens geeft voor de speling. Voor een krtieke activiteit (i, j) geldt: e i = x i = l i en e j = x j = l j. 30

35 4.4 Het PERT-model Tot nu toe hebben we aangenomen dat de tijdsduur van de activiteiten deterministisch is. Dit is echter in de praktijk vaak niet het geval, de tijdsduur is dan stochastisch. In het PERT-model (Project Evaluation and Review Technique) gaan we uit van stochastische tijdsduren (waartoe deterministische tijsduren als bijzonder geval behoren). We nemen aan dat we van de kansverdeling van de tijdsduur van een activiteit het volgende weten: a = optimistische (d.w.z. kortste) schatting van de tijdsduur; b = pessimistische (d.w.z. langste) schatting van de tijdsduur; m = modale (d.w.z. meestwaarschijnlijke) schatting van de tijdsduur. Merk op dat in voor deterministische tijden geldt: a = m = b. Met behulp van a, b en m willen we - onder zekere aannamen - komen tot benaderingen van de verwachting en variantie van de tijdsduur t van een activiteit. Deze benaderingen zijn gebaseerd op een drietal veronderstellingen. Aanname 1 t heeft een Beta-verdeling op het interval [a, b], d.w.z. dat de dichtheid f(t) wordt gegeven door: f(t) = { Γ(α+β) Γ(α)Γ(β) ( t a b a )α 1 ( b t b a )β 1 1 b a a t b 0 elders, (4.3) waarbij de Gammafunctie Γ(p) = 0 x p 1 e x dx (via partiële integratie is af te leiden dat Γ(p) = (p 1) Γ(p 1); voor p N is dus Γ(p) = (p 1)!). Voor deze Bèta-verdeling is af te leiden (ga dit zelf na) dat: E(t) = a + α (b a) α+β en VAR(t) = αβ (b a) 2 (α+β) 2 (α+β+1). Door de parameters α en β te variëren 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+b 6. Deze aanname berust op empirische gronden. In de praktijk blijkt deze keuze bevredigend te werken. Na enig rekenwerk volgt hieruit (ga dit eveneens zelf na) dat: (α β)(b a)(α + β 6) = 0. Als a = b (t deterministisch), dan is E(t) = a = b = m en VAR(t) = 0. Als α = β, dan is de verdeling symmetrisch en is E(t) = m = a+b 2. In het andere geval is dus α + β = 6. Aanname 3 VAR(t) = ( ) b a 2. 6 Ook deze aanname berust op empirische gronden. Als vuistregel wordt in de statistiek soms wel gebruikt dat de spreiding van waarnemingen kan worden geschat op 6 standaardafwijkingen. 31

36 Bovenstaande drie aannamen impliceren dat òfwel α = β = 4 òfwel α + β = 6 èn αβ = 7. Dit laatste houdt in dat α = en β = 3 2 (of omgekeerd α = 3 2 en β = 3 + 2). In het PERT-model gebruiken we voor een activiteit a+4m+b 6 als schatting van de tijdsduur en verder gaat het zoals in het deterministische geval. Aldus kunnen we een kritiek pad bepalen en is de gevonden T = e n de verwachte tijdsduur van het project. Om uitspraken te kunnen doen over de kansverdeling van de totale projectduur nemen we het volgende aan: 1. De tijdsduur van het project wordt bepaald door het kritieke pad (dit impliceert dat de verwachte tijdsduur de som is van de verwachte tijdsduur van de activiteiten op het kritieke pad). 2. De tijdsduren van de activiteiten op het kritieke pad zijn stochastisch onafhankelijk (dit impliceert dat de variantie van de totale tijdsduur de som is van de varianties van de tijdsduur van de activiteiten op het kritieke pad). 3. De totale projectduur is normaal verdeeld (dit houdt in dat met behulp van een tabel van de standaard normale verdeling vragen kunnen worden beantwoord als: Wat is de kans dat het project in een zekere gegeven tijd af is?. Voorbeeld 4.2 Beschouw de installatie van een computergestuurd productiesysteem. Bij aanvang zijn er drie activiteiten, die tegelijk kunnen plaats vinden: installatie van de machine (A), ontwikkeling van het systeem (B) en het aantrekken van bedienend personeel (C). Nadat de machine is geïnstalleerd moet deze worden getest (D), en als het systeem is ontwikkeld dan volgt er een eerste controle (E). Zodra er personeel is aangetrokken kan dit worden opgeleid (F), en kan het huidige personeel worden voorgelicht over de op handen zijnde veranderingen (G). Als de activiteiten A, E en F klaar zijn dan wordt er met het systeem geoefend (H) en wordt het systeem uitgetest (I). Na het testen van de machine (D) wordt er nog een laatste totale controle uitgevoerd (J), en nadat de activiteiten G, I en H klaar zijn wordt de administratieve overgang naar het nieuwe systeem geëffectueerd (K). Het bijbehorende netwerk is (de activiteiten L en M zijn dummies): 2 A L 6 1 B 3 D J E 5 H 8 K 9 C 4 F G I M 7 32

37 De getallen a, m, b en de daaruit afgeleide verwachting ( a+4m+b 6 ) 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 l j en de speling s ij 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) e i l j s ij 4 A = (1,2) B = (1,3) C = (1,4) d = (2,6) E = (3,5) f = (4,5) G = (4,7) H = (5,8) I = (5,7) J = (6,9) K = (8,9) L = (2,5) M = (7,8) 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 = 25 en variantie = 9. Om de tabel van de normale verdeling te kunnen gebruiken moeten we de tijdsduur T van het kritieke pad transformeren tot een variabele met verwachting 0 en variantie 1: X = T E(T ) = T q 25, d.w.z. T = 25 + V ar(t ) X. Uit de tabel van de normale verdeling volgt: P(T 30) = P(X = 1.91) = = De kans dat het project in 30 weken af is, is dus 97%. 4.5 Projectplanning met kosten Tot nu toe hebben we alleen rekening gehouden met de tijdsduur van een project. Behalve de factor tijd speelt ook het kostenaspect vaak een belangrijke rol bij het plannen van projecten. We zullen in deze paragraaf aandacht schenken aan de directe kosten van de activiteiten. Dit zijn met name arbeidskosten en voor iedere activiteit nemen we aan dat de directe kosten een lineaire niet-stijgende functie van de tijdsduur zijn, de kosten nemen dus lineair af als de tijdsduur langer mag zijn, waarbij we aannemen dat voor activiteit (i, j) de tijdsduur y ij tussen een minimale waarde a ij en een maximale waarde b ij ligt. Als k(y ij ) deze kosten voorstelt, dan geldt: k(y ij ) = c ij y ij v ij met a ij y ij b ij, waarbij v ij 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

38 Aanpak via lineaire programmering We willen de totale directe kosten minimaliseren, d.w.z. min (i,j) (c ij y ij v ij ) wat equivalent is met (i,j) c ij max (i,j) y ijv ij. Dus voor de beslissing welke y ij s optimaal zijn spelen de getallen c ij geen rol spelen, ze zijn alleen van belang voor de hoogte van de kosten. Als beperkingen hebben we: a ij y ij b ij voor alle (i, j) en de eis dat de totale tijdsduur hoogstens T is. We introduceren de volgende variabelen: x k = tijdstip waarop alle activiteiten met als eindpunt knooppunt k klaar zijn. Er moet dus gelden: x i + y ij x j voor alle (i, j). Dit levert het volgende lineaire programmeringsprobleem op: x i + y ij x j 0 voor alle (i, j) max v ij y ij x n x 1 T (i,j) a ij y ij b ij voor alle (i, j) (4.4) Voorbeeld 4.3 Beschouw onderstaand netwerk met de in de tabel gegeven getallen a ij, b ij, c ij en v ij. Neem T = (i, j) a ij b ij c ij v ij (1,2) (1,3) (2,4) (2,5) (3,4) (4,5) Het bij het voorbeeld behorende lineaire programmeringsprobleem luidt: max 50y y y y y y 45 onder de voorwaarden y 12 + x 1 x 2 0 y 13 + x 1 x 3 0 y 24 + x 2 x 4 0 y 25 + x 2 x 5 0 y 34 + x 3 x 4 0 y 45 + x 4 x 5 0 x 1 + x y 12 8; 2 y 13 4; 1 y 24 2; 5 y 25 10; 1 y 34 5; 1 y 45 5 Een optimale oplossing (via het computerpakket verkregen) luidt: y 12 = 6; y 13 = 4; y 24 = 2; y 25 = 6; y 34 = 4; y 45 = 4; x 1 = 0; x 2 = 6; x 3 = 4; x 4 = 8; x 5 =

39 4.6 Een alternatief model We kunnen ook een ander model opstellen, waarbij de activiteiten geen pijlen, maar knooppunten zijn. Laat V de verz. van de activiteiten zijn en t i de tijdsduur van activiteit i, i V. De pijlen A corresponderen met de volgorde restricties: (i, j) A d.e.s.d. als activiteit j de activiteit i als voorganger heeft, en zo n pijl krijgt de lengte t i. Verder nemen we een beginactiviteit s met tijdsduur 0, en we trekken een pijl van s naar i d.e.s.d. als i geen voorganger heeft; evenzo nemen we een eindactiviteit t met tijdsduur 0, en we trekken een pijl van j naar t d.e.s.d. j geen opvolger heeft. Ieder pad van s naar t moet worden doorlopen. Bepaling kritieke pad Zij u i 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{u t u s u j u i + t i voor alle (i, j) A}. (4.5) Het kritieke, d.w.z. langste, pad kan weer worden gevonden via het duale LP-probleem. Laat y ij 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) t i y ij j y sj = 1 j y ij + j y ji = 0, i s, t j y jt = 1 y ij 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 {u t u s } onder de voorwaarden: u A u s 0; u B u s 0; u C u s 0; u D u B 3; u E u B 3; u F u A 4; u F u D 2; u G u A 4; u G u D 2; u H u B 3; u I u C 3; u I u H 1; u J u G 3; u J u E 2; u K u F 4; u K u J 2; u L u G 3; u L u E 2; u M u I 4; u M u N 3; u N u C 3; u N u H 1; u t u K 3; u t u L 4; u t u M 2; Een optimale oplossing is: u s = 0, u A = 1, u B = 0, u C = 1, u D = 3, u E = 6, u F = 6, u G = 5, u H = 3, u I = 7, u J = 8, u K = 10, u L = 9, u M = 11, u N = 4 en u t = 13. De minimale tijdsduur van het totale project is dus

40 Het duale probleem is: max {4y AF + 4y AG + 3y BD + 3y BE + 3y BH + 3y CI + 3y CN + 2y DF + 2y DG + 2y EJ + 2y EL + 4y F K + 3y GJ + 3y GL + y HI + y HN + 4y IM + 2y JK + 3y Kt + 4y Lt + 2y Mt + 3y NM } onder de voorwaarden y sa y sb y sc = 1; y sa y AF y AG = 0; y sb y BD y BE = 0; y sc y CI y CN = 0; y BD y DF y DG = 0; y BE y EJ y EL = 0; y AF +y DF y F K = 0; y AG +y DG y GJ y GL = 0; y BH y HI y HN = 0; y CI + y HI y IM = 0; y GJ + y EJ y JK = 0; y F K + y JK y Kt = 0; y GL +y EL y Lt = 0; y IM +y NM y Mt = 0; y NM +y CN +y HN = 0; y Kt +y Lt +y MT = 1. De optimale oplossing van het duale probleem is: y sb = y BD = y DG = y GJ = y JK = y Kt = 1 en de overige variabelen zijn 0. Het kritieke pad is dus: B D G J K. Just-in-time scheduling Veronderstel dat voor een tweetal van activiteiten i en j, waarvoor geldt dat i een voorganger is van j, moet gelden dat j niet later mag starten dan t ij tijdseenheden nadat activiteit i is gestart. Het is duidelijk dat moet gelden t ij t i (anders is er inconsistentie). Dit soort voorwaarden komt voor in logistieke problemen, zoals distributieproblemen, wanneer bijvoorbeeld sprake is van bederf van goederen. Laat B A de deelverz. zijn van de tweetallen (i, j) waarvoor een dergelijke eis met due time t ij geldt. Het bijbehorende LP-probleem luidt dan: { u j u i + t i, (i, j) A min u t u s u j u i + t ij, (i, j) B }. (4.7) Als we in het netwerk ook { de pijlen (j, i) opnemen voor alle (i, j) B, en de lengtefunctie l ti voor alle (i, j) A introduceren met l ij = dan is het duale probleem van (4.7) het t ij voor alle (j, i) B, onderstaande probleem, dat weer als een langste pad probleem in het netwerk met pijlen corresponderend met A B kan worden beschouwd. j y sj = 1 max l ij y ij j y ij + j y ji = 0, i s, t (i,j) j y jt = 1 y ij 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 s en j t er kosten c ij zijn per tijdseenheid dat u j groter is dan u i + l ij. Als doelstelling nemen we nu om de totale kosten te minimaliseren. Dit geeft het volgende LP-probleem: min (i,j) [u j u i l ij ]c ij u t u s T u j u i + l ij, voor alle (i, j) (4.9) 36

41 Het duale probleem van (4.9) is: max l ij y ij T y ts (i,j) y ts j y sj = 0 j y ij + j y ji = j c ij + j c ji, i s, t y ts + j y jt = 0 y ij 0 voor alle (i, j) Probleem (4.10) is een minimale kostenstroom in een circulatienetwerk 2 (4.10) (het oorspronkelijke netwerk met daaraan toegevoegd de pijl (t, s)). De kosten op de pijl (i, j) zijn l ij als (i, j) (t, s) en T voor de pijl (t, s). Voor de nettoproductie s i in knooppunt i geldt: { 0 i = s, t s i = j c ij + j c ji, i s, t Tenslotte beschouwen we het model waarbij de activiteiten - tegen extra kosten - sneller kunnen worden uitgevoerd: laat c(x i ) = c i x i v i met a i x i b i en v i 0 voor activiteit i. Nemen we als beslissingsvariabelen y i de reductie van de langste tijdsduur voor activiteit i : y i = b i x i, dan wordt het LP-probleem het project binnen T tijdseenheden af te hebben tegen minimale kosten: u t u s T min v i y i u j u i [b i y i ] voor alle (i, j) (4.11) i 0 y i b i a i voor alle i Als we de substitutie w i = u i y i uitvoeren, dan wordt het probleem: u t + u s T min v i u i v i w i u j w i b i voor alle (i, j) i i u i w i 0 voor alle i u i + w i a i b i voor alle i (4.12) In de formulering van (4.12) heeft iedere rij één +1 en één -1. Dit houdt in dat het duale probleem een minimale kostenstroom probleem is. Hiervoor zijn efficiënte oplossingsmethoden beschikbaar Opgaven Opgave 1 Beschouw een project met de activiteiten A, B,..., L waarbij de volgende restricties gelden, terwijl ook de tijdsduur bekend is (zie onderstaande tabel). 2 Zie hiervoor het college Grafentheorie. 3 Zie hiervoor het college Grafentheorie. 37

42 Activiteit Tijdsduur Voorganger Activiteit Tijdsduur Voorganger A 4 - G 5 C, F B 6 - H 8 B C 3 - I 5 E, H D 7 A, B J 6 E, H E 10 B K 4 C, D, F, J F 2 B L 7 K a. Representeer dit project als netwerk en gebruik daarbij hoogstens drie dummies. b. Nummer de knooppunten zódat 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

43 a. Teken het bijbehorende netwerk zonder dummies te gebruiken. b. Bepaal het kritieke pad en de speling van alle activiteiten m.b.v. de recursieve berekeningen. c. Stel het oorspronkelijke en het duale lineaire programmeringsprobleem op en bepaal met het computerpakket de optimale oplossingen van deze problemen. d. Bepaal voor ieder van de activiteiten de zogenaamde onafhankelijke speling, d.w.z. de speling die er is onafhankelijk van de planning van de overige activiteiten en zódanig 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 euro 2 B euro 3 C euro 1 D euro 2 E euro 2 F euro 3 G euro 1 Formuleer het LP-probleem om zo goedkoop mogelijk het huis te bouwen in 22 tijdseenheden en los dit probleem op. Opgave 5 a. Toon aan dat voor de Bèta-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 òfwel α = β = 4 òfwel α + β = 6 èn αβ = 7 en dat dit laatste inhoudt dat α = 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

44 De schattingen van de tijdsduren staan in onderstaande tabel: Activiteit a m b Voorganger Activiteit a m b Voorganger A I B, E B J C C K C D A L G, H, I, J E D M G, H, I, J F D N F G B, E O L, M H B, E P 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) a ij b ij c ij v ij (1,2) (1,4) (1,5) (2,3) (2,5) (2,6) (3,4) (3,6) (4,6) (4,7) (5,6) (5,7) (6,7) a. Stel het LP-probleem op waarmee een optimale oplossing kan worden verkregen. b. Los vervolgens dit LP-probleem op. Opgave 8 Voordat een nieuw product op de markt wordt gebracht moet een aantal activiteiten met stochastische tijdsduur worden uitgevoerd. De gegevens hiervan staan in onderstaande tabel. 40

45 Activiteit Naam Voorganger a b m A Ontwerp maken B Marktonderzoek C Grondstof bestellen A D Grondstof ontvangen C E Proefmonster maken B, D F Verkoopcampagne B G Productie starten E H Winkels bevoorraden F, G 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 één 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

46 Hoofdstuk 5 Minimale opspannende boom 5.1 Probleemstelling Beschouw een niet-gerichte samenhangende graaf G = (V, E) waarin aan iedere tak (i, j) een reëel getal l ij, de lengte geheten, is toegekend. Het probleem is om in deze graaf een opspannende boom te vinden met minimale lengte. We zullen twee methoden behandelen, de methode van Prim en de methode van Kruskal. Beide methoden zijn van het type gretig algoritme, d.w.z. dat in iedere iteratiestap een keuze wordt gemaakt die, kortzichtig gezien, het beste is, d.w.z. lokaal optimaal. Het zal blijken dat deze keuzes ook leiden tot een globaal optimum. Voorbeeld 5.1 Beschouw een aantal plaatsen waarvan de onderlinge lengtes in onderstaande tabel staan. Hoe moeten deze plaatsen door electriciteitskabels worden verbonden zódat iedere plaats is aangesloten en er zo weinig mogelijk kabel wordt gebruikt? Toepassing Beschouw een inlichtingendienst die n agenten heeft zitten in vijandelijk gebied. Als agent i een bericht doorstuurt naar agent j, dan valt dit met kans p ij in vijandelijke handen. Via welke verbindingen moet een bericht worden gecommuniceerd zodat het iedere agent bereikt, terwijl de kans dat het in vijandelijke handen komt minimaal is? Om iedere agent te bereiken moeten de verbindingen minimaal een opspannende boom vormen. Extra verbindingen vergroten de kans dat het bericht in vijandelijke handen valt, dus we zoeken 42

47 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 p ij). Het probleem luidt dus: min T {1 (i,j) T (1 p ij)} max T (i,j) T (1 p ij) max T log (i,j) T (1 p ij) max T (i,j) T log(1 p ij) min T (i,j) T l ij, waarbij l ij = log(1 p ij ), zodat l ij 0 voor alle (i, j). Dit is dus het probleem van de minimale opspannende boom met lengtefunctie l ij = log(1 p ij ) 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 = l j1, j = 2, 3,..., n. 2. Zolang W V doe: a. Laat j / W met j / W zdd. β j = min k / W β k. b. W := W j; T := T (j, α j ). c. Voor iedere k / W doe: als l kj < β k : β k := l kj 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

48 Stelling 5.1 Algoritme 5.1 (methode van Prim) geeft een minimale opspannende boom en heeft complexiteit O(n 2 ). Bewijs Noem de verz. W en T aan het einde van iteratie k resp. W k en T k, 1 k n. Het is voldoende om te bewijzen (met inductie naar k) dat na de k-de iteratie de deelboom met takken T k 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 T k+1 geen deel uitmaakt van T en T k wel. Laat T k+1 uit T k zijn ontstaan door het knooppunt j aan W k toe te voegen en te verbinden met α j W k. Beschouw vervolgens T zonder de tak die T k met T \T k 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 één na kortste, etc., waarbij de tak niet wordt toegevoegd als daardoor een kring ontstaat. De takkenverz. die aldus wordt geconstrueerd is een bos T, d.w.z. een verz. componenten, waarbij elke component een deelboom is. T (i, j) bevat een kring als de knooppunten i en j beide reeds tot de knooppuntenverz. van T behoren en in dezelfde component zitten. Om dit laatste na te gaan houden we van alle knooppunten van T bij in welke component deze zitten: c i = c d.e.s.d. als knooppunt i in de c-de component zit. Het bijhouden van deze componenten gebeurt, indien (i, j) aan T toegevoegd gaat worden (dus T (i, j) bevat geen kring), als volgt: - als i en j beide niet tot T behoren: i en j komen beide in een nieuwe component; - als precies één 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 e k naar oplopende lengte: l(e 1 ) l(e 2 ). Dit leidt tot het volgende algoritme. Algoritme 5.2 (Kruskal) 1. Laat W = T = ; c i = 0, 1 i n. Sorteer de takken zdd. l(e 1 ) l(e 2 ) ; k = c = Zolang W V doe: a. Neem e k, zeg e k = (i, j). b. Als c i = c j 0 : k := k + 1 en herhaal stap 2. 44

49 c. Als c i = c j = 0 : T := T (i, j) : W := W i j; c i = c j = c; c := c + 1; k := k + 1 en herhaal stap 2. d. Als c i 0 en c j = 0 : T := T (i, j); W := W j; c j := c i ; k := k + 1 en herhaal stap 2. e. Als c i = 0 en c j 0 : T := T (i, j); W := W i; c i := c j ; k := k + 1 en herhaal stap 2. f. Als c i c j : T := T (i, j); c p := c i voor alle p W met c p = c j ; k := k + 1 en herhaal stap 2. Voorbeeld 5.1 (vervolg) Initialisatie: W = T = ; c i = 0, i = 1, 2,..., 7; k = c = 1. e 1 = (3, 5), e 2 = (4, 6), e 3 = (4, 5), e 4 = (2, 4), e 5 = (6, 7), e 6 = (2, 7), e 7 = (5, 6), e 8 = (3, 4), e 9 = (1, 3), e 10 = (2, 3), e 11 = (2, 6), e 12 = (3, 6), e 13 = (1, 5), e 14 = (2, 5), e 15 = (4, 7), e 16 = (5, 7), e 17 = (1, 2), e 18 = (1, 7), e 19 = (3, 7), e 20 = (1, 4), e 21 = (1, 6). Iteratie 1: e 1 = (3, 5); T = {(3, 5)}; W = {3, 5}; ; c 3 = c 5 = 1; c = 2; k = 2. Iteratie 2: e 2 = (4, 6); T = {(3, 5), (4, 6)}; W = {3, 5, 4, 6}; c 4 = c 6 = 2; c = 3; k = 3. Iteratie 3: e 3 = (4, 5); T = {(3, 5), (4, 6), (4, 5)}; c 3 = c 5 = 2; k = 4. Iteratie 4: e 4 = (2, 4); T = {(3, 5), (4, 6), (4, 5), (2, 4)}; W = {3, 5, 4, 6, 2}; c 2 = 2; k = 5. Iteratie 5: e 5 = (6, 7); T = {(3, 5), (4, 6), (4, 5), (2, 4), (6, 7)}; W = {3, 5, 4, 6, 2, 7}; c 7 = 2; k = 6. Iteratie 6: e 6 = (2, 7); k = 7. Iteratie 7: e 7 = (5, 6); k = 8. Iteratie 8: e 8 = (3, 4); k = 9. Iteratie 9: e 9 = (1, 3); T = {(3, 5), (4, 6), (4, 5), (2, 4), (6, 7), (1, 3)}; W = {3, 5, 4, 6, 2, 7, 1}; c 1 = 2; k = 10. Stelling 5.2 Algoritme 5.2 (methode van Kruskal) geeft een minimale opspannende boom en heeft complexiteit O(n 2 ). Bewijs Laat T de opspannende boom zijn, verkregen met Algoritme 5.2 en stel T T is een minimale opspannende boom. Stel T bestaat uit de takken t 1, t 2,..., t n 1 die ook in deze volgorde in T zijn opgenomen. Laat t k de eerste tak van T zijn die niet tot T behoort en T die minimale opspannende boom waarvoor k zo groot mogelijk is. Door t k aan T toe te voegen ontstaat een kring C die tenminste één tak bevat die niet tot T behoort, zeg tak e p. Omdat t 1, t 2,..., t k 1, e p T, bevat deze verz. takken geen kring, en omdat t k T, is dus l(t k ) l(e p ). Door T = T + t k e p 45

50 te nemen ontstaat een opspannende boom met l(t ) = l(t ) + l(t k ) l(e p ) l(t ) l(t ), zodat l(t ) = l(t ), terwijl T de takken t 1, t 2,..., t k 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 één van de onderdelen 2b t/m 2f. We zullen deze onderdelen afzonderlijk bekijken. 2a: komt in O(n 2 ) iteraties voor en heeft per iteratie complexiteit O(1). 2b: komt in O(n 2 ) iteraties voor en heeft per iteratie complexiteit O(1). 2c, 2d en 2e: komt in O(n) iteraties voor (want T kan maar n 1 keer worden uitgebreid) en heeft per iteratie complexiteit O(1). 2f: komt in O(n) iteraties voor en heeft per iteratie complexiteit O(n). De overall complexiteit van het algoritme is dus O(n 2 ). 5.4 Steiner bomen Het Steiner 1 boom probleem is het probleem om in een metrische ruimte, waarin n punten gegeven zijn, een boom met minimale lengte te vinden die deze n punten opspant, waarbij gebruik gemaakt mag worden van extra zelf te kiezen punten, de zogenaamde Steiner punten. Dit probleem lijkt op het minimale opspannende boom probleem, waarvoor een O(n 2 ) algoritme bestaat. Er kan worden aangetoond dat voor het Steiner boom probleem geen polynomiaal algoritme bestaat: het is NP-moeilijk 2. Omdat we in een metrische ruimte werken, zal een Steiner punt altijd alleen met de oorspronkelijke punten verbonden worden (ga dit zelf na). Het Steiner boom probleem kan worden beschouwd als een generalisatie van een in het begin van de 17-de eeuw door Fermat geformuleerd probleem, dat als volgt is: gegeven drie punten in het platte vlak, vind een vierde punt zódat 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 L T van een minimale opspannende boom is een triviale bovengrens van de lengte L S van een optimale Steiner boom. Zij ρ = inf {alle instanties} L s L T, dan is ρl T de beste (algemene) ondergrens is voor L S. Stelling 5.3 Voor algemene metrische ruimtes is de Steiner ratio ρ = 1 2. Bewijs Neem een optimale Steiner boom met lengte L S. Door de takken van de boom te verdubbelen ontstaat een graaf met in ieder knooppunt een even graad, d.w.z. een Euler graaf. De verbindingen van deze Euler graaf vormen een ronde met lengte 2L S, waar alle oorsponkelijke punten en de 1 genoemd naar de 19-de eeuwse wiskundige Jacob Steiner. 2 M.R. Garey, R.L. Graham and D.S. Johnson: The complexity of computing Steiner minimal trees, SIAM Journal of Applied Mathematics 32 (1977)

51 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): 2L S L C L T L S L T 1 2 ρ 1 2. Beschouw een n-dimensionale ruimte met als metriek: d(x, y) = n i=1 x i y i (ga zelf na dat dit een goede metriek is). Neem als oorspronkelijke punten de eenheidsvectoren e i, i = 1, 2,..., n. De afstand tussen ieder tweetal punten is 2, zodat een minimale opspannende boom T de lengte L T = 2n 2 heeft. Voeg het Steiner punt s = (0, 0,..., 0) toe. De afstand tussen s en e i is gelijk aan 1, i = 1, 2,..., n. De verbindingen van s naar alle e i s geven een Steiner boom met lengte n. Hieruit volgt dat ρ n 2n 2 voor alle n. Door n naar te laten gaan zien we dat ρ 1 2. Hiermee is bewezen dat voor algemene metrische ruimtes ρ = 1 2. Betere grenzen zijn mogelijk voor speciale metrische ruimtes, bijv. de n-dimensionale ruimte met de Euclidische afstand. Hiervoor werd in 1968 het vermoeden uitgesproken dat de Steiner ratio is 3. Het heeft 22 jaar geduurd voordat het bewijs hiervoor werd gevonden 4. Dit resultaat betekent dat de lengte van een Steiner boom minstens 1 2 3, d.w.z , 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 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 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 L S van een Steiner boom en de lengte L T van een minimale opspannende boom geldt: L S LT. Een eenvoudiger probleem is het Steiner netwerk probleem. Hierbij hebben we een netwerk, waarbij de lengtes voldoen aan de driehoeksongelijkheid, met knooppuntenverz. V S, waarbij V = n en S = s. De knooppunten van V moeten met elkaar worden verbonden met minimale lengte: V zijn dus de oorsponkelijke punten en de Steiner punten S zijn gegeven. 3 E.N. Gilbert and H.O. Pollak: Steiner minimal trees, SIAM Journal of Applied Mathematics 16 (1968) D.-Z. Du and F.K. Hwang: The Steiner ratio conjecture of Gilbert-Pollak is true, Proceedings National Academy of Sciences USA 87 (1990)

52 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. n + p 1 = 1 2 (px + ny). Vanwege de driehoeksongelijkheid is x 3. Hieruit volgt: n + p (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. Dan geldt: 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) a. Bepaal een minimale opspannende boom met de methode van Prim. b. Bepaal een minimale opspannende boom met de methode van Kruskal. 48

53 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 bijkantoor bijkantoor bijkantoor bijkantoor bijkantoor 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(n 2 ) 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 Bepaal voor dit probleem een optimale Steiner boom. 49

54 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 Aanvankelijk waren er alleen eenvoudige deterministische modellen, later - vanaf ongeveer ook stochastische. De modellen hebben een belangrijke beperking: ze beschouwen slechts één product. Vanaf 1970 wordt er ook gekeken naar modellen met meer producten. Dit onderwerp heeft in de literatuur de naam Manufacturing Resource Planning (MRP) gekregen. In dit hoofdstuk gaan wij daar niet verder op in: we beschouwen slechts de klassieke voorraadmodellen. Wanneer er vraag is terwijl er geen voorraad is, dan kan dit leiden tot kosten: extra kosten omdat nageleverd moet worden of kosten omdat goodwill verloren gaat. Anderzijds is het aanhouden van een grote voorraad duur: elke eenheid in voorraad brengt bepaalde kosten met zich mee, zoals renteverlies. Ook de bestelkosten om de voorraad aan te vullen spelen een rol in het geheel. De voorraadtheorie houdt zich bezig met de vraag welke bestelstrategie tot de laagste kosten leidt. Een bestelstrategie geeft antwoord op twee fundamentele vragen: - hoeveel wordt besteld? - wanneer wordt besteld? Vaak leidt dit tot zogenaamde (s, S)-strategieën: als de voorraad is gedaald tot niveau s, dan aanvullen tot niveau S. We krijgen verschillende voorraadmodellen door de volgende elementen van het model te laten variëren: 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

55 Notaties In dit hoofdstuk zullen we steeds de volgende notaties gebruiken: D: de vraag (in eenheden per tijdseenheid); P : de productiesnelheid (in eenheden per tijdseenheid); A: de vaste kosten per bestelling (ongeacht de bestelgrootte); C: de inkoopkosten (per bestelde eenheid); h: de voorraadkosten (per eenheid en per tijdseenheid); p: de boetekosten bij tekorten (per eenheid en per tijdseenheid); L: de levertijd (in tijdseenheden); Q: de hoeveelheid die besteld wordt (in eenheden); I: de voorraad die aanwezig is (in eenheden); r: het voorraadniveau waarop een bestelling geplaatst wordt; S: het hoogste voorraadniveau; s: het laagste voorraadniveau (negatief bij tekorten). Voorbeeld 6.1 Een zaak verkoopt een bepaalde stof. De vraag naar deze stof is deterministisch, continu en bedraagt D meter per jaar. Het is niet toegestaan dat er tekorten ontstaan. Als er een bestelling plaatsvindt, dan zijn de kosten C euro per bestelde meter en A euro per bestelling. Bestellingen worden direct geleverd. De voorraadkosten bedragen h euro per meter per jaar. Wat is een optimale voorraadstrategie? In verband met de directe levering en het niet toegestaan zijn van tekorten, is het duidelijk dat in een optimale strategie besteld wordt zodra de voorraad nul is. Veronderstel dat er dan een hoeveelheid Q wordt besteld. We moeten Q zó bepalen dat de bijbehorende kosten minimaal zijn. We kunnen de kosten als volgt uitrekenen: Bestelkosten: per jaar D Q bestellingen en er moet in totaal D worden besteld: D Q A + DC. Voorraadkosten: de gemiddelde voorraad is 1 2 Q, zodat de voorraadkosten per jaar 1 2 h Q zijn. Voor de totale kosten K als functie van de bestelgrootte Q geldt: K(Q) = D Q A + DC hq. De optimale waarde van Q, zeg Q, vinden we door deze functie te differentiëren en de afgeleide 0 te stellen: K (Q) = DAQ h = 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 D Q A = ADh 2 en de voorraadkosten zijn 1 2 hq ADh = 2. Beide kosten zijn dus in het optimum aan elkaar gelijk. 51

56 6.2 Continue deterministische modellen In deze paragraaf bespreken we modellen met een constante deterministische vraag D en waarvoor geldt dat er op ieder tijdstip (d.w.z. continu) een order kan worden geplaatst. We krijgen vier modellen het volgende te variëren: 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: S r 0 s T 1 T 2 T 3 T 4 productie geen productie We begruiken de volgende notaties: T 1 = tijdsduur totdat de productie het tekort heeft opgeheven; T 2 = tijdsduur waarin de productie de voorraad kweekt; T P = tijdsduur dat er geproduceerd wordt = T 1 + T 2 ; T 3 = tijdsduur waarin de maximale voorraad S door de vraag wordt verbruikt; T 4 = tijdsduur waarin het laagste voorraadniveau (maximale tekort) s ontstaat; T = tijdsduur cykel = T 1 + T 2 + T 3 + T 4. 52

57 Voor dit model gelden de volgende relaties, waarbij Q = de hoeveelheid die in een cykel wordt geproduceerd): 1. Q = T D (de hoeveelheid Q wordt in tijdsduur T opgemaakt met snelheid D). 2. Q = T P P (Q = productiesnelheid P productietijd T P ). 3. T 1 (P D) = s; T 2 (P D) = S; T P (P D) = S s (de voorraad wordt met snelheid P D opgebouwd). 4. T 3 D = S; T 4 D = s; (T 3 + T 4 )D = S s (de voorraad wordt met snelheid D verbruikt). Met bovenstaande relaties kunnen de verschillende kosten worden bepaald. Laat R = 1 D P er directe levering is, dan is P = en R = 1). Omdat Q = T D = T P P, geldt: (als R = 1 D P = 1 T P T = T 3+T 4 T = (T 3+T 4 )D T D = S s Q S = s + QR. We kunnen dus de kosten (per tijdseenheid) uitdrukken in de beslissingsvariabelen Q en s. Bestelkosten Een cykel heeft tijdsduur T = Q D en daarin wordt één bestelling gedaan. Het aantal bestellingen per tijdseenheid is dus 1 T, zodat de bestelkosten per tijdseenheid zijn: 1 T (A + QC) = D Q (A + QC) = AD Q + DC Voorraadkosten Per cykel is er gedurende T 2 + T 3 tijdseenheden een voorraad, die gemiddeld 1 2S groot is. Per tijdseenheid zijn dus de voorraadkosten: T 2 +T 3 T 1 2 hs = S P D + S D Q D Boetekosten voor tekorten 1 Q(P D) 1 SP 2hS = 2 hs = 1 2 hs 2 QR = 1 h(s+qr) 2 2 QR. Per cykel is er gedurende T 1 + T 4 tijdseenheden een tekort, dat gemiddeld s groot is. tijdseenheid zijn dus de boetekosten: T 1 +T 4 T 1 2 s P D p( s) = + s D Q D 1 Q(P D) 1 sp 2p( s) = 2 p( s) = 1 2 Voor de totale kosten K(Q, s) per tijdseenheid kunnen we dus schrijven (de vaste inkoopkosten DC nemen we niet mee): K(Q, s) = AD Q h(s+qr)2 +ps 2 QR. De optimale waarden van de beslissingsvariabelen Q en s kunnen worden gevonden door partieel te differentiëren: ps 2 QR. K s = 0 1 h QR [h(s + QR) + ps] = 0 s = h+p QR en S = s + QR = p Met deze waarde van s wordt de kostenfunctie de volgende functie van parameter Q: AD Q h( p h+p QR)2 +p( h h+p QR)2 QR = AD Q hp h+p QR. Nu deze functie partieel differentiëren naar Q: K Q = 0 ADQ h 2 h+p R = 0 Q = 53 2AD R h+p hp. h+p QR. Per

58 De minimale kosten vinden we door de optimale waarden van Q, S en s in te vullen: K(Q, s) = h( p h+p QR)2 +p( h h+p QR)2 QR = ADR hp 2(h+p) hp h+p QR = q AD 2AD R h+p hp ADR hp 2(h+p) + ADR hp 2(h+p) = 2ADR hp h+p. Uit het bovenstaande volgt ook het volgende voor de minimale kosten K(Q, s): - K(Q, s) = hp h+p QR = hs; - de helft van de minimale kosten zijn de bestelkosten (en de andere helft dus de voorraad- plus de boetekosten); - de verhouding tussen de voorraad- en de boetekosten is: hs 2 ps 2 = p h. Een voorraadstrategie is pas volledig als we ook aangeven bij welk voorraadniveau r een nieuwe bestelling geplaatst moet worden, waarbij we rekening moeten houden met de levertijd L. De vraag gedurende de levertijd is LD. Het bestelniveau moet dus zó gekozen worden dat als de bestelling wordt geleverd (of de productie werkelijk start) het voorraadniveau s is. We onderscheiden de volgende mogelijkheden: Mogelijkheid 1: L T 3 + T 4 = Q D R. Dan is er gedurende de levertijd geen productie, dus r s = DL, zodat r = s + DL. Mogelijkheid 2: Q D R = T 3 + T 4 < 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)( Q D L). Mogelijkheid 3: L > T = Q D. In dit geval moet er meer dan één cyclus vooruit worden besteld en wel m = L T = LD Q 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 2AD Q = h ; s = 0; S = Q; kosten = hs; m = LD Q ; r = LD mq. Model II: tekorten zijn wel toegestaan en directe levering Q = 2AD h+p hp ; s = h h+p Q; S = s + Q; kosten = hs; m = LD Q ; r = s + LD mq. Model III: tekorten zijn niet toegestaan en productie R = 1 D P ; Q = 2AD hr ; s = 0; S = QR; kosten = hs; m = LD Q { ; LD mq als L m Q D r = QR D = S D {(m + 1) Q D L}(P D) als L m Q D > QR D = S. D Model IV: tekorten zijn wel toegestaan en productie h+p R = 1 D P ; Q = 2AD R hp ; s = h h+p QR; S = s + QR; kosten = hs; m = LD Q { ; LD mq + s als L m Q r = D QR D {(m + 1) Q D L}(P D) + s als L m Q D > QR. D 54

59 Voorbeeld 6.2 Beschouw een continu deterministisch voorraadmodel met een vraag D van 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 één 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 één periode vooruit bestellen als er 485 tekorten zijn). Vervolgens nemen we aan dat de voorraad wordt aangevuld door productie met een snelheid van 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 (één 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) = AD Q + 1 2hQ. Als we optimale waarde Q, waarvoor geldt dat f(q ) = 2AD Q = hq, vervangen door (1 + α)q, dan wordt de relatieve afwijking van de kosten: f((1+α)q ) f(q ) f(q ) = f((1+α)q ) f(q ) 1 = AD (1+α)Q 2AD Q h(1+α)q hq 1 = 1 2(1+α) (1 + α) 1 = α2 2(1+α). Hieruit volgt dat een afwijking van 50% van de optimale Q (α = 1 2 ) 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: C 0 voor 0 < Q < Q 1 C 1 < C 0 voor Q 1 Q < Q 2 C i < C i 1 voor Q i Q < Q i+1, i = 2, 3,..., n 1 C n < C n 1 voor Q n Q. Laat K i (Q) de kostenfunctie zijn bij inkoopprijs C i. We hebben gezien dat C i in K i (Q) voorkomt als term DC i, wat impliceert dat de verschillende kostenfuncties een constante verschillen. Voor 55

60 al deze functies wordt het minimum aangenomen voor dezelfde optimale bestelgrootte Q, want deze hangt niet van de inkoopprijs af. De werkelijke functe krijgen we door op het interval [Q i, Q i+1 ) de functie K i (Q) te nemen. Deze functie springt dus in de punten Q i met D(C i 1 C i ) omlaag. Verder merken we op dat de functies K i (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 [Q j, Q j+1 ). 2. Bereken de functiewaarden K i (Q i ) voor i = j + 1, j + 2,..., n en laat k zódanig dat K k (Q k ) = min j+1 i n K i (Q i ). 3. Als K j (Q ) K k (Q k ): Q is de optimale bestelgrootte; Anders: Q k 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 D i = de vraag per tijdseenheid naar product i en C i = de inkoopsprijs per eenheid voor product i, i = 1, 2,..., n. Veronderstel dat we model I hebben (geen tekorten en geen productie). In dit geval kan toch soms een zinnige vergelijking worden gemaakt tussen bestelstrategieën Q = (Q 1, Q 2,..., Q n ), waarbij Q i de bestelgrootte voor product i is, i = 1, 2,..., n. Dit resultaat is gebaseerd op de begrippen totale investering en totaal aantal bestellingen. Deze begrippen zijn van vitaal belang voor de kosten en deze kosten willen we in zekere zin minimaliseren. Als Q i de bestelgrootte is van product i, dan is de voorraad van product i gemiddeld 1 2 Q i, zodat de gemiddelde investering in de voorraad van product i gelijk is aan 1 2 C iq i. Het aantal bestellingen per tijdseenheid van product i is D i Q i, i = 1, 2,..., n. De totale investering T I(Q) en het totaal aantal bestellingen per tijdseenheid T B(Q) worden gedefinieerd door: T I(Q) = n i=1 1 2 C iq i en T B(Q) = n i=1 D i Q i. Stelling 6.1 Voor elke bestelstrategie Q = (Q 1, Q 2,..., Q n ) geldt: Bewijs T I(Q) T B(Q) 1 n 2 ( Ci D i ) 2. (6.2) Volgens de ongelijkheid van Schwartz geldt voor ieder tweetal n-dimensionale vectoren x en y dat ( n i=1 x2 i ) ( n i=1 y2 i ) ( n i=1 x iy i ) 2. Passen we deze ongelijkheid toe met x i = Di Q i en 1 y i = 2 C iq i, 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 = 1 2 ( n i=1 Ci D i ) 2, dan geeft iedere bestelstrategie Q een punt in het XY -vlak aan de buitenkant van deze kromme, die de afwegingskromme heet. Laat i=1 56

61 de X-as corresponderen met T B(Q) en de Y -as met T I(Q). Punten die op de kromme liggen worden beter gevonden dan punten naast de kromme. We zullen nu laten zien hoe we, uitgaande van een strategie Q met bijbehorende T B(Q) en T I(Q), een betere strategie Q kunnen bepalen met T B(Q ) T B(Q), T I(Q ) T I(Q) en met T B(Q ) T I(Q) = c = 1 2 ( n i=1 Ci D i ) 2. Kies een punt P = (P 1, P 2 ) op de afwegingskromme met P 1 T B(Q) en P 2 T I(Q). Laat λ = P 2 P en neem Q zódanig dat Q 1 i = 2λ D i C i, i = 1, 2,..., n. We zullen nu laten zien dat T B(Q ) = P1 en T I(Q ) = P2. Er geldt: T B(Q ) = n i=1 = n C i D i 1 i=1 2λ = 2λ n i=1 Ci D i en D i r 2λ D i C i T I(Q ) = n i=1 1 2 C 2λ D i i C i Hieruit volgt: T B(Q ) T I(Q ) = 1 2 ( n i=1 Ci D i ) 2 = c, = n λ C i D i λ i=1 2 = 2 n i=1 Ci D i. dus (T B(Q ), T I(Q )) ligt op de afwegingskromme, evenals (P1, P 2 ). Verder geldt: T B(Q 1 ) = 2λ n 1 i=1 Ci D i = 2λ 2c = 2P 1 P 2 = P 1 en T I(Q ) = λ 2 2c = P 2 2P 1 2P 1 P 2 = P 2. P 1 2P 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: x n = het aantal eenheden dat in periode n wordt geproduceerd, n = 1, 2,..., N. Laat voor n = 1, 2,..., N: d n = de vraag in periode n; c n (x) = de productiekosten om x eenheden te produceren in periode n; h n (y) I n = de voorraadkosten om y eenheden gedurende periode n in voorraad te hebben = de voorraad aan het begin van periode n, dus I n = I n 1 + x n 1 d n 1 We nemen I 1 = I N+1 = 0. Omdat in iedere periode aan de vraag moet worden voldaan, moet gelden: I n + x n d n, n = 1, 2,..., N. Anderzijds hoeft er niet meer te zijn dan voor de reterende perioden nodig is: I n + x n d n + d n d N, n = 1, 2,..., N. 57

62 Een optimale strategie kan worden gevonden met dynamische programmering, in dit geval achterwaartse recursie. Laat voor n = N, N 1,..., 1: f n (I n ) = de kosten van een optimale strategie voor de perioden n, n + 1,..., N, gegeven dat I n de voorraad is aan het begin van periode n. Dan geldt: h n (I n ) + c n (d n I n ), n = N f n (I n ) = min dn I n x n d n+d n+1 + +d N I n {h n (I n ) + c n (x n ) + f n+1 (I n + x n d n )}, n = N 1, N 2,..., 1 Dit betekent dat we als volgt de getallen f n (I n ) kunnen berekenen: - eerst f N (I N ) voor I N = 0, 1,..., d N ; - vervolgens f n (I n ) voor I n = 0, 1,..., d n + d n+1 + d N, n = N 1, N 2,..., 2; - tenslotte bepalen we f 1 (0). Voor iedere n en I n houden we bij welke x n de minimale kosten oplevert. De optimale strategie wordt nu als volgt gevonden: - x 1 is de optimale productie bij f 1 (0) en laat I 2 = x 1 d 1 ; - voor n = 2, 3,..., N: neem x n de optimale beslissing bij f n (I n ) en laat I n+1 = I n + x n d n. Voorbeeld 6.3 N = 5; d 1 = 1; d 2 = 4; d 3 = 5; d 4 = 3; d 5 = 1; c n (x) = h n (y) = y, y 0, 1 n 5. De berekeningen zijn als volgt: n = 5 : f 5 (0) = 7 voor x 5 = 1; f 5 (1) = 1 voor x 5 = 0. { 0 als x = 0, 1 n 5 7 als x 1, 1 n 5 n = 4 : f 4 (0) = 8 voor x 4 = 4; f 4 (1) = 9 voor x 4 = 3; f 4 (2) = 10 voor x 4 = 2; f 4 (3) = 10 voor x 4 = 0; f 4 (4) = 5 voor x 4 = 0. n = 3 : f 3 (0) = 12 voor x 3 = 9; f 3 (1) = 13 voor x 3 = 8; f 3 (2) = 14 voor x 3 = 7; f 3 (3) = 15 voor x 3 = 6; f 3 (4) = 16 voor x 3 = 5; f 3 (5) = 13 voor x 3 = 0; f 3 (6) = 15 voor x 3 = 0; f 3 (7) = 17 voor x 3 = 0; f 3 (8) = 18 voor x 3 = 0; f 3 (9) = 14 voor x 3 = 0. n = 2 : f 2 (0) = 19 voor x 2 = 4; f 2 (1) = 20 voor x 2 = 3; f 2 (2) = 21 voor x 2 = 2; f 2 (3) = 22 voor x 2 = 1; f 2 (4) = 16 voor x 2 = 0; f 2 (5) = 18 voor x 2 = 0; f 2 (6) = 20 voor x 2 = 0; f 2 (7) = 22 voor x 2 = 0; f 2 (8) = 24 voor x 2 = 0; f 2 (9) = 22 voor x 2 = 0; f 2 (10) = 25 voor x 2 = 0; f 2 (11) = 28 voor x 2 = 0; f 2 (12) = 30 voor x 2 = 0; f 2 (13) = 27 voor x 2 = 0. n = 1 : f 1 (0) = 23 voor x 1 = 5. Door via de optimale x-waarden voorwaarts te lopen krijgen we de optimale strategie: x 1 = 5 I 2 = 4 x 2 = 0 I 3 = 0 x 3 = 9 I 4 = 4 x 4 = 0 I 5 = 1 x 5 = 0. Een functie f(k), waarbij het argument k discrete waarden aanneemt, heet concaaf als de differentie f(k) := f(k + 1) f(k) een dalende functie is, d.w.z. f(k + 1) f(k), ofwel 2 f(k) 0 voor alle relevante waarden van k. Kostenfuncties hebben vaak de eigenschap dat het stijgende 58

63 functies zijn, maar dat de toename van de stijging afneemt; dit houdt in dat deze functies concaaf zijn. Veronderstel dat de kostenfuncties h n en c n voor alle n concaaf zijn, dan geldt het volgende resultaat. Stelling 6.2 Als de de kostenfuncties h n en c n voor alle n concaaf zijn, dan zijn er optimale producties x n en bijbehorende voorraden I n zódanig dat I n x n = 0 voor n = 1, 2,..., N. Bewijs Beschouw een optimaal productieplan. Als er meer zijn, kies dan een optimaal productieplan waarvoor N n=1 (x n + I n ) minimaal is. Veronderstel dat de bewering niet waar is, d.w.z. er is een n met I n > 0 en x n > 0. Omdat er aan het begin van periode n voorraad is, komt deze van een eerdere productie en laat m < n de periode zijn, waarin voor het laatst is geproduceerd, dus x m > 0 en x m+1 = x m+2 = = x n 1 = 0. Beschouw nu twee andere productieplannen, die dus niet goedkoper zijn dan het optimale. Laat x m = x m +1, x n = x n 1 (de andere producties onveranderd), zodat I k = I k+1, m < k n, en geldt: c m (x m ) + c n (x n ) + n k=m+1 h k(i k ) c m (x m + 1) + c n (x n 1) + n k=m+1 h k(i k + 1). Neem daarnaast x m = x m 1, x n = x n + 1 (de andere producties onveranderd), zodat I k = I k 1, m < k n. Dit geeft de ongelijkheid: c m (x m ) + c n (x n ) + n m+1 h k(i k ) c m (x m 1) + c n (x n + 1) + n k=m+1 h k(i k 1). Tel beide ongelijkheden bij elkaar op en herschik de termen: 0 2 c m (x m 1) + 2 c n (x n 1) + n k=m+1 2 h k (I k 1). De concaviteit houdt in dat 2 c k (k) 0 en 2 h k (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) = N n=1 (x n + I n ) (n m) < N n=1 (x n + I n ), wat een tegenspraak oplevert. Stelling 6.2 houdt in dat in periode n alleen de productie van de hoeveelheden 0, d n, d n + d n+1,..., d n +d n+1 + +d N 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 : f 5 (0) = 7 voor x 5 = 1; f 5 (1) = 0 voor x 5 = 0. n = 4 : f 4 (0) = 8 voor x 4 = 4; f 4 (3) = 10 voor x 4 = 0; f 4 (4) = 5 voor x 4 = 0. n = 3 : f 3 (0) = 12 voor x 3 = 9; f 3 (5) = 13 voor x 3 = 0; f 3 (8) = 18 voor x 3 = 0; f 3 (9) = 14 voor x 3 = 0. n = 2 : f 2 (0) = 19 voor x 2 = 4; f 2 (4) = 16 voor x 2 = 0; f 2 (9) = 22 voor x 2 = 0; f 2 (12) = 30 voor x 2 = 0; f 2 (13) = 27 voor x 2 = 0. n = 1 : f 1 (0) = 23 voor x 1 = 5. De berekening van de optimale strategie is hetzelfde als eerder. 59

64 Vervolgens zullen we het model beschouwen waarin tekorten wel zijn toegestaan. In het geval er tekorten zijn, dan zijn hier boetekosten aan verbonden. In dit model kan de voorraad I n negatief zijn (d.w.z. dat er I n tekort is) en we veronderstellen dat als I n < 0 de boetekosten p n (I n ) zijn in periode n, n = 1, 2,..., N. Voor iedere 1 n N is de voorraadfunctie h n (I n ) = 0 voor I n < 0 en de boetefunctie p n (I n ) = 0 voor I n > 0. In dit model wordt de recursieformule: h n (I n ) + c n (d n I n ) + p n (I n ), n = N f n (I n ) = min 0 xn d n+d n+1 + +d N I n {h n (I n ) + p n (I n ) + c n (x n ) + f n+1 (I n + x n d n )}, n = N 1, N 2,..., 1 Omdat I N ook negatieve waarden kan aannemen, en wel tot (d 1 +d 2 + +d N 1 ), starten we met de bepaling van f N (I N ) voor (d 1 + d d N 1 ) I N d N. Vervolgens berekenen we voor n = N 1, N 2,..., 2 de waarden f n (I n ) voor (d 1 +d 2 + +d n 1 ) I n (d n +d n+1 + d N ). Tenslotte wordt f 1 (0) berekend en wordt het optimale productieschema weer bepaald zoals in het vorige model. Voorbeeld 6.3 (vervolg) Neem aan dat ook tekorten zijn toegestaan tegen boetekosten p n (z) = 2z voor alle 1 n N en z < 0. De berekeningen zijn als volgt: n = 5 : f 5 ( 13) = 33 voor x 5 = 14; f 5 ( 12) = 31 voor x 5 = 13; f 5 ( 11) = 29 voor x 5 = 12; f 5 ( 10) = 27 voor x 5 = 11; f 5 ( 9) = 25 voor x 5 = 10; f 5 ( 8) = 23 voor x 5 = 9; f 5 ( 7) = 21 voor x 5 = 8; f 5 ( 6) = 19 voor x 5 = 7; f 5 ( 5) = 17 voor x 5 = 6; f 5 ( 4) = 15 voor x 5 = 5; f 5 ( 3) = 13 voor x 5 = 4; f 5 ( 2) = 11 voor x 5 = 3; f 5 ( 1) = 9 voor x 5 = 2; f 5 (0) = 7 voor x 5 = 1; f 5 (1) = 1 voor x 5 = 0. n = 4 : f 4 ( 10) = 28 voor x 4 = 14; f 4 ( 9) = 26 voor x 4 = 13; f 4 ( 8) = 24 voor x 4 = 12; f 4 ( 7) = 22 voor x 4 = 11; f 4 ( 6) = 20 voor x 4 = 10; f 4 ( 5) = 18 voor x 4 = 9; f 4 ( 4) = 16 voor x 4 = 8; f 4 ( 3) = 12 voor x 4 = 7; f 4 ( 2) = 12 voor x 4 = 6; f 4 ( 1) = 10 voor x 4 = 5; f 4 (0) = 8 voor x 4 = 4; f 4 (1) = 9 voor x 4 = 3; f 4 (2) = 10 voor x 4 = 2; f 4 (3) = 10 voor x 4 = 0; f 4 (4) = 5 voor x 4 = 0. n = 3 : f 3 ( 5) = 22 voor x 3 = 14; f 3 ( 4) = 20 voor x 3 = 13; f 3 ( 3) = 18 voor x 3 = 12; f 3 ( 2) = 16 voor x 3 = 11; f 3 ( 1) = 14 voor x 3 = 10; f 3 (0) = 12 voor x 3 = 9; f 3 (1) = 13 voor x 3 = 8; f 3 (2) = 14 voor x 3 = 7; f 3 (3) = 15 voor x 3 = 6; f 3 (4) = 14 voor x 3 = 0; f 3 (5) = 13 voor x 3 = 0; f 3 (6) = 15 voor x 3 = 0; f 3 (7) = 17 voor x 3 = 0; f 3 (8) = 18 voor x 3 = 0; f 3 (9) = 14 voor x 3 = 0. n = 2 : f 2 ( 1) = 21 voor x 2 = 5; f 2 (0) = 19 voor x 2 = 4; f 2 (1) = 19 voor x 2 = 0; f 2 (2) = 18 voor x 2 = 0; f 2 (3) = 17 voor x 2 = 0; f 2 (4) = 16 voor x 2 = 0; f 2 (5) = 18 voor x 2 = 0; f 2 (6) = 20 voor x 2 = 0; f 2 (7) = 22 voor x 2 = 0; f 2 (8) = 22 voor x 2 = 0; f 2 (9) = 22 voor x 2 = 0; f 2 (10) = 25 voor x 2 = 0; f 2 (11) = 28 voor x 2 = 0; f 2 (12) = 30 voor x 2 = 0; f 2 (13) = 27 voor x 2 = 0. n = 1 : f 1 (0) = 21 voor x 1 = 0. Voor de optimale strategie geldt: x 1 = 0 I 2 = 1 x 2 = 5 I 3 = 0 x 3 = 9 I 4 = 4 x 4 = 0 I 5 = 1 x 5 = 0. 60

65 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 = 1 N N n=1 d n, de variantie V = 1 N N n=1 d2 n D2 en de variabiliteitscoëfficiënt V C = V. D 2 Experimenteel onderzoek van Petersen en Silver heeft aangetoond dat als V C 0.20 het continue model met D = 1 N N n=1 d n in de regel een goede benadering geeft. Als V C > 0.20, dan is de volgende heuristiek, de Silver-Meal heuristiek genaamd, vaak een goed alternatief voor problemen met vaste bestelkosten A en lineaire voorraadkosten h per eenheid per periode (deze hebben concave kostenfuncties). De heuristiek is gebaseerd op de volgende ideeën: - elke productiehoeveelheid moet precies genoeg zijn voor de vraag in een aantal opeenvolgende perioden; - beschouw eerst de productie voor één periode, en neem daar een volgende periode bij als de gemiddelde kosten (vaste kosten plus voorraadkosten) daardoor lager worden, etc. - stop als een extra periode leidt tot gemiddeld hogere kosten. De gemiddelde kosten K(T ) over de eerste T periode zijn: K(T ) = 1 T {A + h T n=1 (n 1)d n}. 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) = 1 2 (7 + 4) = 5.5; K(3) = 1 3 ( ) = 7, dus x 1 = 5 (productie voor de perioden 1 en 2). K(1) = 7; K(2) = 1 2 (7 + 3) = 5; K(3) = 1 3 ( ) = 4, dus x 3 = 9 (productie voor de perioden 3, 4 en 5). 6.4 Continue stochastische modellen We beschouwen in deze paragraaf een voorraadmodel waarin de vraag per tijdseenheid stochastisch is met verwachting D. In dit model willen we de verwachte kosten minimaliseren. Aan de vraag wordt voldaan door levering na bestelling, en niet door productie. Als de levertijd L = 0, dan is het stochastisch karakter van de vraag in feite niet van belang, en kunnen we de formules uit de vorige paragraaf gebruiken met voor D de verwachting van de vraag. Bij een positieve levertijd L wordt het model wezenlijk anders; het is dan ook niet mogelijk om te garanderen dat er geen tekorten ontstaan. Tekorten die ontstaan zullen worden nageleverd. Doorgaans zal de bestelgrootte groter zijn dan de verwachte vraag om een goede service te bieden aan de klanten. Deze extra hoeveelheid wordt de veiligheidsvoorraad genoemd; dit is een buffer tegen stochastische fluctuaties. In dit model wordt gekeken naar (Q, r)-strategieën. Deze zijn van het type: 61

66 Indien de voorraad gedaald is tot niveau r (bestelpunt), wordt een hoeveelheid Q (bestelgrootte) besteld. Zij x L de stochastische vraag gedurende de levertijd L met een gegeven dichtheid f L (x) met verwachting µ L en standaardafwijking σ L. Dus r x L = de voorraad vlak voor er een bestelling binnenkomt en r x L + Q = de voorraad vlak nadat er een bestelling is binnengekomen. Zij I 1 en I 2 de verwachte voorraad aan het begin (direct na aanvulling) resp. aan het einde van een cykel. Dan geldt: I 1 = r µ L + Q en I 2 = r µ L. Voor de gemiddelde voorraad I gem nemen we: I gem = 1 2 (I 1 + I 2 ) = r µ L Q. De gemiddelde bestelkosten zijn, analoog aan het vorige model: DC + AD Q. De variabele kosten DC zijn onafhankelijk van de strategie en worden weer weggelaten, zodat de kostenfunctie is: K(Q, r) = AD Q + h (r µ L Q). We willen de kosten minimaliseren onder de voorwaarde dat de klanten een gegarandeerd serviceniveau hebben. Voor dit service-niveau zullen we twee verschillende modellen bespreken: Model 1: De kans dat er in een cykel een tekort ontstaat is hoogstens α; Model 2: De kans dat een willekeurige klant een tekort aantreft is hoogstens β. Het volgende voorbeeld laat zien dat dit zeer verschillende criteria zijn. Voorbeeld 6.4 Veronderstel dat we een stochastische vraag hebben met een verwachting van 1000 eenheden per jaar, en dat de vraag tijdens de levertijd 20, 30, 40, 50 of 60 is, elk met een kans 0.2. De verwachte vraag gedurende de levertijd is 40. Beschouw de strategie die 100 eenheden bestelt zodra het voorraadniveau 30 is. Er treedt in een cykel een tekort op als de vraag meer dan 30 is en de kans hierop is 0.6. Het verwachte tekort in een cykel is dus : 0.2(40-30) + 0.2(50-30) + 0.2(60-30) = 12. Het verwachte aantal klanten per cykel is 100. De kans dat een willekeurige klant een tekort aantreft is dus 12/100 = Daarnaast zullen we ook het volgende model beschouwen: Model 3: Tekorten zijn toegestaan tegen boetekosten. Aanname: We veronderstellen in deze paragraaf dat x L, de vraag gedurende de levertijd, N(µ L, σl 2 )-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 2 Q + r µ L] P(x L > r) α} (6.3) 62

67 Omdat r lineair met een positieve coëfficiënt voorkomt in de doelfunctie en de beperking niet van Q afhangt, moet r de kleinste waarde zijn die aan de beperking voldoet. Laat y L = x L µ L σ L, dan is y L N(0, 1)-verdeeld. De beperking van (6.3) is equivalent met P(y L > 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 2AD deterministische modellen: Q = h. Voorbeeld 6.2 (vervolg) Veronderstel dat voor de levertijd L geldt dat µ L = 800 en σ L = 200, en laat α = 0.1. We hebben gezien dat Q = Uit Tabel I volgt dat z α = 1.29, dus r = = 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)f L(x)dx. De kans dat een willekeurige klant een tekort aantreft is E B Q. We moeten dus oplossen het probleem: { AD min Q + h [1 2 Q + r µ L] 1 Q r } (x r)f L (x)dx β Voor β niet te groot is het aannemelijk (zie de eerdere discussie over de gevoeligheidsanalyse) dat 2AD Q, berekend met de wortelformule, d.w.z. Q = h, een goede benadering is voor de optimale bestelgrootte. We moeten r bepalen zódat r (x r)f L(x)dx β Q. Door te substitueren y = x µ L σ L kunnen we schrijven: r (x r)f L(x)dx = r (x r) 1 σ L 2π e 1 2 ( x µ L ) σ 2 r µl L dx = σ L (y r µ L σ L ) 1 2π e 1 2 y2 dy = σ L N( r µ L σ L ), waarbij N(z) = 1 z (y z) 2π e 1 2 y2 dy. De waarden van N(z) zijn getabelleerd (zie Tabel II). We moeten r dus zo bepalen dat N( r µ L σ L ) βq σ L en 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 β = Uit Tabel II volgt z(β) = 0.91, zodat r = = 982; de veiligheidsvoorraad is 182. Opmerking: Indien βq σ L > , 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 1 2 y2. Voor z < 0 geldt: N(z) = z = z z (y z)φ(y)dy = z yφ(y)dy z z z z (y z)φ(y)dy + z [(y + z) 2z]Φ(y)dy σ L Φ(y)dy + N( z) 2z z Φ(y)dy. 63 (6.4)

68 Omdat Φ(y) symmetrisch is om 0, geldt: z z yφ(y)dy = 0 en z Φ(y)dy = z Φ(y)dy. Hieruit volgt: N(z) = z z z Φ(y)dy + N( z) z z Φ(y)dy z z Φ(y)dy = N( z) z[ z Φ(y)dy + z z Φ(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)-strategieën, waarbij Q en r zo bepaald worden dat de bijbehorende verwachte kosten minimaal zijn. Omdat het verwachte aantal tekorten per cykel E B is en er D Q cykels per tijdseenheid zijn, hebben we in dit model te maken met de volgende verwachte kosten: K(Q, r) = AD Q + h I gem + qd Q E B = AD Q + h [ 1 2 Q + r µ L] + qd Q r (x r)f L(x)dx. De optimale waarden van de beslissingsvariabelen worden gevonden door partiëel te differentiëren: K Q = ADQ h qdq 2 r (x r)f L(x)dx = 0 Q = 2D h {A + q r (x r)f L(x)dx}. K r = h + qdq 1 r r (x r)f L(x)dx = 0 1 r f L (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)f L(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)f L(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) = 2D h {A + q (x r)f L(x)dx} en r(q) wotdt bepaald door r r f L (x)dx = hq qd. De optimale waarden van Q en r kunnen door successieve approximatie worden benaderd: 2AD Stap 1: Kies een willekeurige ε > 0, laat k = 0 en Q 0 = h. Stap 2: Bepaal r k zódat r k f L (x)dx = hq k qd. Stap 3: Als k 1 èn Q k Q k 1 ε èn r k r k 1 ε: stop. Stap 4: k := k + 1; Q k := Q(r k 1 ) en ga naar stap 2. We zullen nu aangeven hoe de berekeningen van r k en Q k precies geschieden. Bepaling r k Er moet gelden: r k f L (x)dx = hq k qd, d.w.z. P[x L r k ] = hq k qd. Zoek in Tabel I z k zódanig dat voor een N(0, 1)-verdeelde z geldt dat P[z z k ] = hq k qd. Omdat x L µ L σ L volgt hieruit dat r k = µ L + σ L z k. 1 Volgens de regel van Leibnitz geldt als g(y) = R b(y) g h(y, x)dx, dan is = R b(y) a(y) y a(y) h(y, a(y)) y a(y). 64 ook N(0, 1)-verdeeld is, h(y, x)dx+h(y, b(y)) b(y) y y

69 Bepaling Q k+1 Voor de bepaling van Q k+1 moet r k (x r k )f L (x)dx worden berekend. Dit kan met Tabel II na transformatie tot de standaard normale verdeling. We hebben bij Model 2 gezien dat r k (x r k )f L (x)dx = σ L N( r k µ L ). Er geldt dus: σ L Q k+1 = gehaald. 2D h {A + q σ L N( r k µ L σ L )}, waarbij de waarde van N( r k µ L σ L ) uit Tabel II wordt Voorbeeld 6.2 (vervolg) Neem q = 2 en ε = 1. Voor de functies Q(r) en r(q) geldt: Q(r) = 2D h {A + q σ L N( r k µ L σ L )} = N(r k ) en r(q) = hq qd = De berekeningen van de successieve approximatie staan in onderstaand tabel. k Q k hq k qd z k r k N(z k ) Q Hieruit volgt als benadering voor de oplossing: Q = 2091 en r = Voor de kosten geldt: vaste bestelkosten = 717, voorraadkosten = 997 en boetekosten 67; de totale kosten zijn dus 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: één periode en geen vaste bestelkosten; Model b: één periode en wel vaste bestelkosten; Model c: oneindig veel perioden en geen vaste bestelkosten. Model a: één 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: - éénmalige beslissing, d.w.z. te beschouwen als beslissingsprobleem over één 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

70 De vraagstelling luidt: hoeveel moet er worden ingekocht om de verwachte opbrengst te maximaliseren? De parameters van dit model zijn als volgt: D = vraag met dichtheid f(x) en verdelingsfunctie F (x). c = inkoopkosten per stuk en s = verkoopprijs per stuk; r = restwaarde (waarde aan einde periode) per stuk; q = boetekosten per tekort. Veronderstel dat er een hoeveelheid Q wordt ingekocht, dan hebben we te maken met de volgende kosten/opbrengsten: - inkoopkosten: cq; - restwaarde: r Q 0 (Q x)f(x)dx; - boetekosten: q Q (x Q)f(x)dx; - opbrengst verkoop: s Q 0 xf(x)dx + s Q Qf(x)dx. De totale kostenfunctie K(Q) kan geschreven worden als: K(Q) = c Q r Q 0 (Q x)f(x)dx + q Q (x Q)f(x)dx s Q 0 xf(x)dx s = c Q r Q 0 (Q x)f(x)dx+q Q (x Q)f(x)dx s {E D Q = c Q r Q 0 (Q x)f(x)dx + (q + s) Q (x Q)f(x)dx s E D. De afgeleide van K(Q) kan worden bepaald met de regel van Leibnitz: K Q (Q) = c r f(x)dx (q+s) 0 Q = c q s (r q s) Q 0 f(x)dx. Voor de optimale waarde van Q moet gelden dat K (Q) = 0, d.w.z. P(D Q) = Q q+s c 0 f(x)dx = q+s r. Q Qf(x)dx xf(x)dx} s Q Qf(x)dx f(x)dx = c r Q 0 (Q x)f(x)dx (q+s) {1 Q 0 f(x)dx} Wil dit een echte kans zijn, dan moet gelden: 0 q + s c q + s r. Deze voorwaarde heeft de volgende zinvolle interpretatie: 0 q + s c betekent s c q : de winst van een verkocht exemplaar is minstens de winst op een tekort: anders is het beter om niet te verkopen; q + s c q + s r betekent c r : anders is de restwaarde zo hoog dat er geen bederfrisico is: koop oneindig veel in. Voorbeeld 6.5 Veronderstel dat D exponentiëel verdeeld is met parameter λ = , d.w.z. { f(x) = e x als x 0 0 als x < 0 Laat c = 20, s = 40, q = 5 en r = 9. Voor de optimale Q moet gelden: 66

71 Q 0 Q f(x)dx = 1 e = q+s c q+s r = = Hieruit volgt: e Q = , waaruit volgt Q = 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 µ σ waarde van Q µ σ Het verwachte tekort = Q Q µ σ ) = q+s c q+s r, zeg k, zodat Q = µ + σk. en D µ σ N(0, 1)-verdeeld is, volgt uit Tabel I de Q µ (x Q)f(x)dx = σn( ) = σn(k) (zie de vorige paragraaf). σ Het verwachte overschot = Q 0 (Q x)f(x)dx = 0 (Q x)f(x)dx Q (Q x)f(x)dx Opmerking 2 = Q µ + Q (x Q)f(x)dx = Q µ + σn(k) = σk + σn(k). Het zal duidelijk zijn dat naarmate de restwaarde stijgt, de verkoper bereid is meer exemplaren in te kopen bij de groothandel. Omdat er dan meer bij de groothandel wordt ingekocht, heeft de groothandel ook baat bij een hogere restwaarde. Veronderstel dat de verkoper een bepaald aantal exemplaren bij een groothandel bestelt (tegen prijs c per stuk), waarna de groothandel dit aantal laat produceren tegen productiekosten p per stuk (p c). Veronderstel dat de vraag D N(µ, σ 2 )-verdeeld is, dan zal de verkoper een hoeveelheid Q = µ+σk bestellen met k zódanig 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µ Beschouw ter illustratie het volgende getallenvoorbeeld: µ = , σ = , p = 0.5, q = 0, c = 5.25 en s = = cq + r [σk + σn(k)] (q + s) [σn(k)] + sµ. In onderstaande tabel staan voor verschillende waarden van r de diverse grootheden. r = 0 r = 0.5 r = 1 r = 2 r = 3 r = 4 q+s c q+s r k N(k) Q E(tekort) E(overschot) E(winst groothandel) E(winst verkoper) E(winst tezamen) 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

72 Model b: één periode, vaste bestelkosten en een beginvoorraad We veronderstellen dat aan het begin van de periode een voorraad z aanwezig is, en dat een bestelling tevens vaste kosten A met zich meebrengt. De beslissingsvariabele y geeft aan hoeveel er na een bestelling aanwezig is: er wordt dus Q = y z besteld. { A + c(y z) als y > z; De bestelkosten voldoen aan: 0 als y = z. Laat L(y) = r y 0 (y x)f(x)dx + (q + s) (x y)f(x)dx. Voor de kostenfunctie K(y) van dit model geldt: { A + c(y z) + L(y) als y > z; K(y) = s E D + L(z) als y = z. y Laat S de waarde zijn waarvoor cy + L(y) minimaal is. Uit de analyse van Model a volgt dat S wordt bepaals door: S q+s c 0 f(x)dx = q+s r. Neem voor s de kleinste waarde van y waarvoor cs + L(s) = cs + L(S) + A. Beschouw de volgende (s, S)-strategie: als z < s, dan bestellen we bij tot niveau S. We tonen aan dat deze strategie optimaal is: 1. Omdat de afgeleide (naar y) van cy + L(y) gelijk is aan (c q s) + (s + q r) y 0 f(x)dx, is deze stijgend in y, wat impliceet dat de functie cy + L(y) dalend is voor y S en stijgend voor y S. 2. Als z S, dan is voor y > z : cy + L(y) cz + L(z). Dit geeft: A + c(y z) + L(y) > c(y z) + L(y) L(z): niets bestellen is beter dan wel iets bestellen. 3. Als s z S, dan geldt cz + L(z) cs + L(S) + A. Dus voor y > z: A+c(y z)+l(y) A+c(S z)+l(s) L(z): niets bestellen is beter dan wel iets bestellen. 4. Als z s, dan volgt: min y z {A + cy + L(y)} = A + cs + L(S) cz + L(z), d.w.z. min y 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 = De ondergrens s moet voldoen aan: cs + L(s) = cs + L(S) + A, d.w.z. 20s + 45 s (x s) e x dx 9 s 0 (s x) e x dx = 20S + 45 S (x S) e x dx 9 S 0 (S x) e x dx + A, d.w.z. 20s + 45 s (x s) e x dx 9 s 0 (s x) e x dx = (x ) e x dx ( x) e x dx Hieruit volgt, na enig rekenwerk, dat s =

73 Model c: oneindig veel perioden en geen vaste bestelkosten Veronderstel dat de vraag in verschillende perioden onafhankelijk en identiek verdeeld is met dichtheid f(x). De kosten worden verdisconteerd met een factor α (0, 1). Dit betekent dat kosten die een periode later worden berekend minder zwaar, nl. α maal, meetellen. Denk bv. aan rente-voordeel doordat het nu nog niet betaald hoeft te worden. In dit model worden tekorten worden aan het begin van de volgende periode nageleverd tegen boetekosten q per tekort per periode. Beschouw eerst het model met N perioden, waarin x n de vraag in periode n zijn. Definieer: F n (I n ) = minimale kosten gedurende de perioden n tot en met N als de voorraad aan het begin van de n-de periode I n is. Neem y n 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 (y n I n ); 2. opbrengst verkoop : s min(x n, y n ); 3. voorraadkosten : h max(0, y n x n ); 4. boetekosten tekorten : q max(0, x n y n ); 5. opbrengst nalevering : αs max(0, x n y n ). Voor F n kunnen we de volgende recurrente betrekking opstellen: F n (I n ) = min yn I n {c (y n I n ) + y n 0 [ sx + h(y n x)]f(x)dx + y n [ sy n αs (x y n ) + q (x y n )]f(x)dx + α 0 F n+1 (y n 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) = min y I {c (y I) + y 0 [ 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 differentiëren naar y m.b.v. de regel van Leibnitz: d.w.z. c + h y 0 f(x)dx syf(y) + [ s αs q] y c + h y 0 f(x)dx + [(α 1)s q] y f(x)dx + syf(y) + α 0 f(x)dx + α 0 y F (y x)f(x)dx = 0. y F (y x)f(x)dx = 0, Nu geldt dat y F (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 y 0 f(x)dx + [(α 1)s q] y d.w.z. dat de optimale y wordt bepaald door: f(x)dx αc 0 f(x)dx = 0, y 0 f(x)dx = q+(1 α)(s c) q+(1 α)s+h. 69

74 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: y q+s c 0 f(x)dx = q+s+h, wat de formule van Model a is met r = h. Opmerking 2 Het model met een oneindige horizon is eenvoudiger dan met een eindige horizon. In de praktijk blijkt dat het model met een oneindige horizon een goede benadering is voor het model met N perioden indien N niet te klein is, bijv. N 4. Voorbeeld 6.5 (vervolg) Veronderstel weer dat de vraag exponentiëel verdeeld is met parameter λ = Laat c = 20, s = 40, q = 5, h = 4 en α = 0.8. Voor de optimale y moeten we oplossen: y 0 f(x)dx = q+(1 α)(s c) q+(1 α)s+h 1 e y = 5+0.2(40 20) = y = 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 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

75 Opgave 3 Een product kan worden geproduceerd met een snelheid van eenheden per jaar. Er is een continue vraag naar dit product ter grootte van 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 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

76 Opgave 7 Beschouw een voorraadsysteem waarbij vier verschillende producten in voorraad gehouden worden. De vraag (per jaar) en inkoopkosten (per stuk in euro s) staan in onderstaande tabel. Product i Vraag Inkoopkosten 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 één machine, die maar één product tegelijk kan produceren. Als product i wordt geproduceerd is de productiesnelheid P i 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: D i = de vraag per jaar naar product i; P i = A i = h i = aantal eenheden van product i dat per jaar geproduceerd kan worden (productiesnelheid); vaste kosten als product i wordt geproduceerd; voorraadkosten van product i (per eenheid en per jaar); t i = 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 Q i die per cykel van product i geproduceerd wordt: Q i = D i T, i = 1, 2,..., n. a. Het instellen voor de productie van product i begint als de voorraad nog zo groot is dat aan de vraag gedurende de insteltijd kan worden voldaan. Toon aan dat in een cykel het maximale voorraadniveau van product i gelijk is aan Q i R i, met R i = 1 D i P i. b. Bewijs dat de totale vaste plus voorraadkosten per tijdseenheid gelijk zijn aan: n i=1 A i T T n i=1 h id i R i. c. We willen deze totale kosten willen minimaliseren onder de voorwaarde dat n i=1 (t i+ D i P i T ) T (verklaar deze voorwaarde). Ga na dat de optimale T voldoet aan: P 2 n i=1 T = max(t 1, T 2 ) met T 1 = A P n P i n i=1 h i=1 id i R i en T 2 = t i 1 P n D i. i=1 P i 72

77 Opgave 9 Beschouw een voorraadmodel met n producten in voorraad, waarbij door coördinatie van de aanvulorders op de vaste bestelkosten kan worden bespaard. Voor elke aanvulorder worden vaste kosten A gemaakt, ongeacht de samenstelling van de order. Als product i in de aanvulorder bevat is, dan worden apart voor product i vaste bestelkosten A i gemaakt. Stel dat voor product i de vraag per tijdseenheid gelijk is aan D i eenheden en dat de voorraadkosten per eenheid en per tijdseenheid gelijk zijn aan h i. De volgende strategie met parameters T, m 1, m 2,..., m n wordt beschouwd: elke T tijdseenheden wordt een aanvulorder geplaatst en product i wordt om de m i aanvulorders meegenomen, waarbij tenminste één van de m i s gelijk is aan 1. a. Ga na dat voor een gegeven (T, m 1, m 2,..., m n )-strategie de totale kosten per tijdseenheid gelijk zijn aan 1 T (A + n i=1 A i m i ) T n i=1 h im i D i. b. Ga na dat bij vaste (m 1, m 2,..., m n ) de bovenstaande kostenfunctie minimaal is voor T = 2(A+ P n A i i=1 ) m P i n i=1 h im i D i. c. Het resultaat van onderdeel b is de basis voor het volgende heuristische algoritme 2 Stap 1: Nummer de producten zódat A i h i D i het kleinst is voor product 1. Neem m 1 = 1. Stap 2: Neem m i = Ai h i D i h1d 1 A+A 1, i = 2, 3,..., n, afgerond naar het dichtstbijzijnde positieve gehele getal. Stap 3: Bereken T = 2(A+ P n A i i=1 ) m P i n i=1 h im i D i. Stap 4: Neem de bestelgrootte Q i = m i D i T, i = 1, 2,..., n. Pas bovenstaand algoritme toe op het volgende getallenvoorbeeld: n = 4; A = 40; A 1 = A 2 = A 3 = A 4 = 15; D 1 = 4300, D 2 = 1250, D 3 = 700, D 4 = 200; h 1 = 4.8, h 2 = 2.4, h 3 = 0.48, h 4 = 3.6. Opgave 10 Beschouw een productiemodel over 4 perioden met vraag D 1 = 2, D 2 = 3, D 3 = 5, D 4 = 2, voorraadkosten h n (I) = I voor alle n en met als productiekosten c n (x) = c n x, waarbij c 1 = 16, c 2 = 12, c 3 = 14 en c 4 = 20. a. Bepaal een productieschema met minimale kosten. b. Indien de voorraad nooit meer dan 2 mag bedragen, en er maximaal 4 eenheden kunnen worden geproduceerd, wat dan een optimaal productieschema? Opgave 11 Beschouw een periodiek deterministisch productiemodel met N = 3, D 1 = 3, D 2 = 2 en D 3 = 6. De voorraadkosten zijn 4 als er voorraad{ is en 0 als er geen voorraad is. 0 als x = 0 Voor de productiekosten geldt: c n (x) = c n als x 1, waarbij c 1 = 14, c 2 = 16 en c 3 = E.A. Silver, D. Pyke and R. Peterson, Inventory Management and Production Planning and Scheduling, 3rd edition (1998). 73

78 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 m n aan de hoeveelheden die in periode n kunnen worden geproduceerd: m 1 = 5, m 2 = 5 en m 3 = 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 Vraag D i De boten moeten afgeleverd worden aan het begin van iedere maand. Elke productieserie neemt precies één maand in beslag (de eerste productieserie begint op 1 december), onafhankelijk van de grootte van de serie. De vaste opstartkosten van elke serie bedragen euro. De productiekosten per boot bedragen 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 α = b. Bepaal een optimale (Q, r)-voorraadstrategie volgens model 2 met β =

79 Opgave 15 Een loempia-zaak heeft een continue stochastische wekelijkse vraag die normaal verdeeld is met verwachting 700 en standaardafwijking van 75. Voor het voorraadbeheer wordt een (Q, r)- strategie gebruikt, waarbij elke aanvulling Q = 500 is. De levertijd van elke aanvulorder is twee dagen. Hoe moet het bestelpunt r worden gekozen zódat aan minstens 99% van de vraag voldaan wordt? Opgave 16 Een zaak gebruikt een (Q, r)-strategie voor het beheer van de voorraad van een bepaalde cdspeler. De maandelijkse vraag naar de cd-speler is normaal verdeeld met verwachting 150 en standaardafwijking 40. Kopers die de cd-speler niet in voorraad aantreffen zijn bereid te wachten tot de voorraad weer aangevuld is. De zaak betrekt de cd-spelers van een fabriek, die een levertijd hanteert van een halve maand. De vaste kosten van een aanvulorder zijn 80 euro. De inkoopkosten per cd-speler zijn 250 euro. De voorraadkosten bedragen op jaarbasis 24% van het in voorraad geïnvesteerde kapitaal. Hoe Q en r te kiezen opdat de gemiddelde kosten minimaal zijn onder de service-eis dat aan gemiddeld 99% van de vraag direct voldaan wordt? Opgave 17 Beschouw een voorraadmodel met een continue stochastische vraag, waarin tekorten zijn toegestaan. De verwachting van de vraag is eenheden per jaar, de voorraadkosten bedragen 0,60 euro per eenheid per jaar en voor ieder tekort is een vergoeding van 1,50 euro verschuldigd. Er zijn vaste bestelkosten van 70 euro per bestelling. Veronderstel dat de vraag tijdens de levertijd normaal verdeeld is met verwachting 300 en standaardafwijking 40. Bepaal de optimale waarden van Q en r om de gemiddelde kosten te minimaliseren en bepaal de diverse kosten van deze optimale (Q, r)-strategie. Opgave 18 Een bandendistributeur wil een (Q, r)-strategie hanteren voor het voorraadbeheer van de banden. De vraag per week naar banden is normaal verdeeld met verwachting 2500 en een spreiding van 500 banden. Als de distributeur bij de fabriek bijbesteld, dan moet de distributeur rekenen op een levertijd die met kans 2 3 gelijk is aan twee weken en met kans 1 3 gelijk is aan drie weken. De vaste kosten van een bestelling zijn euro en de inkoopkosten per band zijn 50 euro. Voor de banden in voorraad rekent de distributeur op jaarbasis 25% voorraadkosten op de inkoopwaarde van de banden. a. Welke (Q, r)-strategie moet de distributeur gebruiken om de kosten minimaal te houden terwijl voldaan is aan de service-eis dat met een kans van minder dan 5% de distributeur buiten voorraad raakt tijdens de levertijd? b. Welke waarde van de boetekosten voor een nageleverde band komt overeen met deze serviceeis? 75

80 Opgave 19 Beschouw een voorraadmodel met een continue stochastische vraag. Laat de vraag gedurende de levertijd L een dichtheid f L (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 Q 2 + r µ L + r (x r)f L(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 = ; A = 100; de vraag gedurende de levertijd L is normaal verdeeld met verwachting en standaardafwijking 250; h = 0.15; q = 1. Opgave 20 Beschouw het probleem van de krantenverkoper die moet bepalen hoeveel kranten hij voor een bepaalde dag zal inkopen. De inkoopprijs is 0,40 euro, de verkoopprijs 1,00 euro en voor nietverkochte kranten krijgt hij 0,10 euro terug. Als hij uitverkocht is en er komen nog klanten, dan verliest de verkoper goodwill ; dit verlies wordt op 0,25 euro per krant getaxeerd. De krantenverkoper verwacht dat de vraag naar kranten op deze dag normaal verdeeld is met verwachting 250 en variantie 50. a. Bepaal de optimale bestelgrootte. b. Wat is de kans dat hij die dag uitverkocht zal raken? Opgave 21 De inkoper van een warenhuis is van plan een bepaald soort jas in te kopen voor het komende winterseizoen. De inkoopprijs is 30 euro en de verkoopprijs wordt vastgesteld op 75 euro. Iedere jas die aan het einde van het winterseizoen niet verkocht is gaat in de uitverkoop voor 20 euro (de ervaring is dat alle overgebleven jassen tijdens de uitverkoop worden verkocht). De vraag naar deze jas wordt normaal verdeeld verondersteld met verwachtingswaarde 750. Bereken voor de waarden 150, 100, 50, 25 en 0 van de standaardafwijking van de vraag de optimale bestelgrootte en de bijbehorende waarden van de verwachte netto winst, het verwachte tekort en het verwachte overschot. Opgave 22 Het jaarlijkse congres van een medisch genootschap wordt afgesloten met een buffet. Het hotel waar het congres wordt gehouden verlangt dat een week van te voren het aantal deelnemers wordt opgegeven. De prijs van het buffet is 50 euro per persoon. Als er minder mensen op komen dagen dan van te voren aangemeld, dan moet toch voor het volle aantal worden betaald. Als er meer komen, dan kunnen zij deelnemen aan het buffet, maar tegen een prijs van 75 euro voor elke extra deelnemer. Als we aannemen dat het totale aantal aanwezigen uniform verdeeld is tussen 350 en 500, hoeveel deelnemers moeten dan van te voren worden aangemeld om de totale verwachte kosten te minimaliseren? 76

81 Opgave 23 Beschouw model a uit paragraaf 6.5 (één 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 één periode met een stochastische vraag die uniform verdeeld is op [50, 250]. Veronderstel dat het aanvangsniveau van de voorraad 100 eenheden is. De inkoopkosten bedragen een vast bedrag van 500 euro en een bedrag van 50 euro per exemplaar. De verkoopprijs bedraagt 150 euro. Exemplaren die aan het einde van de periode nog in voorraad zijn worden voor 20 euro van de hand gedaan. Bepaal een optimale voorraadstrategie. Opgave 25 Beschouw een periodiek model over een oneindige horizon, waarin maandelijks beslist moet worden wat er besteld wordt. Veronderstel dat de vraag iedere maand normaal verdeeld is met verwachting 100 en variantie 20. Verder zijn er de volgende gegevens: inkoopprijs euro, verkoopprijs 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

82 Hoofdstuk 7 Wachttijdtheorie 7.1 Inleiding In de wachttijdtheorie wordt een model bestudeerd waarin klanten een systeem binnenkomen volgens een bepaald aankomstproces, daar een zekere bediening krijgen (bedieningsproces) en vervolgens het systeem weer verlaten. Als de bedienden bezet zijn, dan moeten de klanten in een wachtrij plaatsnemen. Deze wachtrij kan een beperkt aantal plaatsen hebben. Als er een nieuwe klant arriveert terwijl de wachtrij vol is, dan zal deze klant zonder bediening ontvangen te hebben het systeem weer verlaten. We zullen de onderdelen aankomstproces, bedieningsproces en wachtrij nog nader uitwerken. In de wachttijdtheorie wordt een groot aantal wachttijdmodellen wiskundig geanalyseerd. Exacte oplossingen zijn vrijwel alleen voor eenvoudige modellen te vinden. Wel kunnen de gevonden formules vaak zinvol zijn als benaderingsoplossing voor complexere modellen. Vaak worden ook computersimulaties gebruikt om wachttijdproblemen te analyseren. Wel moet de waarde van simulatie niet overschat worden. Een wiskundige analyse van een model geeft inzicht, waar simulatie vooral getallen produceert. Om uit deze getallen bruikbare conclusies te trekken is niet altijd eenvoudig. Waar mogelijk lijkt een samenspel van wiskundige analyse en simulatie de aangewezen weg. Wachttijdproblemen treden in de praktijk op in vele uiteenlopende situaties: in de telecommunicatie, waarin gesprekken en berichten wachten op beschikbare communicatielijnen; in zeehavens waar schepen wachten op beschikbare laad- en losfaciliteiten; in een productiehal waar goederen wachten op beschikbare machines, etc. Bij het ontwerp van allerlei systemen moet antwoord gegeven worden op vragen van het type: Hoeveel telefoonlijnen zijn nodig om een zeker service-niveau te bereiken? Anderzijds wil men de kosten van deze systemen minimaal houden. Dit geeft een wisselwerking en spanning tussen het wachten van klanten en de bezettingsgraad van de telefoonlijnen. Hoe hoger het serviceniveau, hoe groter de kosten. Meestal wordt een bepaald service-niveau als uitgangspunt gekozen. Gegeven dit service-niveau wordt gevraagd naar minimale kosten. Uit de theorie is af te leiden dat als dit soort systemen zwaarder worden belast de wachttijden veel sterker dan lineair, vaak zelfs exponentieel, toenemen. 78

83 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) = {N(t), t 0} heeft onafhankelijke aanwas, d.w.z. dat voor alle keuzes van t 0 < t 1 < < t n de n stochastische variabelen N(t 1 ) N(t 0 ), N(t 2 ) N(t 1 ),..., N(t n ) N(t n 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 N 0. 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 bewezen 1 dat het Poisson proces ook equivalent gekarakteriseerd wordt door in plaats van eigenschap 3 de volgende twee eigenschappen te eisen: 3a. P{N(t) = 1} = λt + o(t), waarbij o(t) betekent dat lim t 0 o(t) t = 0. 3b. P{N(t) = 0} = 1 λt + o(t). Eigenschap 3a is de reden dat λ ook wel de aankomstsnelheid wordt genoemd. Dit aankomstproces veronderstelt een oneindige populatie en is bruikbaar om vele praktische situaties te modelleren. Het Poisson proces kan met name goed worden gebruikt als de kans dat in een komend klein tijdsinterval een klant arriveert niet afhangt van hoe lang het geleden is dat voor het laatst een klant aankwam; dit is bijvoorbeeld het geval als de aankomsttijdstippen onvoorspelbaar is. Het zal blijken dat in het geval van een Poisson aankomstproces eenvoudige wachttijdformules kunnen worden afgeleid. Zij {X n } de tijd tussen de (n 1)-ste en n-de aankomst. De rij {X n, n = 1, 2,... } is de rij van tussentijden. Op grond van eigenschap 2 zijn de X n s onderling onafhankelijk. Merk op dat volgens eigenschap 3 geldt: P{X n > t} = P{N(t) = 0} = e λt voor alle n = 1, 2,..., d.w.z. dat iedere X n een exponentiële verdeling heeft met parameter λ. Deze verdeling heeft als verwachting 1 λ, waaruit volgt: E{tijdsduur tussen twee opeenvolgende aankomsten} = 1 λ. Bedieningsproces Bij het bedieningsproces hebben we te maken met de volgende drie aspecten: 1. De bedieningsdiscipline De bedieningsdiscipline is een voorschrift voor de volgorde waarin de klanten die in de wachtrij staan worden geselecteerd voor een vrijgekomen bediening. We zullen in dit hoofdstuk aannemen 1 S.M. Ross, Applied Probability Models with Optimization Applications, Holden-Day, 1970 (chapter 2). 79

84 dat de bedieningsvolgorde dezelfde is als de volgorde van aankomst. Deze regel heet FIFO (first in - first out). 2. De bedieningsduur Voor iedere bediende moet de kansverdeling van de bedieningsduur van een klant gegeven zijn. Een veel voorkomende keuze voor de verdeling van de bedieningsduur is de exponentiële 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 } = µ Het aantal bedienden Dit aantal wordt met s genoteerd. Eindige klantenbron Een belangrijke groep wachttijdmodellen zijn die waarbij het aantal klanten eindig is. We spreken dan van een model met een eindige klantenbron. Een voorbeeld van een model met een eindige klantenbron is het onderhoud van een zeker aantal, zeg N, machines. Als er n machines in reparatie (bediening) zijn, dan zijn er N n die zich eventueel kunnen melden voor reparatie. Nemen we aan dat de tijdsduur voordat een machine stuk gaat exponentiëel verdeeld is met parameter λ, dan melden potentiële 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

85 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 3 4 om een tussentijd van 45 minuten aan te treffen en een kans 1 4 op een tussentijd van 15 minuten. Dus de verwachting van de tussentijd die zo n persoon aantreft is = 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 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 één 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 leiden 2 dat de verwachting van de wachttijd gelijk is aan: 1 2 (1 + c2 X ) E(X), waarbij c X de variatiecoëfficiënt van X is, d.w.z. c 2 X = VAR(X) E(X) 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. postkantoor zijn, dan is het duidelijk dat L = λw = 6. De formule Laat L het gemiddeld aantal klanten in het L = λw (7.1) is de Formule van Little en is een soort natuurwet in de wachttijdtheorie. Deze formule geeft het verband aan tussen het gemiddeld aantal klanten in het systeem (L) en de gemiddelde verblijftijd (W ) in het systeem. Definieer de volgende vijf stochastische variabelen: 2 R.B. Cooper: Introduction to Queueing Theory, 2e edition, North Holland, 1981 (chapter 5, section 7). 81

86 N(t) = het aantal aankomsten in het interval [0, t]; L(t) = het aantal klanten in het systeem op tijdstip t; L q (t) = het aantal klanten dat op bediening wacht op tijdstip t; V n W n = de verblijftijd van de n-de klant in het systeem; = de wachttijd (tijd voordat de bediening begint) van de n-de klant in het systeem. Vervolgens introduceren we de volgende vijf getallen: λ = lim t E[N(t)] L = lim t 1 t L q = lim t 1 t t t 0 : de gemiddelde aankomstsnelheid; E[L(s)]ds : het gemiddeld aantal klanten in het systeem; t 0 E[L q(s)]ds : het gemiddeld aantal klanten in de wachtrij; W = lim n 1 n n m=1 E[V m] : de gemiddelde verblijftijd van een klant in het systeem; W q = lim n 1 n n m=1 E[W m] : 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 waarschijnlijkheid. Beschouw de stochastische uitdrukking 1 t 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 1 de convergentie van de verwachtingen, d.w.z. dat lim t t Analoge uitspraken gelden voor λ, L q, W en W q. t 0 t 0 E[L(s)]ds naar L convergeert. 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 T n de aankomsttijd zijn van de n-de klant, X(t) de som van de verblijftijden van de klanten die in [0, t] arriveren en Y (t) de som van de verblijftijden van de klanten die vóór tijdstip t weer vertrokken zijn. We zullen de volgende drie beweringen bewijzen: Bewering 1: Voor alle t 0 geldt dat X(t) t X(t) Bewering 2: lim t t = λw. Bewering 3: lim t X(t) t = lim t Y (t) t. 1 t t 0 L(s)ds Y (t) t. Veronderstel dat deze beweringen zijn bewezen. Dan is het bewijs als volgt te geven: λw = lim t 1 t Bewijs Bewering 1: t 0 L(s)ds = L. Laat X(t) = {n T n t} V n, 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 T n+v n t} V n, de som van de verblijftijden van de klanten 82

87 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 t 0 L(s)ds en als bij vertrek wordt betaald, dan heeft de beheerder gedurende de eerste t tijdseenheden het bedrag Y (t) ontvangen. Omdat in het eerste geval eerder wordt betaald dan in het tweede en het tweede geval weer eerder dan in het derde is het duidelijk dat X(t) t 0 L(s)ds Y (t) voor alle t 0, waaruit bewering 1 volgt. Bewijs Bewering 2: 1 Merk op dat lim n n n m=1 V 1 N(t) m = lim t N(t) m=1 V m, waaruit volgt dat { } N(t) {limn 1 λw = lim n t t n m=1 V } m = 1 N(t) limt t m=1 V m Hieruit volgt Bewering 2. Bewijs Bewering 3: V n 1 = lim t t {m T V X(t) m t} m = lim t t. lim n T n = 0, omdat lim n T n = en V n met kans 1 begrensd is, aangezien de verwachte tijdsduur voordat het systeem weer leeg is eindig is. Uit lim n = 0 volgt dat er voor iedere ε > 0 een N ε is zodat Vn T n < ε voor alle n > N ε. Laat t voldoende groot zijn zodat N(t) > N ε. Zij S 1 (t) = {n N ε T n + V n t} en S 2 (t) = {n > N ε T n + V n t}. Dan geldt: Y (t) = n S 1 (t) V n + n S 2 (t) V n T n V n. (7.2) Definieer S 3 (t) en S 4 (t) door: S 3 (t) = {n > N ε T n +εt n t} en S 4 (t) = {n N ε T n +εt n t}. Omdat voor n > N ε geldt dat T n + V n < T n + εt n, is S 3 (t) S 2 (t), zodat Uit (7.2) en (7.3) volgt dat Y (t) n S 1 (t) V n + n S 3 (t) n S 3 (t) V n = V n n S 1 (t) n S 2 (t) V n Laat vervolgens S 5 (t) = {n T n + εt n t} = {n T n Y (t) n S 1 (t) V n n S 4 (t) V n + n S 5 (t) V n = V n. (7.3) n S 4 (t) n S 1 (t) V n + n S 3 (t) V n + n S 4 (t) t 1+ε }. Dan kunnen we schrijven V n n S 4 (t) V n. (7.4) t V n + X( ). (7.5) 1 + ε Nu geldt X(t) t Y (t) t 1 t n S 1 (t) V n n S 4 (t) V n + X( t t 1+ε ). (7.6) Omdat n S 1 (t) V n n S 4 (t) V n begrensd wordt door n N ε V n geldt: { 1 lim t t n S 1 (t) V n } n S 4 (t) V n = 0. 83

88 X( 1+ε Verder geldt lim ) X(s) t t = lim s t (1+ε)s = 1 1+ε lim s X(s) s X(t) Y (t) lim lim 1 t t t t 1 + ε lim t. Hiermee volgt uit (7.6) dat X(t). (7.7) t X(t) Omdat (7.7) geldt voor alle ε > 0, geldt dat lim t t ook bewezen is. = lim t Y (t) t, waarmee Bewering 3 Op analoge wijze kan ook de volgende stelling worden bewezen. Stelling 7.2 Veronderstel dat λ en W q goed gedefinieerd en eindig zijn. Dan geldt: L q = λw q. Voor wachttijdsystemen met een Poisson aankomstproces geldt dat op de lange duur een binnenkomende klant het systeem in de gemiddelde situatie aantreft, onafhankelijk van hoe de verdeling van de bedieningsduur is. Deze eigenschap heet PASTA (= Poisson Arrivals See Time Averages). Voor algemene aankomstprocessen geldt deze eigenschap niet. Beschouw namelijk een aankomstproces waarin de klanten precies om de twee minuten arriveren en een bedieningsduur van precies één 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 (stochastische) tijdstippen zijn (regeneratiepunten), waarop het systeem - kanstheoretisch - gezien opnieuw begint (bijv. de tijdstippen waarop het systeem leeg raakt). De perioden tussen de regeneratiepunten heten cykels. Zij T de (stochastische) lengte van een cykel, met 0 < E(T ) <, N het (stochastische) aantal aankomsten gedurende een cykel en laat A een toestandsverz. zijn. Definieeer verder: T A = de tijdsduur dat het systeem gedurende een cykel in toestandsverz. A is; N A = het aantal aankomsten tijdens een cykel dat het systeem in toestandsverz. A aantreft. Nu kan worden bewezen 3 dat E(N A ) = λ E(T A ). (7.8) Passen we (7.8) toe met voor A de verz. van alle toestanden, dan krijgen we E(N) = λ E(T ), (7.9) 3 R.W. Wolff, Poisson arrivals see time averages, Operations Research 30 (1982)

89 zodat E(N A ) E(N) = E(T A) E(T ). (7.10) Op grond van de theorie van renewal processen 4 geldt dat E(N A) E(N) op de lange duur de fractie van de aankomende klanten is die het systeem in de toestandsverz. A aantreffen en dat E(T A) 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 µ). 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 één 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 λ n 1 λ n n 1 n n µ1 µ2 µn µn+1 Het De analyse van het geboorte-sterfte proces is erg moeilijk als het systeem in een transiënte toestand is. Resultaten over de kansverdeling van L(t) zijn zeer gecompliceerd. Er zijn wel eenvoudige afleidingen mogelijk nadat het systeem in een stationaire situatie (steady-state) is gekomen. 4 S.M. Ross, Applied Probability Models with Optimization Applications, Holden-Day, 1970 (chapter 3). 5 R.W. Wolff, Stochastic modelling and the theory of queues, Prentice-Hall,1989, chapter 4. 85

90 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: A n (t) = het aantal keren dat het proces toestand n bereikt in interval (0, t]; B n (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: A n (t) B n (t) 1 voor alle t 0. Hieruit volgt: An(t) t Omdat en Bn(t) t lim t A n(t) t lim t B n(t) t 1 t, wat impliceert dat lim t An(t) t = lim t B n(t) t. = de gemiddelde snelheid waarmee het systeem toestand n bereikt = 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 P n is te interpreteren als de fractie van de tijd dat het systeem in toestand n is. Het principe rate in = rate out geeft nu de volgende balansvergelijkingen: Toestand Stroom in = Stroom uit 0 µ 1 P 1 = λ 0 P 0 1 λ 0 P 0 + µ 2 P 2 = (λ 1 + µ 1 )P 1 2 λ 1 P 1 + µ 3 P 3 = (λ 2 + µ 2 )P 2 n λ n 1 P n 1 + µ n+1 P n+1 = (λ n + µ n )P n 86

91 Dit stelsel kan worden opgelost door alle kansen in P 0 uit te drukken: toestand 0: P 1 = λ 0 µ 1 P 0 toestand 1: P 2 = λ 1 µ 2 P µ 2 (µ 1 P 1 λ 0 P 0 ) = λ 1 µ 2 P 1 = λ 1λ 0 µ 2 µ 1 P 0 toestand 2: P 3 = λ 2 µ 3 P µ 3 (µ 2 P 2 λ 1 P 1 ) = λ 2 µ 3 P 2 = λ 2λ 1 λ 0 µ 3 µ 2 µ 1 P 0 toestand n: P n+1 = λn µ n+1 P n + 1 µ n+1 (µ n P n λ n 1 P n 1 ) = λn µ n+1 P n = λnλ n 1 λ 0 µ n+1 µ n µ 1 P 0 Laat C n = λ n 1λ n 2 λ 0 µ nµ n 1 µ 1, n = 1, 2,... en neem C 0 = 1. Dan geldt: P n = C n P 0, n = 0, 1,.... Met behulp van de relatie n=0 P n = 1 volgt hieruit dat [ n=0 C n]p 0 = 1, zodat P n = C n n=0 C, n = 0, 1,... (7.11) n 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 λ np n. Met behulp van (7.11) en de formule van Little zijn de karakteristieke grootheden L, L q, W en W q, die informatie geven over de performance van het systeem, als volgt te bepalen (dit heet de mean-value techniek): L = np n ; L q = n=0 (n s)p n ; λ = n=s n=0 λ n P n ; W = L λ ; W q = L q λ (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 C n =. 7.5 Wachttijdmodellen gebaseerd op het geboorte-sterfte proces We zullen in deze paragraaf een aantal modellen uitwerken die gebaseerd zijn op het geboortesterfte proces. Om een bepaald wachtrijprobleem aan te geven gebruiken we de volgende notatie: a/b/c; d/e/f waarbij a: het aankomstproces aangeeft; b: de bedieningsduur aangeeft; c: het aantal bedienden voorstelt; d: de bedieningsdiscipline weergeeft; e: het maximum aantal klanten in het systeem is; f: het aantal elementen in de klantenbron voorstelt. 87

92 Als d de FIFO-regel is (first-in-first-out) en e = f =, dan laten we het stuk d/e/f in de notatie weg. Zowel Poisson input (tussentijden exponentieel verdeeld) als een exponentiële bedieningsduur worden aangegeven met de letter M van Markov. Voor een deterministische kansverdeling wordt de letter D gebruikt en voor een algemene kansverdeling de letter G. a. Het M/M/1 model Dit is het meest eenvoudige wachttijdmodel. Klanten komen aan volgens een Poisson proces met parameter λ; de bedieningstijd van een klant is exponentieel verdeeld met parameter µ, er is één 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 N 0 en µ n = µ voor alle n N, zodat C n = ρ n voor n = 0, 1,.... Uit de formules (7.11) en (7.12) volgt: P n = ρ n n=0 ρn = (1 ρ)ρn, n N 0 (7.13) L q = (n 1)P n = (1 ρ) (n 1)ρ n = (1 ρ)ρ 2 n=1 = (1 ρ)ρ 2 ρ W q = L q λ = n=1 n=1 ρ n 1 = (1 ρ)ρ 2 ρ (1 ρ) 1 = n=1 ρ2 1 ρ ρ n 1 ρ µ(1 ρ) ; W = W q + 1 µ = 1 µ(1 ρ) ; L = λw = ρ 1 ρ ρ (7.14) (7.15) In de formules voor L, L q, W en W q zien we dat in de noemer de term (1 ρ) staat. Dit betekent dat deze grootheden snel toenemen als de bezettingsgraad toeneemt. Als de bezettingsgraad toeneemt van 90% naar 95% (een toename van 5%), dan nemen deze grootheden met 100% toe. We spreken dan ook van een exponentiële 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 P 0, dus 1 ρ. De gemiddelde tijd dat de bediende vrij is, is de gemiddelde tijd tot er weer een klant binnenkomt. Vanwege de geheugenloosheid van de exponentiële verdeling is deze tijdsduur 1 λ. De regeneratietijd is dus 1 λ 1 bezig is, is dus 1 λ 1 1 ρ (1 P 0) = het systeem verblijft. Voorbeeld ρ ρ λ(1 ρ) = 1 µ 1 1 ρ en de gemiddelde tijdsduur dat de bediende, wat gelijk is aan W, de tijd die een klant in Veronderstel dat schepen in een haven aankomen volgens een Poisson proces met een gemiddelde van 5 schepen per etmaal. De havendirectie moet een beslissing nemen over de aanschaf van een kraan om de schepen te lossen. De dagelijkse kosten van de kraan zijn 5000 µ euro, waarbij de lostijd per schip exponentieel verdeeld is met parameter µ. Gedurende 24 uur per etmaal kan er worden gelost. Voor elk schip zijn er verblijfkosten van 25 euro per uur dat het in de haven verblijft (ook voor de lostijd moet worden betaald). De directie moet een beslissing nemen over de keuze van µ en wil die keuze zó maken dat de totale kosten per etmaal minimaal zijn. Welke waarde van µ is optimaal? 88

93 Dit is een M/M/1-model. Laten we een uur als tijseenheid nemen, dan is λ = De gemiddelde ligkosten (per uur) van de schepen = 25 L = 25λ µ λ = µ 5. De gemiddelde kosten (per uur) voor de kraan zijn µ. Voor de kostenfunctie f(µ) geldt dus: f(µ) = µ µ. f (µ) = 0 geeft: (24µ 5) 2 24 = 0, waaruit volgt (24µ 5) 2 = = 14.4, zodat 24µ 5 = 14.4 = Aldus vinden we µ = 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) = P n = (1 ρ)ρ n, n N 0. Als n = 0, dan is de verblijftijd van de aankomende klant gelijk aan zijn bedieningsduur; als n 1, dan dan ontvangt één klant bediening en zijn er n 1 klanten die eerst geholpen moeten worden voordat de aankomende klant zijn bediening ontvangt. Vanwege de geheugenloosheid van de exponentiële 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) = T 1 + T T n+1, n = 0, 1,..., met T 1, T 2,..., T n+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) = t 0 µe µx (µx) n n! dx. We kunnen nu schrijven: P(W t) = n=0 (1 ρ)ρn t 0 µe µx (µx) n n! dx = (1 ρ) t 0 µe µx ( (λx) n n=0 n! )dx = (µ λ) t 0 e (µ λ)x dx = 1 e (µ λ)t. De verblijftijd is dus ook exponentieel verdeeld met parameter µ λ. De verwachting hiervan is 1 µ λ, wat overeenkomt met de formule voor de gemiddelde verblijftijd W. 6 Naar de Deense wiskundige Erlang, de grondlegger van de wachttijdtheorie, begin twintigste eeuw. 89

94 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. { nµ voor 1 n s 1 In dit geboorte-sterfte proces is λ n = λ voor alle n N 0 en µ n = Hieruit volgt C n = { (λ/µ) n n! voor n < s (λ/µ) s s! ρ n s voor n s Uit de formules (7.11) en (7.12) volgt: sµ voor n s P 0 = P n = { s 1 (λ/µ) n + (λ/µ)s s! } 1 ρ n s = n! n=0 n=s { (λ/µ) n n! P 0 voor n < s (λ/µ) s s! ρ n s P 0 voor n s { s 1 n=0 (λ/µ) n n! + (λ/µ)s s! } 1 1 (7.16) 1 ρ (7.17) Vervolgens gaan we L q berekenen: L q = n=s (n s)p n = j=0 jp s+j = j=0 j (λ/µ)s s! ρ j P 0 = (λ/µ)s s! ρp 0 ρ j j=0 ρ = (λ/µ)s s! ρp 0 ρ [ j=0 ρj ]. Omdat ρ [ j=0 ρj ] = ρ [(1 ρ) 1 ] = (1 ρ) 2, krijgen we: { L q = (λ/µ)s s! ρp 0 (1 ρ) 2 = (λ/µ)s ρ s 1 } (λ/µ) s! n 1 (1 ρ) 2 n=0 n! + (λ/µ)s 1 s! (7.18) 1 ρ Hieruit volgen de overige grootheden volgens de formule van Little: W q = L q λ ; W = W q + 1 ; L = λw (7.19) µ In de formules voor L, L q, W en W q is weer te zien dat in de noemer de term (1 ρ) voorkomt; ook hier hebben we dus weer een exponentiële toename als ρ naar 1 nadert. De fractie van de tijd dat alle bedienden bezet zijn is: n=s P n = P (λ/µ) s 0 n=s s! ρ n s = (λ/µ)s s! P 0 (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! P 0 (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, één voor geldzaken en één 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

95 Overwogen wordt beide loketten open te stellen voor zowel geld- als postzaken met één gezamenlijke wachtrij voor de loketten. Wat is het effect van de nieuwe inrichting op de bezetting van de loketten en op het gemiddelde aantal klanten in het postkantoor? Kies het uur als tijseenheid. in de huidige situatie hebben we twee onafhankelijke M/M/1 systemen. Voor het loket geldzaken is λ = 15, µ = 20, dus de fractie van de tijd dat dit loket bezet is is ρ = 3 4. Het gemiddeld aantal klanten voor geldzaken L g = klant aan de beurt is bedraagt ρ µ(1 ρ) = 0.15 uur (9 minuten). ρ 1 ρ = 3. De wachttijd voordat de Voor het loket postzaken is λ = 18, µ = 20, dus de fractie van de tijd dat dit loket bezet is is ρ = Het gemiddeld aantal klanten voor postzaken L p = ρ klant aan de beurt is bedraagt = 0.45 uur ( 27 minuten). ρ µ(1 ρ) Dus in totaal zijn gemiddeld = 12 klanten in het postkantoor aanwezig. 1 ρ = 9. De wachttijd voordat de Beschouw vervolgens de voorgestelde situatie, waarin beide loketten beschikbaar zijn voor zowel geld- als postzaken. Dit is een M/M/2 systeem met λ = = 33, µ = 20, dus ρ = Uit de formules van het M/M/2 systeem volgt: P 0 = ; L q = 3.516; W q = : W = 0.157; L = 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 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 L q (2) resp. L q (1) zijn en het aantal klanten in het systeem L(2) resp. L(1) zijn. Nemen we λ = 15 en µ = 10 (dus ρ = 3 4 ), dan hebben we hierboven gezien dat L(1) = 3. Uit de formules van het M/M/1 model volgt dat L q (1) = 9 4. Voor het M/M/2 model (waarin ρ dus weer 3 4 is) krijgen we: L q (2) = en L(2) = We zien dus het opmerkelijke verschijnsel dat L q(2) < L q (1), terwijl L(2) > L(1). Dit resultaat hangt niet van de gekozen getallen af, maar geldt algemeen (zie Opgave 15) c. Het M/M/s; FIFO/N/ model In dit model kunnen er maximaal N klanten in het systeem zijn. We nemen bovendien aan dat s N (het is duidelijk dat s > N zinloos is). In termen van het geboorte-sterfte proces betekent dit dat: λ n = { λ voor 0 n N 1 0 voor n N en µ n = { nµ voor 1 n s 1 sµ voor n s Hieruit volgt C n = { (λ/µ) 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

96 P 0 = P n = { s 1 n=0 (λ/µ) n n! + (λ/µ)s s! } 1 N ρ n s n=s (λ/µ) n n! P 0 voor 0 n s 1 (λ/µ) s s! ρ n s P 0 voor s n N 0 voor n > N (7.20) (7.21) P N is niet alleen de fractie van de tijd dat het systeem vol is, maar - op grond van de PASTA-regel - ook de fractie van de tijd dat een aankomende klant het systeem vol aantreft, d.w.z. dat de klant geweigerd wordt; dit heet de blokkeringskans. Als N = s, d.w.z. dat er geen ruimte aanwezig is om te wachten, dan geldt P N = Dit heet de Erlang verliesformule. Ook nu gaan we eerst L q berekenen: L q = n=s (n s)p n = N s j=0 jp s+j = N s j=0 j (λ/µ)s s! ρ j P 0 = (λ/µ)s s! ρp 0 N s ρ j j=0 ρ = (λ/µ)s s! ρp 0 ρ [ N s j=0 ρj ]. Omdat ρ [ m j=0 ρj ] = ρ [ 1 ρm+1 1 ρ ] = 1 (1 ρ) 2 [1 ρ m mρ m (1 ρ)], krijgen we: Vervolgens berekenen we λ: (λ/µ) s /s! P s n=0 (λ/µ)n /n!. L q = (λ/µ)s ρ s! [1 ρ (1 ρ) N s (N s)ρ N s (1 ρ)]p 2 0 (7.22) λ = λ n P n = n=0 N 1 Hieruit volgen de overige grootheden volgens de formule van Little: n=0 λp n = λ(1 P N ) = λ[1 ρn s s P 0 ] (7.23) s! W q = L q λ ; W = W q + 1 ; L = λw (7.24) µ Voor het speciale geval s = 1 krijgen we de volgende formules voor P 0, λ en L q (merk op dat deze voor N overeenkomen met de formules van het M/M/1 model): P 0 = { 1 + ρ } 1 N ρ n 1 n=1 = {1 + ρ 1 ρn 1 ρ } 1 = 1 ρ 1 ρ N+1 (7.25) λ = λ [1 ρ N 1 ρ N P 0 ] = λ 1 ρ N+1 (7.26) L q = ρ 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. P 0 = {1 + N n=1 1} 1 = 1 N+1 ; P j = 1 N+1, 1 j N; L q = N 1 n=0 jp j+1 = 1 (N 1)N 2 N+1 ; λ = λ (1 P 0 ) = λ N N+1 ; W q = Lq λ = N 1 2λ ; W = W q + 1 µ = W q + 1 λ = N+1 2λ ; L = λw = N 2. 92

97 d. Het M/M/s; FIFO/N/N model In dit model is er een eindige klantenbron met N elementen. Dus als er in het systeem reeds n klanten aanwezig zijn, dan is het aantal potentiële klanten N n. Het aantal bedienden s is weer hoogstens N. We nemen aan dat iedere klant zich (onafhankelijk van elkaar) volgens een Poissonproces met parameter λ kan melden. Dit geeft de volgende { schematische voorstelling van nµ voor 1 n s 1 de stationaire situatie: λ n = (N n)λ, 0 n N en µ n = sµ voor s n N { N! (N n)!n! Hieruit volgt: C n = (λ/µ)n voor 0 n s 1 en N! (λ/µ) (N n)!s!s n s voor s n N n s P 0 = { s 1 N! (N n)!n! (λ/µ)n + N!ss s! n=0 De berekening van de vier karakteristieke getallen verloopt als volgt: N n=s } 1 1 (N n)!s n (λ/µ)n (7.28) λ = N n=0 λ np n = N n=0 λ(n n)p n = λn N n=0 P n λ N n=0 np n = λ(n L). L q = N n=s (n s)c np 0. Omdat L = L q + λ µ = L q + λ λn+µlq µ (N L), volgt hieruit dat L = λ+µ. Met behulp van (7.28) levert dit de volgende formules op: P n = L q = N!s s (N s)!s!s n (λ/µ)n P 0, s n N (7.29) N (n s)p n ; L = λn + µl q λ + µ ; λ = λ(n L); W q = L q λ ; W = L λ (7.30) n=s Tenslotte beschouwen we weer het speciale geval s = 1, waarvoor de volgende formules voor P 0 en L q gelden: P 0 = L q = { N n=0 } 1 N! (N n)! (λ/µ)n (7.31) N (n 1)P n = L (1 P 0 ) = λn + µl q (1 P 0 ) λ + µ n=1 Hieruit volgt dat L q = N λ + µ λ (1 P 0 ) (7.32) 7.6 Het M/G/1 model Veronderstel dat de bedieningsduur T een willekeurige tijdsduur heeft met verwachting τ, variantie σ 2 en dichtheid f(t). Per tijdseenheid komen gemiddeld λ klanten aan die dus gemiddeld per tijdseenheid λτ aan bediening nodig hebben. We veronderstellen daarom dat λτ < 1 en dat er een stationaire situatie ontstaat. 93

98 Zij N k het aantal klanten in het systeem als de k-de klant net vertrokken is na een bediening gehad te hebben, { en laat X k het aantal klanten zijn dat binnenkomt { terwijl de k-de klant bediend N k + X k+1 1 als N k 1; 1 als N k 1; wordt: N k+1 = Laat δ(n k ) = X k+1 als N k = 0. 0 als N k = 0. We kunnen nu schrijven N k+1 = N k + X k+1 δ(n k ), zodat Nk+1 2 = N k 2 + X2 k+1 + δ(n k) 2 + 2N k X k+1 2N k δ(n k ) 2X k+1 δ(n k ) = Nk 2 + X2 k+1 + δ(n k) + 2N k X k+1 2N k 2X k+1 δ(n k ), waaruit volgt: E N k+1 = E N k + E X k+1 E δ(n k ) en E Nk+1 2 = E N k 2 + E X2 k+1 + E δ(n k) + 2 E N k E X k+1 2 E N k 2 E X k+1 E δ(n k ). Vanwege de aanname dat er een stationaire situatie ontstaat geldt: lim k E N k = lim k E N k+1. Laat voor de stationaire grootheden de index k weg. Dit levert het volgende op. Uit de formule van E N k+1 volgt: E δ(n) = E X = het verwachte aantal binnenkomsten tijdens één bediening = λτ. Uit de formule voor E Nk+1 2 en het bovenstaande volgt: 0 = E X 2 + E X + 2 E N E X 2 E N 2 E X 2. Hieruit volgt: E N = E X2 + E X (1 2 E X) 2(1 E X) (7.33) Zij N(t) het aantal aankomsten in tijdsduur t. Uit de eigenschappen van de exponentiële verdeling is bekend dat E{N(t)} = VAR{N(t)} = λt. E X en E X 2 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 X 2 = E{E(X 2 T )} = 0 E(X 2 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 t 2 f(t)dt = λτ + λ 2 (σ 2 + τ 2 ). Vullen we deze waarden (7.33) in, dan krijgen we: E N = λτ + λ2 (σ 2 + τ 2 ) + λτ(1 2λτ) 2(1 λτ) Laat ρ = λτ, dan luiden de formules van dit model: = λτ + λ2 (σ 2 + τ 2 ) 2(1 λτ) (7.34) L = ρ + λ2 σ 2 + ρ 2 2(1 ρ) ; L q = λ2 σ 2 + ρ 2 2(1 ρ) ; W = L λ ; W q = L q λ (7.35) 94

99 Voor de tijdsduur W q dat men moet wachten voordat men bediend wordt, volgt uit bovenstaande formule dat W q = ρ 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: W q = 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 W q tijdseenheden, betaalt hij met een snelheid T en als hij reeds x tijdseenheden in bediening is betaalt hij met snelheid T x. De verwachte betaling van een klant is dus: E{T W q + T 0 (T x)dx} = τw q E(T 2 ) = τw q {VAR(T ) + E(T )2 } = τw q (σ2 + τ 2 ). Omdat er per tijdseenheid λ klanten het systeem binnenkomen ontvangt het systeem dus per tijdseenheid (laat de klanten aan de poort betalen en gebruik dat λτ = ρ): ρ{w q + σ2 2τ + τ 2 }. Anderzijds ontvangt het systeem per tijdseenheid de werklast, d.w.z. W q, zodat geldt: W q = ρ{w q + σ2 2τ + τ 2 } W q = ρ 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: b. Erlang-verdelingen W q = ρτ 2(1 ρ) ; L q = λw q ; L = L q + ρ; W = L λ (7.37) 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 := T 1 +T 2 + +T k, met T 1, T 2,... T k onderling onafhankelijke identiek verdeelde stochastische variabelen, die elk een negatief exponentiële 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(T i) = k i=1 (µk) 1 = 1 µ ; VAR(T ) = k i=1 VAR(T i) = k i=1 (µk) 2 = 1 kµ 2. We hebben al eerder opgemerkt dat de dichtheid van een Erlang-verdeling met parameter (µk, k) gelijk is aan: f(x) = µke µkx (µkx)( k 1), x 0. (7.38) (k 1)! 95

100 Voor k = 1 is f(x) = µe µx, de dichtheid van de exponentiële 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: W q = k + 1 2k λ µ(µ λ) ; L q = λw q ; L = L q + λ µ ; 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 N i (t) als het aantal klanten dat op tijdstip t aanwezig is bij wachtrij i, i = 1, 2. Dan is het proces {N 1 (t), N 2 (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 P n,m, n, m N 0. P n,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 P n = (1 ρ 1 )ρ n 1, n N 0. Nu geldt: P{[een klant vertrekt gedurende het interval [t, t + t)} = P[minstens één klant op tijdstip t en de bediening van deze klant loopt af vóór tijdstip t + t] = (1 P 0 ) µ 1 t = λ µ 1 µ 1 t = λ t. De vertreksnelheid bij wachtrij 1 is dus λ, wat overeenkomt met het Poissonproces met parameter λ. Dit is het aankomstproces bij wachtrij 2 en voor de kans P m dat er m klanten bij wachtrij 2 zijn geldt weer: P m = (1 ρ 2 )ρ m 2, m N 0. Als de aantallen klanten bij de wachtrijen onafhankelijk van elkaar zijn, dan zou hieruit volgen dat: P n,m = (1 ρ 1 )ρ n 1 (1 ρ 2 )ρ m 2, n, m N 0 (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 µ 2 P 0,1 = λp 0,0 n, 0; n 1 λp n 1,0 + µ 2 P n,1 = (λ + µ 1 )P n,0 0, m; m 1 µ 2 P 0,m+1 + µ 1 P 1,m 1 = (λ + µ 2 )P 0,m n, m; n, m 1 λp n 1,m + µ 2 P n,m+1 + µ 1 P n+1,m 1 = (λ + µ 1 + µ 2 )P n,m 96

101 Stelling 7.3 P n,m = (1 ρ 1 )ρ n 1 (1 ρ 2)ρ m 2, n, m N 0 Bewijs We zulen laten zien dat de P n,m uit de Stelling voldoen aan de evenwichtsvergelijkingen. Omdat evenwichtsvergelijkingen een unieke oplossing hebben, is daarmee het bewijs geleverd. µ 2 P 0,1 = µ 2 (1 ρ 1 )(1 ρ 2 )ρ 2 = λ(1 ρ 1 )(1 ρ 2 ) = λp 0,0. λp n 1,0 +µ 2 P n,1 = λ(1 ρ 1 )ρ n 1 1 (1 ρ 2 )+µ 2 (1 ρ 1 )ρ n 1 (1 ρ 2)ρ 2 = (1 ρ 1 )ρ n 1 (1 ρ 2)[λρ 1 1 +µ 2ρ 2 ] = (1 ρ 1 )ρ n 1 (1 ρ 2)[µ 1 + λ] = (λ + µ 1 )P n,0, n 1. µ 2 P 0,m+1 + µ 1 P 1,m 1 = µ 2 (1 ρ 1 )(1 ρ 2 )ρ m µ 1 (1 ρ 1 )ρ 1 (1 ρ 2 )ρ m 1 2 = (1 ρ 1 )(1 ρ 2 )ρ m 2 [µ 2ρ 2 + µ 1 ρ 1 ρ 1 2 ] = (λ + µ 2)P o,m, m 1. λp n 1,m + µ 2 P n,m+1 + µ 1 P n+1,m 1 = λ(1 ρ 1 )ρ n 1 1 (1 ρ 2 )ρ m 2 + µ 2(1 ρ 1 )ρ n 1 (1 ρ 2)ρ m µ 1 (1 ρ 1 )ρ n+1 1 (1 ρ 2 )ρ m 1 2 = (1 ρ 1 )ρ n 1 (1 ρ 2)ρ m 2 [λρ µ 2 ρ 2 + µ 1 ρ 1 ρ 1 2 ] = (µ 1 + λ + µ 2 )P n,m Met behulp van deze statioaire kansen zijn de karakteristieke grootheden L en W weer uit te rekenen: L = n,m=0 (n + m)p n,m = (1 ρ 1 )(1 ρ 2 ){ n,m=0 nρn 1 ρm 2 + n,m=0 mρn 1 ρm 2 } = = (1 ρ 1 )(1 ρ 2 ){ρ 1 m=0 ρm 2 n=1 nρn ρ 2 n=0 ρn 1 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 s 1 bedienden bij wachtrij 1 en s 2 bedienden bij wachtrij λ 2, waarbij verondersteld wordt dat s 1 µ 1 < 1 en λ s 2 µ 2 < 1, dan geldt ook dat de wachtrijen zich in de evenwichtssituatie gedragen als onafhankelijke M/M/s 1 - resp. M/M/s 2 -wachtrijen. Voorbeeld 7.3 Op een vliegveld moeten passagiers eerst een veiligheidscontrole ondergaan en vervolgens een bagagecontrole. De tijden die per passagier vereist zijn voor de veiligheidscontrole en de bagagecontrole zijn onafhankelijke stochastische variabelen die exponentieel verdeeld zijn met verwachtingswaarde van resp. 1 en 2 minuten. De passagiers komen aan volgens een Poisson proces met een gemiddelde van 75 passagiers per uur. In totaal zijn er 10 beambten beschikbaar om verdeeld te worden over de veiligheidscontrole en de bagagecontrole. Voor welke opsplitsing van deze beambten is het gemiddeld aantal klanten dat zich in het controleproces bevindt minimaal? Kies als tijdseenheid een uur, dan is λ = 75, µ 1 = 60 en µ 2 = 30. Als we k beambten toekennen aan de veiligheidscontrole en 10 k aan de bagagecontrole, dan moet voor het bereiken van een evenwichtssituatie gelden dat λ kµ 1 = 75 60k < 1, d.w.z. k 2 en λ (10 k)µ 2 = 75 30(10 k) 10 k 3, ofwel k 7. Voor k kunnen we dus de waarden 2, 3, 4, 5, 6, en 7 kiezen. < 1, d.w.z. Voor ieder van deze k s kunnen we in beide wachtrijen volgens de formules uit het M/M/smodel (zie (7.18) en (7.19)) de L 1 (aantal personen bij de veiligheidscontrole) en L 2 (aantal 97

102 personen bij de bagagecontrole) en dus ook het totaal aantal personen in het controleproces (L 1 + L 2 ) berekenen: k L 1 L 2 L 1 + L We zien dat L 1 + L 2 minimaal is voor k = 4. Er zijn dan gemiddeld ongeveer 3.8 klanten in controle. Open netwerk van wachtrijen (Jackson netwerken) De analyse van de tandem wachtrij kan aanmerkelijk worden gegeneraliseerd. Beschouw een systeem met K bedienden die ieder een wachtrij beheren. Klanten komen het systeem binnen en kunnen direct naar wachtrij i gaan volgens een Poisson proces met parameter r i, i = 1, 2,..., K. Voor de aankomstsnelheid λ bij het totale systeem geldt: λ = K i=1 r i. Na bediend te zijn bij wachtrij i volgens een exponentieel verdeelde bedieningsduur met snelheid µ i, gaat een klant naar wachtrij j met kans p ij, 1 j K, òf hij verlaat het systeem met kans p i0 = 1 K j=1 p ij, 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 p ij wordt vervolgens gegaan naar wachtrij j. Beschouw de toestandsruimte met toestandverz. {0, 1, 2,..., K}, waarbij toestand 0 de buitenwereld is. We nemen aan dat de toestanden 1, 2,..., K transient zijn, d.w.z. dat een klant het systeem met kans 1 weer verlaat. Neem p 00 = 1, dan is dus toestand 0, de enige recurrente toestand, absorberend. Uit de theorie van Markov ketens volgt dan dat de getallen λ j, 1 j K kunnen dan worden verkregen als unieke oplossing van het stelsel λ j = r j + K i=1 λ i p ij, 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 )ρ n j, n N 0 (7.42) en (weer via de balansvergelijkingen) dat P(n 1, n 2,..., n K ), d.w.z. de kans dat er n j klanten zijn bij wachtrij j, 1 j K, de productvorm heeft: P(n 1, n 2,..., n K ) = K j=1 (1 ρ j )ρ n j j, n j N 0, 1 j K (7.43) 98

103 Formule (7.42) is opmerkelijk omdat het aankomstproces bij wachtrij j geen Poisson proces hoeft te zijn. We kunnen dit eenvoudig inzien aan de hand van een voorbeeld met K = 1, p 11 = 0.9, r 1 = 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 één 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: K L = {het gemiddeld aantal klanten bij wachtrij j} = j=1 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 r j): λ j µ j λ j W = L K λ = j=1 K j=1 r j (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 Bereken de stationaire kansen en de grootheden L en W. { λ 1 = Het stelsel (7.41) is: λ 2 λ 2 = λ waaruit volgt dat λ 1 = 6 en λ 2 = 8, zodat ρ 1 = 3 4 en 1 ρ 2 = 4 5. Dit geeft volgens (7.43), (7.44) en (7.45): P(n, m) = 1 4 ( 3 4 )n 1 5 ( 4 5 )m, n, m N 0 ; L = = 7; W = L r 1 +r 2 = = 7 9. Opmerking De productvorm (7.43) is gevonden onder de veronderstelling dat alle bedieningstijden exponentieel zijn. Tevens is verondersteld dat elke wachtrij slechts één bediende heeft. Deze productvorm geldt ook 7 in een van de volgende gevallen: 1. Iedere wachtrij heeft een willekeurig aantal bedienden. In dit geval moet in (7.43) aan de rechterzijde het product staan van de kansen zoals die uit het M/M/s model volgen. 2. Elke klant treft altijd direct een bediende (te modelleren alsof er oneindig veel bedienden zijn), in welk geval de bedieningsduren een willekeurige verdeling mogen hebben. Nu moet in 7 F. Baskett, K.M. Chandy, R.R. Muntz and F. Palacios: Open, closed and mixed networks of queues with different classes of customers, Journal of the ACM 22 pp (1975). 99

104 (7.43) aan de rechterzijde het product staan van de kansen van Poissonverdelingen met verwachtingswaarde λ j E(S j ), waarbij E(S j ) 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 één bediende met een bedieningstijd die exponentieel verdeeld is met parameter µ i, i = 1, 2,..., K. Als de bediening van een klant bij wachtrij i klaar is, gaat de klant met kans p ij naar wachtrij j, waarbij j p ij = 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(n 1, n 2,..., n K ) de kans dat op de lange duur bij wachtrij i n i klanten aanwezig zijn, waarbij n 1 +n 2 + +n K = N. Ook in dit geval kan worden bewezen dat P(n 1, n 2,..., n K ) de fractie van de tijd is dat er gelijktijdig n i 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 K λ j = λ i p ij, j = 1, 2,..., K (7.46) i=1 Het stelsel (7.46) heeft echter geen unieke oplossing, maar is op een constante na bepaald. We kunnen dus schrijven λ j = απ j, j = 1, 2,..., K, waarbij π de unieke oplossing is van het stelsel K j=1 K π j = π i p ij, j = 1, 2,..., K (7.47) i=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: K P(n 1, n 2,..., n K ) = C i=1 ( λi = C α N K ) ni = C α n 1+n 2 + +n K K µ i ( πi µ i=1 i ) ni = C K ( πi µ i=1 i i=1 ( ) ni π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 (n 1, n 2,..., n K ) met n 1 + n Zie het college Inleiding Besliskunde. 100

105 n K = N. Dit aantal is N! n 1!n 2! n K!, 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 n i andere klanten ziet bij de wachtrij i, waarbij n 1 + n 2 + n K = N 1 is gelijk aan P(n 1, n 2,..., n K ). Dit resultaat zegt dus dat een aankomende klant het systeem ziet in de evenwichtssituatie behorende bij één klant minder in het systeem. Definieer nu voor n = 1, 2,..., N: L n (i) = het gemiddeld aantal klanten bij wachtrij i als er n klanten in het systeem zijn. W n (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 L n 1 (i) andere klanten aantreft. Vanwege de geheugenloosheid van de exponentiële bedieningsduren geldt voor de gemiddelde tijd dat deze klant bij wachtrij i verblijft: W n (i) = L n 1(i) + 1 µ i, 1 i K (7.50) Passen we de formule van Little toe, dan krijgen we voor L n (i): Verder geldt weer L n (i) = λ n (i)w n (i), 1 i K (7.51) λ n (i) = α n π i, 1 i K, (7.52) waarbij π i bepaald wordt door (7.47) en (7.48). Omdat K i=1 L n(i) = n, volgt uit (7.51) en (7.52) dat n = α K n i=1 π n iw n (i), d.w.z. α n = P. Hiermee zijn L K i=1 π iw n(i) N(i) en W N (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. 9 Zie het dictaat Discrete Wiskunde. 101

106 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. W 1 (i) = 1 µ i voor i = 1, 2,..., K en laat n = α n = n P K i=1 π iw n(i) ; λ n(i) = Als n = N: stop; Anders: ga naar stap n := n + 1; W n (i) = L n 1(i)+1 µ i, 1 i K. Ga naar stap 2. n P K i=1 π iw n(i) π i, 1 i K; L n (i) = λ n (i)w n (i), 1 i K. Dit algoritme geeft niet alleen L N (i) en W N (i) voor alle i, maar ook de λ N (i), het gemiddeld aantal klanten dat per tijdseenheid door wachtrij i wordt verwerkt, i = 1, 2,..., K. Tenslotte merken we op dat deze resultaten weer gegeneraliseerd kunnen worden tot de gevallen die aan het einde van het stukje over open netwerken zijn vermeld. 7.8 Opgaven Opgave 1 Beschouw een wachttijdsysteem met oneindig veel plaatsen, Poisson aankomsten met parameter λ = 0.5 en een exponentiële 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 één klant in het systeem (die dus bediend wordt). Wat is de kans dat de bediening binnen 2 minuten klaar is? Opgave 2 a. Geef een intuïtieve verklaring met een betaalregel dat L q = λw q. b. Geef een intuïtieve verklaring met een betaalregel dat het gemiddeld aantal bedienden dat bezet is gelijk is aan λ E(B), met B de bedieningsduur. c. Geef een intuïtieve verklaring met een betaalregel dat E(N A ) = λ E(T A ) (zie (7.8)). 102

107 Opgave 3 Een wachttijdsysteem heeft twee bedienden en het systeem kan maximaal 5 klanten bevatten. De stationaire kansverdeling is als volgt: P 0 = 0.05, P 1 = 0.15, P 2 = 0.25, P 3 = 0.25, P 4 = 0.20 en P 5 = Bepaal voor dit model de grootheden L, L q en de bedieningsintensiteit ρ. Opgave 4 Een wachtrijsysteem heeft 3 bedienden, gemiddeld zijn er 6.4 klanten in het systeem en gemiddeld staan er 4 klanten te wachten voordat ze worden geholpen. Hoe groot is de bezettingsgraad van de bedienden in dit systeem? Opgave 5 In een winkel komen de klanten volgens een Poissonproces bij de kassa aan met een gemiddelde van 30 klanten per uur. Er is één kassa en de bedieningsduur is exponentieel met een gemiddelde van 2 minuten. Als er 3 of meer klanten bij de kassa staan wordt de cassière bijgestaan door een inpakster. De bedieningsduur blijft dan exponentieel, maar het gemiddelde zakt tot 1 minuut. Stel voor dit model de balansvergelijkingen op en bereken L, L q, W en W q. Opgave 6 Hetzelfde model als in Opgave 5 met alleen de volgende verandering: als er 3 of meer klanten bij de kassa staan wordt een tweede kassa geopend die ook een negatief exponentiële bedieningsduur heeft met een gemiddelde van 2 minuten. Bereken voor dit gewijzigde model L, L q, W en W q. 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 één kapper en de behandeltijd van de klanten is exponentieel met een gemiddelde van 30 minuten. Een aankomende klant gaat met kans 1 3n 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

108 Opgave 9 Beschouw een wachtrijsysteem met één bediende; de bedieningsduur is negatief exponentieel verdeeld met parameter µ. De aankomstsnelheid van de klanten is 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 µ. λ i+1 als er i klanten in het Opgave 10 Een bank heeft tussen 5 en 6 uur s middags één 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: één of twee? Opgave 12 Bij een pompstation komen auto s aan volgens een Poissonproces met een gemiddelde van één 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, L q, W en W q. 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

109 a. De capaciteit van de wagens groter maken zodat er gemiddeld 6 aankomsten per uur zijn, en tegelijk de capaciteit van het lossen vergroten waardoor de lostijd gemiddeld 4 minuten wordt. b. Een tweede loseenheid installeren op dit verzamelpunt met eveneens een gemiddelde lostijd van 6 minuten. c. Een extra verzamelpunt elders maken dat verder identiek is aan het huidige en de wagens over beide verzamelpunten gelijk verdelen. Wat wordt in ieder van deze drie voorstellen de verwachte verblijftijd van een wagen bij het lossen? Opgave 14 Zij T een Erlang-n verdeling, d.w.z. T = T 1 +T 2 + +T n met T 1, T 2,..., T n onderling onafhankelijke 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 bedieningssnelheid 2µ. Laat het gemiddeld aantal klanten dat wacht L q (2) resp. L q (1) zijn en het aantal klanten in het systeem L(2) resp. L(1) zijn. Toon aan dat in het algemmen geldt: L q (2) < L q (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

110 Opgave 18 Beschouw een wachttijdsysteem van het type M/G/1 met λ = 8 en τ = 1/10. Bepaal de vier grootheden L, L q, W en W q voor de volgende drie gevallen van de bedieningsduur: a. negatief exponentiqle verdeling; b. constante bedieningsduur; c. Erlang bedieningsduur met k = 4. Opgave 19 Beschouw een tandemwachtrij met twee stations waarin geen wachtruimtes zijn. Klanten komen bij het eerste station aan volgens een Poissonproces met 10 klanten per uur. Als het station bezet is, dan vertrekt de klant; als het station vrij is, dan wordt de klant bediend volgens een exponentiële 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 éénbediende systeem. Nieuwe opdrachten van buiten komen aan bij machine 1 volgens een Poisson proces met een gemiddelde van één 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 1 2 naar machine 2 en met kans 1 2 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 1 2 naar het andere station en met kans 1 2 voegt de klant zich bij het huidige station voor een nieuwe bediening. 106

111 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 één 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 één van de twee disks bezoeken. Neem aan dat na afloop van een bediening bij de processor een job met kans 1 3 naar disk 1 gaat en met kans 2 3 naar disk 2. De werktijden in de verschillende stations zijn onafhankelijk van elkaar en hebben een exponentiële 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

112 Hoofdstuk 8 Beslissingstheorie 8.1 Inleiding Veel beslissingsproblemen bevatten elementen van onzekerheid. Deze onzekerheid kan veroorzaakt worden door gebrek aan informatie over de omstandigheden waarin we (komen te) verkeren of doordat de informatie over die omstandigheden niet deterministisch maar stochastisch is. In een dergelijke situatie zal de beslisser toch een strategie moeten bepalen. We nemen aan dat hij het resultaat van zijn strategie weet als bekend is wat de omstandigheden zijn, d.w.z. als de toestand bekend is, dan is ook het resultaat van een bepaalde strategie bekend. In de beslissingstheorie worden dit soort modellen bestudeerd en wordt nader ingegaan op criteria om tot een beslissing te komen. We onderscheiden de volgende deelgebieden: a. Beslissen zonder kansen Er is een bekend aantal toestanden en voor iedere toestand weten we wat het gevolg is van de verschillende strategieën 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 één keer uit een aantal alternatieven worden gekozen. Echter, in veel beslissingsprobemen moet een serie van beslissingen worden genomen. Een dergelijk probleem kan heel geschikt worden gerepresenteerd met een beslissingsboom. In een dergelijke beslissingsboom worden alle mogelijkheden op chronologische, beginnend met de allereerste beslissing, weergegeven. De eindpunten van de boom corresponderen met het resultaat van de keten die tot de laatste beslissing leidt. Ook eennmalige beslissingen kunnen met een beslissingsboom worden gemodelleerd. 108

113 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): A B C Welke strategie kan het beste worden gekozen? Algemeen Gegeven is een uitbetalingsmatrix A = (a ij ), waarvan de rijen corresponderen met de strategieën 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. max j a kj = max i [max j a ij ]. In het voorbeeld is max i [max j a ij ] = 8 voor i = 2, dus wordt met deze regel object B gekozen. b. Maximin criterium Dit criterium gaat uit van de pessimistische gedachte dat we in de voor de beslisser meest ongunstige toestand (de kolom van de minimale uitbetaling) terecht zullen komen. Gegeven die meest ongunstige situatie zal de beslisser de strategie kiezen met de hoogste uitbetaling: kies strategie k zdd. min j a kj = max i [min j a ij ]. In het voorbeeld is max i [min j a ij ] = 3 voor i = 1, dus wordt met deze regel object A gekozen. We zijn dan, ongeacht de toestand waarin we terecht komen verzekerd van een rendement van 3 miljoen euro. Bij het maximax criterium, waar object B wordt gekozen, kan het rendement 1 miljoen euro zijn als de toestand 1 blijkt te zijn. c. Hurwicz criterium Kies een combinatie van bovenstaande twee criteria door aan de meest optimistische toestand gewicht α toe te kennen en aan de meest pessimistische het gewicht 1 α. Dan luidt de beslisregel: kies strategie k zódanig dat α max j a kj +(1 α) min j a kj = max i {α max j a ij +(1 α) min j a ij }. 109

114 Nemen we α = 0.5, dan geeft het voorbeeld: max{ , , } = 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 b ij = max k a kj a ij, dan kan b ij geïnterpreteerd worden als het verlies dat de beslisser, die voor strategie i kiest, maximaal heeft als de toestand j wordt. Kies de strategie zódat dit maximale verlies minimaal wordt: kies k zdd. max j b kj = min i [max j b ij ]. Het voorbeeld heeft als verliesmatrix B = 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 a kj = max i [ j a ij]. Passen we deze regel op het voorbeeld toe, dan wordt object A gekozen. 8.3 Beslissen met kansen We veronderstellen in deze paragraaf dat de getallen p j (de kans op toestand j) bekend zijn. Ook voor dit model hebben we enkele criteria. We zullen deze uitwerken voor ons voorbeeld met p 1 = 0.5, p 2 = 0.2, p 3 = 0.1 en p 4 = 0.2. a. Maximale verwachte uitbetaling Volgens dit criterium kiezen we de strategie die de verwachte uitbetaling maximaliseert: kies k zdd. j p ja kj = max i [ j p ja ij ]. Passen we deze regel toe op Voorbeeld 8.1, dan krijgen we: 4.0 voor i = 1 j p ja ij = 2.7 voor i = 2 object A wordt gekozen. 3.7 voor i = 3 110

115 b. Minimaal verwacht verlies Kies de strategie die het verwacht verlies (dit staat in de matrix B) minimaliseert: kies k zdd. j p jb kj = min i [ j p jb ij ]. Passen we deze regel toe op Voorbeeld 8.1, dan krijgen we: 1.0 voor i = 1 j p jb ij = 2.3 voor i = 2 object A wordt gekozen. 1.3 voor i = 3 Het is geen toeval dat volgens beide criteria object A wordt gekozen. Dit is altijd het geval omdat j p ja ij + j p jb ij een constante is, d.w.z. onafhankelijk van i: j p jb ij = j p j[max l a lj a ij ] = j p j max l a lj j p ja ij, d.w.z. j p jb ij + j p ja ij = j p j max l a lj, 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. a kj = max i a ij. De kans op toestand j is p j, dus de verwachte uitbetaling bij volledige informatie is gelijk aan j p j max l a lj. Zonder volledige informatie verwachten we (volgens criterium a) een uitbetaling van max i [ j p ja ij ]. De waarde van volledige informatie (W V I) is het verschil hiertussen: W V I = j p j max l a lj max i [ j p ja ij ]. Merk op dat W V I gelijk is aan het minimaal verwacht verlies. Gedeeltelijke informatie en Bayesiaanse analyse Het is meestal niet mogelijk om over volledige informatie te beschikken. Daarentegen is het wel vaak mogelijk om enige informatie te verkrijgen. We zullen bespreken hoe deze benut kan worden. We maken daartoe gebruik van de zogenaamde Bayesiaanse analyse. Het principe daarvan is dat door zekere informatie de a-priori kansen p j verbeterd kunnen worden tot a-posteriori kansen. Veronderstel dat er N mogelijke toestanden T 1, T 2,..., T N zijn. Neem verder aan dat we een experiment uitvoeren met als mogelijke uitkomsten U 1, U 2,..., U M en dat de voorwaardelijke kansen p ij = P[U i T j ] bekend zijn voor alle i en j. De a-posteriori kansen q ji zijn gedefinieerd door: q ji = P[T j U i ]. Lemma 8.1 q ji = Bewijs q ji = P[T j U i ] = P[T j U i ] p ijp j P k p ikp k voor alle i en j. P[U i ] = P[U Pi T j ] P[T j ] k P[T k U i ] = P[U i T j ] P[T j ] Pk P[U i T k ] P[T k ] = P p ijp j k p ikp k. 111

116 Nadat een experiment is uitgevoerd en we de uitkomst ervan kennen, zeg U i, kunnen we beslissen volgens het criterium van de maximale verwachte uitbetaling met in plaats van de a-priori kansen p j nu de a-posteriori kansen q ji, 1 j N. Voorbeeld 8.2 Veronderstel dat een grondeigenaar een bod van euro op een stuk grond krijgt. Dit aanbod wordt gedaan door een oliemaatschappij die bovendien 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 euro. Als er olie wordt aangetroffen verwacht hij een netto opbrengst van 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): Veronderstel dat de a-priori kans op het vinden van olie 30% is, d.w.z. p 1 = 0.7 en p 2 = 0.3. { 240 voor i = 1 j p ja ij = beslissing B: niet verkopen. 460 voor i = 2 Neem vervolgens aan dat de grondeigenaar een proefboring heeft laten uitvoeren voor 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 U i de uitkomst geen olie en U 2 de uikomst olie van de proefboring. ( ) Dan is de matrix P van de voorwaardelijke kansen: P = De a-posteriori kansen zijn: q 11 = = 0.87; q 12 = = 0.54; q 21 = = 0.13; q 22 = = Als de uitkomst van de proef U 1 ( geen olie ) is, dan beslissen we als volgt: { 138 voor i = 1 j q j1a ij = beslissing A: wel verkopen. 86 voor i = 2 Als de uitkomst van de proef U 2 ( olie ) is, dan beslissen we als volgt: { j q 336 voor i = 1 j2a ij = beslissing B: niet verkopen. 812 voor i = 2 De kans dat de proefboring U 1 oplevert is: P[U 1 T 1 ] P[T 1 ] + P[U 1 T 2 ] P[T 2 ] = =

117 De verwachte opbrengst na de proefboring = = Zonder proefboring is de verwachte opbrengst 460: de proefboring is dus 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[U i] max l j q jia lj max l [ j p ja lj ] = i [ k p ikp k ] max l j q jia lj max l [ j p ja lj ]. 8.4 Beslissingsbomen Tot nu toe hebben we te maken gehad met het nemen van één 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 één gekozen, waarna we met een pijl aangeven in welk knooppunt we vervolgens terecht komen. b. Toevalspunten (aangegeven met T): Hierin wordt geen beslissing genomen, maar het volgend punt wordt via een kansmechanisme bepaald; vanuit dit punt loopt een aantal pijlen en bij iedere pijl staat de kans dat deze pijl gekozen wordt. c. Eindpunten (aangegeven met E): Hier stopt het proces en bij een eindpunt staat de uitbetaling die we ontvangen als we in een dergelijk punt terecht komen. Door nu vanuit de eindpunten in de boom terug te lopen, en in ieder knooppunt dat we aldus bereiken de (maximale) verwachting te nemen over de daar aanwezige mogelijkheden (beslissingsof kansovergangen) is het beslissingsprobleem op te lossen. Ook de Bayesiaanse analyse is in een beslissingsboom in te bouwen: voor iedere toestand nemen we een toevalspunt en de verschillende uitkomsten geven de kansovergangen (deze kansen moeten wel afzonderlijk eerst worden berekend). We zullen voor Voorbeeld 8.2 de beslissingsboom opstellen. Bij de beslissingspunten is via een onderstreping van de beslissing aangegeven wat de optimale beslissing is. 113

118 Voorbeeld 8.2 (vervolg) optie A 108 T 0.87 E 30 U 1 (0.48) 108 B optie B 56 T E E wel proefboring T optie A 306 T E E B U 2 (0.52) 56 B optie B 782 T E E E 1970 optie A 240 T 0.7 E 60 geen proefboring 460 B optie B 460 T E E E 2000 De optimale beslissing is dus: geen proefboring en optie B (niet verkopen). 8.5 Opgaven Opgave 1 Pas de vijf criteria uit paragraaf 8.2 toe op de volgende uitbetalingsmatrix:

119 Opgave 2 Uit 4 machines wordt er één gekozen. Als machine i wordt gekozen, dan is de opbrengst K i +c i Q i met K i, c i gegeven getallen en Q i een getal waarvan we alleen weten dat het tussen A i en B i ligt, waarbij A i en B i wel bekend zijn (1 i 4). De numerieke waarden zijn: machine i K i c i A i B i Welke machine kan het best worden gekozen? Formuleer dit probleem als een beslissingsprobleem zonder kansen en pas de vijf criteria uit paragraaf 2 toe. Opgave 3 Bepaal voor de uitbetalingsmatrix uit opgave 1 met p 1 = 0.3, p 2 = 0.1, p 3 = 0.1, p 4 = 0.2 en p 5 = 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 B C

120 De a-priori kans op een gunstige economische situatie is 60%. De maatschappij overweegt om een financieel adviesbureau in te schakelen om de toekomstige economische situatie te taxeren. De reputatie van dit bureau is dat 80% van de adviezen correct zijn. Hoeveel zal de maatschappij maximaal willen betalen voor een dergelijk advies? Opgave 6 Een oliemaatschappij bezit een stuk land waarvan beweerd wordt dat er olie in de grond zit. De maatschappij klassificeert dergelijke stukken grond in vier categorieën: vaten, vaten, 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: zelf boren boren uitbesteden verkoop De maatschappij kan een bodemonderzoek laten verrichten. De kosten van een dergelijk onderzoek bedragen en de uitkomst van zo n onderzoek is dat het land wordt ingedeeld in een van de volgende vier klassen: klasse 1 (grote kans op olie), klasse 2 (redelijke kans op olie), klasse 3 (kleine kans op olie) en klasse 4 (nauwelijks kans op olie). Op grond van bodemonderzoek in het verleden is het verband tussen deze vier klassen en de classificatie van de oliemaatschappij als volgt vastgesteld in een frequentietabel met 100 waarnemingen: klasse a. Welke beslissing zal de oliemaatschappij nemen zonder bodemonderzoek? b. Tot welke beslissing zal het bodemonderzoek leiden? c. Is het bodemonderzoek waard? Opgave 7 Los opgave 5 op met een beslissingsboom. Opgave 8 Los opgave 6 op met een beslissingsboom. 116

121 Hoofdstuk 9 Simulatie 9.1 Inleiding In de vorige hoofdstukken werden voor bepaalde wiskundige modellen grootheden berekend via formules of met daartoe opgestelde algoritmen. Bij simulatie worden grootheden door experimenten bepaald. Simulatie is dan ook een methode van experimenteren, d.w.z. een numerieke techniek voor het uitvoeren van experimenten aan een wiskundig model dat het gedrag van een (meestal complex) systeem beschrijft. Een dergelijk experiment wordt vele malen herhaald en op grond van de uitkomsten trachten we statistische uitspraken te doen over het algemene model. De simulatietechniek wordt gebruikt als het onmogelijk, te kostbaar of te tijdrovend is om met het echte systeem te experimenteren. Het gebruik van simulatie moet dan ook worden ontraden als er een wiskundig model bestaat dat de realiteit voldoende nauwkeurig beschrijft en dat zonder veel problemen op te lossen of te analyseren is. Helaas is de realiteit meestal veel complexer dan ieder eenvoudig wiskundig model. Gebruiken we dan toch zo n model, dan wordt de werkelijkheid geweld aangedaan en is het niet na te gaan of de uitkomsten van het model ook gelden voor de feitelijke situatie. In zo n geval kan simulatie uitkomst bieden. Bij simulatie moeten ook wel zekere spelregels worden opgesteld, maar deze kunnen veel verfijnder zijn zonder dat de hanteerbaarheid van de simulatietechniek in gevaar komt. De huidige stand van zaken, waarin snelle computers goedkoop heel veel berekeningen uitvoeren, maken dat de simulatietechniek steeds vaker en betrouwbaarder kunnen worden toegepast. Bij het toepassen van simulatie kunnen de volgende stadia worden onderscheiden. a. Formulering van het probleem In dit stadium wordt het probleem verbaal omschreven en zal men zich bezig houden met de vragen die beantwoord moeten worden. De doelstellingen van het experiment dienen expliciet vastgesteld te worden. b. Constructie van het wiskundig model Uitgaande van de in stap a geformuleerde doelstellingen zal men het probleem nu in een wiskundige vorm, d.w.z. met variabelen en relaties ertussen, gaan modelleren. Als het model een systeem op één vast tijdstip beschrijft, dan spreken we van een statisch simulatie model (ook wel Monte 117

122 Carlo simulatie genoemd). Beschrijft het model het systeem gedurende de tijd, dan hebben we te maken met een dynamisch model. We kennen discrete en continue dynamische modellen. Bij een discreet model verandert de toestand van het systeem op discrete tijdstippen (bijv. in een voorraadmodel waarin aan het begin van iedere week een bestelling wordt geplaatst). Bij een continu model kunnen de variabelen continu veranderen (bijv. de positie van een vliegtuig in de lucht). In plaats van het totale systeem als één 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

123 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 X 1, X 2,..., X n 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, X n = 1 n n i=1 X i, heet het steekproefgemiddelde. Omdat E[X n ] = 1 n n i=1 E[X i] = µ, is het steekproefgemiddelde een zuivere schatter van µ. Bovendien geldt volgens de Sterke wet van de grote aantallen dat X n in waarschijnlijkheid convergeert naar µ 1, d.w.z. voor iedere ε > 0 geldt: lim n P[ X n µ < ε] = 1. In deze paragraaf bestuderen we het probleem hoe groot n moet zijn opdat X n een betrouwbare schatting van µ is. Aansluitend hierop willen we een interval aangeven waar µ met een bepaalde waarschijnlijkheid in ligt. Daartoe beschouwen we ook de variantie van X n : VAR[X n ] = VAR[ 1 n n i=1 X i] = 1 n n 2 i=1 VAR[X i] = σ2 n. 1 n n i=1 (X i X n ) 2 is geen zuivere schatter van σ 2. Dat geldt wel voor de steekproefvariantie S 2 n, gedefinieerd door: S 2 n = 1 n 1 n i=1 (X i X n ) 2. Verder gebruiken we S n = S 2 n als de steekproefdeviatie. Lemma 9.1 S 2 n is een zuivere schatter voor σ 2. Bewijs Omdat n i=1 (X i X n ) 2 = n i=1 X2 i n[x n] 2, kunnen we schrijven: (n 1) E[S 2 n] = E[ n i=1 X2 i ] n E[X 2 n] = n E[X 2 i ] n E[X 2 n]. Aangezien voor iedere stochastische variabele Y geldt dat E[Y 2 ] = VAR[Y ] + (E[Y ]) 2, geldt: E[X 2 i ] = VAR[X i] + (E[X i ]) 2 = σ 2 + µ 2 en E[X 2 n ] = VAR[X n] + (E[X n ]) 2 = σ2 n + µ2. Hiermee krijgen we: 243. (n 1) E[S 2 n] = n(σ 2 + µ 2 ) n( σ2 n + µ2 ) = (n 1)σ 2, d.w.z. E[S 2 n] = σ 2. 1 L.J. Bain and M. Engelhardt, Introduction to Probability and Mathematical Statistics, Duxbury (1987) p. 119

124 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 lim n P(Y n x) = Φ(x) voor alle x, waarbij Φ(x) de verdelingsfunctie van de N(0, 1)-verdeling is. Een probleem om dit resultaat toe te kunnen passen is dat we σ in het algemeen niet kennen. Dit probleem kan gelukkig worden opgelost door i.p.v. σ de steekproefdeviatie S n te nemen. Volgens een resultaat dat bekend staat als de Stelling van Slutsky 3 geldt namelijk dat ook lim n P(Z n x) = Φ(x) voor alle x, met Z n = Xn µ S n/ n. Dit betekent dat voor n voldoende groot Z n bij benadering N(0, 1)-verdeeld is. Laat z 1 2 α het 1 2 α-percentiel van de N(0, 1)-verdeling zijn, d.w.z. P[ z 1 2 α Z z 1 α] = 1 α met 2 Z een N(0, 1)-verdeelde stochastische variabele. Voor n voldoende groot weten we dus dat d.w.z. dat [X n z 1 2 α Sn n 1 α P[ z 1 2 α Z n z 1 2 α] = P[X n z 1 2 αs n n µ X n + z 1 2 αs n n ], (9.1), X n + 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 Z n bij benadering normaal verdeeld is, hangt sterk af van de onderliggende kansverdeling van de beschouwde stochastische variabele X. We volstaan met een pragmatische opmerking dat het aantal waarnemingen vrij groot moet zijn om een niet al te groot betrouwbaarheidsinterval te krijgen en dat bij symmetrische kansverdelingen de convergentie sneller gaat dan bij asymmetrische kansverdelingen. In de praktijk worden in een simulatierun steeds nieuwe waarnemingen gegenereerd totdat de gewenste breedte ε van het betrouwbaarheidsinterval is bereikt, d.w.z. ( 2 z 1 2 α Sn ε z 12 α Sn n 1 2ε, ofwel n ) 2. Voor toenemende n zal S n niet al te zeer veranderen (S 2 n 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 X n en Sn 2. Voor een volgende n, hoeven we deze waarden niet van vooraf aan uit te rekenen. We kunnen handig gebruikmaken van de volgende recurrrente betrekkingen (ga zelf de juistheid na, zie ook Opgave 1): 2 L.J. Bain and M. Engelhardt, Introduction to Probability and Mathematical Statistics, Duxbury (1987) p L.J. Bain and M. Engelhardt, Introduction to Probability and Mathematical Statistics, Duxbury (1987) p

125 X n+1 = X n + X n+1 X n n + 1 en S 2 n+1 = (1 1 n )S2 n + (n + 1)(X n+1 X n ) 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 X 1 en X 2 en laat n = 2. b. Bereken X n = 1 2 (X 1 + X 2 ) en S 2 n = (X 1 X n ) 2 + (X 2 X n ). 2. Als n N en n ( 2z 1 2 α ε Anders: ga naar stap a. Doe een nieuwe waarneming X n+1. ) 2 S 2 n: stop en neem X n als schatting voor de te bepalen grootheid. b. Bereken X n+1 = X n + X n+1 X n n+1 en S 2 n+1 = (1 1 n )S2 n + (n + 1)(X n+1 X n ) 2. c. n := n + 1 en ga naar stap 2. Opmerking 1 Stel dat de waarnemingen X 1, X 2,..., X n alleen de waarden 0 of 1 kunnen { aannemen (Bernouilli 1 met kans p data). In dat geval simuleer je in feite een onbekende kans p, waarbij X i = 0 met kans 1 p. We willen dus E[X] = p schatten. Omdat we weten dat VAR[X] = p(1 p), is het niet nodig om de steekproefvariantie S 2 n te gebruiken als benadering voor deze variantie. Een natuurlijke schatting voor de variantie is dan X n (1 X n ) (ga na dat voor Bernouilli data Sn 2 = n n 1 X n(1 X n ); zie ook Opgave 1). Bovenstaand Algoritme 9.1 kan dan eenvoudig zo worden aangepast dat alleen X n wordt gebruikt. Het betrouwbaarheidsinterval wordt dan: [X n z 1 2 α n X n (1 X n ), X n + z 1 2 α n X n (1 X n )]. Deze formule geeft ook inzicht in simulatie om zeer kleine kansen te bepalen. Stel bijvoorbeeld dat de te simuleren kans van de orde 10 6 is en je wilt een 95% betrouwbaarheidsinterval (d.w.z. α = en z 1 2 α = 1.96) met een intervalbreedte van Omdat X n 10 6, geldt X n (1 X n ) 10 6, zodat moet gelden: n , d.w.z. dat ruwweg moet gelden: 4 n 10 5, ofwel n = 160 miljard. Het aantal trekkingen wordt dus gigantisch groot als je een kleine kans nauwkeurig wilt bepalen. Opmerking 2 Soms is het helaas niet mogelijk, of te kostbaar, om een groot aantal waarnemingen te doen. In dat geval is bovenstaande aanpak niet verantwoord. Dan kan Z n niet als N(0, 1)-verdeeld worden beschouwd. In dat geval is wel een zinvolle analyse mogelijk onder de volgende aanname: Aanname: X 1, X 2,..., X n zijn normaal verdeeld, zeg N(µ, σ 2 ). 121

126 Onder deze aanname heeft Z n een zogenaamde Student-verdeling met n 1 vrijheidsgraden 4. Deze verdeling is net als de standaard normale verdeling symmetrisch om 0. Voor n convergeert de Student-verdeling naar de N(0,1)-verdeling. Analoog aan onze eerdere analyse geldt dat 1 α P[ t 1 2 α(n 1) Z n t 1 2 α(n 1)] = P[X n t 1 2 α(n 1)S n n µ X n + t 1 2 α(n 1)S n n ], waarbij t 1 α(n 1) een waarde is die voor een aantal waarden voor α en n uit een tabel is af te 2 lezen (Tabel III). Bijvoorbeeld als α = 0.05 en n = 15, dan is t 1 α(n 1) = Voor uitspraken over de variantie, weer onder de aanname dat de trekkingen X i normaal verdeeld zijn, gaan we als volgt te werk. Zij T n 1 = (n 1) S2 n σ 2, dan heeft deze stochast een Chi-kwadraat verdeling met (n 1) vrijheidsgraden 5, waarvoor geldt dat E[T n 1 ] = n 1 en VAR[T n 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)S2 n χ α (n 1) σ2 (n 1)S2 n χ α(n 1)] = 1 α. Als α = 0.05 en n = 15, dan is χ 2 1 α(n 1) = en χ2 1 1 α(n 1) = (zie Tabel IV). 2 2 (9.3) 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. 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: Het eerste Gooi steeds een zuivere munt op totdat het verschil tussen het aantal keren kop en munt drie is. Iedere worp kost één 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 één cijfer gaan genereren, en dat we {0, 1, 2, 3, 4} associëren met kop en {5, 6, 7, 8, 9} met munt. Veronderstel dat we afspreken dat we het spel 14 keer spelen. Laat de computer de volgende worpen genereren: 8, 1, 3, 7, 2, 7, 1, 6, 5, 5, 7, 9, 0, 0, 3, 4, 3, 5, 6, 8, 5, 8, 9, 4, 8, 0, 4, 8, 6, 5, 3, 5, 9, 2, 5, 7, 9, 7, 2, 9, 3, 9, 8, 5, 8, 9, 2, 5, 7, 6, 0, 7, 3, 9, 8, 2, 7, 1, 0, 3, 2, 6, 2, 7, 1, 3, 7, 0, 4, 4, 1, 8, 3, 2, 1, 3, 9, 5, 9, 0, 5, 0, 3, 8, 7, 8, 5, 4, 0, 8, 3, 8, 0. 4 L.J. Bain and M. Engelhardt, Introduction to Probability and Mathematical Statistics, Duxbury (1987) p L.J. Bain and M. Engelhardt, Introduction to Probability and Mathematical Statistics, Duxbury (1987) p

127 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 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 X i = het aantal worpen in het i-de spel. Steekproefgemiddelde X 14 = ( )/14 = Steekproefvariantie S 2 14 = [( )2 + (5 7.00) 2 + (7 7.00) 2 ]/13 = 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 α = Omdat t (13) = (zie Tabel III) en χ (13) = en χ (13) = (zie Tabel IV) gelden de volgende uitspraken met kans 0.95: X 14 t (13) S14 14 µ X 14 + t (13) S14 14 d.w.z µ S 2 14 χ (13) σ2 13S2 14 χ (13) d.w.z σ Hoewel het steekproefgemiddelde X 14 lager is dan 8 (d.w.z. dat het spel spelen gunstig is), is het niet evident welke beslissing genomen moet worden. Hiervoor zal het aantal gesimuleerde spelen veel groter moeten zijn. Voorbeeld 9.2 Beschouw een voorraadmodel met een stochastische vraag. gegevens over de vraag per dag en over de levertijd (in dagen) bekend: Uit het verleden zijn de volgende vraag frequentie levertijd frequentie

128 De verwachting en de variantie van de vraag kunnen geschat worden door: X = [ ]/100 = 3.21 S 2 = [26 (0 3.21) (1 3.21) ( ) 2 ]/99 = Analoog kan L, de verwachting van de levertijd, geschat worden door: L = [ ]/100 = 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 µ = = 32.1 en σ 2 = = 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: (26%) voor een vraag 0, (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: (7%) voor levertijd van 7 dagen, (13%) voor levertijd van 8 dagen,..., (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: , , 50 = 168 euro. Laten we op deze wijze een achttal runs uitvoeren met als jaarlijkse kosten: run kosten (in euro s)

129 Dit geeft als het steekproefgemiddelde voor de jaarlijkse kosten [ ]/8 = 160 en voor de steekproefvariantie [( ) 2 + ( ) 2 + ( ) 2 + ( ) 2 + ( ) 2 + ( ) 2 + ( ) 2 + ( ) 2 ]/7 = 100. Willen we met een betrouwbaarheid van 95% statistische uitspraken doen over de jaarlijkse kosten, dan moeten we kijken bij de Student-verdeling met 7 vrijheidsgraden en met t (7) = Dus met een kans van 95% liggen de jaarlijkse kosten tussen S en S euro. Voor een 95% betrouwbare uitspraak over de variantie gebruiken we de Chi- 7S kwadraatverdeling met 7 vrijheidsgraden: = χ (7) σ2 7S2 χ (7) = Voorbeeld 9.3 Beschouw een wachtrijmodel met één 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 één cijfer worden gegenereerd: het aselecte getal i (0 i 9) correspondeert met een tussentijd 6 + 2i en met een bedieningsduur 1 + 2i (0 i 9); voor de tussentijden en bedieningsduren trekken we uiteraard aparte getallen. Bij dit model houden we steeds het volgende bij: - de relevente tijdstippen: aankomsten en vertrekken; - het aantal klanten in het systeem - het getrokken aselecte getal: als er een klant binnenkomt dan trekken we de volgende tussentijd, gaat er een klant weg dan trekken we de volgende bedieningsduur (als een klant binnenkomt op het moment dat het systeem leeg is dan trekken we zowel de tussentijd als de bedieningsduur); - het tijdstip waarop een volgende klant zal binnenkomen; - het tijdstip waarop de volgende bediening klaar zal zijn. De tabel op de volgende pagina toont een voorbeeld van mogelijke data. We zijn geïnteresseerd in de wachttijden van de klanten. Zij voor de i-de klant X i en Y i de tijden die de i-de klant in het systeem resp. de wachtrij doorbrengt. De simulatie heeft het volgende opgeleverd: X 1 = 13, Y 1 = 0; X 2 = 16, Y 2 = 3; X 3 = 5, Y 3 = 2; X 4 = 3, Y 4 = 0; X 5 = 19, Y 5 = 0; X 6 = 16, Y 6 = 7; X 7 = 19, Y 7 = 8; X 8 = 16, Y 8 = 11; X 9 = 11, Y 9 = 8; X 10 = 13, Y 10 = 0; X 11 = 7, Y 11 = 0. Voor het steekproefgemiddelde en de steekproefvariantie van deze data geldt: Tijd in systeem: steekproefgemiddelde = = en steekproefvariantie = 10 = Tijd in wachtrij: steekproefgemiddelde = = 3.55 en steekproefvariantie = 10 = Ook in dit geval is het in principe weer mogelijk om statistische uitspraken op te stellen met betrouwbaarheidsintervallen. nodig. Om tot zinvolle uitspraken te komen zijn echter veel meer data 125

130 tijdstip aantal aselect(e) volgende volgend klanten getal(len) aankomst vertrek n.v.t , n.v.t. 62 n.v.t , n.v.t. 70 n.v.t , , n.v.t. 124 n.v.t , n.v.t. 140 n.v.t , n.v.t. 164 n.v.t 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 één cijfer (0 t/m 9) worden gegenereerd. Vijftallen van 5 opeenvolgende worpen geven dan aselecte trekkingen van de getallen 00000, 00001,..., b. Met behulp van een algoritme: Bijvoorbeeld met de zogenaamde congruentie methode. Beschouw de congruentie x n+1 ax n + c (mod m) met a < m, c < m en x 0 willekeurig. Als x 0 wordt gekozen, dan liggen alle getallen x n 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

131 gekozen. Bekend is dat de keuze: a = , c = en m = (2 31 ) zeer goed voldoet om getallen te genereren die statistisch gezien niet van echte aselecte getallen te onderscheiden zijn. We zullen nu aangeven hoe trekkingen uit een kansverdeling gegenereerd kunnen worden m.b.v. (pseudo) aselecte getallen. Dit gebeurt met de inverse transformatie methode. Het idee hierbij is om een random getal te genereren uit een uniforme verdeling en hiermee (via een formule) een random getal uit een andere verdeling te bepalen. Dat dit in principe mogelijk is, is gebaseerd op het volgende lemma. Lemma 9.2 Zij U een stochastische variabele die uniform verdeeld is op [0, 1]. Dan geldt voor iedere verdelingsfunctie F dat de stochastische variabele X, gedefinieerd door X = F 1 (U), de functie F als verdelingsfunctie heeft. Bewijs P[X x] = P[F 1 (U) x] = P[U F (x)] = F (x), de laatste gelijkheid omdat U uniform verdeeld is. Dit lemma kan nu als volgt worden toegepast om een aselecte trekking te genereren uit een kansverdeling met een bekende verdelingsfunctie F (x): 1. Trek een u uit de uniforme verdeling m.b.v. (pseudo) aselecte getallen. 2. x, bepaald via x = F 1 (u), is een aselecte trekking van de X met verdelingsfunctie F. In sommige gevallen kan F expliciet worden bepaald of via een eenvoudig algoritme. We geven enkele voorbeelden. Uniforme verdeling Veronderstel dat X uniform verdeeld is op [a, b]. Dan kan een random getal u [0, 1] met een trekking van X worden geassocieerd d.m.v. x = a + (b a)u. Exponentiële verdeling Veronderstel dat X een exponentiële verdeling heeft met parameter λ. Dan is de verdelingsfunctie F (x) = 1 e λx. Nu geldt: u = F (x) e λx = 1 u λx = ln(1 u) x = 1 λln(1 u). Omdat 1 u ook een aselecte trekking is uit [0, 1], mogen we 1 u wel vervangen door u, d.w.z. de trekking geeft: x = 1 λ ln(u). M.b.v. het bovenstaande kunnen we ook trekkingen uit een Erlang verdeling genereren. Zij X Erlang-verdeeld met parameters (λ, k), d.w.z. X = X 1 + X X k met X i een exponentiële verdeling met parameter λ, 1 i k. Het volgende algoritme geeft een trekking van X. 1. Genereer k random getallen u i [0, 1], 1 i k. 2. Laat x i = 1 λ ln(u i), 1 i k. 3. x = k i=1 x i. 127

132 Ook een trekking uit een Weilbull verdeling gaat op analoge wijze. Zij X Weilbull verdeeld, dan is de verdelingsfunctie F (x) = 1 e ( λx)α (dus voor α = 1 is dit de exponentiële verdeling). Nu geldt: u = F (x) e ( λx)α = 1 u (λx) α = ln(1 u) x = 1 λ [ ln(1 u)]1/α. We mogen 1 u weer vervangen door u, d.w.z. de trekking geeft: x = 1 λ [ ln(u)]1/α. Poisson proces Veronderstel dat we de gebeurtenissen van een Poisson proces met parameter λ willen genereren gedurende het tijdsinterval [0, T ]. Hiervoor maken we gebruik van de eigenschap dat de tussentijden exponenieel verdeeld zijn (met dezelfde parameter λ). We kunnen dus random trekkingen u i [0, 1] nemen en hieruit tussentijden t i = 1 λ ln(u i) 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. t 0 = 0; i = Genereer een random u [0, 1]. 3. t i+1 = t i 1 λ ln(u). 4. t i+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 U 1, U 2,..., U n onderling onafhankelijke trekkingen uit de homogene verdeling op [0, 1] en definieer T n door: T n = U 1 + U 2 + U n. Dan geldt: E[T n ] = n 2 en VAR[T n] = n 12. Zij Z n = Tn n 2. Volgens de Centrale limietstelling is Z n asymptotisch N(0, 1)-verdeeld. In de n/12 praktijk kan Z n al voor redelijk kleine waarden van n als N(0, 1)-verdeeld beschouwd worden. We nemen daarom maar aan dat Z 12 N(0, 1)-verdeeld is. Merk op dat Z 12 = T X µ σ is eveneens N(0, 1)-verdeeld. Z 12 kan dus worden opgevat als een waarneming van X µ σ. Zij u 1, u 2,..., u 12 onafhankelijke trekkingen uit de homogene verdeling op [0, 1], dan kan x, met x = µ + σ[ 12 i=1 u i 6] worden opgevat als een waarneming van de N(µ, σ)-verdeelde X. Er bestaan snellere methoden om random trekkingen te doen uit de normale verdeling 6. Het bovenstaande geeft ook trekkingen uit een lognormale verdeling. X is lognormaal verdeeld met parameters µ en σ als de stochast Y = ln(x) N(µ, σ 2 )-verdeeld is. Omdat Y = ln(x) X = e Y, 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 = e y. 6 Zie bijvoorbeeld J.H. Ahrends and U. Dieter, An alias method for sampling from the normal distribution, Computing 42 (1982)

133 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): x < x < 2 F (x) = x < 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 1 n. Zij u een aselect getal uit [0, 1), dan hoort bij u de waarde x = i i 1 n u < i n, i = 1, 2,..., n, d.w.z. x = nu + 1. Poisson verdeling Voor een stochastische variabele X met een Poisson verdeling met parameter λ geldt: p n := 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 p 0 = e λ en p n+1 = We trekken eerst een willekeurig getal u [0, 1]. trekking met x = 0, die immers een kans p 0 heeft. associëren we deze trekking met x = 1, etc. Dit geeft het volgende algoritme. λ n+1 p n, n = 0, 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. Als u < e λ = p 0, dan associëren we deze Als p 0 u < p 0 + p 1 = p 0 + λp 0, dan Omdat de verwachting van een Poisson verdeelde stochast de waarde λ heeft, is de verwachting van het aantal stappen van bovenstaand algoritme λ + 1. Geometrische verdeling Voor een stochastische variabele X met een geometrische verdeling met parameter p geldt: P[X = n] = pq n 1, n = 1, 2,..., waarbij 0 < p < 1 en q = 1 p. De bijbehorende interpretatie is dat X de poging met het eerste succes is, als iedere poging succeskans p heeft. Aangezien n i=1 P[X = i] = 1 de kans op geen succes in de eerste n pogingen = 1 q n, n 1. We kunnen nu een trekking uit X genereren uit een trekking u [0, 1] door 1 q n 1 u < 1 q n te associëren met x = n, immers: 129

134 de kans hierop is (1 q n ) (1 q n 1 ) = q n 1 q n = q n 1 (1 q) = pq n 1 = P[X = n]. Omdat 1 q n 1 U < 1 q n q n < 1 U q n 1 geldt dat X = min{n q n < 1 U}. Aangezien 1 U ook uniform verdeeld is op [0, 1], kunnen we voor x ook nemen: x = min{n q n < u}. Vervolgens merken we op dat de logaritme een monotone functie is, zodat tevens geldt: x = min{n nlog(q) < log(u)}, ofwel x = min{n n > log(u) log(u) log(q) }, m.a.w. x = log(q) + 1. Binomiale verdeling Voor een stochastische variabele X met een binomiale verdeling met parameters (n, p) geldt: ( ) n P[X = i] = p i q n i, 0 i n, waarbij 0 < p < 1 en q = 1 p. i De bijbehorende interpretatie is dat X het aantal successen uit n pogingen is, als iedere poging succeskans p heeft. In dit geval gebruiken we weer, net zoals bij de Poisson verdeling een recurrente relatie, namelijk dat P[x = i + 1] = n i i+1 p q P[X = i], tezamen met de beginconditie dat P[X = 0] = q n. Dit geeft het volgende algoritme. 1. Trek random een u [0, 1]; i = 0; a = p q ; b = qn ; F = b. 2. Als u < F : neem x = i en stop; Anders: b := n i i+1 a b, F := F + b; i := i + 1; en herhaal stap 2. Omdat de verwachting van de binomiale verdeling de waarde np heeft, is de verwachting van het aantal stappen van dit algoritme np + 1. Als p > 1 2, dan kunnen we het beter iets anders doen. Dan genereren we op analoge wijze een binomiaal verdeelde veriabele bij de parameters (n, q); deze heeft de interpretatie van het aantal mislukkingen uit n trekkingen en de verwachting van het aantal benodigde itraties van het algoritme van nq + 1 < np + 1 stappen. oorspronkelijke X de waarde n minus de uitkomst van het algoritme. Tenslotte nemen we voor een trekking uit de De acceptatie-verwerping methode Stel dat we een efficiënte methode hebben om een trekking van een stochastische variabele Y te genereren met massa {g i, i I}. Dit kunnen we gebruiken voor een trekking van een stochastische variabele X met massa {f i, i I} via het volgende algoritme. 1. Bepaal c zódat f i g i c voor alle i. 2. Genereer een trekking van Y, zeg y = i. 3. Genereer een random u [0, 1]. 4. Als u f i c g i : 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

135 Bewijs P[X = i] = P[Y = = i acceptatie] = f i c P[acceptatie] voor alle i. P[Y = i en acceptatie] P[acceptatie] = P[Y = i] P[U f i ] c g i = P[acceptatie] Sommeer bovenstaande gelijkheid over alle i : 1 = i=1 P[X = i] = 1 c P[acceptatie], waaruit volgt dat P[acceptatie] = 1 c. toegekende waarde inderdaad overeenkomt met de gewenste massa. g i fi c g i P[acceptatie] Dit geeft P[X = i] = f i voor alle i, zodat de aan X P[acceptatie] = 1 c, d.w.z. dat de toekenning van een waarde voor X te beschouwen is als trekkingen uit een geometrische verdeling met p = 1 c. De geometrische verdeling heeft 1 p = c als verwachting, dus het aantal te verwachten stappen van het algoritme is c: het algoritme werkt sneller naarmate c kleiner is, d.w.z. naarmate {g i, i I} meer lijkt op {f i, i I}, wat logisch is. Tenslotte merken we op dat deze acceptatie-verwerping methode ook kan worden toegepast op continue stochastische variabelen 7. Voorbeeld 9.4 Veronderstel dat we een trekking willen doen met waarden 1, 2,..., 10 met kansen 0.13, 0.10, , 0.12, , 0.09, 0.14, 0.06, en dat we daarvoor de uniforme verdeling op {0, 1,..., 10} willen gebruiken, dus g i = 1 10, 1 i 10. In dit model kunnen we c = 1.4 nemen en kan het volgende algoritme worden gebruikt. 1. Genereer een random u 1 [0, 1] en laat y = 10u Genereer een random u 2 [0, 1]. 3. Als u 2 c = 1.4: accepteer y als trekking voor X. Anders: ga naar stap Variantie reducerende technieken Een experiment levert een eindig aantal waarnemingen op. Dit zijn realisaties van een stochastische variabele met verwachting µ en variantie σ 2. Uit de waarnemingen X 1, X 2,..., X n worden µ en σ 2 als volgt benaderd: 1. De verwachting µ: het steekproefgemiddelde X n = n i=1 X i is hiervoor een zuivere schatter. 2. De variantie σ 2 : de steekproefvariantie S 2 = 1 n 1 n i=1 (X i X n ) 2 is hiervoor een zuivere schatter. Het steekproefgemiddelde X n is, zeker als n niet erg groot is, vaak onbetrouwbaar als benadering voor µ. De variantie van X n is dan nog vaak vrij groot zijn (we hebben gezien dat VAR[X n ] = σ2 n ). Als we nu op de een of andere manier een ander steekproefgemiddelde kunnen vinden, maar met een kleinere variantie, dan verdient dat de voorkeur. Hiervoor zijn diverse technieken beschikbaar, waarvan we er enkele zullen bespreken, zonder echt nieuwe waarnemingen te doen. 7 H.C. Tijms: Operationele analyse: een inleiding in methoden en methoden, Epsilon Uitgaven, Utrecht, 2002 pp

136 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. stratificatie gaan we op voorhand uit van een aantal stroken, zeg k, waarin de waarnemingen terecht komen. We nemen aan dat we van iedere strook ( stratum ) de kans weten dat een willekeurige waarneming in deze strook terecht komt, zeg p i is de kans dat een willekeurige waarneming in strook i terecht komt. Als er in totaal n waarnemingen worden gegenereerd, dan moeten er eigenlijk np i uit strook i komen. We kiezen nu natuurlijke getallen n i (bij voorkeur ligt n i enigszins in de buurt van np i en zorgen er voor dat n i waarnemingen in strook i vallen, i = 1, 2,..., k. Als strook i hoort bij random trekkingen uit het deelinterval [a i, b i ] van [0, 1], dan kan u [0, 1] worden vervangen door u = a i + (b i a i )u [a i, b i ]. Bij Nadat we aldus n i waarnemingen hebben uit strook i, geven we deze het gewicht w i = np i n i voor de mate waarin de waarnemingen in de stroken vertegenwoordigd zijn (gewicht 1 is eerlijk, kleiner dan 1 hoort bij overtegenwoordiging en groter dan 1 bij ondervertegenwoordiging). Intuïtief is duidelijk dat we op deze manier eerlijker te werk gaan. We kunnen inderdaad aantonen dat deze aanpak dezelfde verwachting van het steekproefgemiddelde oplevert en een niet-grotere variantie. Om dit in te zien moeten we ons realiseren dat de gestratificeerde waarnemingen conditionele kansen zijn, waarbij de conditie is dat er uit iedere strook een eerlijk aantal waarnemingen komt. Noem deze conditie Y, dan geldt bovenstaande bewering op grond van de eigenschappen van conditionele verwachting en variantie 8 : E[X] = E[E(X Y )] en VAR[X] = E[VAR(X Y )] + VAR[E(X Y )] VAR[E(X Y )]. De verwachting blijft dus hetzelfde, maar de variantie zal in het algemeen kleiner worden. In algoritmische vorm luidt de stratificatietechniek: 1. Verdeel het gebied waar de n waarnemingen in terecht kunnen komen in een aantal stroken, zeg k. 2. Bepaal p i = de kans dat een willekeurige waarneming in strook i terechtkomt, kies natuurlijke getallen n i (bij voorkeur n i np i ) en laat w i = np i n i, i = 1, 2,..., k. 3. Genereer de waarnemingen en zorg er voor dat er n i uit strook i komen, i = 1, 2,..., k. 4. X n = 1 n k i=1 w i (de som van de waarnemingen uit strook i). Voorbeeld 9.5 Beschouw de exponentiële verdeling met parameter λ = 1. Het is bekend dat de verwachting hiervan gelijk aan 1 is, maar veronderstel dat we deze verwachting met simulatie willen benaderen. Zoals in de vorige paragraaf is uitgewerkt kunnen trekkingen uit deze verdeling worden gegenereerd m.b.v. aselecte trekkingen uit [0, 1]. Beschouw een steekproef zonder stratificatie van 10 getallen zoals hieronder is getabelleerd. 8 S.M. Ross, A course in Simulation, Macmillan, 1991 (chapter 2). 132

137 i u i x i = ln(1 u i ) i u i x i = ln(1 u i ) Deze steekproef heeft als gemiddelde en de steekproefvariantie is Vervolgens zullen we de stratificatie-techniek toepassen op dit voorbeeld. Als stroken nemen we: 0 x < 1, 1 x < 3 en x 3, wat overeenkomt met p 1 = 0.64, p 2 = 0.32 en p 3 = Neem nu n 1 = 4, n 2 = 4 en n 3 = 2, zodat w 1 = = 1.6, w 2 = = 0.8 en w 3 = = 0.2. In onderstaande tabel staat het schema voor de berekeningen. strook i u i u i x i = ln(1 u i ) strook i u i u i x i = ln(1 u i ) Dit geeft voor het gestratificeerde steekproefgemiddelde: [1.6( ) + 0.8( ) + 0.2( )]/10 = 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 {X i } en een rij {X i }. Intuïtief is ook nu weer duidelijk dat we op deze wijze corrigeren voor oneerlijke trekkingen. Laat X n = n i=1 X i en X n = n i=1 X i, dan nemen we in dit geval voor het steekproefgemiddelde: X = Xn+X n VAR[X n ] = VAR[X n ] = σ2 n, en omdat X n en X n E[X ] = E[Xn]+E[X n ] 2 = µ; 2. Omdat E[X n ] = E[X n ] = µ en negatief gecorreleerd zijn geldt: VAR[X ] = 1 4 [VAR[X n] + VAR[X n] + 2cov(X n, X n)] 1 4 {VAR[X n] + VAR[X n]} = σ2 2n. Voorbeeld 9.5 (vervolg) Passen we de techniek van de complementaire random getallen toe op het voorbeeld, dan krijgen we: 133

138 i u i x i = ln(1 u i ) u i x i = ln(1 u i ) X n = 0.799; X n = 1.060, dus X = ( )/2 = Opgaven Opgave 1 Toon aan dat voor n 2 geldt: X n+1 = X n + X n+1 X n n+1 en S 2 n+1 = (1 1 n )S2 n + (n + 1)(X n+1 X n ) 2. Opgave 2 Veronderstel dat de waarnemingen X 1, X 2, {0, 1}. Toon dan aan dat voor n 1 geldt: S 2 n+1 = n+1 n X n+1(1 X n+1 ). Opgave 3 Zij U 1, U 2,..., U n onderling onafhankelijke trekkingen uit de homogene verdeling op [0, 1] en definieer T n door: T n = U 1 + U U n. Toon aan dat geldt: E[T n ] = n 2 en VAR[T n] = n 12. Opgave 4 Toon analytisch aan (m.b.v. Markov ketens) dat het verwachte aantal worpen, voordat het spel van Voorbeeld 9.1 uit is, gelijk is aan 9. Opgave 5 Leid formules af om m.b.v. aselecte getallen uit [0, 1] trekkingen te generenen uit verdelingen met de volgende dichtheden f(x): { 2x 0 x 1 a. f(x) = 0 elders { 1 b. f(x) = x 30 0 elders 134

139 { (x 1) 3 c. f(x) = 4 1 x 3 0 elders 1 + x 1 x 0 d. f(x) = 1 x 0 x 1 0 elders Opgave 6 { 1 x 1 Beschouw de kansverdeling met dichtheid f(x) = x 2, en met verdelingsfunctie F (x). 0 x < 1 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, en (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, en Opgave 8 Beschouw een voorraadmodel met de volgende gegevens: - de vraag per maand is N(100, 20)-verdeeld; - de voorraadkosten zijn 0,15 euro per eenheid per maand; - de vaste bestelkosten zijn 20 euro per bestelling; - per tekort zijn er kosten van 2,50 euro; - de levertijd bedraagt 1 maand. Onderzoek de volgende twee strategieën: a. bestel iedere maand 100 eenheden; b. bestel eens per 4 maanden 400 eenheden. Ga met simulatie na wat de kosten van beide strategieën zijn over een periode van 1 jaar; neem aan dat beginvoorraad 100 stuks bedraagt. Voer voor beide strategieën vier runs uit, gebaseerd op de aselecte getallen van Tabel VI. 135

140 Opgave 9 Beschouw een wachttijdmodel met één bediende. Veronderstel dat er Poissoninput is met λ = 0.2 minuten en dat de bedieningsduur exponentieel verdeeld is met parameter µ = 0.25 minuten. Het systeem wordt gedurende 60 minuten geobserveerd. Maak voor het genereren van aselecte getallen gebruik van Tabel V. a. Bereken analytisch de grootheden L, L q, W, W q en ρ. b. Bepaal met de gewone simulatietechniek L, L q, W, W q 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 één bediende, maar neem aan dat het systeem slechts twee klanten kan bevatten. Beantwoord eveneens de vragen uit de onderdelen a en b. Opgave 10 Beschouw het volgende onderhoudsprobleem. Een machine bevat vier identieke onderdelen die stuk kunnen gaan. Als een onderdeel stuk is, dan werkt de machine niet meer. Vergelijk de volgende strategieën: 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 één 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, en Startend met vier nieuwe onderdelen, simuleer beide strategieën gedurende uur. 136

141 Hoofdstuk 10 Dynamische programmering 10.1 Inleiding Dynamische programmering is een mathematische techniek die vaak met succes toegepast kan worden bij problemen die zich in de tijd afspelen, d.w.z. die een dynamisch karakter hebben. We hebben daar reeds voorbeelden van gezien in het hoofdstuk over voorraadtheorie bij de periodieke modellen. Een algemene karakteristiek van dynamische programmering is dat voor oplossen van het probleem een recursieve formulering wordt opgesteld. Het vinden van een dergelijke recursieve formulering vereist een zeker inzicht in het gestelde probleem en een zekere vaardigheid om de recursie op te stellen. Vaak betreft het ook het kunstmatig aanbrengen van een dynamisch karakter in een op het eerste gezicht niet-dynamisch probleem. Door een aantal voorbeelden uit te werken zullen we dit inzicht en deze vaardigheid verder ontwikkelen. Voorbeeld 10.1 Artsen zonder grenzen beschikt over vijf medische teams die uitgezonden kunnen worden naar drie Derde Wereld landen. De organisatie beoogt de totale effectiviteit van deze vijf teams te optimaliseren, waarbij voor deze effectiviteit de toename van de totale leeftijd, d.w.z. de gemiddelde leeftijd maal het aantal inwoners, wordt genomen. De effectiviteit van de verschillende toewijzingen volgt uit onderstaande tabel. effectiviteit in 1000-tallen aantal teams land 1 land 2 land

142 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 De ruimtevlucht is een succes als minstens één team zijn doel bereikt. Als alleen de drie basisbemanningen worden uitgezonden dan is de kans op succes 1 ( ) = Aan welke basis-bemanningen kunnen de twee topastronauten het beste worden toegevoegd om de kans op succes te maximaliseren? Voorbeeld 10.3 Een beleggingsmaatschappij wil 10 miljoen euro gaan investeren in drie grote lange-termijn projecten. Daarnaast heeft de maatschappij de mogelijkheid om korte termijn investeringen te doen (project 4). Gegevens over kosten en rendement van deze investeringen volgen uit onderstaande tabel (de bedragen zijn in miljoenen euro s). investerings- project 1 project 2 project 3 project 4 niveau kosten opbrengst kosten opbrengst kosten opbrengst kosten opbrengst Welk investeringsprogramma levert de hoogste winst (d.w.z. opbrengst - kosten) op? Voorbeeld 10.4 Een bedrijf moet één 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

143 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 n 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 òfwel kwijtraakt òfwel verdubbelt. De kans op kwijtraken is 1 3 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 gemeenschappelijke eigenschappen. Deze worden hieronder besproken. Meerstapsbeslissingen Bij dynamische programmering wordt in een bepaald tijdsbestek sequentieel een aantal beslissingen genomen. Aldus wordt het probleem opgesplitst in een aantal stappen en per stap wordt een beslissing genomen. Toestanden In iedere stap bevindt het systeem zich in een bepaalde toestand. Deze toestanden moeten vooraf worden gedefinieerd. Daarbij is het aan te bevelen om de toestanden zo te definiëren 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 s n de toestand bij de n-de stap, en laat X(s n ) de mogelijke beslissingen in deze toestand op dit tijdstip zijn. Dan kan een optimale beslissing (verondersteld is dat het om het minimaliseren van kosten gaat) worden gevonden door het volgende éénstapsbeslissingsprobleem op te lossen: 139

144 f n (s n ) = min xn X(s n){r(s n, x n ) + f n+1 (s n+1 )}, waarbij r(s n, x n ) de kosten in de n-de stap zijn, gegeven toestand s n en beslissing x n, s n+1 de toestand in stap n + 1 waarin het systeem vanuit toestand s n door beslissing x n overgaat en f n+1 (s n+1 ) de optimale kosten vanaf stap n + 1 zijn, gegeven toestand s n+1 op dat moment. Bij een N-stapsbeslissingsprobleem, uitgaande van een vaste begintoestand s 1, gaan we als volgt te werk: 1. Bereken f N (s N ) voor alle mogelijke toestanden s N met bijbehorende beslissingen x N (s N ). 2. Voor n = N 1, N 2,..., 1: los voor alle mogelijke toestanden s n op: f n (s n ) = min xn X(s n){r(s n, x n ) + f n+1 (s n+1 )}, met bijbehorende optimale beslissing x n(s n ). 3. Voor n = 1, 2,..., N: neem de optimale beslissing x n = x n(s n ) en bepaal s n+1 m.b.v. s n en x n. De optimale strategie x = (x 1, x 2,..., x N ) met totale minimale kosten f 1(s 1 ). 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 s n+1, gegeven toestand s n en beslissing x n, ondubbelzinnig (deterministisch) vastligt; als s n+1 d.m.v. een kansverdeling, die in het algemeen afhankelijk is van s n en x n, wordt bepaald, dan spreken we van stochastische dynamische programmering Deterministische dynamische programmering Voorbeeld 10.1 (vervolg) Zij x n het aantal teams dat aan land n wordt toegekend en p n (x n ) de effectiviteit als x n teams aan land n worden toegekend (n = 1, 2, 3). Het probleem kan dan worden geformuleerd als het volgende optimaliseringsprobleem: max{ 3 n=1 p n(x n ) 3 n=1 x n = 5; x n 0 en geheel, 1 n 3}. De karakteristieken van dit probleem zijn: a. Het aantal stappen is 3, waarbij in stap n wordt bepaald hoeveel aan land n wordt toegekend. b. De toestandsverz. is in iedere stap {1, 2, 3, 4, 5}, waarbij toestand s n in stap n het aantal teams is dat nog moet worden toegewezen; s 1 = 5. c. Toestandsovergangen: s n+1 = s n x n als in toestand s n beslissing x n wordt genomen. d. Het optimaliseringsprobleem in stap n luidt: f 3 (s 3 ) = max 0 x3 s 3 p 3 (x 3 ), s 3 = 0, 1, 2, 3, 4, 5; f n (s n ) = max 0 xn s n {p n (x n ) + f n+1 (s n x n )}, s n = 0, 1, 2, 3, 4, 5; n = 2, 1. Hieronder volgen de berekeningen. n = 3 : f 3 (s 3 ) = max 0 x3 s 3 p 3 (x 3 ) = p 3 (s 3 ) en x 3 (s 3) = s 3, 0 s 3 5. n = 2 : f 2 (s 2 ) = max 0 x2 s 2 {p 2 (x 2 )+f 3 (s 2 x 2 )} = max 0 x2 s 2 {p 2 (x 2 )+p 3 (s 2 x 2 )}, 0 s

145 x 2 s f 2 (s 2 ) x 2 (s 2) n = 1 : f 1 (5) = max 0 x1 5{p 1 (x 1 ) + f 2 (5 x 1 )}. x 1 s f 1 (s 1 ) x 1 (s 1) De optimale oplossing is dus: s 1 = 5 x 1 = 1 s 2 = 4 x 2 = 3 s 3 = 1 x 3 = 1 en heeft waarde 170. Voorbeeld 10.2 (vervolg) Zij x n het aantal topastronauten dat aan team n wordt toegewezen en zij p n (x n ) de kans op mislukking van team n als x n 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{p 1 (x 1 ) p 2 (x 2 ) p 3 (x 3 ) 3 n=1 x n = 2; x n 0 en geheel, 1 n 3}. De karakteristieken van dit probleem zijn: a. Het aantal stappen is 3, waarbij in stap n wordt bepaald hoeveel aan topastronauten aan team n worden toegekend. b. De toestandsverz. is in iedere stap {0, 1, 2}, waarbij toestand s n in stap n het aantal topastronauten is dat nog moet worden toegewezen; s 1 = 2. c. Toestandsovergangen: s n+1 = s n x n als in toestand s n beslissing x n wordt genomen. d. Het optimaliseringsprobleem in stap n luidt: f 3 (s 3 ) = min 0 x3 s 3 p 3 (x 3 ), s 3 = 0, 1, 2; f n (s n ) = min 0 xn s n {p n (x n ) f n+1 (s n x n )}, s n = 0, 1, 2; n = 2, 1. De berekeningen zijn in dit geval: n = 3 : f 3 (s 3 ) = min 0 x3 s 3 p 3 (x 3 ) = p 3 (s 3 ) en x 3 (s 3) = s 3, 0 s 3 2. n = 2 : f 2 (s 2 ) = min 0 x2 s 2 {p 2 (x 2 ) f 3 (s 2 x 2 )} = min 0 x2 s 2 {p 2 (x 2 ) p 3 (s 2 x 2 )}, 0 s

146 x 2 s f 2 (s 2 ) x 2 (s 2) n = 1 : f 1 (2) = min 0 x1 2{p 1 (x 1 ) f 2 (2 x 1 )}. x 1 s f 1 (s 1 ) x 1 (s 1) De optimale oplossing is dus: s 1 = 2 x 1 = 1 s 2 = 14 x 2 = 0 s 3 = 1 x 3 = 1 en heeft waarde Voorbeeld 10.3 (vervolg) Zij x n het bedrag dat aan project n wordt toegewezen en zij w n (x n ) de opbrengst bij toekenning x n aan project n, n = 1, 2, 3, 4. Het investeringsprobleem luidt: max{ 4 n=1 w n(x n ) 4 n=1 x n = 10; x n 0 en geheel, 1 n 4}. Analoog aan de vorige voorbeelden krijgen we de volgende berekeningen. n = 4 : f 4 (s 4 ) = max 0 x4 s 4 w 4 (x 4 ) = w 4 (s 4 ) en x 4 (s 4) = s 4, 0 s n = 3 : f 3 (s 3 ) = max 0 x3 s 3 {w 3 (x 3 ) + w 4 (s 3 x 3 ) x 3 {0, 6, 7, 8, 9, 10}}, 0 s x 3 s f 3 (s 3 ) x 3 (s 3) n = 2 : f 2 (s 2 ) = max 0 x2 s 2 {w 2 (x 2 ) + f 3 (s 2 x 2 ) x 2 {0, 4, 5, 8, 9, 10}}, 0 s

147 x 2 s f 2 (s 2 ) x 2 (s 2) n = 1 : f 1 (10) = max 0 x1 10{w 1 (x 1 ) + f 2 (10 x 1 ) x 1 {0, 3, 5, 7, 8, 9}}. x 1 s f 1 (s 1 ) x 1 (s 1) De optimale oplossing is dus: s 1 = 10 x 1 = 3 s 2 = 7 x 2 = 0 s 3 = 7 x 3 = 6 s 4 = 1 x 4 = 1 en heeft waarde 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 x n het aantal exemplaren in run n, n = 1, 2, 3. Als toestanden nemen we twee mogelijkheden: een exemplaar van de gewenste kwaliteit is reeds wel (s = 0) of reeds niet (s = 1) geproduceerd. Als s = 0, dan hoeft er niet meer te worden geproduceerd ; als s = 1 en in run n worden x n exemplaren gemaakt, dan is de volgende toestand weer s = 1 met kans ( 1 2 )xn. { 0 als x n = 0 Laat: p n (x n ) = x n als x n 1 f n (1) = minimale verwachte kosten vanaf run n in toestand 1. Nu geldt: f n (1) = min xn 0{p n (x n ) + ( 1 2 )xn f n+1 (1)}, n = 1, 2, 3; f 4 (1) = n = 3 : f 3 (1) = min x3 0{p 3 (x 3 ) + ( 1 2 )x3 1600}. x f 3 (1) x 3 (1)

148 n = 2 : f 2 (1) = min x2 0{p 2 (x 2 ) + ( 1 2 )x2 f 3 (1)}. x f 2 (1) x 2 (1) n = 1 : f 1 (1) = min x1 0{p 1 (x 1 ) + ( 1 2 )x1 f 2 (1)}. x f 1 (1) x 1 (1) ,50 743, De optimale oplossing is dus: x 1 = 2, x 2 = 2, x 3 = 3 met verwachte kosten 675. Voorbeeld 10.5 (vervolg) Zij x n het aantal fiches dat bij spel n wordt ingezet. Als toestand s n nemen we het aantal fiches bij het begin van spel n. Laat f n (s n ) de maximale kans om op 5 fiches uit te komen als we s n fiches hebben bij het begin van spel n. Dan geldt: f n (s n ) = max {xn x n s n;x n+s n 5}{ 1 3 f n+1(s n x n ) f n+1(s n + x n )}, n = 3, 2, 1; 0 s n 5. { 1 als s 4 = 5 f 4 (s 4 ) = 0 als s 4 5 Dit resulteert in de volgende berekeningen: n = 3 : x 3 s f 3 (s 3 ) x 3 (s 3) n = 2 : x 2 s f 2 (s 2 ) x 2 (s 2) n = 1 : x 1 s f 1 2(s 1 ) x 2 (s 1)

149 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 òfwel 5 fiches (kans 2 3 ) òfwel 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 = 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 4 9. De kans om met deze strategie het doel te bereiken is dus = Opgaven Opgave 1 Een student heeft 7 weken de tijd voordat de tentamens in 4 vakken beginnen en wil deze tijd zo efficiënt mogelijk besteden. Hij wil aan ieder vak 1, 2, 3 of 4 weken besteden en de keuze zó 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 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 De kosten om parallel-eenheden te plaatsen staan hieronder: 145

150 aantal parallel installatiekosten in euro s eenheden component 1 component 2 component 3 component Er is euro beschikbaar. Hoeveel parallel-eenheden worden in iedere component geplaatst om de betrouwbaarheid van het systeem te maximaliseren (zonder parallel-eenheid is de betrouwbaarheid van een compenent 0.4)? Opgave 3 Los het volgende knapzakprobleem op met dynamische programmering: max{6x 1 + 8x x 3 3x 1 + 5x 2 + 7x 3 10; x 1, x 2, x 3 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 B C D Iedere persoon kan bij hoogstens één werkzaamheid worden ingeschakeld. Welke planning geeft voor het bedrijf de minste kosten? Opgave 5 Beschouw de volgende modificatie van voorbeeld 10.4: de kans dat een exemplaar de gewenste kwaliteit heeft is 2 3 en er kunnen maximaal 2 runs worden uitgevoerd. Welke productie-strategie is optimaal? Opgave 6 Neem aan dat in voorbeeld 10.5 gestart wordt met 2 fiches en dat 5 keer mag worden gespeeld. Hoe groot is de kans om op 5 fiches uit te kunnen komen? 146

151 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 euro per jaar. Verder is overeengekomen dat het reisbureau, in geval van ontevredenheid over de leveranties, aan het eind van elk jaar het contract éénzijdig mag opzeggen. De kolenhandelaar heeft 3 soorten kolen. Levert de kolenhandelaar gedurende een jaar kolensoort i, dan is zijn winst a i en de kans op opzegging van het contract p i, i = 1, 2, 3. De kolenhandelaar vraagt zich af welke kolensoorten hij de komende 6 jaar zal leveren om zijn verwachte winst te maximaliseren. Overige gegevens: a 1 = 4.350, a 2 = 7.900, a 3 = ; p 1 = 0.2, p 2 = 0.4, p 3 = 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 Groei 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 Kosten Deze uitbreiding moet zó 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

152 Hoofdstuk 11 Geheeltallige programmering 11.1 Inleiding Soms zijn bij optimaliseringsproblemen één of meer variabelen geheeltallig, bijvoorbeeld als het gaat om ondeelbare grootheden zoals een bepaald aantal personen. We spreken dan van geheeltallige programmering. Als alle variabelen geheeltallig zijn, dan heet het probleem zuiver geheeltallig, anders gemengd geheeltallig. Een speciaal geval van een geheeltallige variabele is een variabele, waarvoor geldt dat deze slechts de waarde 0 of 1 kan aannemen: we spreken dan van een (0,1)- variabele of binaire variabele en het optimaliseringsprobleem waarin de geheeltallige variabelen (0,1)-variabelen zijn, heet een (0,1)-probleem of ook wel een combinatorisch optimaliseringsprobleem. Meestal beschouwen we lineaire geheeltallige optimaliseringsproblemen. In tegenstelling tot de simplex methode voor lineaire programmering, die meestal efficiënt werkt en snel tot een optimale oplossing leidt, bestaat er voor de geheeltallige programmering geen efficiënte methode. Het is zelfs uiterst onwaarschijnlijk dat er ooit een efficiënte methode voor gevonden kan worden. De reden hiervoor is dat het geheeltallige programmeringsprobleem NPmoeilijk is, een begrip uit de complexiteitstheorie 1. We zullen nu eerst een aantal voorbeelden geven van geheeltallige programmeringsproblemen. Een financieringsprobleem De komende drie jaar kunnen vijf projecten worden gefinancierd. Per project staan de jaarlijkse investeringen en de verwachte winst na 3 jaar (in miljoenen euro s) in onderstaande tabel. Jaarlijks is 25 miljoen euro te investeren. Investering Project jaar 1 jaar 2 jaar 3 Winst Zie het college Inleiding Besliskunde. 148

153 Gevraagd wordt welke projecten het best gefinancierd kunnen worden om de te verwachten winst te maximaliseren. Hiervoor voeren we (0,1)-variabelen x i, 1 i 5 in, waarbij x i = 1 overeenkomt met het financieren van project i. Het optimaliseringsprobleem luidt dan: 5x 1 + 4x 2 + 3x 3 + 7x 4 + 8x 5 25 max 20x x x x x 5 x 1 + 7x 2 + 9x 3 + 4x 4 + 6x x x 2 + 2x 3 + x x 5 25 x i {0, 1}, 1 i 5 Als we dit oplossen als LP-probleem, daarbij x i {0, 1} vervangend door 0 x i 1, 1 i 5, dan luidt de oplossing: x 1 = , x 2 = x 3 = x 4 = 1 en x 5 = , met waarde van de doelfunctie gelijk aan De oplossing van het combinatorisch optimaliseringsprobleem is: x 1 = x 2 = x 3 = x 4 = 1 en x 5 = 0 met optimale waarde = 95. Een productieprobleem met vaste kosten Beschouw een productieprobleem met n producten en waarbij { de productiekosten deels vaste K j + c j x j als x j > 0; kosten zijn en deels kosten lineair in de hoeveelheid: C j (x j ) = 0 als x j = 0. De doelfunctie wordt dan n j=1 C j(x j ) en is niet meer lineair in x j vanwege de discontinuïteit in x j = 0. Deze functie is toch lineair te maken door voor iedere x j een binaire variabele y j in te voeren met de interpretatie dat y j = 1 als x j > 0. Door nu te eisen dat 0 x j My j, met M een groot getal dat in alle realitische situaties een bovengrens voor de productie is, wordt C j (x j ) = K j y j +c j x j, 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 één machine moeten worden uitgevoerd. Veronderstel dat er drie soorten beperkingen zijn: (1) volgorde-restricties voor een aantal taken; (2) niet-tegelijkertijd kunnen uitvoeren van twee taken op deze machine; (3) voor iedere taak j een tijdstip d j waarop deze taak af moet zijn. De vraagstelling luidt om een planning te maken die de maximale overschrijding van de tijden d j minimaliseert, rekening houdend met de overige beperkingen. Laat x j de beslissingsvariabele zijn voor het tijdstip waarop de j-de taak op de machine begint en laat t j de (gegeven) tijdsduur zijn voor de bewerking van taak j op de machine, 1 j n. De volgorde-restrictie taak i komt voor taak j houdt in: x i + t i x j. De taken i en j niet tegelijkertijd op de machine betekent: òfwel x i + t i x j, òfwel x j + t j x i. Deze eis is m.b.v. een binaire variabele y ij, waarbij y ij = 1 correspondeert met de eerste mogelijkheid en y ij = 0 met de tweede, om te vormen tot twee beperkingen die beide moeten gelden: x i + t i x j + M(1 y ij ) en x j + t j x i + My ij, waarbij M voldoende groot is, bijv. het laatste tijdstip waarop een taak af moet zijn. De eis dat taak j op tijdstip d j af moet zijn is: x j + t j d j. Het minimaliseren van de maximale overschrijdingen is te modelleren door T te minimaliseren en te eisen dat T x j + t j d j voor alle j. 149

154 Een vestigingsprobleem Veronderstel dat er m mogelijke plaatsen zijn om filialen van een bedrijf te vestigen. Het vestigen van het i-de filiaal kost f i en filiaal i heeft capaciteit b i, 1 i m. Het bedrijf heeft n klanten en de j-de klant heeft een hoeveelheid d j nodig, 1 j n. Als er vanuit filiaal i aan klant j wordt geleverd, dan kost dit c ij per eenheid. Welke filialen moeten worden gevestigd en hoe moet de bevoorrading van de klanten worden uitgevoerd om de totale kosten te minimaliseren? x ij = de hoeveelheid die vanuit filiaal i aan klant j wordt geleverd { Zij 1 als filiaal i wordt gevestigd y i = 0 anders Dit probleem is als volgt te formuleren als een gemengd geheeltallig programmeringsprobleem: m i=1 min m n i=1 j=1 c ijx ij + x ij = d j, j = 1, 2,..., n m i=1 f n iy i j=1 x ij b i y i, i = 1, 2,..., m x ij 0, 1 i m, 1 j n 0 y i 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 P k, 1 k K, die tezamen equivalent zijn met het oorspronkelijke probleem P 0. Veronderstel dat het geheeltallig programmeringsprobleem een maximaliseringsprobleem is en dat we voor het optimum van de deelproblemen boven- en ondergrenzen hebben, zeg z k resp. z k, 1 k K. Dan is z = max 1 k K z k een bovengrens voor het optimum van P 0 en z = max 1 k K z k een ondergrens voor het optimum van P 0 (ga dit zelf na). Vaak kunnen deze grenzen worden gevonden zonder de deelproblemen zelf op te lossen. Iedere toegelaten oplossing van een deelprobleem geeft een ondergrens en iedere optimale oplossing van een relaxatie, dit is een afzwakking van het probleem, geeft een bovengrens. Het is handig om de relaxatie zo te kiezen dat deze gemakkelijk is op te lossen, bijv. het bijbehorende LP-probleem. M.b.v. het bovenstaande kunnen we een deelprobleem als afgehandeld beschouwen als z k z. In dit geval is in de verz. van de overige deelproblemen altijd een oplossing die minstens zo goed is als de optimale oplossing van het deelprobleem P k. Daarnaast is een deelprobleem natuurlijk ook altijd afgehandeld als een optimale oplossing ervan is gevonden of als blijkt dat dit deelprobleem geen toegelaten oplossing bevat. In het algemeen kent een branch-and-bound aanpak de volgende onderdelen: Bepaling grenzen Voor de bovengrens nemen we vaak een relaxatie en voor de ondergrens een toegelaten oplossing. Als deze grenzen lastig zijn te bepalen, dan laten we de bepaling ervan meestal achterwege. 150

155 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: één 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 òfwel het vinden van de optimale oplossing ervan, òfwel het ontdekken dat het probleem ontoelaatbaar is, òfwel het opsplitsen in nieuwe deelproblemen en deze van grenzen voorzien. We geven nu eerst een voorbeeld van deze techniek. We nemen hiervoor een geheeltallig lineair programmeringsprobleem en zullen voor de bovengrenzen van de deelproblemen het optimum van de LP-relaxatie nemen (als de data geheel zijn mogen we dit optimum zelfs naar beneden afronden). Voor de ondergrenzen ronden we de optimale oplossing van de LP-relaxatie af op een geheeltallig punt en als dit punt toelaatbaar is voor een (deel)probleem, dan kan de waarde van de doelfunctie in dit punt worden gebruikt als ondergrens. De best bekende toelaatbare oplossing wordt bewaard als x. Voorbeeld 11.1 max 5x 1 + 8x 2 x 1 + x 2 6 5x 1 + 9x 2 45 x 1, x 2 0 en geheel Initialisatie: Laat z = en z =. Los de LP-relaxatie van P 0 op: x 1 = 9 4, x 2 = 15 4, z = = 41. De afgeronde oplossing is x 1 = 2, x 2 = 4. Deze is niet toelaatbaar en kan dus niet voor een ondergrens worden gebruikt. Kies als splitsingsvariabele x 2 en beschouw de deelproblemen: P 1 : P 0 met toegevoegd x 2 3; P 2 : P 0 met toegevoegd x 2 4; z 1 = z 2 = 41. Iteratie 1: Kies deelprobleem P 1 en los de LP-relaxatie op: x 1 = 3, x 2 = 3 met optimum 39: x 1 = 3, x 2 = 3 en z = 39. Deelprobleem P 1 is nu afgehandeld. Iteratie 2: Kies deelprobleem P 2 en los de LP-relaxatie op: x 1 = 9 5, x 2 = 3, z 2 = 41 = 41. De afgeronde oplossing is x 1 = 2, x 2 = 4 en deze is niet toelaatbaar. Kies als splitsingsvariabele x 1 en beschouw de deelproblemen: P 3 : P 2 met toegevoegd x 1 1; P 4 : P 2 met toegevoegd x 1 2; z 3 = z 4 = 41. Iteratie 3: Kies deelprobleem P 3 en los de LP-relaxatie op: x 1 = 1, x 2 = 40 9, z 2 = = 40. De afgeronde oplossing is x 1 = 1, x 2 = 4; deze is toelaatbaar met waarde 37, wat geen verbetering is van 151

156 de best bekende ondergrens 39. Kies als splitsingsvariabele x 2 en beschouw de deelproblemen: P 5 : P 3 met toegevoegd x 2 4; P 6 : P 3 met toegevoegd x 1 5; z 5 = z 6 = 40. Iteratie 4: Kies deelprobleem P 4 en los de LP-relaxatie op: P 4 is ontoelaatbaar en daarmee afgehandeld. Iteratie 5: Kies deelprobleem P 5 en los de LP-relaxatie op: x 1 = 1, x 2 = 4 met waarde 37, wat geen verbetering is van de best bekende oplossing, zodat P 5 ook is afgehandeld. Iteratie 6: Kies deelprobleem P 6 en los de LP-relaxatie op: x 1 = 0, x 2 = 5 met optimum 40: x 1 = 0, x 2 = 5 en z = 40. Deelprobleem P 6 is nu ook afgehandeld. Omdat dit er nu geen deelprobleem meer over is, zijn we klaar met optimale oplossing: x 1 = 0, x 2 = 5 en waarde 40. De branch-and-bound techniek kan ook worden toegepast op een gemengd geheeltallig programmeringsprobleem. Om van de branch-and-bound techniek een algoritme te maken moeten nadere keuzes worden gespecificeerd, zoals: - Welk deelprobleem wordt gekozen om nader te onderzoeken? - Welke variabele wordt als splitsingsvariabele gekozen? Voor de keuze van het deelprobleem bestaan diverse strategieën waarvoor argumenten aanwezig zijn die voor die strategie pleiten. Zo zouden we het deelprobleem kunnen kiezen met de hoogste bovengrens. Als we erin slagen dit probleem exact op te lossen, dan hopen we daarmee een goede oplossing en hoge waarde voor z gevonden te hebben, waardoor een groot aantal deelproblemen niet meer onderzocht hoeft te worden omdat daarvoor z k z. Een andere strategie die vaak wordt gebruikt is om het laatste deelprobleem te kiezen. De argumentatie hiervoor is een praktische: dit probleem hebben we direct beschikbaar en maakt de implementatie eenvoudig. Voor het oplossen van een LP-relaxatie hoeft namelijk het LP-probleem niet van vooraf aan opgelost te worden. Zo n LP-relaxatie komt uit een vorig LP-probleem met daaraan toegevoegd één 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 één extra iteratiestap voldoende om de nieuwe optimale oplossing te vinden. Als we als deelprobleem om nader te onderzoeken het laatst gecreëerde deelprobleem nemen, dan hebben we het oude LP-tableau direct tot onze beschikking. Dit vergemakkelijkt de implementatie. Ook voor de keuze van de splitsingsvariabele is een aantal strategieën op te stellen. Laat f i = w i w i voor de geheeltallige variabele x i die (in de oplossing van de LP-relaxatie) een nietgeheeltallige waarde w i heeft. a. De grootste fractie regel: kies als splitsingsvariabele de variabele x i met min(f i, 1 f i ) maximaal. Door de variabele met de grootste fractie te kiezen hopen we dat de grenzen van de bijbehorende deelproblemen zo laag worden dat ze daardoor kunnen worden afgehandeld. b. De kleinste fractie regel: kies als splitsingsvariabele de variabele x i met min(f i, 1 f i ) minimaal. Door de variabele met de kleinste fractie te kiezen hopen we in de bijbehorende deelproblemen een goede oplossing te vinden. 152

157 c. De grootste coëfficiënt regel: kies als splitsingsvariabele de variabele x i die in de doelfunctie de grootste coëfficiënt heeft. Hiermee hopen we hetzelfde te beogen als met de grootste fractie regel. d. De kleinste coëfficiënt regel: kies als splitsingsvariabele de variabele x i die in de doelfunctie de kleinste coëfficiënt heeft. Hiermee hopen we hetzelfde te beogen als met de kleinste fractie regel. Het lijkt verstandig de regels b en d in het begin van het algoritme toe te passen en a en c later. Impliciete enumeratie Voor problemen waarin de variabelen alleen de waarden 0 of 1 kunnen aannemen, zoals in combinatorische problemen vaak voorkomt, geeft de LP-relaxatie veel minder informatie dan voor algemene geheeltallige problemen. Ook is de opsplitsing x = 0 of x = 1 een triviale. We kunnen deze opsplitsing dus direct maken zonder eerst een LP-probleem op te lossen. Voor dit soort problemen mogen we wel aannemen dat alle coëfficiënten van de doelfunctie nietnegatief zijn; als dit namelijk niet zo is, dan vervangen we deze x door het complement 1 x en dat is weer een (0, 1)-variabele. Een bovengrens van een deelprobleem krijgen we door de nog niet gefixeerde variabelen 1 te nemen. In plaats van de LP-relaxatie testen we wat het gevolg is van x = 0 of x = 1. Als x = 0 ontoelaatbaarheid geeft, dan fixeren we x op de waarde 1; als x = 0 tot gevolg heeft dat geen betere oplossing kan worden bereikt dan een reeds verkregen oplossing, dan nemen we x = 1. We illustreren de impliciete enumeratie aan de hand van het volgende voorbeeld. Hierin wordt als splitsingsvariabele de variabele met de hoogste coëfficiënt in de doelfunctie gekozen en als deelprobleem om nader te onderzoeken het laatste deelprobleem dat is gecreëerd. Voorbeeld x 1 + x 2 + 4x 3 3x 4 + 6x 5 2x 6 2 max 10x x 2 + 9x 3 + 6x 4 + 5x 5 + 3x 6 x 1 2x 2 + 3x 3 + x 4 3x 5 5x 6 3 x 1 + 2x 2 2x 3 + 4x 4 x 5 + 5x 6 4 x 1, x 2,..., x 6 {0, 1} Iteratie 1: Neem x 1 als splitsingsvariabele: P 1 : x 1 = 0 met grens 33; P 2 : x 1 = 1 met grens 43. Iteratie 2: Kies deelprobleem P 2 en neem x 2 als splitsingsvariabele: P 3 : x 1 = 1, x 2 = 0 met grens 33; P 4 : x 1 = x 2 = 1 met grens 43. Iteratie 3: Kies deelprobleem P 4 en neem x 3 als splitsingsvariabele: P 5 : x 1 = x 2 = 1, x 3 = 0 met grens 34; P 6 : x 1 = x 2 = x 3 = 1 met grens 43. Iteratie 4: Kies deelprobleem P 6. Als x 5 = 1, dan kan aan de eerste beperking niet meer worden voldaan, dus x 5 = 0. Met x 5 = 0 kan aan de tweede beperking alleen worden voldaan als x 4 = 0 en x 6 = 1. Dit geeft de toelaatbare oplossing: x 1 = x 2 = x 3 = x 6 = 1, x 4 = x 5 = 0 met waarde

158 Iteratie 5: Kies deelprobleem P 5. Om een betere oplossing dan x te krijgen moet x 4 = x 5 = x 6 = 1, maar dat geeft geen toelaatbare oplossing. Iteratie 6: Kies deelprobleem P 3. Om een betere oplossing dan x te krijgen moet x 3 = x 4 = x 5 = x 6 = 1, maar ook dat geeft geen toelaatbare oplossing. Iteratie 7: Kies het laatste deelprobleem P 2. Om een betere oplossing dan x te krijgen moet x 2 = x 3 = x 4 = x 5 = x 6 = 1, maar ook dat geeft geen toelaatbare oplossing. De optimale oplossing is dus: x 1 = x 2 = x 3 = x 6 = 1, x 4 = x 5 = 0 met waarde 32. Opmerking In beide versies (LP-relaxatie of impliciete enumeratie) van de branch-and-bound methode hebben we steeds een aantal nog nader te onderzoeken deelproblemen. De vraag is hoe deze het beste onthouden kunnen worden zonder exorbitant veel geheugen te gebruiken. Het is een afweging tussen enerzijds een minimum aan informatie, maar dan wel bepaalde berekeningen te moeten herhalen (bijv. het opnieuw vinden van een optimaal LP-tableau) en anderzijs veel informatie bewaren. Bij branch-and-bound gebaseerd op LP-relaxaties bewaart men vaak, behalve de grenzen van het deelprobleem en de lijst van beperkingen waarmee dit deelprobleem is verkregen vanuit het oorspronkelijke probleem, de lijst van variabelen die in het optimale tableau in de basis zitten. Hiermee is snel het optimale tableau weer te vinden (in feite vereist dit één 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 één beperking heet een knapzakprobleem. Een zinvolle en niet-triviale formulering hiervan heeft altijd positieve coëfficiënten in doelfunctie en beperkingen. Hiermee kan, eventueel na hernummering van de variabelen, het probleem worden geformuleerd als max { n j=1 p jx j n j=1 a jx j b x j {0, 1}, j = 1, 2,..., n }, waarbij p 1 a 1 p 2 a 2 pn a n 0. Bij knapzakproblemen kan eenvoudig gebruik worden gemaakt van grenzen via de LP-relaxaties; de optimale oplossing van de LP-relaxatie is namelijk direct te bepalen. Omdat p j a j beschouwd kan worden als de bijdrage aan de doelfunctie per eenheid van de beschikbare hoeveelheid b, nemen we eerst x 1 = 1, daarna x 2 = 1, totdat de resterende toe te kennen hoeveelheid, zeg b k j=1 a j kleiner is dan a k+1. In dat geval krijgt de variabele x k+1 de resterende waarde b P k j=1 a j. Als de coëfficiënten geheel zijn, dan kunnen we het gevonden LP-optimum nog naar beneden afronden. a k+1 154

159 Voorbeeld 11.3 { max Iteratie 1: 16x x x 3 + 8x 4 5x 1 + 7x 2 + 4x 3 + 3x 4 14 x 1, x 2, x 3, x 4 {0, 1} De LP-relaxatie geeft x 1 = x 2 = 1, x 3 = 1 2, x 4 = 0 met bovengrens 44. Neem x 3 als splitsingsvariabele: P 1 : x 3 = 0 met bovengrens 43 (voor x 1 = x 2 = 1, x 3 = 0, x 4 = 2 3 ); P 2 : x 3 = 1 met bovengrens 43 (voor x 1 = 1, x 2 = 5 7, x 3 = 1, x 4 = 0). Iteratie 2: Kies deelprobleem P 2 en splits dit in P 3 : x 2 = 0 met kandidaat-oplossing x 1 = 1, x 2 = 0, x 3 = x 4 = 1 met waarde 36 en P 4 : x 2 = 1 en hieruit volgt, op grond van logische conclusies, de kandidaat-oplossing x 1 = 0, x 2 = x 3 = x 4 = 1 met waarde 42. Iteratie 3: Neem het enig overgebleven deelprobleem P 1. Om een betere oplossing te krijgen, d.w.z. 16x x 2 + 8x 4 43, moet gelden x 1 = x 2 = x 3 = 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 p j x j Ax b; x 0 en geheel} met A een m n-matrix en b R m. (11.1) j=1 Lineaire programmering heeft de aangename eigenschap dat het optimum in een hoekpunt van het toegelaten gebied ligt, en dat er een techniek is (de simplex methode) die van hoekpunt naar hoekpunt gaat totdat het optimale hoekpunt is gevonden. Hoewel geheeltallige programmering in principe een discreet en niet-continu optimaliseringsprobleem is, zou het op te lossen zijn als we de convexe omhulling van het toegelaten gebied kennen: dat is het kleinste convexe gebied, begrensd door hypervlakken, dat alle toegelaten geheeltallige punten bevat. Als we deze hypervlakken expliciet kennen, dan kan het geheeltallige optimaliseringsprobleem worden opgelost als LP-probleem. Een toegelaten ongelijkheid voor een verz. S R n is een lineaire ongelijkheid, zeg n j=1 c jx j c 0, waaraan alle punten van S voldoen. Voorbeeld 11.4 Beschouw de ongelijkheid 3x 1 4x 2 + 2x 3 3x 4 + x 5 2 met x i {0, 1}, i = 1, 2,..., 5. Als x 2 = x 4 = 0, dan kan niet meer aan bovenstaande ongelijkheid worden voldaan. Een toegelaten ongelijkheid is dus: x 2 + x

160 Voorbeeld 11.5 Beschouw de ongelijkheid 13x x x 3 + 6x 4 72 met x i geheeltallig, i = 1, 2, 3, 4. Delen we de ongelijkheid door 11, dan krijgen we x x 2 + x x Hieruit volgt dat ook moet gelden (afronden naar lagere gehele getallen): x 1 + x 2 + x Omdat de linkerkant geheeltallig is kan het rechterlid naar beneden worden afgerond: x 1 + x 2 + x 3 6 is een toegelaten ongelijkheid.. Laat P = {x R n + Ax b} en X = P Zn en u R m +, de vector van de gewichten. Dan geldt (ga dit zelf na): m n u i { a ij x j } i=1 j=1 n m { u i a ij }x j j=1 i=1 m u i b i is een toegelaten ongelijkheid voor P (11.2) i=1 m u i b i is een toegelaten ongelijkheid voor P (11.3) i=1 n m m { u i a ij }x j u i b i is een toegelaten ongelijkheid voor X (11.4) j=1 i=1 i=1 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 c jx j c 0 met c i geheeltallig, 0 i n, kan worden verkregen door (een aantal malen) één of meer van bovenstaande basisongelijkheden te gebruiken, uitgaande van een bovengrens voor het optimum van n j=1 c jx j, verkregen uit de LP-relaxatie. Bewijs We zullen de bewering aantonen voor binaire variabelen, d.w.z. x j {0, 1} voor alle j en P = {x R n Ax b; 0 x e} met e = (1, 1,..., 1). Laat n j=1 c jx j c 0 een toegelaten ongelijkheid zijn met c i geheeltallig voor i = 0, 1,..., n. Bewering 1: Voor zekere N Z + is n j=1 c jx j c 0 + N een toegelaten ongelijkheid voor P, verkregen met de LP-relaxatie. Bewijs: Omdat P begrensd is, heeft het LP-probleem max{ n j=1 c jx j x P } een eindige optimale oplossing met waarde z 0 van het optimum. N = z 0 c 0 voldoet aan de gestelde eis. Bewering 2: Als de ongelijkheden n j=1 c jx j c 0 + K + j T 0 {p} x j + j T 1(1 x j) en n j=1 c jx j c 0 + K + j T 0 x j + j T 1 {p} (1 x j), 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 c jx j c 0 + K + j T 0 x j + j T 1(1 x j) ook een ongelijkheid die met basisongelijkheden is te genereren. 156

161 Bewijs: Neem beide ongelijkheden met gewicht 1 2 en tel ze op. Dan krijgen we: n j=1 c jx j c 0 + K + j T 0 x j + j T 1(1 x j) [x p + (1 x p )] = c 0 + K + j T 0 x j + j T 1(1 x j) Volgens de laatste basisongelijkheid wordt hiermee gegenereerd de ongelijkheid: n j=1 c jx j c 0 + K + j T 0 x j + j T 1(1 x j). Bewering 3: Er bestaat een M Z + zódat voor iedere partitie van {1, 2,..., n} in N 0 en N 1 n c j x j c 0 + M j=1 een toegelaten ongelijkheid is voor P. Bewijs: j N 0 x j + M j N 1 (1 x j ) (11.5) Het is voldoende om te laten zien dat aan (11.5) wordt voldaan door ieder hoekpunt x van P. Als x Z n, dan voldoet x aan n j=1 c jx j c 0, dus zeker aan (11.5). Als x / Z n, dan is er een α > 0 zódat j N 0 x j + j N 1(1 x j ) α voor iedere partitie (N 0, N 1 ) 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, N 1 ): n j=1 c jx j c 0 + N c o + M j N 0 x j + M j N 1(1 x j ). Bewering 4: Als de toegelaten ongelijkheid n j=1 c jx j c 0 + K + 1 met basisongelijkheden is gegenereerd, dan kan n j=1 c jx j c 0 + K + j N 0 x j + j N 1(1 x j) voor iedere partitie (N 0, N 1 ) ook met basisongelijkheden worden gegenereerd. Bewijs: Neem de ongelijkheid n j=1 c jx j c 0 + K + 1 met gewicht M 1 M gewicht 1 M. Dit geeft de beperking n j=1 c jx j c 0 + j N 0 x j + j N 1(1 x j) + M 1 M (K + 1) = c 0 + j N 0 x j + j N 1(1 x j) + K + M K 1 M. Op grond van de laatste basisongelijkheid wordt dan gegenereerd: n j=1 c jx j c 0 + j N 0 x j + j N 1(1 x j) + K. en de ongelijkheid (11.5) met Bewering 5: Als de ongelijkheid n j=1 c jx j c 0 + K + 1 met basisongelijkheden is te genereren, dan is de ongelijkheid n j=1 c jx j c 0 + K ook met basisongelijkheden te genereren. Bewijs: Veronderstel dat de ongelijkheid n j=1 c jx j c 0 + K + 1 met basisongelijkheden is gegenereerd. Volgens Bewering 4 geldt dan n c j x j c 0 + K + x j + (1 x j ) (11.6) j=1 j N 0 j N 1 voor alle partities (N 0, N 1 ). Hieruit volgt dat aan de veronderstelling van Bewering 2 is voldaan met (T 0, T 1 ) een partitie van {1, 2,..., n 1} en p = n. Volgens Bewering 2 geldt dan n c j x j c 0 + K + x j + (1 x j ). (11.7) j=1 j T 0 j T 1 157

162 We zien dus dat als we (11.7) met (11.6) vergelijken de variabele x n is geëlimineerd. 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 = : n j=1 c jx j c 0 + K. Het bewijs kan nu als volgt worden gegeven. Bepaal allereerst m.b.v. de LP-relaxatie de toelaatbare ongelijkheid n j=1 c jx j z 0. Zij K = z 0 c 0, zodat n j=1 c jx j c 0 + K. Volgens Bewering 5 (voor K 1, K 2,..., 1) volgt hieruit dat de toelaatbare ongelijkheid n j=1 c jx j c 0 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 1 y k met y k {0, 1} en 2 K > U (gebruik de binaire schrijfwijze van x om te zien welke y k s 1 zijn en welke 0). Op deze wijze is het oorspronkelijke probleem om te schrijven naar een probleem met (0, 1)-variabelen. Een toelaatbare ongelijkheid voor X heet een toelaatbare snede als de ongelijkheid geen toelaatbare ongelijkheid voor P is. Gomory s fractie-snede algoritme Beschouw probleem (11.1) en los de LP-relaxatie ervan op met de simplex methode. Veronderstel dat het optimale LP-tableau de volgende gedaante heeft: (x B ) i = a i0 j a ij(x N ) 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 x B x N de oorspronkelijke plus de verschil- en schijnvariabelen bevat. Als de LP-relaxatie geen geheeltallige oplossing geeft, is er een rij, zeg rij r, met a r0 niet geheel. Het { toepassen van de derde basisongelijkheid op deze rij, met gewichtsvector u waarbij u i = 1 als i = r geeft de ongelijkheid 0 als i r (x B ) r + j a rj (x N ) j a r0. (11.9) Vullen we in (11.9) voor (x B ) r de uitdrukking uit (11.8) met i = r in, dan geeft dat de toegelaten ongelijkheid j {a rj a rj }(x N ) j a r0 a r0. (11.10) Noteer de fracties a rj a rj met f rj voor alle j, dan geeft dit de toegelaten fractie-snede j f rj (x N ) j f r0. (11.11) Omdat f r0 > 0 is door de optimale oplossing van de LP-relaxatie, d.w.z. x B = a 0, x N = 0, niet aan (11.11) voldaan. Deze ongelijkheid kapt dus de LP-oplossing van het toegelaten gebied 158

163 af en is dus inderdaad een snede. Omdat (11.9) geheeltallige coëfficiënten 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 = f r0 + j f rj (x N ) 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 f r0 < 0). De duale simplex methode is hiervoor de aangewezen methode om het nieuwe probleem te optimaliseren. Deze methode is in feite de simplex methode toegepast op het gespiegelde tableau. Dit procédé herhalen we totdat een geheeltallige oplossing wordt gevonden. Er kan worden aangetoond dat dit bij een speciale implementatie (speciale keuze van de rij waaruit de snede wordt gegenereerd) na een eindig aantal iteraties gebeurt 2. Voorbeeld x 1 2x 2 3 max 3x 1 x 2 5x 1 4x x 1 + x 2 5 x 1, x 2 0 en geheel We voeren verschilvariabelen y 1, y 2 en y 3 in en lossen het LP-probleem op. Dit geeft het volgende tableau: x x y 1 y x y Nemen we de rij van x 2 om de snede te genereren, dan wordt deze snede: s 1 = y y 3. Voegen we deze snede toe, dan onstaat het volgende tableau. x x y 1 y x y s Volgens de duale simplex methode wordt nu 5 7 (in de onderste rij) als pivot genomen, waarmee het volgende tableau ontstaat. s 1 y 3 x x x y y Neem de rij van x 1 om de snede te genereren, dan wordt deze snede: s 2 = s y 3. Voeg deze snede toe, dan ontstaat het volgende tableau. 2 G. Zoutendijk, Mathematical programming methods, North-Holland, 1976, pp

164 s 1 y 3 x x x y y s Volgens de duale simplex methode wordt nu 1 5 in de onderste rij en meest rechtse kolom de pivot, waarmee het volgende tableau ontstaat. s 1 s 2 x x x y y y Dit tableau is nog niet optimaal, dus we moeten verder pivoten. De pivot wordt -4 in de rij van y 2 en het volgende tableau staat hiernaast. Hiermee zou s 1 in de basis komen. Deze snede is daarmee niet meer bindend en kan worden weggelaten. x y 2 s x x y y Dit tableau is optimaal. Neem de rij van x 3 om de snede te genereren, dan wordt deze snede: s 3 = y s 2. Voeg deze snede toe, dan ontstaat het volgende tableau. x y 2 s x x y y s Volgens de duale simplex methode wordt nu 1 4 in de onderste rij en kolom van y 2 de pivot, waarmee het volgende tableau ontstaat. s 3 s 2 x x x y y y Dit tableau is optimaal met een geheeltallige oplossing, die dus optimaal is. De optimale oplossing luidt: x 1 = 1, x 2 = 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: n r max p j x j + q k y k Ax + Cy b; x, y 0 en x geheel, (11.13) j=1 k=1 met A een (m n)-matrix, C een (m r)-matrix en b R m. 160

165 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 J 1 a ij (x N) j j J 2 a ij (y N) j, i M 1 (x B ) i = a i0 j J 1 a ij (x N ) j j J 2 a ij (y N) j, i M 2 (11.14) waarbij de 0-de rij correspondeert met de doelfunctie en M 1 M 2 = {0, 1, 2,..., m}. Als a i0 geheel is voor alle i M 2, dan is x geheeltallig en het tableau optimaal. Veronderstel dus verder dat a i0 niet geheel is voor een i M 2. De volgende stelling geeft een toegelaten snede. Stelling 11.2 Laat f j = a ij a ij, j J 1 J 2 en f 0 = a i0 a i0 > 0, dan is f 0 (1 f j ) f j (x N ) j + (x N ) j + a 1 f ij(y N ) j + 0 j J 1 f j f 0 j J 1 f j >f 0 j J 2 a ij >0 een toegelaten snede. Bewijs f 0 f j J 2 a 0 1 a ij(y N ) j f 0 ij <0 (11.15) Laat α j a ij (mod 1) voor j J 1. Dan volgt uit (11.14) dat voor iedere geheeltallige x geldt: f 0 j J 1 α j (x N ) j + j J 2 a ij(y N ) j (mod 1) (11.16) Neem α j = { fj als f j f 0 ; f j 1 als f j > f 0. Als j J 1 α j (x N ) j + j J 2 a ij (y N) j 0, dan: Voor iedere toelaatbare (x, y) geldt: f j (x N ) j + a ij (y N) j α j (x N ) j + a ij (y N) j f 0 (11.17) j J 1 f j f 0 j J 2 a ij >0 j J 1 j J 2 Als j J 1 α j (x N ) j + j J 2 a ij (y N) j < 0, dan: j J 1 f j >f 0 (f j 1)(x N ) j + j J 2 a ij <0 a ij (y N ) j j J 1 α j (x N ) j + j J 2 a ij (y N) j f 0 1, zodat geldt: f 0 (f f 0 1 j 1)(x N ) j + j J 1 f j >f 0 j J 2 a ij <0 a ij (y N) j f 0 f 0 1 (f 0 1) = f 0 (11.18) Omdat ook geldt f j (x N ) j + j J 1 f j f 0 j J 2 a ij >0 a ij(y N ) j 0; f 0 (f f 0 1 j 1)(x N ) j + a ij(y N ) j 0 j J 1 f j >f 0 j J 2 a ij <0 (11.19) volgt uit (11.17), (11.18) en (11.19) dat (11.15) geldt. Omdat in de huidige optimale LP-oplossing x N = y N = 0, voldoet deze oplossing niet aan (11.15), zodat (11.15) inderdaad een snede is. 161

166 Opmerking: Ook voor deze methode kan de eindigheid worden aangetoond voor een speciale implementatie 3. Voorbeeld 11.7 Beschouw Voorbeeld 11.6, maar zonder de eis dat x 2 geheel is. Het eerste LP-tableau dat we beschouwen is hetzelfde als het eerste tableau uit Voorbeeld x x y 1 y x y Nemen we de rij van x 1 om de snede te genereren. Deze snede is: s 1 = y y 3. Voegen we deze snede toe, dan onstaat het volgende tableau. x x y 1 y x y s Volgens de duale simplex methode wordt nu 2 7 (in de onderste rij) als pivot genomen, waarmee het volgende tableau ontstaat. y 1 s x x x y y Dit tableau is nog niet optimaal; we voeren vervolgens een pivotstap uit in de rij van y 2 en met pivot -2. x y 2 s x x y y Omdat x 1 geheeltallig is, is nevenstaand tableau optimaal. De optimale oplossing luidt dus: x 1 = 1, x 2 = 5 4 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 bijbehorende algoritme eindig is, duurt het in de praktijk vaak erg lang voordat een optimale oplossing wordt gevonden. We zullen nu ingaan op de vraag of er niet sterkere ongelijkheden gevonden kunnen worden, die hopelijk effectiever zijn. Een sterkere ongelijkheid snijdt meer af van het gebied: als we twee toelaatbare ongelijkheden hebben, zeg n j=1 a jx j a 0 en n j=1 b jx j b 0, dan heet de tweede ongelijkheid sterker dan de eerste als iedere toelaatbare x die voldoet aan n j=1 b jx j b 0 ook voldoet aan n j=1 a jx j a 0. Beschouw een beperking met (0, 1)-variabelen: n j=1 a jx j a 0 met x j {0, 1}, 1 j n. Door, indien nodig, over te gaan op complementaire variabelen x j = 1 x j, kunnen we ervoor zorgen dat alle coëffficienten a j niet-negatief zijn. Verder mogen we aannemen dat in dat geval het rechterlid ook niet-negatief is (anders geeft de beperking ontoelaatbaarheid). 3 T.C. Hu, Integer programming and network flows, Addison-Wesley, 1970, pp

167 Laat N = {1, 2,..., n}. Een B N heet een bedekking als j B a j > a 0 ; een bedekking B heet minimaal als geen enkele deelverz. van B ook een bedekking is. Als B een bedekking is, dan kunnen de variabelen x j, j B niet alle gelijk aan 1 zijn, zodat voor iedere bedekking B de ongelijkheid x j B 1 (11.20) j B een toelaatbare ongelijkheid is. Zo n ongelijkheid heet een bedekkingsongelijkheid. Hoe meer variabelen, bij hetzelfde rechterlid, zo n ongelijkheid heeft, hoe sterker de ongelijkheid is. Het is eenvoudig in te zien (ga dit zelf na) dat voor een bedekking B ook de ongelijkheid x j B 1, (11.21) j E(B) met E(B) = B {i a i a j 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 11x 1 + 6x 2 + 6x 3 + 5x 4 + 5x 5 + 4x 6 + x 7 19 met x i {0, 1}, 1 i 7. De ongelijkheid x 3 + x 4 + x 5 + x 6 3 is een bedekkingsongelijkheid, die minimaal is. De ongelijkheid x 1 + x 2 + x 3 + x 4 + x 5 + x 6 3 is een uitgebreide bedekkingsongelijkheid. De ongelijkheid 2x 1 + x 2 + x 3 + x 4 + x 5 + x 6 3 is ook een toelaatbare ongelijkheid (als x 1 = 1 moet immers gelden dat x 2 + x 3 + x 4 + x 5 + x 6 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 x j B 1, d.w.z. een ongelijkheid van de vorm x j + b j x j B 1, (11.22) j B j N\B waarbij er geen ongelijkheid van de vorm j B x j + j N\B b j x j B 1 bestaat met b j b j voor alle j N\B en minstens één b j > b j. Zo n sterkste ongelijkheid kan worden bepaald met de volgende procedure die voor ieder volgend element uit j N\B berekent wat de maximale ruimte is voor x j = 1. Procedure voor een sterkste uitbreidingsongelijkheid 1. Start met een minimale bedekkingsongelijkheid, zeg j B x j B 1. Zij N\B = {j 1, j 2,..., j r } en laat k = Los het volgende knapzakprobleem op: w k = max{ j B x j + k 1 i=1 b j i x ji j B a jx j + k 1 i=1 a j i x ji a 0 a jk ; alle x j {0, 1}}. 3. Neem b jk = B 1 w k 4. Als k = r: stop. Anders: k := k + 1 en ga naar stap

168 Voorbeeld 11.8 (vervolg) Neem B = {3, 4, 5, 6} en j 1 = 1, j 2 = 2, j 3 = 7. { } 6x 3 + 5x 4 + 5x 5 + 4x 6 8 k = 1: Bepaal w 1 = max x 3 + x 4 + x 5 + x 6 x 3, x 4, x 5, x 6 {0, 1} w 1 = 1, zodat b 1 = 2. { k = 2: Bepaal w 2 = max w 2 = 2, zodat b 2 = 1. { k = 3: Bepaal w 3 = max w 3 = 3, zodat b 7 = 0. 2x 1 + x 3 + x 4 + x 5 + x 6 11x 1 + 6x 3 + 5x 4 + 5x 5 + 4x 6 13 x 1, x 3, x 4, x 5, x 6 {0, 1} 2x 1 + x 2 + x 3 + x 4 + x 5 + x 6 11x 1 + 6x 2 + 6x 3 + 5x 4 + 5x 5 + 4x 6 18 x 1, x 2, x 3, x 4, x 5, x 6 {0, 1} De sterkste ongelijkheid die op deze wijze wordt verkregen luidt dus: 2x 1 +x 2 +x 3 +x 4 +x 5 +x 6 3. } } 11.4 Lagrange relaxatie Beschouw het volgende geheeltallige programmeringsprobleem in matrix-notatie: z = max{p T x Ax b; Cx d; x Z n + }, 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). meestal betere grenzen worden verkregen. Via de zogenaamde Lagrange relaxatie kunnen Voor een u R q + is de Lagrange relaxatie van (11.23) gedefinieerd door: z(u) = max{p T x + u T (d Cx) Ax b; x Z n +} = u T d + max{(p C T u) 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: p T x + u T (d Cx) p T x. Door voor x de optimale oplossing van (11.23), zeg x, te nemen, krijgen we: z(u) p T x + u T (d Cx ) p T x = z. Verder geldt de volgende dualiteitsstelling. Stelling 11.3 Als voor zekere u R q +, x(u) een optimale oplossing is van (11.24) met Cx(u) d en u T (d Cx(u)) = 0, dan is x(u) een optimale oplossing van (11.23). Bewijs Merk op dat x(u) toelaatbaar is voor (11.23), dus p T x(u) z. Verder geldt: z(u) = p T x(u) + u T (d Cx(u)) = p T x(u) z z(u), waaruit volgt dat p T x(u) = z. 164

169 Opmerking Als de beperkingen van de C-matrix gelijkheden zijn, dan vervalt de niet-negativiteit van u en luidt het analogon van Stelling 11.3: Als voor zekere u R q, x(u) een optimale oplossing is van (11.24) met Cx(u) = d, dan is x(u) een optimale oplossing van (11.23). Voorbeeld 11.9: Transportprobleem met vaste kosten Veronderstel dat n klanten bevoorraad moeten worden vanuit m mogelijke locaties. Klant j heeft d j eenheden nodig, j = 1, 2,..., n. Als locatie i wordt gebruikt, dan geeft dit vaste kosten f i, 1 i m; als klant j vanuit locatie i wordt geleverd, dan geeft dit een winst van p ij per eenheid van toelevering. Het probleem is om te beslissen welke locaties worden gebruikt en hoe de toelevering geschiedt zódat de netto winst (opbrengst - kosten) gemaximaliseerd wordt. x ij = de hoeveelheid die vanuit locatie i aan klant j wordt geleverd { Zij 1 als locatie i wordt gebruikt y i = 0 anders Dan is dit probleem te formuleren als max m n i=1 j=1 p ijx ij m i=1 f iy i m i=1 x ij = d j, j = 1, 2,..., n x ij d j y i, 1 i m, 1 j n x ij 0, 1 i m, 1 j n y i {0, 1}, 1 i m Beschouwen we de beperkingen m i=1 x ij = d j, j = 1, 2,..., n als lastige beperkingen, dan wordt de Lagrange relaxatie z(u) = x n j=1 u jd j +max m i=1 [ n j=1 (p ij d j y i, 1 i m, 1 j n ij u j )x ij f i y i ] x ij 0, 1 i m, 1 j n y i {0, 1}, 1 i m = n j=1 u jd j + m i=1 z i(u), waarbij z i (u) = max n j=1 (p ij u j )x ij f i y i x ij d j y i, 1 j n x ij 0, 1 j n y i {0, 1} Het deelprobleem om z i (u) op te lossen is eenvoudig: als y i = 0, dan is x ij = 0 voor alle j, zodat de doelfunctie 0 is; als y i = 1, dan is x ij = d j als p ij u j > 0 en anders 0, zodat de waarde van de doelfunctie gelijk is aan n j=1 max[0, p ij u i ]d j f i. Hieruit volgt dat z i (u) = max{0, n j=1 max[0, p ij u j ]d j f i }. We zullen nu een getallenvoorbeeld geven. Laat n = 6, d j = 1, 1 j n en m = 5, f 1 = 2, f 2 = 4, f 3 = 5, f 4 = 3, f 5 = 3. Voor de winstmatrix P en de vector u nemen we: 165

170 P = en u = (5, 6, 3, 2, 5, 4), zodat P eu = en n j=1 u jd j = We bepalen nu de oplossingen van de deelproblemen: z 1 (u) = max{0, 1 2} = 0; z 2 (u) = max{0, } = 3; z 3 (u) = max{0, } = 0; z 4 (u) = max{0, 4 3} = 1; z 5 (u) = max{0, 2 3} = 0. Hieruit volgt: z(u) = = 29. Voorbeeld 11.9: Het symmetrisch handelsreizigersprobleem Als tweede voorbeeld nemen we het symmetrisch handelsreizigersprobleem. We gebruiken binaire variabelen x ij, i < j, waarbij x ij = 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 c j i<j x ij + j j<i x ji = 2, i = 1, 2,..., n ijx ij i S,j S i<j x ij S 1 voor alle S {2, 3,..., n} met S 2 x ij {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 x ij = n. Voor de Lagrange relaxatie brengen we de beperkingen dat de graad 2 is weg, en vervangen we deze door de beperking i<j x ij = n, terwijl we ook de beperking dat de graad in knooppunt 1 gelijk is aan 2 laten staan. De doelfunctie wordt dus: i<j c ijx ij + n i=1 u i[2 j i<j x ij j j<i x ji] = i<j c ijx ij + 2 n i=1 u i n i=1 u i[ j i<j x ij] n i=1 u i[ j j<i x ji] = 2 n i=1 u i + i<j c ijx ij n i=1 u i[ j i<j x ij] n j=1 u j[ i i<j x ij]. Dus een x ij met i < j heeft in de doelfunctie de coëfficiënt c ij u i u j, zodat de Lagrange relaxatie is: z(u) = 2 n i=1 u i + min i<j [c ij u i u j ]x ij n j=2 x 1j = 2 i<j x ij = n i S,j S i<j x ij S 1 voor alle S {2, 3,..., n} met S 2 x ij {0, 1} voor alle (i, j) met i < j 166

171 De beperkingen van z(u) houden in dat het om n takken van de graaf gaat zódanig 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 één tak. Een dergelijke deelgraaf wordt een 1-boom genoemd. Deze Lagrange relaxatie is dit het probleem om een 1-boom met minimaal gewicht te vinden, waarbij de verbinding (i, j) gewicht c ij u i u j 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: c 12 = 30, c 13 = 26, c 14 = 50, c 15 = 40, c 23 = 24, c 24 = 40, c 25 = 50, c 34 = 24, c 35 = 26 en c 45 = 30. Neem u = (0, 0, 15, 0, 0), zodat voor de gewichten geldt: w 12 = 30, w 13 = 41, w 14 = 50, w 15 = 40, w 23 = 39, w 24 = 40, w 25 = 50, w 34 = 39, w 35 = 41 en w 45 = 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) = ( 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: z LD = min u 0 z(u). Merk op dat z z LD ; het verschil z LD z heet het dualiteitsgat. Als {x Ax b; x Z n + } uit een eindig aantal, zeg x1, x 2,..., x K, elementen bestaat, dan geldt: z LD = min u 0 {max 1 k K p T x k + u T (d Cx k )}. = min{w w p T x k + u T (d Cx k ), 1 k K; u R m +, w R}. Dit is een LP-probleem, maar heeft meestal wel erg veel beperkingen. Soms kan dit toch efficiënt worden opgelost zonder expliciet alle beperkingen in te voeren. Het volgende resultaat kan worden aangetoond 4 Stelling 11.4 Als z(u) voor iedere u polynomiaal oplosbaar is, dan kan ook z LD in polynomiale tijd worden bepaald. De volgende Stelling laat zien dat de Lagrange duaal in het algemeen een scherpere bovengrens voor z geeft dan z LP, het optimum van de LP-relaxatie van het oorspronkelijke probleem: z LP = max{p T x Ax b; Cx d; x 0}. Stelling 11.5 z z LD z LP. 4 A. Schrijver: Theory of linear and integer programming, Wiley, (1986) p

172 Bewijs We hebben reeds gezien dat z z LD. Voor de relatie tussen z LD en z LP geldt: z LD = min u 0 [u T d + max{(p C T u) T x Ax b; x Z n +}] min u 0 [u T d + max{(p C T u) T x Ax b; x 0}]. Omdat het optimum van een LP-probleem gelijk is aan het optimum van het duale LP-probleem is z LD min u 0 [u T d + min{b T v A T v p C T u; v 0}] = min {u T d + b T v C T u + A T v p; u, v 0}. Door nu voor de tweede keer een LP-probleem te dualiseren krijgen we: z LD max {p T x Ax b; Cx d; x 0} = z LP. In veel praktische situaties wordt de opslitsing van de beperkingen zo gemaakt dat de hoekpunten van {x Ax b; x Z n +} geheeltallig zijn. In dat geval is de Lagrange relaxatie (11.24) op te lossen als een LP-probleem: z(u) = u T d + max{(p C T u) T x Ax b; x 0}. Bovendien is in dat geval het optimum van de Lagrange duaal gelijk aan het optimum van de LP-relaxatie van het oorspronkelijke probleem: z LD = z LP. Dit volgt uit het bewijs van Stelling 11.5, omdat de eerste ongelijkheid nu een gelijkheid is en de verdere herschrijvingen reeds via gelijkheden tot stand kwamen. Een speciale techniek om het Lagrange duale probleem op te lossen komt uit de niet-lineaire programmering en heet de subgradiënt methode. Een subgradiënt is een generalisatie van de gradiënt en is gedefinieerd voor convexe functies. De functie z(u) is het maximum van een aantal (in u) lineaire functies en is daarom convex, (zie Opgave 11.13), maar niet differentieerbaar. Een subgradiënt van een convexe functie f : R m 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 R m. Als f continu differentieerbaar is, dan is de subgradiënt gelijk aan de gradiënt: g(u) = f(u); de vector d Cx is de subgradiënt van z(u) (zie ook Opgave 11.13). De subgradiënt methode is het analogon van de methode van Cauchy voor niet-differenteerbare, maar wel convexe functies. Dit is een iteratieve methode, gebaseerd op de iteratie u k+1 = u k λ k g(u k ) (- i.p.v. + omdat we minimaliseren), waarbij λ k de staplengte is. Verder moeten we rekening houden met de niet-negativiteit van de u k s. De subgradiënt methode heeft het volgende schema: 1. Kies een willekeurige u R m en laat k = a. Bepaal x k als optimale oplossing van (11.24) met u = u k. b. Neem u k+1 = max{u k λ k (d Cx k ), 0}, waarbij het maximum componentsgewijs wordt genomen. 3. Als aan een stopcriterium is voldaan: stop; Anders: k := k + 1 en ga naar stap

173 De moeilijkheid is om een geschikte rij λ k s met bijbehorend stopcriterium te bepalen zódat de rij van de z(u k ) convergeert (liefst met een redelijke convergentiesnelheid) naar z LD = min u 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(u k ) naar z LD ; (ii) Als λ k = λ 0 ρ k met ρ < 1, dan convergeert z(u k ) naar z LD als λ 0 en ρ voldoende groot zijn; z(u (iii) Als z z LD en λ k = ε k k ) z, waarbij 0 < ε d Cx k 2 k < 2, dan convergeert z(u k ) naar z, ofwel het algoritme vindt een u k met z z(u k ) z LD voor zekere k. Onderdeel (i) van deze Stelling garandeert convergentie, maar de rij λ k s moet divergent zijn, bijvoorbeeld λ k = 1 k, maar in vele practische gevallen is de convergentie erg traag. Anderzijds geven (ii) en (iii) veel snellere convergentie, maar deze hebben ook hun nadelen. In (ii) moeten de waarde voldoende groot zijn, want anders schieten convergeren we voordat het optimum is bereikt. Het nadeel van (iii) is dat een zinvolle bovengrens z van z LD dicht bij z LD moet liggen en dat deze niet altijd bekend is. In de praktijk hebben we wel vaak een ondergrens z van z LD, bijv. een toelaten oplossing van het oorspronkelijke probleem. Deze wordt dan i.p.v. z gebruikt. Als er dan geen convergentie van de rijen {u k } en {z(u k )} op blijkt te treden, dan verhogen we z. Soms heeft een dergelijke benadering succes. Voorbeeld 11.9: Het symmetrisch handelsreizigersprobleem (vervolg) Merk op dat het hier om een minimaliseringsprobleem gaat waarbij de graadbeperkingen gelijkheden zijn; de duale variabelen u mogen dan ook negatief zijn. De iteratie en de staplengtebepaling (volgens methode (iii) uit Stelling 11.6 met ε k = 1) van de subgradiënt methode wordt hier: u k+1 i = u k i + λ k[2 j i<j xk ij j j<i xk ji ]; λ k = z z(u k ) P n i=1 [2 P j i<j xk ij P j j<i xk ji ]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 z LD hebben, maar dat we wel een bovengrens hebben, zeg via de gevonden ronde [1, 2, 3, 4, 5, 1] met lengte 148. Start met u 0 = (0, 0, 0, 0, 0). De bijbehorende gewichten zijn de oorspronkelijke c ij s. Een 1- boom met minimaal gewicht is: {(1, 2), (1, 3), (2, 3), (3, 4), (3, 5)} met gewicht 130. deze 1-boom de knooppunten 1 t/m 5 de graden 2,2,4,1,1 hebben geldt: u 1 = u 0 + Iteratie 2: (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). Omdat in Voor de nieuwe gewichtenmatrix geldt: w 12 = 30, w 13 = 32, w 14 = 47, w 15 = 37, w 23 = 30, w 24 = 37, w 25 = 47, w 34 = 27, w 35 = 29 en w 45 = 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: u 2 = u (0, 0, 1, 0, 1) = (0, 0, (2 2) 2 +(2 2) 2 +(2 3) 2 +(2 2) 2 +(2 1) 2 2, 3, 2 ). 5 L.A. Wolsey: Integer programming, Wiley-Interscience Series in Discrete Mathematics and optimization, (1998) p

174 Iteratie 3: Voor de nieuwe gewichtenmatrix geldt: w 12 = 30, w 13 = 34.5, w 14 = 47, w 15 = 34.5, w 23 = 32.5, w 24 = 37, w 25 = 44.5, w 34 = 29.5, w 35 = 29 en w 45 = Een 1-boom met minimaal gewicht is: {(1, 2), (1, 3), (2, 3), (3, 5), (4, 5)} met gewicht Omdat alle data geheel zijn weten we dat z 148. Omdat we al een ronde met lengte 148 hadden is deze dus optimaal. Opmerkingen 1. Omdat de subgradiënt methode meestal eindigt met een waarde die (bij een maximaliseringsprobleem) groter is dan z LD, terwijl z LD 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 z LD, d.w.z. hoe dichter bij z des te beter; - het gemak waarmee een z(u) kan worden bepaald; - het gemak waarmee de Lagrange duaal z LD = min u 0 z(u) kan worden bepaald. Hoewel deze drie aspecten niet alle exact zijn aan te geven, kan er vaak wel iets zinnigs over worden gezegd. We zullen dit in onderstaand voorbeeld demonstreren. Voorbeeld 11.10: Het gegeneraliseerde toewijzingsprobleem Dit probleem heeft de volgende formulering: n j=1 max m n i=1 j=1 c ijx ij x ij 1, i = 1, 2,..., m m i=1 a ijx ij b j, j = 1, 2,..., n x ij {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: z 1 (u, v) = m i=1 u i+ { n j=1 v m } jb j +max n i=1 j=1 [c ij u i a ij v j ]x ij x ij {0, 1}, 1 i m, 1 j n. In de tweede relaxatie laten we het tweede stelsel beperkingen in tact: z 2 (u) = { m i=1 u m m i + max n i=1 j=1 [c i=1 ij u i ]x a ijx ij b j, j = 1, 2,..., n ij x ij {0, 1}, 1 i m, 1 j n Als laatste relaxatie laten we het eerste stelsel beperkingen in tact: z 3 (v) = { n j=1 v m n jb j + max n i=1 j=1 [c j=1 ij a ij v j ]x x ij 1, i = 1, 2,..., m ij x ij {0, 1}, 1 i m, 1 j n Laat z 1 LD = min u,v 0 z 1 (u, v), z 2 LD = min u 0 z 2 (u) en z 3 LD = min v 0 z 3 (v). Omdat de eerste en de derde relaxatie als LP-probleem kunnen worden opgelost (de hoekpunten zijn geheeltallig), }. }. 170

175 geldt: z 1 LD = z3 LD = z LP. De eerste relaxatie z 1 (u, v) is simpel op te lossen door inspectie: als c ij u i a ij v j > 0, dan nemen we x ij = 1, anders is x ij = 0. Ook de derde relaxatie is eenvoudig met inspectie op te lossen: voor iedere i kijken we voor welke j de waarde c ij a ij v j het grootste is, zeg voor j = k. Als c ik a ik v k > 0, dan nemen we x ik = 1 en x ij = 0, j k; anders is x ij = 0 voor alle j. Beide zijn dus zeer eenvoudig oplosbaar, maar zld 3 is eenvoudiger te bepalen dan z1 LD, omdat bij zld 3 over n variabelen geoptimalisserd moet worden en bij z1 LD over n + m variabelen. In de tweede relaxatie kan zld 2 kleiner zijn dan z LP, dus deze relaxatie heeft de voorkeur wat betreft scherpte van de te verkrijgen grens. algemeen niet eenvoudig oplosbaar. Anderszijds zijn de deelproblemen z 2 (u) in het 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 max 2x 1 + x 2 x 3 5x 1 2x 2 + 8x x 1 + 3x 2 x 3 9 x 1 + x 2 + x x 1 3 en geheel 0 x 2 1 en geheel 1 x 3 en geheel a. Reductie van de variabelen Dit kan vaak m.b.v. de grenzen van de variabelen. Zo volgt uit de eerste beperking: 5x x 2 8x = 9 x 1 1 De tweede beperking geeft: 8x 1 9 3x 2 + x = 7 x 1 1, zodat met hetgeen uit de eerste beperking volgt geldt dat x 1 = 1, dus x 1 is hiermee als variabele geëlimineerd. Met x 1 = 1 geeft de eerste beperking 8x x = 12, zodat x 3 1. Omdat anderzijds x 3 1, volgt hieruit dat x 3 = 1: ook x 3 is geëlimineerd. Met x 1 = x 3 = 1 volgt uit de tweede beperking dat 3x 2 2, dus x 2 1, wat met de beperking x 2 1 oplevert dat x 2 = 1. In dit geval zijn dus alle variabelen geëlimineerd. b. Reductie van de beperkingen Omdat uit de eerste beperking volgt dat 8x x 1 +2x = 17, geldt dat x 3 2, zodat x 1 + x 2 + x = 6: de derde beperking is dus overbodig. 171

176 c. Variabelen fixeren op grenswaarde Beschouw het probleem zonder de overbodige derde beperking. Door x 2 te vergroten wordt het probleem beter: d.z.w. meer ruimte voor de overige variabelen in de beperkingen en toename van de doelfunctie. Het is dus optimaal om x 2 gelijk aan zijn bovengrens 1 te nemen. Op analoge wijze geldt dat het optimaal is om x 3 te fixeren op zijn ondergrens 1, waarna op triviale wijze volgt dat x 1 = 1. Het bovenstaande laat zich generaliseren tot het volgende. Beschouw de vergelijking a 0 x 0 + n j=1 a jx j b met l j x j u j, j = 1, 2,..., n en x 0 0 en geheel. Dan geldt: Als a 0 > 0, dan geldt: x 0 b P j a j >0 a jl j P j a j <0 a ju j a 0 (dus als j a j >0 a jl j + j a j <0 a ju j > b, dan is de beperking ontoelaatbaar). Als a 0 < 0, dan geldt: x 0 b P j a j >0 a jl j P j a j <0 a ju j a 0. Als we het probleem max{px Ax b; l x u} beschouwen, dan geldt: als a ij 0 voor alle i en p j > 0, dan is in een optimale oplossing x j = u j ; als a ij 0 voor alle i en p j < 0, dan is in een optimale oplossing x j = l j. 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 We beschouwen een gegeneraliseerd toewijzingsprobleem met m = 10, n = 5 en met de volgende matrices C, A en vector b: C = , A = en b = Door preprocessing toe te passen vinden we: x 11 = 0 (omdat a 11 > b 1 ), x 32 = 0 (omdat a 32 > b 2 ), x 62 = 0 (omdat a 62 > b 2 ), x 72 = 0 (omdat a 72 > b 2 ) en x 65 = 0 (omdat a 65 > b 5 ). 172

177 Iteratie 1 Het LP-optimum is 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): x 12 = 1; x 23 = x 25 = 0.5, x 31 = 0.76, x 33 = 0.24, x 43 = x 45 = 0.5, x 52 = 0.74, x 54 = 0.26, x 61 = 1, x 73 = x 75 = 0.5, x 82 = 1, x 91 = 0.76, x 94 = 0.24, x 10,1 = 0.24, x 10,4 = De variabele x 73 kiezen we als splitsingsvariabele: deelprobleem 1 met x 73 = 1 en deelprobleem 2 met x 73 = 0. Iteratie 2 Kies deelprobleem 1. oplossing geheeltallig. Na drie sneden is de waarde van de doelfunctie gedaald tot 537 en de Iteratie 3 Kies deelprobleem 2. Na één snede is de waarde van de doelfunctie gedaald tot De variabele x 13 wordt gekozen als splitsingsvariabele: deelprobleem 3 met x 13 = 1 en deelprobleem 4 met x 13 = 0. Iteratie 4 Kies deelprobleem 4. De oplossing hiervan is geheeltallig met waarde 545. De oplossing luidt (we geven allen de niet-nul variabelen): x 12 = x 23 = x 31 = x 43 = x 52 = x 61 = x 75 = x 82 = x 91 = x 10,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 Opgaven Opgave 1 Beschouw het volgende vestigingsprobleem. Een aantal (n) winkels moet vanuit een aantal (m) magazijnen bevoorraad worden. Winkel j heeft d j eenheden nodig. De vraag luidt: waar kunnen deze winkels het beste gevestigd worden? In plaats i zijn vaste investeringskosten f i en is de productiecapaciteit b i. Bij de bevoorrading van winkel j vanuit een magazijn in plaats i zijn er vaste kosten f ij en variabele kosten c ij per eenheid; bovendien is de capaciteit op deze route b ij. Formuleer dit probleeem als een gemengd geheeltallig lineair programmeringsprobleem. Opgave 2 Beschouw het gebied in de R 2 met 0 x 1 10, 0 x 2 10 met als extra voorwaarden: als x 1 > 5, dan is x 2 5 en als x 2 > 5, dan is x 1 5. Geef m.b.v. continue en geheeltallige variabelen een lineaire beschrijving van dit niet-convexe gebied. 173

178 Opgave 3 Een luchtvaartmaatschappij overweegt om nieuwe vliegtuigen aan te schaffen voor lange, middellange en korte vluchten. Deze kosten per stuk resp. 33.5, 25 en 17.5 miljoen euro. In totaal is er 750 miljoen euro beschikbaar. De jaarlijkse winst van de vliegtuigen wordt geschat op 2.1, 1.5 en 1.15 miljoen euro respectievelijk. De maatschappij heeft voldoende personeel om maximaal 30 vliegtuigen tijdens de vluchten te bemannen. Voor het onderhoud zijn maximaal 120 personen beschikbaar. Een vliegtuig voor de lange vlucht heeft op de vlucht 5 onderhoudslieden nodig, voor een middellange vlucht zijn er 4 nodig en voor een korte vlucht 3. De maatschappij vraagt zich af hoeveel vliegtuigen van elk type aangeschaft moeten worden om de totale winst te maximaliseren, terwijl aan de beperkingen wordt voldaan. a. Formuleer dit probleem als een geheeltallig lineair programmeringsprobleem. b. Bepaal met de branch-and-bound methode een optimale oplossing. Opgave 4 Los het volgende gemengd geheeltallig lineair programmeringsprobleem met branch-and-bound op: max 3x 1 2x 2 x 1 2x 2 + x 3 = 5 2 2x 1 + x 2 + x 4 = 3 2 x 1, x 4 0 x 2, x 3 0 en geheel Opgave 5 Los het volgende (0, 1)-programmeringsprobleem met impliciete enumeratie op: x 1 + x 2 x 3 2x 4 + x 5 1 max 3x 1 + 2x 2 + 5x 3 + 2x 4 + 3x 5 7x 1 3x 3 + 4x 4 + 3x x 1 + 6x 2 + 3x 4 + 3x 5 0 x 1, x 2, x 3, x 4, x 5 {0, 1} Opgave 6 Beschouw het knapzakprobleem in de gedaante: { n n max j=1 p j=1 jx j a jx j b x j {0, 1}, j = 1, 2,..., n }, waarbij p 1 a 1 p 2 a 2 pn a n 0. Toon aan dat als k j=1 a j b en k+1 j=1 a j > b, dan is de oplossing van de LP-relaxatie: x j = 1, 1 j k, x k+1 = b P k j=1 a j a k+1 en x j = 0, k + 2 j n. Opgave 7 Los het volgende knapzakprobleem op: { 5x 1 + 4x 2 + 7x 3 + 6x 4 + 2x 5 15 max 5x 1 + 3x 2 + 6x 3 + 6x 4 + 2x 5 x 1, x 2, x 3, x 4, x 5 {0, 1} } 174

179 Opgave 8 Beschouw het volgende probleem: { } 2x 1 + 2x x n = n max x 1, waarbij n oneven is. x j {0, 1}, 1 j n a. Bewijs dat dit probleem ontoelaatbaar is. b. Zij J een deelverz. van {1, 2,..., n} met hoogstens n 1 2 elementen. Geef iedere x j, j J een waarde 0 of 1 en bewijs dat het LP-probleem j / J max {x 2x j = n j J 2x } j 1 0 x j 1, j / J toelaatbaar is. c. Bewijs dat iedere branch-and-bound procedure om het oorspronkelijke probleem op te lossen minstens 2 n 1 2 deelproblemen moet onderzoeken. Opgave 9 Leid uit de ongelijkheid 3x 1 4x 2 + 2x 3 3x 4 + x 5 2 m.b.v. basisongelijkheden de toegelaten ongelijkheid x 2 + x 4 1 af. Opgave 10 Los met Gomory s fractie-snede het volgende probleem op: x 1 4x 2 5 max 4x 1 5x 2 3x 1 2x 2 7 x 1, x 2 0 en geheel Opgave 11 Los met Gomory s snede het volgende gemengd geheeltallige probleem op: 7x 1 2x 2 14 max 4x 1 x 2 x 2 3 2x 1 2x 2 3 x 1 0 en geheel; x 2 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 a. Bewijs dat de Lagrange functie z(u) een convexe functie in u is. b. Toon aan dat d Cx de subgradiënt van z(u) in u is. 175

180 Opgave 14 Beschouw het transportprobleem met vaste kosten uit paragraaf Laat n = 6, d j = 1, 1 j n en m = 5, f 1 = 4, f 2 = 8, f 3 = 11, f 4 = 7, f 5 = 5. Voor de winstmatrix P en de vector u nemen we: P = 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: c 12 = 8, c 13 = 2, c 14 = 14, c 15 = 26, c 16 = 13, c 23 = 7, c 24 = 4, c 25 = 16, c 26 = 8, c 34 = 23, c 35 = 14, c 36 = 9, c 45 = 12, c 46 = 6 en c 56 = 5. Opgave 16 Beschouw het volgende knapzakprobleem: { } 3x 1 + x 2 + 4x 3 4 max 10x 1 + 4x x 3. x 1, x 2, x 3 {0, 1} a. Bepaal de Lagrange duaal z LD door de knapzakvoorwaarde te dualiseren en wat is de bijbehorende optimale duale variabele? b. Pas de subgradiënt methode toe met als staplengte λ k = λ 0 ρ k, met λ 0 = 1 en ρ = 1 2. Start met u 0 = 0. Laat zien dat deze methode niet convergeert naar de optimale duale variabele. Opgave 17 Beschouw het volgende geheeltallig lineair programmeringsprobleem 8x 1 + 2x 2 + x 3 + 4x 4 10 max 16x x 2 + 4x 4 x 1 + x 2 1. x 3 + x 4 1 x 1, x 2, x 3, x 4 {0, 1} a. Laat zien dat de LP-relaxatie de waarde 18 oplevert. b. Dualiseer de eerste beperking en toon aan dat deze Lagrange duaal ook de waarde 18 geeft. c. Dualiseer de laatste twee beperkingen. Pas de subgradiënt 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

181 Opgave 18 Beschouw het volgende (0,1)-probleem x 1 + 3x 2 5x 3 + x 4 + 4x 5 0 max 5x 1 7x 2 10x 3 + 3x 4 5x 5 2x 1 6x 2 + 3x 3 2x 4 2x 5 4 2x 2 2x 3 x 4 + x 5 2 x 1, x 2, x 3, x 4, x 5 {0, 1} Pas preprocessing toe om dit probleem zoveel mogelijk te vereenvoudigen.. 177

182 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,..., Voorbeeld: P[0 z 1.56] = (zie de rij van 1.5 en de kolom van.06). z

183 TABEL II: STANDAARD NORMALE VERLIES INTEGRAAL N(z) In onderstaande tabel staan de getallen N(z) = z (y z) 1 2π e 1 2 y2 dy voor z = 0.00, 0.01,..., Voorbeeld: N(0.91) = (zie de rij van 0.9 en de kolom van.01). z

184 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: t (14) = 2.145, want P[Z(14) 2.145] = (zie de rij van n = 14 en de kolom van α = 0.025)

185 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, en 0.010, en voor n = 1, 2,..., 30, 40, 60, 80 en 100. Voorbeeld: χ (14) = , want P[Z(14) ] = (zie de rij van n = 14 en de kolom van α = 0.025)

186 TABEL V: ASELECTE GETALLEN VAN 5 CIJFERS In onderstaande tabel staan 200 aselecte getallen van 5 cijfers (lees ze regel voor regel)

187 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)

SPECIALE LINEAIRE MODELLEN

SPECIALE LINEAIRE MODELLEN Hoofdstuk 7 SPECIALE LINEAIRE MODELLEN 7.1 Unimodulariteit en totale unimodulariteit Vele combinatorische optimaliseringsproblemen kunnen worden beschreven als het maximaliseren van een lineaire functie

Nadere informatie

TU/e 2DD50: Wiskunde 2 (1)

TU/e 2DD50: Wiskunde 2 (1) TU/e 2DD50: Wiskunde 2 () Tussentoets 26 november, tijdens de instructies Zaal: paviljoen (study hub) Time: 90min Tentamenstof: colleges 4 (LP; Simplex; dualiteit; complementaire slackness) Oude tentamens:

Nadere informatie

1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord).

1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist is. Kruis de juiste bewering aan. (2pt. per juist antwoord). Tentamen Optimalisering (IN2805-I) Datum: 3 april 2008, 14.00 17.00. Docent: Dr. J.B.M. Melissen Naam: Studienummer: 1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist

Nadere informatie

Tentamen: Operationele Research 1D (4016)

Tentamen: Operationele Research 1D (4016) UITWERKINGEN Tentamen: Operationele Research 1D (4016) Tentamendatum: 12-1-2010 Duur van het tentamen: 3 uur (maximaal) Opgave 1 (15 punten) Beschouw het volgende lineaire programmeringsprobleem P: max

Nadere informatie

BESLISKUNDE 2 EN 3 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

BESLISKUNDE 2 EN 3 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN BESLISKUNDE 2 EN 3 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN VOORJAAR 2007 Voorwoord College Najaar 2004 Het derdejaarscolleges Besliskunde 2 en 3 zijn een vervolg op het tweedejaarscollege Besliskunde 1.

Nadere informatie

TU/e 2DD50: Wiskunde 2 (1)

TU/e 2DD50: Wiskunde 2 (1) TU/e 2DD50: Wiskunde 2 (1) Organisatorische informatie Wat Dag Tijd Zaal Docent College Tue 5+6 Aud 6+15 Gerhard Woeginger Thu 1+2 Aud 1+4 Gerhard Woeginger Clicker session Tue 7+8 Aud 6+15 Gerhard Woeginger

Nadere informatie

Bijlage A Simplex-methode

Bijlage A Simplex-methode Dee bijlage hoort bij Beter beslissen, Bijlage A Simplex-methode Verreweg de meeste LP-problemen worden opgelost met behulp van het ogenoemde Simplex-algoritme, in ontwikkeld door G.B. Dantig. De meeste

Nadere informatie

Uitwerkingen oefenopdrachten or

Uitwerkingen oefenopdrachten or Uitwerkingen oefenopdrachten or Marc Bremer August 10, 2009 Uitwerkingen bijeenkomst 1 Contact Dit document is samengesteld door onderwijsbureau Bijles en Training. Wij zijn DE expert op het gebied van

Nadere informatie

A.1 Grafentheorie 64 BIJLAGE A. OPLOSSING VAN DE VRAGEN A.1. GRAFENTHEORIE 65. dan heeft deze kring in ieder knooppunt een even aantal takken).

A.1 Grafentheorie 64 BIJLAGE A. OPLOSSING VAN DE VRAGEN A.1. GRAFENTHEORIE 65. dan heeft deze kring in ieder knooppunt een even aantal takken). 64 BIJLAGE A. OPLOSSING VAN DE VRAGEN A. Grafentheorie Vraag. Neem drie knooppunten i, j en k. d(i, k) = het minimum aantal takken in een keten tussen i en k Vraag.2 het minimum aantal takken in een keten

Nadere informatie

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen 08-04-2005

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen 08-04-2005 Transport-, Routing- en Schedulingproblemen Wi4062TU / Wi487TU / a86g Uitwerkingen 08-04-2005 1 Transportprobleem Onderdeel a Fabriek 1 kan 120 ton staal fabriceren in 40 uur. Voor fabriek 2 is dit 150

Nadere informatie

TU/e 2DD50: Wiskunde 2

TU/e 2DD50: Wiskunde 2 TU/e 2DD50: Wiskunde 2 Enkele mededelingen Instructies (vandaag, 10:45 12:30) in vier zalen: Zaal Aud 10 Pav b2 Pav m23 Ipo 0.98 voor studenten met achternaam beginnend met letters A tot en met D met letters

Nadere informatie

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur.

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur. Universiteit Utrecht Faculteit Wiskunde en Informatica Examen Optimalisering op maandag 18 april 2005, 9.00-12.00 uur. De opgaven dienen duidelijk uitgewerkt te zijn en netjes ingeleverd te worden. Schrijf

Nadere informatie

BESLISKUNDE 2 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN

BESLISKUNDE 2 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN BESLISKUNDE L.C.M. KALLENBERG UNIVERSITEIT LEIDEN Voorwoord Dit vak is een voortzetting van het tweedejaarscollege Besliskunde. Een aantal andere mathematische beslissingsproblemen komt aan de orde en

Nadere informatie

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk.

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk. Netwerkanalyse (H3) Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk. Deze problemen kunnen vaak als continu LP probleem worden opgelost. Door de speciale structuur

Nadere informatie

BESLISKUNDE 3 L.C.M. KALLENBERG

BESLISKUNDE 3 L.C.M. KALLENBERG BESLISKUNDE 3 L.C.M. KALLENBERG UNIVERSITEIT LEIDEN versie november 2010 Voorwoord De voorkennis van dit vak is het tweedejaarscollege Besliskunde 1. Het derdejaarscollege Besliskunde 2 is niet noodzakelijk,

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 3 Leo van Iersel Technische Universiteit Delft 21 september 2016 Leo van Iersel (TUD) TW2020 Optimalisering 21 september 2016 1 / 36 LP: Lineair Programmeren min x 1 2

Nadere informatie

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen

Transport-, Routing- en Schedulingproblemen. Wi4062TU / Wi487TU / a86g. Uitwerkingen Transport-, Routing- en Schedulingproblemen Wi4062TU / Wi487TU / a86g Uitwerkingen 28-03-2003 1 Docenten Onderdeel a Er zijn 6 vakken V 1, V 2,..., V 6. Vak V j heeft een vraag b j = 1, voor j = 1, 2,...,

Nadere informatie

Tentamen Optimalisering (IN2520) Datum: 5 november 2004, Docent: Dr. J.B.M. Melissen

Tentamen Optimalisering (IN2520) Datum: 5 november 2004, Docent: Dr. J.B.M. Melissen Tentamen Optimalisering (IN2520) Datum: 5 november 2004, 14.00 17.00. Docent: Dr. J.B.M. Melissen Veel succes! 1 Deze opgave bestaat uit 15 tweekeuzevragen. Per goed antwoord krijg je 2 punten. a. Dynamisch

Nadere informatie

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University Discrete Wiskunde, College 12 Han Hoogeveen, Utrecht University Dynamische programmering Het basisidee is dat je het probleem stap voor stap oplost Het probleem moet voldoen aan het optimaliteitsprincipe

Nadere informatie

Basiskennis lineaire algebra

Basiskennis lineaire algebra Basiskennis lineaire algebra Lineaire algebra is belangrijk als achtergrond voor lineaire programmering, omdat we het probleem kunnen tekenen in de n-dimensionale ruimte, waarbij n gelijk is aan het aantal

Nadere informatie

l e x e voor alle e E

l e x e voor alle e E Geselecteerde uitwerkingen Werkcollege Introduceer beslissingsvariabelen x e met x e = als lijn e in de boom zit en anders x e = 0. De doelfunctie wordt: min e E l e x e Voor elke deelverzameling S V met

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 2 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 1 / 28 Minimum Opspannende Boom (Minimum Spanning

Nadere informatie

Lineaire programmering

Lineaire programmering Lineaire programmering Hans Maassen kort naar Inleiding Besliskunde van J. Potters [Pot]. en Methods of Mathematical Economics van J. Franklin [Fra]. Lineaire programmering is het bepalen van het maximum

Nadere informatie

1 Transportproblemen. 1.1 Het standaard transportprobleem

1 Transportproblemen. 1.1 Het standaard transportprobleem 1 Transportproblemen 1.1 Het standaard transportprobleem Dit is het eenvoudigste logistieke model voor ruimtelijk gescheiden vraag en aanbod. Een goed is beschikbaar in gekende hoeveelheden op verscheidene

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 28 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 1 / 25 Definitie Een boom is een samenhangende

Nadere informatie

Universiteit Utrecht Departement Informatica

Universiteit Utrecht Departement Informatica Universiteit Utrecht Departement Informatica Uitwerking Tussentoets Optimalisering 20 december 206 Opgave. Beschouw het volgende lineair programmeringsprobleem: (P) Minimaliseer z = x 2x 2 + x 3 2x 4 o.v.

Nadere informatie

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel.

Grafen. Indien de uitgraad van ieder punt 1 is, dan bevat de graaf een cykel. Indien de ingraad van ieder punt 1 is, dan bevat de graaf een cykel. Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee

Nadere informatie

Lineaire Algebra voor ST

Lineaire Algebra voor ST Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.3 email: [email protected] studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds6 Technische Universiteit Eindhoven college 6 J.Keijsper (TUE)

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 9 Leo van Iersel Technische Universiteit Delft 16 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 16 november 2016 1 / 28 Vandaag Integer Linear Programming (ILP)

Nadere informatie

Lineaire Optimilizatie Extra sessie. 19 augustus 2010

Lineaire Optimilizatie Extra sessie. 19 augustus 2010 Lineaire Optimilizatie Extra sessie 19 augustus 2010 De leerstof Handboek: hoofdstuk 2 t.e.m. 8 (incl. errata) Slides (zie toledo) Extra opgaven (zie toledo) Computersessie: Lindo syntax en output Wat

Nadere informatie

Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking

Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking Taak 2: LP: simplex en sensitiviteitsanalyse Voorbeeld uitwerking. Sensitiviteitsanalyse (a) Als de prijs van legering 5 daalt, kan het voordeliger worden om gebruik te maken van deze legering. Als de

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 5 Leo van Iersel Technische Universiteit Delft 12 oktober 2016 Leo van Iersel (TUD) TW2020 Optimalisering 12 oktober 2016 1 / 31 Dualiteit Dualiteit: Elk LP probleem heeft

Nadere informatie

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde II op donderdag 6 juli 2017, uur.

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde II op donderdag 6 juli 2017, uur. Universiteit Utrecht Betafaculteit Examen Discrete Wiskunde II op donderdag 6 juli 2017, 13.30-16.30 uur. De opgaven dienen duidelijk uitgewerkt te zijn en netjes ingeleverd te worden. Schrijf op elk ingeleverd

Nadere informatie

vandaag is Annie twee jaar jonger dan Ben en Cees samen

vandaag is Annie twee jaar jonger dan Ben en Cees samen Hoofdstuk I Lineaire Algebra Les 1 Stelsels lineaire vergelijkingen Om te beginnen is hier een puzzeltje: vandaag is Annie twee jaar jonger dan Ben en Cees samen over vijf jaar is Annie twee keer zo oud

Nadere informatie

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University Optimalisering en Complexiteit, College 11 Complementaire speling; duale Simplex methode Han Hoogeveen, Utrecht University Duale probleem (P) (D) min c 1 x 1 + c 2 x 2 + c 3 x 3 max w 1 b 1 + w 2 b 2 +

Nadere informatie

Tie breaking in de simplex methode

Tie breaking in de simplex methode Tie breaking in de simplex methode Tijdens de Simplexmethode kan op een aantal momenten onduidelijk zijn wat je moet doen: 1. Variabele die de basis in gaat: Zoek de grootste coëfficiënt in de doelfunctie.

Nadere informatie

De dimensie van een deelruimte

De dimensie van een deelruimte De dimensie van een deelruimte Een deelruimte van R n is een deelverzameling die op zichzelf ook een vectorruimte is. Ter herinnering : Definitie. Een deelverzameling H van R n heet een deelruimte van

Nadere informatie

Stelsels lineaire vergelijkingen

Stelsels lineaire vergelijkingen Een matrix heeft een rij-echelon vorm als het de volgende eigenschappen heeft: 1. Alle nulrijen staan als laatste rijen in de matrix. 2. Het eerste element van een rij dat niet nul is, ligt links ten opzichte

Nadere informatie

Digitaal Proefstuderen Econometrie en Operationele Research Universiteit van Tilburg

Digitaal Proefstuderen Econometrie en Operationele Research Universiteit van Tilburg Digitaal Proefstuderen Econometrie en Operationele Research Universiteit van Tilburg 1 Voorwoord Welkom bij de cursus Digitaal Proefstuderen van de opleiding Econometrie en Operationele Research aan de

Nadere informatie

Modellen en Simulatie Speltheorie

Modellen en Simulatie Speltheorie Utrecht, 20 juni 2012 Modellen en Simulatie Speltheorie Gerard Sleijpen Department of Mathematics http://www.staff.science.uu.nl/ sleij101/ Program Optimaliseren Nul-som matrix spel Spel strategie Gemengde

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 13 Leo van Iersel Technische Universiteit Delft 9 december 2015 Leo van Iersel (TUD) TW2020 Optimalisering 9 december 2015 1 / 13 Vraag Wat moet ik kennen en kunnen voor

Nadere informatie

Netwerkstroming. Algoritmiek

Netwerkstroming. Algoritmiek Netwerkstroming Vandaag Netwerkstroming: definitie en toepassing Het rest-netwerk Verbeterende paden Ford-Fulkerson algoritme Minimum Snede Maximum Stroming Stelling Variant: Edmonds-Karp Toepassing: koppelingen

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 5 Leo van Iersel Technische Universiteit Delft 2 oktober 206 Leo van Iersel (TUD) TW2020 Optimalisering 2 oktober 206 / 3 Dualiteit Dualiteit: Elk LP probleem heeft een

Nadere informatie

3 Wat is een stelsel lineaire vergelijkingen?

3 Wat is een stelsel lineaire vergelijkingen? In deze les bekijken we de situatie waarin er mogelijk meerdere vergelijkingen zijn ( stelsels ) en meerdere variabelen, maar waarin elke vergelijking er relatief eenvoudig uitziet, namelijk lineair is.

Nadere informatie

TU/e 2DD50: Wiskunde 2

TU/e 2DD50: Wiskunde 2 TU/e 2DD50: Wiskunde 2 Enkele mededelingen Tussentoets: 26 november, tijdens de instructies Tentamenstof: LP; Simplex; dualiteit (= colleges 1 4) Bij de tussentoets mag een eenvoudige (niet programmeerbare)

Nadere informatie

Lineaire Algebra TW1205TI. I.A.M. Goddijn, Faculteit EWI 12 februari 2014

Lineaire Algebra TW1205TI. I.A.M. Goddijn, Faculteit EWI 12 februari 2014 Lineaire Algebra TW1205TI, 12 februari 2014 Contactgegevens Mekelweg 4, kamer 4.240 tel : (015 27)86408 e-mail : [email protected] homepage : http: //fa.its.tudelft.nl/ goddijn blackboard : http:

Nadere informatie

Hoofdstuk 13: Integer Lineair Programmeren

Hoofdstuk 13: Integer Lineair Programmeren Hoofdstuk 13: Integer Lineair Programmeren Vandaag: Wat is Integer Lineair Programmeren (ILP)? Relatie tussen ILP en LP Voorbeeld 1: Minimum Spanning Tree (MST) Voorbeeld 2: Travelling Salesman Problem

Nadere informatie

Jordan normaalvorm. Hoofdstuk 7

Jordan normaalvorm. Hoofdstuk 7 Hoofdstuk 7 Jordan normaalvorm Zoals we zagen hangt de matrix die behoort bij een lineaire transformatie af van de keuze van een basis voor de ruimte In dit hoofdstuk buigen we ons over de vraag of er

Nadere informatie

Uitwerkingen bij 1_1 Lineaire vergelijkingen

Uitwerkingen bij 1_1 Lineaire vergelijkingen Uitwerkingen bij 1_1 Lineaire vergelijkingen!! "#$ #!%!& " %'!& " #!' " # ( # )' * # ' #*" # + '!#*" ' ' + + ' '!, %' &% &%& % -&. = / +. = / + * 0 #!*" 0 $! 1 = ' + 1 = - 0 " "!$ *# 2 1 = # '2 = ' + 2

Nadere informatie

1. Het aantal optimale oplossingen van een LP probleem is 0, 1, of oneindig. 2. De vereniging van twee konvexe verzamelingen is niet convex. 3.

1. Het aantal optimale oplossingen van een LP probleem is 0, 1, of oneindig. 2. De vereniging van twee konvexe verzamelingen is niet convex. 3. 1. Het aantal optimale oplossingen van een LP probleem is 0, 1, of oneindig. 2. De vereniging van twee konvexe verzamelingen is niet convex. 3. Een LP probleem heeft n>2 variabelen en n+2 constraints.

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28 Vandaag Vraag Voor welke problemen

Nadere informatie

Rekenen aan wortels Werkblad =

Rekenen aan wortels Werkblad = Rekenen aan wortels Werkblad 546121 = Vooraf De vragen en opdrachten in dit werkblad die vooraf gegaan worden door, moeten schriftelijk worden beantwoord. Daarbij moet altijd duidelijk zijn hoe de antwoorden

Nadere informatie

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b

Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b Het oplossen van stelsels lineaire vergelijkingen Wiskunde 2, 2DM60 College 2b Ruud Pellikaan [email protected] /k 2014-2015 Lineaire vergelijking 2/64 DEFINITIE: Een lineaire vergelijking in de variabelen

Nadere informatie

Optimalisering WI 2608

Optimalisering WI 2608 Optimalisering WI 2608 Docent: Hans Melissen, EWI kamer 7.080 e-mail: [email protected] tel: 015-2782547 Studiemateriaal op : http://www.isa.ewi.tudelft.nl/~melissen (kijk bij onderwijs WI

Nadere informatie

Lineaire Algebra en Vectorcalculus 2DN60 College 5.a Basis en dimensie

Lineaire Algebra en Vectorcalculus 2DN60 College 5.a Basis en dimensie Lineaire Algebra en Vectorcalculus 2DN60 College 5.a Basis en dimensie Ruud Pellikaan [email protected] /k 205-206 Definitie opspansel 2/35 Stel S = {v,..., v n } is een deelverzameling van de vectorruimte

Nadere informatie

Examenvragen Hogere Wiskunde I

Examenvragen Hogere Wiskunde I 1 Examenvragen Hogere Wiskunde I Vraag 1. Zij a R willekeurig. Gegeven is dat voor alle r, s Q geldt dat a r+s = a r a s. Bewijs dat voor alle x, y R geldt dat a x+y = a x a y. Vraag 2. Gegeven 2 functies

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 10 Leo van Iersel Technische Universiteit Delft 23 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 1 / 40 Vraag Ik heb het deeltentamen niet

Nadere informatie

Tie breaking in de simplex methode

Tie breaking in de simplex methode Tie breaking in de simplex methode Tijdens de Simplexmethode kan op een aantal momenten onduidelijk zijn wat je moet doen: 1. Variabele die de basis in gaat: Zoek de grootste coëfficiënt in de doelfunctie.

Nadere informatie

a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n.

a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n. . Oefen opgaven Opgave... Gegeven zijn de lijnen l : 2 + λ m : 2 2 + λ 3 n : 3 6 4 + λ 3 6 4 a) Bepaal punten a l en b m zó dat de lijn door a en b parallel is met n. b) Bepaal de afstand tussen die lijn

Nadere informatie

Uitwerking Tweede Quiz Speltheorie,

Uitwerking Tweede Quiz Speltheorie, Uitwerking Tweede Quiz Speltheorie, 28-11-2012 Attentie! Maak van de onderstaande drie opgaven er slechts twee naar eigen keuze! Opgave 1 [50 pt]. Van het tweepersoons nulsomspel met de 2 4-uitbetalingsmatrix

Nadere informatie

Voorbeeld simplexmethode. Max Z = 3x 1 + 2x 2 0.5x 3 z.d.d. 4x 1 + 3x 2 + x 3 10, 3x 1 + x 2-2x 3 8, en x 1, x 2, x 3 0.

Voorbeeld simplexmethode. Max Z = 3x 1 + 2x 2 0.5x 3 z.d.d. 4x 1 + 3x 2 + x 3 10, 3x 1 + x 2-2x 3 8, en x 1, x 2, x 3 0. Voorbeeld simplexmethode Max Z = 3x 1 + 2x 2 0.5x 3 z.d.d. 4x 1 + 3x 2 + x 3 10, 3x 1 + x 2-2x 3 8, en x 1, x 2, x 3 0. Voer slackvariabelen (x 4, x 5 ) in: Max Z = 3x 1 + 2x 2 0.5x 3 z.d.d. 4x 1 + 3x

Nadere informatie

Lineaire Algebra (2DD12)

Lineaire Algebra (2DD12) Lineaire Algebra (2DD12) docent: Ruud Pellikaan - Judith Keijsper email: [email protected] studiewijzer: http://www.win.tue.nl/ ruudp/2dd12.html Technische Universiteit Eindhoven college 1 J.Keijsper

Nadere informatie

Lineaire Algebra voor ST

Lineaire Algebra voor ST Lineaire Algebra voor ST docent: Judith Keijsper TUE, HG 9.31 email: [email protected] studiewijzer: http://www.win.tue.nl/wsk/onderwijs/2ds6 Technische Universiteit Eindhoven college 2 J.Keijsper

Nadere informatie

Tentamen Discrete Wiskunde 1 10 april 2012, 14:00 17:00 uur

Tentamen Discrete Wiskunde 1 10 april 2012, 14:00 17:00 uur Tentamen Discrete Wiskunde 0 april 0, :00 7:00 uur Schrijf je naam op ieder blad dat je inlevert. Onderbouw je antwoorden, met een goede argumentatie zijn ook punten te verdienen. Veel succes! Opgave.

Nadere informatie

Voorbeeld van herschrijven als transportprobleem

Voorbeeld van herschrijven als transportprobleem Voorbeeld van herschrijven als transportprobleem Het water van 3 rivieren moet worden verdeeld over 4 steden. Daar zijn kosten aan verbonden per eenheid water (zie tabel). De steden hebben minimumbehoeften

Nadere informatie

Netwerkstroming. Algoritmiek

Netwerkstroming. Algoritmiek Netwerkstroming Netwerkstroming Toepassingen in Logistiek Video-streaming Subroutine in algoritmen 2 Vandaag Netwerkstroming: wat was dat ook alweer? Minimum Snede Maximum Stroming Stelling Variant: Edmonds-Karp

Nadere informatie

Locatie 1 Locatie 2 Locatie 3 Locatie 4 Park 1 90 75 75 80 Park 2 35 85 55 65 Park 3 125 95 90 105 Park 4 45 110 95 115.

Locatie 1 Locatie 2 Locatie 3 Locatie 4 Park 1 90 75 75 80 Park 2 35 85 55 65 Park 3 125 95 90 105 Park 4 45 110 95 115. P1 P2 P3 P4 90 35 115 L1 L2 L3 L4 Park 1 90 75 75 80 Park 2 35 85 55 65 Park 3 125 95 90 105 Park 4 45 110 95 115 Wiskunde D Keuzevak beslissen onderdeel: koppelen versie 4 vrijdag 16 november 2007 Samenstelling

Nadere informatie

Workshop DisWis, De Start 13/06/2007 Bladzijde 1 van 7. Sudoku. Sudoku

Workshop DisWis, De Start 13/06/2007 Bladzijde 1 van 7. Sudoku. Sudoku DisWis DisWis is een lessenserie discrete wiskunde die De Praktijk vorig jaar in samenwerking met prof.dr. Alexander Schrijver heeft opgezet. Gedurende vier weken komt een wiskundestudent twee blokuren

Nadere informatie

Combinatoriek groep 1 & 2: Recursie

Combinatoriek groep 1 & 2: Recursie Combinatoriek groep 1 & : Recursie Trainingsweek juni 008 Inleiding Bij een recursieve definitie van een rij wordt elke volgende term berekend uit de vorige. Een voorbeeld van zo n recursieve definitie

Nadere informatie

Lights Out. 1 Inleiding

Lights Out. 1 Inleiding Lights Out 1 Inleiding Het spel Lights Out is een elektronisch spel dat gelanceerd werd in 1995 door Tiger Electronics. Het originele spel heeft een bord met 25 lampjes in een rooster van 5 rijen en 5

Nadere informatie

3.2 Vectoren and matrices

3.2 Vectoren and matrices we c = 6 c 2 = 62966 c 3 = 32447966 c 4 = 72966 c 5 = 2632833 c 6 = 4947966 Sectie 32 VECTOREN AND MATRICES Maar het is a priori helemaal niet zeker dat het stelsel vergelijkingen dat opgelost moet worden,

Nadere informatie

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde op donderdag 13 april 2017, uur.

Universiteit Utrecht Betafaculteit. Examen Discrete Wiskunde op donderdag 13 april 2017, uur. Universiteit Utrecht Betafaculteit Examen Discrete Wiskunde op donderdag 13 april 2017, 14.30-17.30 uur. De opgaven dienen duidelijk uitgewerkt te zijn en netjes ingeleverd te worden. Schrijf op elk ingeleverd

Nadere informatie

Stelsels Vergelijkingen

Stelsels Vergelijkingen Hoofdstuk 5 Stelsels Vergelijkingen Eén van de motiverende toepassingen van de lineaire algebra is het bepalen van oplossingen van stelsels lineaire vergelijkingen. De belangrijkste techniek bestaat uit

Nadere informatie

De huwelijksstelling van Hall

De huwelijksstelling van Hall Thema Discrete wiskunde In de vorige twee afleveringen heb je al kennis kunnen maken met het begrip graaf en hoe grafen worden gebruikt door Google s zoekmachine en door de NS bij het maken van een optimale

Nadere informatie

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast,

en-splitsingen: een aantal alternatieven worden parallel toegepast, of-splitsingen: van een aantal alternatieven wordt er één toegepast, Kansrekening voor Informatiekunde, 25 Les 8 Proces analyse Veel processen laten zich door netwerken beschrijven, waarin knopen acties aangeven en opdrachten langs verbindingen tussen de knopen verwerkt

Nadere informatie

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS Algoritmiek 2016/Dynamisch Programmeren Tiende college algoritmiek 14 april 2016 Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS 1 Algoritmiek 2016/Dynamisch Programmeren Houtzaagmolen

Nadere informatie

Uitwerkingen Sum of Us

Uitwerkingen Sum of Us Instant Insanity Uitwerkingen Sum of Us Opgave A: - Opgave B: Voor elk van de vier kubussen kun je een graaf maken die correspondeert met de desbetreffende kubus. Elk van deze grafen bevat drie lijnen.

Nadere informatie

De Minimax-Stelling en Nash-Evenwichten

De Minimax-Stelling en Nash-Evenwichten De Minima-Stelling en Nash-Evenwichten Sebastiaan A. Terwijn Radboud Universiteit Nijmegen Afdeling Wiskunde 20 september 2010 Dit is een bijlage bij het eerstejaars keuzevak Wiskunde, Politiek, en Economie.

Nadere informatie

Een combinatorische oplossing voor vraag 10 van de LIMO 2010

Een combinatorische oplossing voor vraag 10 van de LIMO 2010 Een combinatorische oplossing voor vraag 10 van de LIMO 2010 Stijn Vermeeren (University of Leeds) 16 juni 2010 Samenvatting Probleem 10 van de Landelijke Interuniversitaire Mathematische Olympiade 2010vraagt

Nadere informatie

We zullen in deze les kijken hoe we netwerken kunnen analyseren, om bijvoorbeeld de volgende vragen te kunnen beantwoorden:

We zullen in deze les kijken hoe we netwerken kunnen analyseren, om bijvoorbeeld de volgende vragen te kunnen beantwoorden: Wiskunde voor kunstmatige intelligentie, 24 Les 5 Proces analyse Veel processen laten zich door netwerken beschrijven, waarin een aantal knopen acties aangeeft en opdrachten langs verbindingen tussen de

Nadere informatie

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j

FLIPIT 5. (a i,j + a j,i )d i d j = d j + 0 = e d. i<j FLIPIT JAAP TOP Een netwerk bestaat uit een eindig aantal punten, waarbij voor elk tweetal ervan gegeven is of er wel of niet een verbinding is tussen deze twee. De punten waarmee een gegeven punt van

Nadere informatie