OptimalisereninNetwerken



Vergelijkbare documenten
Optimaliseren in Netwerken

Netwerkstroming. Algoritmiek

Netwerkstroming. Algoritmiek

F. Optimaliseren in netwerken

TW2020 Optimalisering

De tijd zal het leren. Rede uitgesproken door

1 Vervangingsstrategie auto

TW2020 Optimalisering

Begrenzing van het aantal iteraties in het max-flow algoritme

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

Module 3. Maximale stromen

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Overzicht. Inleiding. Modellering. Duaal probleem. αβ-algoritme. Maximale stroom probleem. Voorbeeld. Transportprobleem 1

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search

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

Tentamen combinatorische optimalisatie Tijd:

TW2020 Optimalisering

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.

Benaderingsalgoritmen

2WO12: Optimalisering in Netwerken

V = {a, b, c, d, e} Computernetwerken: de knopen zijn machines in het netwerk, de kanten zijn communicatiekanalen.

Overzicht. 1. Definities. 2. Basisalgoritme. 3. Label setting methoden. 4. Label correcting methoden. 5. Ondergrenzen. 6.

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

TW2020 Optimalisering

Minimum Opspannende Bomen. Algoritmiek

2WO12: Optimalisering in Netwerken

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Heuristieken en benaderingsalgoritmen. Algoritmiek

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

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

Kortste Paden. Algoritmiek

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

Tiende college algoritmiek. 14 april Gretige algoritmen

TW2020 Optimalisering

Machten, exponenten en logaritmen

l e x e voor alle e E

Getaltheorie I. c = c 1 = 1 c (1)

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra

1 Vlaamse Wiskunde Olympiade : Tweede Ronde.

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

TU/e 2DD50: Wiskunde 2 (1)

Greedy algoritmes. Algoritmiek

TW2020 Optimalisering

1 Vlaamse Wiskunde Olympiade : Eerste Ronde.

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Tiende college algoritmiek. 26 april Gretige algoritmen

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Wiskunde klas 3. Vaardigheden. Inhoudsopgave. 1. Breuken Gelijksoortige termen samennemen Rekenen met machten Rekenen met wortels 4

Discrete Wiskunde 2WC15, Lente Jan Draisma

Getallenleer Inleiding op codeertheorie. Cursus voor de vrije ruimte

Getallensystemen, verzamelingen en relaties

TW2020 Optimalisering

Gödels theorem An Incomplete Guide to Its Use and Abuse, Hoofdstuk 3

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

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

1 Complexiteit. of benadering en snel

2 n 1. OPGAVEN 1 Hoeveel cijfers heeft het grootste bekende Mersenne-priemgetal? Met dit getal vult men 320 krantenpagina s.

Talen & Automaten. Wim Hesselink Piter Dykstra Opleidingsinstituut Informatica en Cognitie 9 mei 2008

Kortste Paden. Algoritmiek

Hoofdstuk 13: Integer Lineair Programmeren

Lineaire Algebra voor ST

Minimum Spanning Tree

III.2 De ordening op R en ongelijkheden

Toepassingen op discrete dynamische systemen

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Hoofdstuk!7!Kortste!paden!

TU/e 2DD50: Wiskunde 2

1.0 Voorkennis. Voorbeeld 1: Los op: 6x + 28 = 30 10x.

Voorbereidende sessie toelatingsexamen

Lineaire programmering

Bijzondere kettingbreuken

Fundamentele Informatica

De tijd zal. Inaugurele rede

Oefententamen in2505-i Algoritmiek

Het oplossen van kwadratische vergelijkingen met de abc-formule

TW2020 Optimalisering

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

Vrije Universiteit Faculteit der Economische Wetenschappen en Bedrijfskunde Afdeling Econometrie

Lineaire algebra I (wiskundigen)

vandaag is Annie twee jaar jonger dan Ben en Cees samen

Basiskennis lineaire algebra

Het benaderen van irrationale getallen door rationale. Vakantiecursus Wiskunde 2012

Oefening 1. Welke van de volgende functies is injectief? (E) f : N N N : (n, m) 7 2m+n. m n. Oefening 2

TW2020 Optimalisering

