TW2020 Optimalisering

Vergelijkbare documenten
TW2020 Optimalisering

Hoofdstuk 8: Algoritmen en Complexiteit

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

1 Complexiteit. of benadering en snel

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Samenvatting college 1-12

Hoofdstuk 13: Integer Lineair Programmeren

TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

Tentamen combinatorische optimalisatie Tijd:

Netwerkstroming. Algoritmiek

Netwerkstroming. Algoritmiek

TW2020 Optimalisering

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

TW2020 Optimalisering

Begrenzing van het aantal iteraties in het max-flow algoritme

TW2020 Optimalisering

TW2020 Optimalisering

(On)Doenlijke problemen

TW2020 Optimalisering

2WO12: Optimalisering in Netwerken

Elfde college complexiteit. 23 april NP-volledigheid III

NP-Volledigheid. Wil zo snel mogelijke algoritmes om problemen op te lossen. De looptijd is polynomiaal: O n k - dat is heel erg mooi

Benaderingsalgoritmen

2WO12: Optimalisering in Netwerken

Transshipment problemen Simplex methode en netwerk optimalisatie algoritmes. Luuk van de Sande Begeleider: Judith Keijsper 20 januari 2013

TW2020 Optimalisering

Fundamentele Informatica

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

NP-volledigheid. Algoritmiek

Optimaliseren in Netwerken

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Achtste college complexiteit. 2 april Polynoomevaluatie Matrixvermenigvuldiging Euler- en Hamiltonkringen

l e x e voor alle e E

Logische Complexiteit Hoorcollege 12

Optimalisering/Besliskunde 1. College 1 2 september, 2015

Negende college complexiteit. 9 april NP-volledigheid I: introductie

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Optimalisering/Besliskunde 1. College 1 6 september, 2012

Heuristieken en benaderingsalgoritmen. Algoritmiek

Hoofdstuk 17: Approximation Algorithms

Tentamen IN3105. Complexiteitstheorie. 16 april 2012, uur

Basiskennis lineaire algebra

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46

Branch-and-Bound en Cutting Planes

Vierde college algoritmiek. 23/24 februari Complexiteit en Brute Force

1 Rekenen in eindige precisie

Puzzels en wiskunde. Inleiding. Algoritme. Sudoku. 22 Puzzels en wiskunde

Optimalisering en Complexiteit, College 10. Begrensde variabelen. Han Hoogeveen, Utrecht University

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

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Inhoudsopgave. 1 COMPLEXITEITSTHEORIE Inleiding De klassen P en N P Opgaven... 16

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

2WO12: Optimalisering in Netwerken

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Local search. Han Hoogeveen CGN A februari, 2009

Examen Datastructuren en Algoritmen II

Tweede college complexiteit. 12 februari Wiskundige achtergrond

Local search. Han Hoogeveen. 21 november, 2011

Opgaven Analyse van Algoritmen 10 mei 2019, Datastructuren, Werkgroep.

1 Vervangingsstrategie auto

l e x e voor alle e E

OptimalisereninNetwerken

Radboud Universiteit Nijmegen

Credit cards, computationele complexiteit en consistentie uitspraken

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

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

Universiteit Utrecht Departement Informatica. Examen Optimalisering op dinsdag 29 januari 2019, uur.

Tie breaking in de simplex methode

Twaalfde college complexiteit. 7 mei NP-volledigheid IV Cook-Levin Savitch 1

Op zoek naar de Hamilton cykel. Mike Hoffmeister

Het Chinese Postbode Probleem. Marene Dimmendaal s

Inleiding Programmeren 2

Inleiding Programmeren 2

Optimalisering en Complexiteit, College 2. Han Hoogeveen, Utrecht University

Optimalisering. Hoorcollege 4. Leo van Iersel. Technische Universiteit Delft. 28 september 2016

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort

Optimalisering. Hoorcollege 4. Leo van Iersel. Technische Universiteit Delft. 23 september 2015

