2WO12: Optimalisering in Netwerken



Vergelijkbare documenten
TW2020 Optimalisering

TW2020 Optimalisering

TW2020 Optimalisering

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

2WO12: Optimalisering in Netwerken

1 Complexiteit. of benadering en snel

Hoofdstuk 8: Algoritmen en Complexiteit

TW2020 Optimalisering

Tentamen combinatorische optimalisatie Tijd:

2WO12: Optimalisering in Netwerken

ALGORITMIEK: answers exercise class 7

Uitwerking tentamen Analyse van Algoritmen, 29 januari

2WO12: Optimalisering in Netwerken

TW2020 Optimalisering

TW2020 Optimalisering

Grafen deel 2 8/9. Zesde college

MyDHL+ Van Non-Corporate naar Corporate

Begrenzing van het aantal iteraties in het max-flow algoritme

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

Netwerkstroming. Algoritmiek

SAMPLE 11 = + 11 = + + Exploring Combinations of Ten + + = = + + = + = = + = = 11. Step Up. Step Ahead

(1) De hoofdfunctie van ons gezelschap is het aanbieden van onderwijs. (2) Ons gezelschap is er om kunsteducatie te verbeteren

DALISOFT. 33. Configuring DALI ballasts with the TDS20620V2 DALI Tool. Connect the TDS20620V2. Start DALISOFT

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE. Toets Inleiding Kansrekening 1 8 februari 2010

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

B1 Woordkennis: Spelling

Benaderingsalgoritmen

Vergaderen in het Engels

Add the standing fingers to get the tens and multiply the closed fingers to get the units.

ANGSTSTOORNISSEN EN HYPOCHONDRIE: DIAGNOSTIEK EN BEHANDELING (DUTCH EDITION) FROM BOHN STAFLEU VAN LOGHUM

possessive determiners

MyDHL+ ProView activeren in MyDHL+

(On)Doenlijke problemen

TW2020 Optimalisering

Angststoornissen en hypochondrie: Diagnostiek en behandeling (Dutch Edition) Click here if your download doesn"t start automatically

Alle opgaven tellen even zwaar, 10 punten per opgave.

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

Borstkanker: Stichting tegen Kanker (Dutch Edition)

Handleiding Nederlands leren. in de bibliotheek NT2 SCHOOL NT2. Natuurlijk Nederlands leren en inburgeren

The first line of the input contains an integer $t \in \mathbb{n}$. This is followed by $t$ lines of text. This text consists of:

9 daagse Mindful-leSs 3 stappen plan training

Handleiding Nederlands leren. in de bibliotheek NT2 SCHOOL NT2. Natuurlijk Nederlands leren en inburgeren

Group work to study a new subject.

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

L.Net s88sd16-n aansluitingen en programmering.

TW2020 Optimalisering

This appendix lists all the messages that the DRS may send to a registrant's administrative contact.

TECHNISCHE UNIVERSITEIT EINDHOVEN Faculteit Wiskunde en Informatica. Examination 2DL04 Friday 16 november 2007, hours.

Comics FILE 4 COMICS BK 2

Heuristieken en benaderingsalgoritmen. Algoritmiek

Netwerkstroming. Algoritmiek

Settings for the C100BRS4 MAC Address Spoofing with cable Internet.

L.Net s88sd16-n aansluitingen en programmering.

een kopie van je paspoort, een kopie van je diploma voortgezet onderwijs (hoogst genoten opleiding), twee pasfoto s, naam op de achterkant

General info on using shopping carts with Ingenico epayments

FOR DUTCH STUDENTS! ENGLISH VERSION NEXT PAGE

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

Het beheren van mijn Tungsten Network Portal account NL 1 Manage my Tungsten Network Portal account EN 14

Introductie in flowcharts

Algorithms for Max-Flow

Hoofdstuk 13: Integer Lineair Programmeren

Fundamentele Informatica

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

should(n t) / should(n t) have to zouden moeten / hadden meestergijs.nl

TAAL ACTIEF GROEP 8 SPELLING 2 PDF

3 I always love to do the shopping. A Yes I do! B No! I hate supermarkets. C Sometimes. When my mother lets me buy chocolate.

ECHTE MANNEN ETEN GEEN KAAS PDF

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.

Engels op Niveau A2 Workshops Woordkennis 1

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

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