Zomercursus Wiskunde. Katholieke Universiteit Leuven Groep Wetenschap & Technologie. September 2008


Radboud Universiteit Nijmegen

Zomercursus Wiskunde. Module 4 Limieten en asymptoten van rationale functies (versie 22 augustus 2011)

6.0 Voorkennis AD BC. Kruislings vermenigvuldigen: Voorbeeld: 50 10x ( x 1) Willem-Jan van der Zanden

Analytische Meetkunde

Symmetrische matrices

(Assistenten zijn Sofie Burggraeve, Bart Jacobs, Annelies Jaspers, Nele Lejon, Daan Michiels, Michael Moreels, Berdien Peeters en Pieter Segaert).

Radboud Universiteit Nijmegen

TW2020 Optimalisering

Algorithms for Max-Flow

2WO12: Optimalisering in Netwerken

Onderwerpen. Punten en lijnen, postbodes en handelsreizigers. Theorie. Theorie (2) Graaftheorie. Een mini-inleiding graaftheorie

Transcriptie:

OptimalisereninNetwerken Kees Roos e-mail: C.Roos@tudelft.nl, croos@otct.eu URL: http://www.isa.ewi.tudelft.nl/ roos HOVO cursus Wiskunde: zuurstof voor de wereld (deel I) 18 februari, A.D. 2009 Optimization Group 1/44

Onderwerpen Inleiding Optimaliseren in de geschiedenis Kortste paden Toewijzingsproblemen Maximale stroom probleem Handelsreiziger probleem Facility location probleem Minimaliseren van een veelterm Portret van Máxima Optimization Group 2/44

Navigatiesystemen Optimization Group 3/44

Optimization Group 4/44

Optimaliseren in de geschiedenis 1 Vraag van 3000 jaar geleden: hoeveel land kan worden ingesloten door de huid van een stier? Meer abstracte formulering: gegeven de lengte van een gesloten kromme, vind het maximale door deze kromme ingesloten oppervlak. Optimization Group 5/44

Optimaliseren in de geschiedenis 2 gegeven de lengte van een gesloten kromme, vind het maximale door deze kromme ingesloten oppervlak. Antwoord: het oppervlak is maximaal als de kromme een cirkel is. Aristoteles Karl Weierstrass Hermann Schwarz 384 322 B.C. 1815 1897 1843 1921 Optimization Group 6/44

Optimaliseren in de geschiedenis 4 De natuur optimaliseert ook, bijvoorbeeld bij de voortplanting van het licht: In een niet-homogeen medium plant het licht zich voort, van het ene punt naar het andere punt, langs een weg waarvoor de benodigde tijd minimaal is. Willebrord Snel van Royen Pierre Fermat Christiaan Huygens alias Snellius: 1580 1626 1601 1665 1629 1695 Optimization Group 7/44

Grondleggers van huidige optimaliseringsmethoden George Dantzig Leonid Khachyian Narendra Karmarkar 1914-2005 1952-2005 1957 - Optimization Group 8/44

Definitie van het kortste-pad-probleem s 4 1 5 8 2 6 9 3 7 t 2 3 6 3 3 2 3 4 3 3 3 3 3 5 1 3 1 Een netwerk, of (gerichte) graaf, bestaat uit een (eindige) verzameling V van knopen, en een verzameling A van (gerichte) takken. Een tak is een geordend paar van knopen. Als a = (v, w) A dan heet v de beginknoop en w de eindknoop van tak a. Optimization Group 9/44

Toepassingen Vinden van een kortste reisroute van A naar B (reisplanners, navigatiesystemen). In communicatienetwerken (bijv. internet). Spraakherkenning: het automatisch omzetten van gesproken in geschreven tekst: voed De man voedt het schaap voet In veel toepassingen moeten grote aantallen kortste paden worden uitgerekend waardoor het beschikken over een efficiënt algoritme heel belangrijk is. Het algoritme van Dijkstra is het meest bekende en moderne varianten daarvan zijn de meest gebruikte. Optimization Group 10/44