Optimalisering en Complexiteit, College 1. Han Hoogeveen, Utrecht University

Discrete Wiskunde 2WC15, Lente Jan Draisma

Tentamen IN3105 Complexiteitstheorie

MMI. The Digital World 4. Peter van Kranenburg

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

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument

Optimalisering. Hoorcollege 4. Leo van Iersel. Technische Universiteit Delft. 28 september 2016

12 september 2012 Complexiteit. Analyse van algoritmen (doelen) Empirische analyse : Voorbeeld Gevolgen

Algoritmes en Priemgetallen. Hoe maak je een sleutelpaar voor RSA?

Tie breaking in de simplex methode

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

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

3. Structuren in de taal

Oefententamen in2505-i Algoritmiek

2WO12: Optimalisering in Netwerken

Transcriptie:

TW2020 Optimalisering Hoorcollege 7 Leo van Iersel Technische Universiteit Delft 21 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 1 / 20

Deze week: algoritmes en complexiteit Hoe meten we de performance van algoritmes? Waar ligt de grens tussen een goed en een slecht algoritme? Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 2 / 20

Problemen Een (algoritmisch) probleem bestaat uit karakterisaties van toegelaten invoer (input) en gewenste uitvoer (output) als functie van de invoer. Een instantie ontstaat als één toegelaten invoer gekozen wordt. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 3 / 20

Problemen Een (algoritmisch) probleem bestaat uit karakterisaties van toegelaten invoer (input) en gewenste uitvoer (output) als functie van de invoer. Een instantie ontstaat als één toegelaten invoer gekozen wordt. Voorbeeld Probleem: Travelling Salesman Problem (TSP) Gegeven: een volledige graaf G = (V, E) en een kostenfunctie c : E R +. Gevraagd: een circuit in G dat elk punt precies één keer bevat en minimale kosten heeft. TSP is een optimaliseringsprobleem. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 3 / 20

Een probleem is een beslissingsprobleem als het vraagt om een ja- of nee-antwoord. Elk optimaliseringsprobleem heeft een bijbehorend beslissingsprobleem. Voorbeeld Probleem: TSP-beslis Gegeven: een volledige graaf G = (V, E), een kostenfunctie c : E R + en een bovengrens B R. Gevraagd: is er een circuit in G dat elk punt precies één keer bevat en waarvan de kosten maximaal B zijn? Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 4 / 20

Definitie Een algoritme (algorithm) voor een probleem is een reeks van instructies waarmee elke mogelijke instantie van het probleem opgelost kan worden in eindige tijd. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 5 / 20

Definitie Een algoritme (algorithm) voor een probleem is een reeks van instructies waarmee elke mogelijke instantie van het probleem opgelost kan worden in eindige tijd. Definitie De (tijds)complexiteit (time complexity) van een algoritme A is de functie f : N N met f (n) het aantal elementaire stappen dat A in het ergste geval ( worst-case ) nodig heeft om een instantie met invoerlengte n op te lossen. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 5 / 20

Definitie Een algoritme (algorithm) voor een probleem is een reeks van instructies waarmee elke mogelijke instantie van het probleem opgelost kan worden in eindige tijd. Definitie De (tijds)complexiteit (time complexity) van een algoritme A is de functie f : N N met f (n) het aantal elementaire stappen dat A in het ergste geval ( worst-case ) nodig heeft om een instantie met invoerlengte n op te lossen. de invoerlengte van een instantie is het aantal bits dat nodig is om de invoer van de instantie te representeren; elementaire stappen zijn o.a. rekenkundige bewerkingen van getallen (optellen, vermenigvuldigen, enz.), vergelijken van getallen, lezen en schrijven van een geheugenplaats, volgen van pointer; de tijdscomplexiteit van een algoritme wordt ook vaak de looptijd (running time) genoemd. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 5 / 20