Quick start guide. Powerbank MI Mah. Follow Fast All rights reserved. Page 1

Teksten van de liederen die gospelkoor Inspiration tijdens deze Openluchtdienst zingt.

Zo werkt het in de apotheek (Basiswerk AG) (Dutch Edition)

Lists of words from the books, and feedback from the sessions, are on

AXIOMATIEK VAN GETALLEN, vergezichten vanuit mijn ivoren toren

l e x e voor alle e E

ANT S KINGDOM Here is some advice for setting up your Master Ant Farm!

Understanding and being understood begins with speaking Dutch

Main language Dit is de basiswoordenschat. Deze woorden moeten de leerlingen zowel passief als actief kennen.

MyDHL+ Uw accountnummer(s) delen

Examen Datastructuren en Algoritmen II

TW2020 Optimalisering

Transcriptie:

2WO12: Optimalisering in Netwerken Leo van Iersel Technische Universiteit Eindhoven (TU/E) en Centrum Wiskunde & Informatica (CWI) 20 februari 2014 http://homepages.cwi.nl/~iersel/2wo12/ l.j.j.v.iersel@gmail.com Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 1 / 32

Overzicht Tot nog toe: grafen, kleuren en routeren Vandaag: graafrepresentaties en complexiteit problemen en algoritmes representeren van grafen (in een computer) complexiteit (efficiëntie) van algoritmes Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 2 / 32