Definities Zij gegeven een netwerk G = (V, A). Een pad P in het netwerk is een rij van de vorm v 1, e 1, v 2, e 2,... v k, e k, v k+1 waarbij e i = (v i, v i+1 ) A voor i = 1, 2..., k en k 1. Omdat een tak eenduidig bepaald is door zijn begin- en zijn eindknoop stellen we een pad ook wel kortweg voor als een geordend rijtje van knopen: P = ( v 1, v 2,... v k, v k+1 ). De lengte van tak (v, w) noteren we als c vw. We nemen aan dat c vw 0 voor elke tak. De lengte van het pad P is per definitie de som van de lengten van de takken op P: l(p) = (v,w) P c vw. Optimization Group 11/44

Algoritme van Dijkstra Initialisatie: Q := {s}; π s := 0; π v :=, v V \ {s}; while Q is niet leeg: Kies u Q zodat π u π v voor alle v Q; Verken(u) endwhile Algoritme van Dijkstra begin doe voor alle a = (u, v) het volgende: begin als π v > π u + c uv dan π v := π u + c uv ; voeg v toe aan Q end; verwijder u uit Q end Procedure Verken(u). N.B. Gedurende het algoritme stelt π v steeds de lengte voor van een (gevonden) pad van s naar v. Aan het eind is π v gelijk aan de lengte van een kortste pad van s naar v. Dit geldt voor elke knoop v. In het bijzonder dus ook voor knoop t. Optimization Group 12/44

Toepassing van het algoritme van Dijkstra ¾ ½ ½ ¾ ¾ ½ Ø knoop 0 1 2 3 4 5 6 7 8 9 10 11 s 0 0 0 0 0 0 0 0 0 0 0 0 1 3 3 3 3 3 3 3 3 3 3 3 2 6 6 6 6 6 6 6 6 6 3 9 9 9 9 9 9 9 4 2 2 2 2 2 2 2 2 2 2 2 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 6 6 6 6 6 6 7 9 9 9 9 9 9 8 8 8 7 7 7 7 7 7 7 7 9 9 9 9 9 9 9 t 12 10 10 Optimization Group 13/44

Dijkstra met negatieve lengten 1 1 1 1 1 2 3 4 t s 6 11 6 8 10 12 14 5 1 6 1 7 1 8 1 9 De knopen 1,2,3,4 en t worden elk 6 maal verkend! Het aantal iteraties is niet meer O(n). Ook voor het geval dat er negatieve taklengten zijn is er een O(n) algoritme (van Belmann-Ford). Optimization Group 14/44

Van Zwolle naar Roosendaal met Dijkstra s algoritme. Kan het sneller? Optimization Group 15/44

Van Zwolle naar Roosendaal met Dijkstra s algoritme, parallel Optimization Group 16/44

Van Zwolle naar Roosendaal met A -versie van Dijkstra s algoritme Optimization Group 17/44

Van Zwolle naar Roosendaal met A -versie van Dijkstra s algoritme, parallel Optimization Group 18/44

Het maximale stroom probleem 5 a 1 b 3 c 4 5 s 1 1 1 1 t 4 6 d e 4 2 f 4 We beschouwen opnieuw een netwerk G = (V, A). Voor elke tak (v, w) is een positief getal c vw gegeven: dit getal stelt nu de capaciteit van tak (v, w) voor. Gegeven zijn verder weer twee speciale knopen, s en t, en gevraagd wordt om een maximale stroom van s naar t te bepalen. Optimization Group 19/44

Definitie van een stroom op het netwerk s 5 4 a 1 b 3 c 4 1 1 1 1 d 6 e 4 2 f 5 4 t Een stroom x is een verzameling van niet-negatieve getallen x vw zodanig dat in elke knoop ongelijk aan s en t behoud van stroom geldt, en op elke tak de stroomwaarde niet groter is dan de capaciteit. Met andere woorden, x moet voldoen aan de balansvergelijkingen (u,v) A en aan de capaciteitsbeperkingen x uv = (v,w) A x vw, v V \ {s, t} 0 x vw c vw, (v, w) A. De waarde van de stroom x is per definitie gelijk aan waarde(x) = (s,v) A x sv (v,s) A x vs. Optimization Group 20/44