Om complexiteit (of andere functies) af te schatten wordt vaak de volgende big-o notatie gebruikt: Definitie Laten f en g twee functies van N naar R + zijn, dan is f (n) = O(g(n)) als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 6 / 20

Om complexiteit (of andere functies) af te schatten wordt vaak de volgende big-o notatie gebruikt: Definitie Laten f en g twee functies van N naar R + zijn, dan is f (n) = O(g(n)) als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 f (n) = Ω(g(n)) als als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 6 / 20

Om complexiteit (of andere functies) af te schatten wordt vaak de volgende big-o notatie gebruikt: Definitie Laten f en g twee functies van N naar R + zijn, dan is f (n) = O(g(n)) als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 f (n) = Ω(g(n)) als als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 f (n) = Θ(g(n)) als f (n) = O(g(n)) en f (n) = Ω(g(n)) Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 6 / 20

Om complexiteit (of andere functies) af te schatten wordt vaak de volgende big-o notatie gebruikt: Definitie Laten f en g twee functies van N naar R + zijn, dan is f (n) = O(g(n)) als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 f (n) = Ω(g(n)) als als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 f (n) = Θ(g(n)) als f (n) = O(g(n)) en f (n) = Ω(g(n)) Definitie Een algoritme is polynomiaal als het tijdscomplexiteit O(p(n)) heeft met p(n) een polynoom. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 6 / 20

Om complexiteit (of andere functies) af te schatten wordt vaak de volgende big-o notatie gebruikt: Definitie Laten f en g twee functies van N naar R + zijn, dan is f (n) = O(g(n)) als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 f (n) = Ω(g(n)) als als er c > 0 en n 0 N bestaan zodanig dat f (n) c g(n) voor alle n n 0 f (n) = Θ(g(n)) als f (n) = O(g(n)) en f (n) = Ω(g(n)) Definitie Een algoritme is polynomiaal als het tijdscomplexiteit O(p(n)) heeft met p(n) een polynoom. Definitie Een algoritme is exponentieel als het tijdscomplexiteit Ω(f (n)) heeft met f (n) een exponentiële functie (f (n) = a n voor een constante a > 1). Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 6 / 20

Vraag (1) Wat is de invoerlengte als de invoer een getal is? Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 7 / 20

Vraag (1) Wat is de invoerlengte als de invoer een getal is? Vraag (2) Wat is de invoerlengte van een LP? Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 7 / 20

Wat is de invoerlengte als de invoer een graaf is? Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 8 / 20

Wat is de invoerlengte als de invoer een graaf is? Dit hangt af van de representatie van de graaf. 2 1 2 1 3 4 5 3 4 Adjacency matrix: 0 1 2 3 4 1 0 1 0 1 2 1 0 1 1 3 0 1 0 1 4 1 1 1 0 Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 8 / 20

Wat is de invoerlengte als de invoer een graaf is? Dit hangt af van de representatie van de graaf. 2 1 1 2 4 3 4 5 Adjacency matrix: 0 1 2 3 4 1 0 1 0 1 2 1 0 1 1 3 0 1 0 1 4 1 1 1 0 3 Incidence matrix: 0 1 2 3 4 5 1 1 0 0 1 0 2 1 1 1 0 0 3 0 1 0 0 1 4 0 0 1 1 1 Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 8 / 20

Wat is de invoerlengte als de invoer een graaf is? Dit hangt af van de representatie van de graaf. 2 1 1 2 4 3 4 5 Adjacency matrix: 0 1 2 3 4 1 0 1 0 1 2 1 0 1 1 3 0 1 0 1 4 1 1 1 0 3 Incidence matrix: 0 1 2 3 4 5 1 1 0 0 1 0 2 1 1 1 0 0 3 0 1 0 0 1 4 0 0 1 1 1 Adjacency lists: A 1 = [2, 4] A 3 = [2, 4] A 2 = [1, 3, 4] A 4 = [1, 2, 3] Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 8 / 20