Problemen Een algoritmische probleemklasse (kortweg 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: Euler Graaf (EG) Gegeven: een samenhangende graaf G Gevraagd: is G een Euler graaf? Een instantie van dit probleem is bijvoorbeeld: Is K 4 een Euler graaf? Een probleem is een beslissingsprobleem als het vraagt om een ja- of nee-antwoord. Bijvoorbeeld probleem EG is een beslissingsprobleem. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 3 / 32

Voorbeeld Probleem: Hamilton Circuit (HC) Gegeven: een graaf G Bepaal of G een Hamilton graaf is en zo ja, geef een Hamilton-circuit van G HC is een constructieprobleem Voorbeeld Pobleem: Travelling Salesman Problem (TSP) Gegeven: een volledige graaf G = (V, E) en een kostenfunctie c : E R + Gevraagd: een Hamilton circuit in G van minimale kosten TSP is een optimaliseringsprobleem Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 4 / 32

Voorbeeld Probleem: Number of Hamilton Circuits (#HC) Gegeven: een graaf G Bepaal hoeveel Hamilton-circuits G heeft HC is een telprobleem Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 5 / 32

Definitie Een algoritme (algorithm) voor een probleem is een methode om elke mogelijke instantie van het probleem op te lossen, die voldoet aan: (1) eindigheid (beschreven door eindige text) (2) uitvoerbaarheid (instructies mechanisch uit te voeren) (3) terminatie (stopt na eindig aantal stappen) (4) gedetermineerdheid (geen gokken) Definitie Een niet-deterministisch algoritme is een methode die aan (1-3) voldoet maar niet aan (4). Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 6 / 32

Voorbeeld Probleem: Euler Graaf (EG) Gegeven: een samenhangende graaf G Gevraagd: is G een Euler graaf? Een algoritme voor het probleem Euler Graaf: bepaal voor elk punt van G de graad als alle graden even zijn, geef dan als antwoord ja (G is een Euler graaf) als er een oneven graad voorkomt, geef dan als antwoord nee (G is geen Euler graaf) Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 7 / 32

Voorbeeld Pobleem: Travelling Salesman Problem (TSP) Gegeven: een volledige graaf G = (V, E) en een kostenfunctie c : E R + Gevraagd: een Hamilton circuit in G van minimale kosten Een algoritme voor het probleem Travelling Salesman Problem (TSP): voor elke permutatie (v 1, v 2,..., v n ) van de punten van G bepaal de kosten van het Hamilton circuit (v n = v 0, v 1, v 2,..., v n ), d.w.z. n 1 c(v i, v i+1 ) i=0 geef als uitvoer een Hamilton circuit met laagste kosten Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 8 / 32

Graafrepresentaties: Lijst van lijnen 2 1 3 4 Lijst van lijnen: [[1, 2], [2, 3], [2, 4], [1, 4], [3, 4]] Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 9 / 32

Lijst van pijlen 2 1 3 Lijst van pijlen: [(1, 2), (2, 3), (4, 2), (1, 4), (3, 4)] 4 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 10 / 32

Verbindingsmatrix ongerichte graaf 2 1 3 Verbindingsmatrix: 4 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 (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 11 / 32

Verbindingsmatrix gerichte graaf 2 1 3 Verbindingsmatrix: 4 0 1 2 3 4 1 0 1 0 1 2 0 0 1 0 3 0 0 0 1 4 0 1 0 0 Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 12 / 32

Incidentiematrix ongerichte graaf 2 1 2 1 3 4 5 3 Incidentiematrix: 4 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 (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 13 / 32

Incidentiematrix gerichte graaf 2 1 2 1 3 4 5 3 Incidentiematrix: 4 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 (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 14 / 32

Verbindingslijsten 2 1 3 4 Verbindingslijsten: A 1 = [2, 4] A 3 = [2, 4] A 2 = [1, 3, 4] A 4 = [1, 2, 3] Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 15 / 32

In- en uitlijsten gerichte graaf 2 1 3 Uitlijsten: 4 A uit 1 = [2, 4] A uit 2 = [3] A uit 3 = [4] A uit 4 = [2] Inlijsten: A in 1 = [] Ain 2 = [1, 4] Ain 3 = [2] Ain 4 = [1, 3] Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 16 / 32

Incidentielijsten 2 1 1 2 3 4 5 4 3 Incidentielijsten: A 1 = [(1, 2), (4, 4)] A 2 = [(1, 1), (2, 3), (3, 4)] A 3 = [(2, 2), (5, 4)] A 4 = [(3, 2), (4, 1), (5, 3)] Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 17 / 32

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 het begrip elementaire stap hangt af van het gekozen computermodel de tijdscomplexiteit van een algoritme wordt ook vaak de looptijd (running time) genoemd Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 18 / 32

RAM computermodel RAM = Random Access Machine elementaire stappen: o.a. rekenkundige bewerkingen van getallen (optellen, vermenigvuldigen, enz.), vergelijken van getallen, lezen en schrijven van een geheugenplaats, volgen van pointer in één geheugenplaats past een 0,1-string van eindige maar onbeperkte lengte Elk element van de invoer (elk punt, elke lijn, elk rationeel getal) kan gecodeerd als 0-1 string in één geheugenplaats worden opgeslagen Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 19 / 32

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 (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 20 / 32

Definitie De klasse P is de klasse van alle beslissingsproblemen waarvoor een polynomiaal algoritme bestaat. Definitie De klasse N P is de klasse van alle beslissingsproblemen waarvoor een polynomiaal niet-deterministisch algoritme bestaat. Eén van de zeven millennium problemen ($1.000.000): is P = N P? Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 21 / 32

Graafalgoritmes Stel een graafalgoritme heeft als invoer een graaf met: V punten E lijnen W het maximale gewicht van een punt/lijn (in het geval het een gewogen graaf betreft) Definitie Een graafalgoritme is polynomiaal als zijn complexiteit een polynoom in V, E en log(w ) is. Definitie Een graafalgoritme is sterk polynomiaal als zijn complexiteit een polynoom in V en E is. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 22 / 32

Voorbeeld Probleem: Euler Graaf (EG) Gegeven: een samenhangende graaf G Gevraagd: is G een Euler graaf? Een algoritme voor het probleem Euler Graaf: bepaal voor elk punt van G de graad als alle graden even zijn, geef dan als antwoord ja (G is een Euler graaf) als er een oneven graad voorkomt, geef dan als antwoord nee (G is geen Euler graaf) Wat is de complexiteit van dit algoritme? Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 23 / 32

Voorbeeld Pobleem: Travelling Salesman Problem (TSP) Gegeven: een volledige graaf G = (V, E) en een kostenfunctie c : E R + Gevraagd: een Hamilton circuit in G van minimale kosten Een algoritme voor het probleem Travelling Salesman Problem (TSP): voor elke permutatie (v 1, v 2,..., v n ) van de punten van G bepaal de kosten van het Hamilton circuit (v n = v 0, v 1, v 2,..., v n ), d.w.z. n 1 c(v i, v i+1 ) i=0 geef als uitvoer een Hamilton circuit met laagste kosten Wat is de complexiteit van dit algoritme? Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 24 / 32

To find the way out of a labyrinth, William recited, there is only one means. At every new junction, never seen before, the path we have taken will be marked with three signs. If, because of previous signs on some of the paths of the junction, you see that the junction has already been visited, you will make only one mark on the path you have taken. If all the apertures have already been marked, then you must retrace your steps. But if one or two apertures of the junction are still without signs, you will choose any one, making two signs on it. Proceeding through an aperture that bears only one sign, your will make two more, so that now the aperture bears three. All the parts of the labyrinth must have been visited if, arriving at a junction, you never take a passage with three signs, unless none of the other passages is now without signs. How do you know that? Are you an expert on labyrinths? No, I am citing an ancient text I once read. And by observing this rule you get out? Almost never, as far as I know. But we will try it, all the same. And besides, within the next day or so I will have lenses and time to devote myself more to the books. (The Name of the Rose, Umberto Eco) Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 25 / 32

De uitgang vinden van een labyrint Wanneer je een gang inloopt: Markeer de ingang met een kruis Wanneer je een kamer voor de eerste keer inloopt: Markeer de gang waardoor je binnenkomt met een cirkel Wanneer je een kamer uitgaat: 1. Neem nooit een gang gemarkeerd met een 2. Neem alleen een gang gemarkeerd met een als er geen andere opties zijn Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 26 / 32

Lemma (1) Je gaat nooit twee keer door dezelfde gang in dezelfde richting. Lemma (2) Als je vast komt te zitten dan: 1 ben je in de beginkamer en 2 zijn alle aanliggende gangen al in beide richtingen doorlopen. Lemma (3) Als je vast komt te zitten dan zijn alle gangen die bereikbaar zijn vanuit de beginkamer al in beide richtingen doorlopen. Stelling Als er een weg naar een uitgang is, dan vind je die. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 27 / 32

Depth-first-search (DFS) vanuit een punt s in een graaf gegeven door verbindingslijsten A v voor v V : Algoritme zet s in een lijst Q en markeer s als bezocht herhaal de volgende stappen totdat Q leeg is: beschouw het laatste punt v uit lijst Q als er een punt w in Av is dat nog niet bezocht is zet w achteraan in lijst Q markeer w als bezocht zet lijn {v, w} in een lijst van gebruikte lijnen als alle buren van v al bezocht zijn, verwijder v uit Q De gebruikte lijnen vormen een opspannende boom. Deze boom wordt de DFS-boom genoemd. Dezelfde methode kan ook gebruikt worden voor gerichte grafen. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 28 / 32

Breadth-first-search (BFS) vanuit een punt s in een graaf gegeven door verbindingslijsten A v voor v V : Algoritme zet s in een lijst Q en markeer s als bezocht herhaal de volgende stappen totdat Q leeg is: verwijder het eerste punt v uit lijst Q voor elk punt w uit Av dat nog niet bezocht is: zet w achteraan in lijst Q markeer w als bezocht zet lijn {v, w} in een lijst van gebruikte lijnen De gebruikte lijnen vormen een opspannende boom. Deze boom wordt de BFS-boom genoemd. Dezelfde methode kan ook gebruikt worden voor gerichte grafen. Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 29 / 32

Voorbeeld Wat is de complexiteit van het algoritme van Ford-Fulkerson voor het vinden van een maximum stroom, als alle capaciteiten geheeltallig zijn? Maximum-stroom algoritme: 1 Begin met f (a) = 0 voor alle a A 2 Vind een betere stroom met het stroomvermeerderingsalgoritme 3 Herhaal stap (2) totdat het stroomvermeerderingsalgoritme een snede geeft Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 30 / 32

Stroomvermeerderingsalgoritme Maak een hulpgraaf D f = (V, A f ) als volgt. Voor elke pijl (u, v) van D: als f (u, v) < c(u, v) dan (u, v) A f als f (u, v) > 0 dan (v, u) A f Geval 1: er bestaat een pad P van s naar t in D f. Definieer: Geval 2: α := min({c(u, v) f (u, v) (u, v) ligt op P} {f (u, v) (v, u) ligt op P}) Vermeerder stroom f als volgt tot stroom f : f (u, v) := f (u, v) + α f (u, v) := f (u, v) α f (u, v) := f (u, v) als (u, v) op P ligt als (v, u) op P ligt anders 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) een s-t snede met cap(δ + (U)) =waarde(f ). Leo van Iersel (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 31 / 32

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 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 (TUE/CWI) 2WO12: Optimalisering in Netwerken 20 februari 2014 32 / 32