Het vinden van een stroom s 5 4 a 1 b 3 c 4 1 1 1 1 6 d e 4 2 f We beginnen met de zogenaamde nulstroom: x vw = 0, (v, w) A. De waarde is 0. Stromen met een grotere waarde zijn eenvoudig te vinden: neem een willekeurig pad van s naar t in het netwerk, en stuur daarover zoveel mogelijk stroom. Bijvoorbeeld, over het pad (s, a, f, t) kan een stroom ter waarde van 4 worden verzonden. Vervolgens kan over het pad (s, d, e, b, c, t) een extra stroom ter waarde van 3 worden verzonden. Samen leveren deze stromen een stroom ter waarde van 7 op: 5 4 t s 4 5 3 4 a 0 1 b 3 3 c 3 4 0 1 0 1 0 1 0 1 4 6 d 3 4 e 0 2 f 3 5 4 4 t Optimization Group 21/44

¼ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ Ø ½ ½ ½ ¾ Het algoritme van Ford-Fulkerson (1956) Ford en Fulkerson vonden een systematische manier om een zogenaamd doorbraakpad te vinden waarover eventueel extra stroom kan worden gestuurd. We gebruiken daarvoor het zogenaamde hulpnetwerk G x van G behorend bij een gegeven stroom x. G x heeft dezelfde knopen als G. In G x nemen we alleen die takken (v, w) A op waarover extra stroom kan worden gestuurd en de inverse takken van de stroomvoerende takken in G; de capaciteit van deze takken in G x is gelijk aan de restcapaciteit in G. Met andere woorden, als we de verzameling van de takken in G x A x noemen, dan geldt A x = {(v, w) A : x vw < c vw } {(w, v) : (v, w) A, x vw > 0}. Als x vw < c vw dan is de restcapaciteit van deze tak in A x gelijk aan c vw x vw, en als x vw > 0 dan is restcapaciteit van tak (w, v) in A x gelijk aan x vw. Hieronder zijn de laatst gevonden stroom en het bijbehorende hulpnetwerk afgebeeld. ¼ ¾ Ø ½ ½ ½ ¾ Optimization Group 22/44 ½ ½ ½ ¾

½ ½ ½ ½ ½ ¼ ½ ½ ½ ¾ Optimization Group 23/44 Het algoritme van Ford-Fulkerson (1956) Ø ½ ½ ¾ ½ ½ ½ ¾ ¼ ½ ¼ ½ In het hulpnetwerk blijkt via het dik getekende pad Ø een doorbraak mogelijk van ¼ ½ s ½ ½ naar t. Bovendien zien we dat over dit pad een extra stroom ter waarde van 1 kan worden gestuurd. Voegen we deze stroom toe aan de oude stroom dan verkrijgen we de stroom in de rechter figuur, met waarde 7 + 1 = 8. ¼ ¾ ½ ½ ½ ¾ Om na te gaan of verder verbetering van de stroomwaarde mogelijk is construeren we het hulpnetwerk voor de nieuwe stroom. Ø ½ ¾ ½

½ ½ ½ ½ ½ ½ Ø Het algoritme van Ford-Fulkerson (1956) ¾ ½ ½ ¾ Op het eerste gezicht is er nu geen doorbraak mogelijk. Om dit systematisch vast te stellen labelen we alle knopen, te beginnen met s, die vanuit s bereikbaar zijn met een. We kunnen dit doen met een aangepaste (vereenvoudigde) versie van het Dijkstra algoritme: In het hulpnetwerk zijn alle vanuit s bereikbare knopen gelabeld, terwijl de ongelabelde knopen niet bereikbaar zijn vanuit s. Het is duidelijk dat er geen doorbraak meer mogelijk is. We zullen nu bewijzen dat hieruit volgt dat de gevonden stroom maximaal is. Optimization Group 24/44

s-t sneden We definiëren de knoopverzameling S: Ø ÎÒË Æ Ëµ S = {v V : v is gelabeld}. Ë Omdat geen doorbraak mogelijk is geldt s S, t / S. De verzameling van de takken die hun beginknoop in S hebben en hun eindknoop buiten S, noteren we als δ + (S). Dus δ + (S) := {(v, w) A : v S, w / S}. Als we de takken in δ + (S) uit A verwijderen dan is er geen pad meer van s naar t. We noemen δ + (S) daarom een s-t snede, en we definiëren de capaciteit c(δ + (S)) van deze snede als volgt: c(δ + (S)) := (v,w) δ + (S) c vw = {c vw : v S, w / S}. Optimization Group 25/44

