Tentamen Netwerkoptimalisering (IN3530) Datum: Docent: 3 april 2006, 9.00 – 12.00. Dr. J.B.M. Melissen. Veel succes! Opgave 1. (4 pt) Het Dantzig-Wolfe decompositie-algoritme kan worden gebruikt voor het vinden van: a. een minimale snede in een max-flow netwerk. b. een optimale oplossing van een meer-goederenstromingsprobleem (multicommodity flow). c. een optimale verdeling van een netwerk in deelnetwerken. d. lekstromen in een min-cost-flow probleem. Opgave 2. (4 pt) Een k-commodity max-flow probleem kan worden opgelost a. door het oplossen van k max-flow problemen voor de afzonderlijke commodities, gevolgd door een (klein) LP probleem om de capaciteiten b. maar niet met een polynomiaal algoritme c. door het oplossen van één LP probleem d. Met behulp van het algoritme van Karzanov Opgave 3. (4 pt) Een zuiver netwerk minimale kostenstromingsprobleem waarin de totale aanvoer groter is dan de totale afvoer a. kan worden opgelost als een gegeneraliseerd netwerkprobleem. b. heeft geen toelaatbare oplossing c. kan worden opgelost door het invoeren van een dummyknoop die verbonden is met alle doorvoerknopen door takken met kosten 0. d. kan worden opgelost door het invoeren van een dummyknoop die verbonden is met alle knopen door takken met kosten M (heel groot). Opgave 4. (4 pt.) De in- en uitvoergegevens en de capaciteitsgrenzen van de volgende problemen zijn geheeltallig. Voor welke problemen is er altijd een geheeltallige optimale oplossing (meer goede antwoorden mogelijk) a. een gegeneraliseerd min-cost netwerkstromingsprobleem. b. een transportprobleem. c. een meer-goederenstromingsprobleem (multicommodity flow) d. een min-cost-flow probleem. Opgave 5. (4 pt.) Geef van de volgende beweringen aan of ze waar of onwaar zijn voor het FordFulkerson algoritme voor het oplossen van een max-flow probleem a. Het aantal iteraties is altijd eindig. b. Het aantal iteraties is onafhankelijk van de grootte van de capaciteitsgrenzen. c. In elke iteratie is de route in het residuele netwerk vrij te kiezen. Opgave 6. Bekijk het volgende transportprobleem gedefinieerd door de volgende tabel 1 2 3 4 3 6 4 2 6 8 5 5 10 6 10 10 Knopen 1 en 2 leveren aan knopen 3, 4 en 5. De geleverde en gevraagde hoeveelheden en de transportkosten per eenheid zijn in de tabel te vinden. a. (10 pt.) In de volgende tabel is een transportstroom te vinden die aan alle voorwaarden voldoet: 1 2 3 0 6 6 4 4 4 8 5 6 0 6 10 10 Laat met behulp van het primale netwerkalgoritme zien dat dit een oplossing met minimale kosten is. b. (10 pt) De aanvoer in knoop 1 wordt verhoogd van 10 naar 12 en de afname van knoop 3 wordt verhoogd van 6 naar 8. Vind, uitgaande van de oplossing uit a. met het netwerkalgoritme een optimale oplossing voor dit gewijzigde probleem en toon aan de de totale kosten, vergeleken met de situatie in a. zijn gedaald. Opgave 7. Gegeven is het volgende LP probleem: minimaliseer zodanig dat 3x1 + 3x2 + x4 + 9x5 + x6 x1 + x3 = 3 x2 + x3 – x5 = –3 x1 - 2x2 + 2x5 – x6 = 16. x1, x2, x3, x4, x5, x6 0. a. (5 pt.) Laat zien dat dit LP probleem equivalent is met een NP probleem b. (5 pt.) Teken het bijbehorende netwerk. Opgave 8. a. (3 pt.) Leg uit hoe je een primaal niet-toelaatbare startoplossing voor het primale NP algoritme kun wijzigen in een primaal toelaatbare startoplossing. b. (4 pt.) Leg uit wat het verschil is tussen het primale en het duale NP algoritme. c. (3 pt.) Wat kunnen de voordelen zijn van het herschrijven van een LP probleem als NP probleem? Opgave 9. Een fabrikant van PC’s heeft de productie van DVD rewriters uitbesteed aan drie leveranciers. In de onderstaande tabel is te zien welke prijzen de verschillende leveranciers per lading van 1000 stuks rekenen, en wat de vrachtkosten zijn voor verzending naar elk van de twee distributiecentra (DC1 en DC2) van het bedrijf. Leverancier 1 2 3 prijs/1000 stuks € 22.500 € 22.700 € 22.300 kosten per lading € 300+ 0,40/km € 200 + 0,50/km € 500 + 0,20/km Afstand tot DC1 1600 km 500 km 2000 km Afstand tot DC2 400 km 600 km 1000 km De twee fabrieken van het bedrijf worden vanuit de DC’s bevoorraad. De transportkosten per lading van 1000 stuks en de maandelijkse behoefte van de fabrieken staan in de onderstaande tabel. Fabriek 1 Fabriek 2 DC1 € 200 € 700 DC2 € 400 € 500 maandelijkse vraag 10 6 De leveranciers kunnen elk maximaal 10 ladingen per maand afleveren, maar door transportrestricties kunnen ze maximaal 6 ladingen per maand aan elk van de DC’s leveren. Elke DC kan ook maximaal 6 ladingen per maand aan elk van de fabrieken afleveren. De leiding van de fabriek wil de bestellingen bij de leveranciers en het transport tussen leveranciers, DC’s en fabrieken zodanig afstemmen dat de totale kosten voor het bedrijf minimaal zijn. a. (6 pt.) Formuleer dit probleem als een minimum cost flow probleem en teken het bijbehorende netwerk. b. (3 pt.) Door een ingezakte brug kan fabriek 1 niet meer worden bereikt vanuit DC2. Wat betekent dit voor de oplossing van het probleem? c. (1 pt.) Door wateroverlast in een magazijn kan DC1 tijdelijk niet meer dan 5 ladingen per maand uitleveren. Hoe zou je dit in het netwerk kunnen modelleren? Opgave 10. Tussen twee knopen in een netwerk zijn twee mogelijke routes. De reistijd langs route 1 is 1 + 2x1, waarbij x1 de grootte van de stroom over die route is, en de reistijd langs route 2 is 10x2/(x2+1), waarbij x2 de grootte van de stroom over route 2 is. De stromen hoeven niet geheeltallig te zijn. De totale stroom door de twee takken is a. a. (3 pt) Bereken de grootte van de stroom langs de twee routes in gebruikersevenwicht (elke gebruiker kiest dan de kortste route). b. (3 pt) Bereken de grootte van de stromingen langs de twee routes in systeemoptimum (de totale reistijd is dan minimaal). c. (2 pt) Is er een waarde a van de totale stroming waarvoor de twee routes in gebruikersevenwicht gelijk belast worden? d. (2 pt) Is er een waarde van a waarvoor gebruikersevenwicht en systeemoptimum dezelfde oplossing geven? Opgave 11. a. (8 pt) Maak een netwerk waarin tien takken voorkomen met capaciteitsgrenzen resp. 1, 2, 3, …, 10. Kies twee knopen die niet door middel van één tak zijn verbonden. Bepaal de maximale stroom tussen deze twee knopen met het algoritme van Karzanov. b. (2 pt) Geef aan hoe je met het algoritme ook een minimale snede voor dit probleem kunt vinden. Spiekbriefje: Een iteratie uit het algoritme van Karzanov bestaat telkens uit de volgende drie stappen: 1. Maak een gelaagd netwerk. Dat zijn een aantal paden die van beginpunt naar eindpunt lopen en waarover de stroom nog kan worden aangevuld: Eerst verdeel je het netwerk in lagen. Laag 0 bevat de beginknoop. Laag k bevat de knopen die via k takken van het residuele netwerk (takken waarover nog stroom kan lopen) verbonden zijn met de beginknoop. Uit het residuele netwerk worden alle takken weggelaten die niet naar een volgende laag lopen, en ten slotte worden alle takken en knopen weggelaten die niet op een pad van begin- naar eindpunt liggen. 2. “Advance”: Loop de paden van begin- naar eindpunt af en laat er per tak de maximale hoeveelheid stroom door lopen. Alles wat er in een knoop komt mag door, tenzij het beperkt wordt door de capaciteit van een van de uitgaande takken. Er is soms een vrijheid hoe je dit over de uitgaande takken verdeelt. Er ontstaat een “preflow”, in de knopen, maar hoeft nog geen balans te zijn. Er kan meer ingaan dan er uitkomt. 3. “Balance”. Om van deze preflow een echte stroom te maken, worden vanuit het eindpunt naar het beginpunt alle knopen gebalanceerd: de stroom op de ingaande tak wordt zodanig gereduceerd dat er balans in de knoop ontstaat.