Definitie De klasse P is de klasse van alle (beslissings)problemen waarvoor een polynomiaal algoritme bestaat. Problemen in P worden makkelijke problemen genoemd. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 9 / 20

Definitie De klasse P is de klasse van alle (beslissings)problemen waarvoor een polynomiaal algoritme bestaat. Problemen in P worden makkelijke problemen genoemd. Definitie De klasse N P is de klasse van alle beslissingsproblemen waarvoor een ja-antwoord in polynomiale-tijd geverifiëerd kan worden, m.b.v. een certificaat van polynomiale lengte. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 9 / 20

Definitie De klasse P is de klasse van alle (beslissings)problemen waarvoor een polynomiaal algoritme bestaat. Problemen in P worden makkelijke problemen genoemd. Definitie De klasse N P is de klasse van alle beslissingsproblemen waarvoor een ja-antwoord in polynomiale-tijd geverifiëerd kan worden, m.b.v. een certificaat van polynomiale lengte. Voorbeeld TSP-beslis N P. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 9 / 20

Definitie De klasse P is de klasse van alle (beslissings)problemen waarvoor een polynomiaal algoritme bestaat. Problemen in P worden makkelijke problemen genoemd. Definitie De klasse N P is de klasse van alle beslissingsproblemen waarvoor een ja-antwoord in polynomiale-tijd geverifiëerd kan worden, m.b.v. een certificaat van polynomiale lengte. Eén van de zeven millennium problemen ($1.000.000): is P = N P? Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 10 / 20

Definitie De klasse P is de klasse van alle (beslissings)problemen waarvoor een polynomiaal algoritme bestaat. Problemen in P worden makkelijke problemen genoemd. Definitie De klasse N P is de klasse van alle beslissingsproblemen waarvoor een ja-antwoord in polynomiale-tijd geverifiëerd kan worden, m.b.v. een certificaat van polynomiale lengte. Eén van de zeven millennium problemen ($1.000.000): is P = N P? Voor TSP bestaat geen polynomiaal algoritme tenzij P = N P. TSP wordt daarom een moeilijk probleem genoemd. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 10 / 20

Schaalbaarheid Polynomiale algoritmes schalen veel beter dan exponentiële algoritmes. Tabel: Groei van polynomiale en exponeniële functies n 10 100 1000 n log(n) 33 664 9966 n 3 1000 1,000,000 10 9 10 6 n 8 10 14 10 22 10 30 2 n 1024 1.27x10 30 1.05x10 301 n log(n) 2099 1.93x10 13 7.89x10 29 n! 3,628,800 10 158 4x10 2567 Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 11 / 20

Profijt van technologische ontwikkeling Polynomiale algoritmes profiteren meer van technologische ontwikkelingen. Tabel: Maximale instantiegrootte op te lossen in 1 dag Functie Huidige technologie 10x snellere computer n 10 12 10 13 n log(n) 0.948x10 11 0.87x10 12 n 2 10 6 3.16x10 6 n 3 10 4 2.15x10 4 10 8 n 4 10 18 2 n 40 43 10 n 12 13 n log(n) 79 95 n! 14 15 Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 12 / 20

Voorbeeld Wat is de complexiteit van het algoritme van Dijkstra voor het vinden van een kortste pad van s naar t in een gerichte graaf D = (V, A) met een lengte c [u,v] 0 voor elke pijl [u, v] A en met s, t V? Algoritme W := {s} ρ(s) := 0 ρ(v) := c [s,v] voor elk punt v V \ {s} (met c [s,v] = wanneer [s, v] / A) Herhaal totdat W = V : 1 Vind x V \ W met minimale ρ(x) 2 W := W {x} 3 Voor elke y V \ W met [x, y] A ρ(y) := min{ρ(y), ρ(x) + c[x,y] } Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 13 / 20