½ ½ ½ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ Max-flow min-cut stelling Ø In het ½ ½ onderhavige geval bestaat δ + (S) uit de takken (b, c), (e, c) en (f, t), en er geldt c(δ + (S)) = 3 + 1 + 4 = 8. Dit is precies de waarde van de gevonden stroom x: ¼ ¾ ½ ¾ ½ ½ ½ ¾ Ø waarde(x) = c(δ + (S)). Theorem 1 De waarde van een maximale stroom is gelijk aan min { c(δ + (U)) : U V, s U, t / U }. We concluderen dat de gevonden stroom x maximaal is; de snede gevormd door de takken (b, c), (e, c) en (f, t) vormt hiervan het bewijs! Optimization Group 26/44

Toewijzingsproblemen We behandelen ten slotte zogenaamde toewijzingsprobleem. Een speciaal geval is het zogenaamde huwelijksprobleem; een voorbeeld is weergegeven in het netwerk-model links hieronder. ¾ ½ Ñ Ñ Ñ¾ ѽ In dit netwerk stellen de knopen links jongens en de knopen rechts meisjes voor. Een tak (j, m), met j J en m M, geeft aan dat jongen j en meisje m met elkaar bevriend zijn. De vraag waar het in het huwelijksprobleem (eng. matching problem) om gaat is de volgende: wat is het maximale aantal jongens dat met een vriendin kan trouwen? Er zijn veel andere toepassingen. Bijvoorbeeld als een aantal verschillende taken moet worden uitgevoerd op een aantal verschillende machines, terwijl niet elke machine elke taak kan uitvoeren. Een mogelijke vraag is dan hoeveel taken tegelijkertijd kunnen worden uitgevoerd. Door J te vervangen door de taken en M door de machines, en door middel van takken aan te geven of een machine geschikt is voor een taak kunnen we dit probleem modelleren als een toewijzingsprobleem.  ŠOptimization Group 27/44

½½ ½ ½ ½ ½ Ñ Herleiding tot maximale-stroom-probleem Elk toewijzingsprobleem is eenvoudig te herleiden tot een maximale-stroom-probleem. We illustreren dit aan de hand van bovenstaand huwelijksprobleem. Daartoe voegen we twee knopen s en t toe aan het netwerk en voor elke jongen j J een tak (s, j), en voor elk meisje m M een tak (m, t). Geef deze takken capaciteit 1, en alle takken in het oorspronkelijke netwerk ook capaciteit 1. Dan is het duidelijk dat het maximale aantal huwelijken gelijk is aan de maximale waarde van een stroom van s naar t in het nieuwe netwerk. Ø Ñ¾ ѽ ½ ½ ½ ¾ ½ ½ ½½½ Optimization Group 28/44 Ñ

½ ½ ¼ ½ ½ ½ ¼ ½ Oplossing van het huwelijksprobleem Het is eenvoudig om een stroom met waarde 3 te vinden. De stroomwaarden zijn 1 op de blauwe takken en 0 op de overige takken. ½ ½ ½ ½½ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ ½ ½½ ½½ ½ ¼ ½ Ø ¼ ½ ¾ ½ Ñ Ñ Ñ¾ ѽ Om na te gaan of deze stroom optimaal is vormen we het bijbehorende hulpnetwerk. ½ ½ Optimization Group 29/44

½ ½ ¼ ½ ½ ½ ½ ½ ¼ ½ Ñ Ñ Ø Ñ¾ Oplossing van het huwelijksprobleem ½ ½½ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ ¼ ½ Ø ¾ ¼ ½ Ñ Ñ Ñ¾ ѽ ¾ ѽ Omdat alle capaciteiten 1 zijn en alle stroomwaarden 0 of 1, hebben de restcapaciteiten op de takken allemaal de waarde 1. Deze zijn daarom niet ingetekend in deze figuur. ½ ½ ½ ½ ½ ½½ ½½ ½ Door op de standaard manier te labelen vanuit s blijkt dat er geen doorbraak naar t mogelijk is. De gevonden stroom is dus optimaal. Bijgevolg is het maximale aantal huwelijken gelijk aan 3. Optimization Group 30/44

Ñ Ñ Ø Ñ¾ Ñ Ñ Ñ¾ Dualiteitsstelling ¾ Let op ѽ de nu gelabelde knopen. Dit zijn s, j 1, j 3, j 5 en m 3. Elke tak in het oorspronkelijke netwerk is incident met een niet-gelabelde jongen of met een gelabeld meisje. Å Â ½ ¾ ½ ѽ Definition 1 Een verzameling knopen C van knopen in een netwerk heet een knoopoverdekking als elke tak in het netwerk incident is met een knoop uit C. We hebben de volgende dualiteitsstelling voor het huwelijksprobleem. Theorem 2 (Stelling van Kőnig-Egerváry, 1931) Het maximale aantal huwelijken in een huwelijksprobleem is gelijk aan het minimale aantal knopen in een knoopoverdekking. Optimization Group 31/44

Het handelsreizigerprobleem Optimization Group 32/44

Mijlpalen in de geschiedenis van het handelsreizigerprobleem Jaar Team Aantal steden 1954 G. Dantzig, R. Fulkerson, and S. Johnson 49 1971 M. Held and R.M. Karp 64 1975 P.M. Camerini, L. Fratta, and F. Maffioli 100 1977 M. Grötschel 120 1980 H. Crowder and M.W. Padberg 318 1987 M. Padberg and G. Rinaldi 532 1987 M. Grötschel and O. Holland 666 1987 M. Padberg and G. Rinaldi 2392 1994 D. Applegate, R. Bixby, V. Chvátal, and W. Cook 7397 1998 D. Applegate, R. Bixby, V. Chvátal, and W. Cook 13509 2001 D. Applegate, R. Bixby, V. Chvátal, and W. Cook 15112 Het record stond in 2001 op een optimale route langs 15.112 steden in Duitsland. De lengte van deze route is 1.573.084 km. De berekening vergde meer dan 18 CPU jaren. Voor de berekening werd een netwerk met 110 werkstations gebruikt, waardoor de oplossing binnen een paar maanden werd gevonden. Sinds 2004 staat het record op naam van een opgeloste TSP met 24.978 steden (alle plaatsen in Zweden). Optimization Group 33/44

Voorbeeld van een facility location problem centrum 1 centrum 2 3 4 3 4 4 3 6 4 winkel 1 winkel 2 winkel 3 Er zijn 3 oplossingen: C1 C2 C1 C2 3 4 3 4 3 4 6 4 3 4 3 3 4 W1 W2 W3 W1 W2 W3 W1 W2 W3 Alleen C1 open Alleen C2 open C1 en C2 open Kosten: 16 Kosten: 15 Kosten: 17 Optimization Group 34/44

Een echt facility locatie probleem 12 centra: ; 60 winkels: oplossing met 5 centra Optimization Group 35/44

Moeilijkheidsgraad van het facility locatie probleem Het moeilijke deel van het probleem is om te bepalen welke centra moeten worden geopend om de laagste totale kosten te krijgen. Als er meerdere centra zijn, zeg k, dan kan dit op 2 k 1 manieren. aantal centra aantal mogelijkheden rekentijd 10 1023 0, 34 nsec. 20 1048575 0, 35 msec 30 1073741823 0, 36 sec 40 1099511627775 6, 1 min 50 1125899906842623 4, 3 dagen 60 1152921504606846975 12 jaar 70 1180591620717411303423 12478 jaar Dit verschijnsel heet combinatorische explosie: als het aantal centra toeneemt, neemt de rekentijd exponentieel toe. Optimization Group 36/44

Heuristieken met kwaliteitsgarantie Stel dat in een optimale oplossing de totale kosten K zijn. Een (niet-optimale) oplossing, waarvoor de kosten K zijn, heet een α-benaderende oplossing als K K α. Een efficënt algoritme dat voor elk facility location probleem een α-benaderende oplossing oplevert, met α vast, heet een α-benaderend algoritme. 1990: er bestaat geen 1-benaderend (dit is een exact!) algoritme. 1998: er bestaat geen 1, 463-benaderend algoritme (tenzij... ). Optimization Group 37/44