Voorbeeld Wat is de complexiteit van het algoritme van Ford-Fulkerson voor het vinden van een maximum stroom, als alle capaciteiten geheeltallig zijn? Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 14 / 20

Algoritme van Ford-Fulkerson voor Max Flow 1 Begin met f ij = 0 voor alle [i, j] A 2 Maak een gerichte hulpgraaf D f = (V, A f ) als volgt. Voor elke pijl [i, j] van D: als f ij < b ij dan [i, j] A f als f ij > 0 dan [j, i] A f 3 Geval 1: er bestaat een pad P van s naar t in D f. Definieer: α := min({b ij f ij [i, j] ligt op P} Vermeerder stroom f als volgt: f ij := f ij + α f ij := f ij α Ga naar (2). {f ij [j, i] ligt op P}) als [i, j] op P ligt als [j, i] op P ligt 4 Geval 2: er bestaat geen pad van s naar t in D f. Definieer: U := {u V er bestaat een pad van s naar u in D f } Dan is (U, V \ U) een s-t snede met C(U, V \ U) =waarde(f ). Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 15 / 20

Voorbeeld Wat is de complexiteit van het algoritme van Ford-Fulkerson voor het vinden van een maximum stroom, als alle capaciteiten geheeltallig zijn? Dit algoritme is niet polynomiaal. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 16 / 20

Stelling (Dinits en Edmonds-Karp) Het Ford-Fulkerson algoritme heeft polynomiale looptijd als elke iteratie een kortste stroomvermeerderende pad gekozen wordt. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 17 / 20

Stelling (Dinits en Edmonds-Karp) Het Ford-Fulkerson algoritme heeft polynomiale looptijd als elke iteratie een kortste stroomvermeerderende pad gekozen wordt. µ(d) := lengte kortste s-t-pad in gerichte graaf D α(d) := verzameling van pijlen die op minstens één kortste s-t-pad liggen α(d) := {(v, u) (u, v) α(d)} Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 17 / 20

Stelling (Dinits en Edmonds-Karp) Het Ford-Fulkerson algoritme heeft polynomiale looptijd als elke iteratie een kortste stroomvermeerderende pad gekozen wordt. Lemma µ(d) := lengte kortste s-t-pad in gerichte graaf D α(d) := verzameling van pijlen die op minstens één kortste s-t-pad liggen α(d) := {(v, u) (u, v) α(d)} Als D = (V, A) en D = (V, A α(d)) dan is µ(d) = µ(d ) en α(d) = α(d ). Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 17 / 20

Simplex algoritme Aantal iteraties kan exponentieel zijn. Minimale voorwaarden voor voorbeeld: Exponentieel aantal hoekpunten. Serie van exponentieel veel hoekpunten met toenemende doelstellingswaarde. Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 18 / 20

Simplex algoritme Aantal iteraties kan exponentieel zijn. Minimale voorwaarden voor voorbeeld: Exponentieel aantal hoekpunten. Serie van exponentieel veel hoekpunten met toenemende doelstellingswaarde. Opm: Een d-dimensionale kubus heeft 2d facetten en 2 d hoekpunten Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 18 / 20

Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 19 / 20

De Simplex methode is niet polynomiaal (in de worst case). Voor vrijwel alle praktische instanties is het algoritme heel snel. Algoritmes voor LP: Simplex algoritme (1947): niet polynomiaal, snel in praktijk Ellipsoid method (1979): wel polynomiaal, langzaam in praktijk Interior Point Method (1984): wel polynomiaal, snel in praktijk Open vragen: Is er een pivotregel voor de Simplex methode die wel leidt tot een polynomiaal algoritme? Hoe kunnen we het verschil tussen de theoretische en praktische efficiëntie van algoritmes als de Simplex methode verklaren? Wat zijn goede alternatieven voor de worst-case analyse van algoritmes? Leo van Iersel (TUD) TW2020 Optimalisering 21 oktober 2015 20 / 20