Approximatie resultaten α Auteur Methode 1 + log k Hochbaum (1982) Greedy 3,16 Shmoys et al. (1997) LP rounding 2,408 Guha and Kuller (1998) LP rounding + Greedy 1,736 Chudak (1998) LP rounding 1,728 Charika and Guha (1999) LP + Primal-dual + Greedy 1,610 Jain et al. (2001) Greedy algorithm 1,582 Svridenko (2002) LP rounding 1,517 Mahdian et al. (2002) Revised Greedy algorithm Harde ondergrens voor α: 1,463. Optimization Group 38/44

¼ ¾ ¼ ¾ ¼ ¾ Ü Ü Ü ¼ Ü Ü Zes mogelijkheden voor de grafiek van een kwadratische veelterm. Ü Tekenverloop van kwadratische veeltermen Kwadratische veelterm-vergelijking: abc-formule: ax 2 + bx + c = 0, a 0. x = b 2a ± b 2 4ac 4a 2. Optimization Group 39/44 ¼

¼ ¾ ¼ ¾ ¼ ¾ Ü Ü Ü ¼ Tekenvastheid (d.i. niet-negativiteit voor alle x) Er geldt dan en slechts dan als ax 2 + bx + c 0, ¼ Dit geldt dan en slechts dan als de matrix Ü Ü Ü voor alle x a 0, c 0, b 2 4ac 0. X = c b 2 b 2 a positief semidefiniet is, ofwel als de eigenwaarden van de symmetrische matrix X niet-negatief zijn (notatie: X 0). Dit resultaat kan worden gegeneraliseerd naar willekeurige veeltermen van even graad. Optimization Group 40/44

Minimum bepalen van een veelterm Beschouw een willekeurige veelterm van even graad: p(x) = p 0 + p 1 x + p 2 x 2 + p 3 x 3 +... + p 2m x 2m. Er geldt p(x) 0 voor alle x dan en slechts dan als er een positief semidefiniete matrix X bestaat waarvan de overeenkomstige dwarsdiagonaalsommen gelijk zijn aan de coëfficienten van p(x). We zeggen daarom: tekenvastheid van een veelterm is semidefiniet representeerbaar. Stel nu dat we de minimale waarde z van p(x) willen weten: z = min {p(x) : x R}. Dan is z het grootste getal waarvoor de veelterm p(x) z tekenvast is. Dus hebben we z = max {z : p(x) z is tekenvast}. De voorwaarde p(x) z is tekenvast is semidefiniet representeerbaar, en dus is dit probleem efficiënt oplosbaar. Optimization Group 41/44

Voorbeeld Stel dat we de kleinste waarde z willen vinden van de veelterm p(x) = 48 28x 56x 2 + 35x 3 + 7x 4 7x 5 + x 6. Dan zoeken we de grootste waarde voor z zodanig dat p(x) z = (48 z) 28x 56x 2 + 35x 3 + 7x 4 7x 5 + x 6 0, x R. Dit komt neer op het oplossen van het volgende semidefiniete optimaliseringsprobleem max z : x 11 x 12 x 13 x 14 x 12 x 22 x 23 x 24 x 13 x 23 x 33 x 34 0 x 14 x 24 x 34 x 44 z + x 11 = 48 2x 12 = 28 2x 13 + x 22 = 56 2x 14 + 2x 23 = 35 2x 24 + x 33 = 7 2x 34 = 7 x 44 = 1. Optimization Group 42/44

Ô Üµ Oplossing van bovenstaand probleem (met behulp van SeDuMi) ¼ ½¼¼ ¼ Grafiek van p(x) = 48 28x 56x 2 + 35x 3 + 7x 4 7x 5 + x 6. z = 58,0214, X = ¾ ¾¼ ¼ ¼ ¼ ¾¼ Ü 48,0000 z 14,0000 35,9129 7,9709 ¾ 14, 0000 15, 8257 9, 5291 3, 4074 35, 9129 9, 5291 13, 8148 3, 5000 7, 9709 3, 4074 3, 5000 1, 0000. Optimization Group 43/44

Een portret van prinses Ma xima Thanks to Robert Bosch Mathematical Department Oberlin College, USA. Optimization Group 44/44