Hoofdstuk 8: Algoritmen en Complexiteit

Vergelijkbare documenten
TW2020 Optimalisering

TW2020 Optimalisering

Samenvatting college 1-12

1 Complexiteit. of benadering en snel

Hoofdstuk 13: Integer Lineair Programmeren

TW2020 Optimalisering

Tweede college complexiteit. 12 februari Wiskundige achtergrond

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

Branch-and-Bound en Cutting Planes

Netwerkstroming. Algoritmiek

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

Uitwerking tentamen Analyse van Algoritmen, 29 januari

(On)Doenlijke problemen

TW2020 Optimalisering

Datastructuren en algoritmen voor CKI

2WO12: Optimalisering in Netwerken

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Tentamen combinatorische optimalisatie Tijd:

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

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

Logische Complexiteit Hoorcollege 12

TW2020 Optimalisering

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

Netwerkstroming. Algoritmiek

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

Fundamentele Informatica

Tie breaking in de simplex methode

TW2020 Optimalisering

Elfde college complexiteit. 23 april NP-volledigheid III

Inleiding Programmeren 2

Inleiding Programmeren 2

Tie breaking in de simplex methode

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

Uitgebreide uitwerking Tentamen Complexiteit, juni 2017

8. Complexiteit van algoritmen:

TW2020 Optimalisering

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

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

Credit cards, computationele complexiteit en consistentie uitspraken

vandaag is Annie twee jaar jonger dan Ben en Cees samen

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

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

TW2020 Optimalisering

Derde college algoritmiek. 22 februari Complexiteit Toestand-actie-ruimte

Heuristieken en benaderingsalgoritmen. Algoritmiek

Derde college algoritmiek. 23 februari Complexiteit Toestand-actie-ruimte

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

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

Kortste Paden. Algoritmiek

Vierde college complexiteit. 14 februari Beslissingsbomen

Basiskennis lineaire algebra

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

CTB1002 deel 1 - Lineaire algebra 1

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

Vijfde college algoritmiek. 2/3 maart Exhaustive search

TW2020 Optimalisering

Tentamen IN3105 Complexiteitstheorie

Masterproef Quantum Computing

Examen Algoritmen en Datastructuren III

Algoritmen, Datastructuren en Complexiteit ( en ) Uitwerkingen

Bouwstenen voor PSE. Datatypes en Datastructuren

Vijfde college algoritmiek. 9 maart Brute Force. Exhaustive search

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

1. Een kortste pad probleem in een netwerk kan worden gemodelleerd als a. een LP probleem. b. een IP probleem. c. een BIP probleem. d.

Algoritmes in ons dagelijks leven. Leve de Wiskunde! 7 April 2017 Jacobien Carstens

Optimaliseren in Netwerken

Derde college complexiteit. 7 februari Zoeken

Opgaven bij het vormen van ruimte: van Poincaré tot Perelman

Zevende college algoritmiek. 23/24 maart Verdeel en Heers

Examen Datastructuren en Algoritmen II

NP-volledigheid. Algoritmiek

Zevende college Algoritmiek. 6 april Verdeel en Heers

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

Benaderingsalgoritmen

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

DEC SDR DSP project 2017 (2)

Zevende college algoritmiek. 24 maart Verdeel en Heers

3. Structuren in de taal

Universiteit Leiden Opleiding Informatica

D-dag 2014 Vrijeschool Zutphen VO. D -DAG 13 februari 2014: 1+ 1 = 2. (en hoe nu verder?) 1 = 2en hoe nu verder?

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.

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

Matrices en Grafen (wi1110ee)

Universiteit Gent. Academiejaar Discrete Wiskunde. 1ste kandidatuur Informatica. Collegenota s. Prof. Dr.

Examen Datastructuren en Algoritmen II

Progra-MEER - Algoritmiek Leuven 20 maart 2018

Oefeningen voor de oefeningenles. Oefening 1

In Vlaanderen bestaat er nog geen leerlijn programmeren! Hierdoor baseren wij ons op de leerlijn die men in Nederland toepast voor basisscholen.

Modulewijzer InfPbs00DT

Lineaire afbeeldingen

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Opgaven Recursie: Analyse en Master Theorem Datastructuren, 6 juni 2018, Werkgroep.

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Begrenzing van het aantal iteraties in het max-flow algoritme

Tentamen IN3105. Complexiteitstheorie. 16 april 2012, uur

1 Symmetrieën van figuren

TW2020 Optimalisering

TW2020 Optimalisering

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

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

Transcriptie:

Hoofdstuk 8: Algoritmen en Complexiteit

Vandaag: Hoe meten we de performance van algoritmen? Waar ligt de grens tussen een goed en een slecht algoritme? 22 oktober 2014 1

Vandaag: Hoe meten we de performance van algoritmen? Waar ligt de grens tussen een goed en een slecht algoritme? Algoritme = preciese omschrijving van reeks aan instructies die elke instantie van het omschreven probleem oplost 22 oktober 2014 1

Vandaag: Hoe meten we de performance van algoritmen? Waar ligt de grens tussen een goed en een slecht algoritme? Algoritme = preciese omschrijving van reeks aan instructies die elke instantie van het omschreven probleem oplost Tot nu toe 3 voorbeelden: Simplex algoritme Dijkstra s algoritme Ford-Fulkerson algoritme 22 oktober 2014 1

Tijdscomplexiteit Een algoritme kan het probleem oplossen, maar hoe lang duurt dat? We meten dit is het aantal elementaire operaties: Optellen, aftrekken, vermenigvuldigen, vergelijken, etc. Voorbeeld 1: Volledige enumeratie TSP Voorbeeld 2: Volledige enumeratie MST Voorbeeld 3: Simplex algoritme 22 oktober 2014 2

Tijdscomplexiteit Een algoritme kan het probleem oplossen, maar hoe lang duurt dat? We meten dit is het aantal elementaire operaties: Optellen, aftrekken, vermenigvuldigen, vergelijken, etc. Voorbeeld 1: Volledige enumeratie TSP Voorbeeld 2: Volledige enumeratie MST Voorbeeld 3: Simplex algoritme Worst-case gedrag afhankelijk van grootte van de instantie In welke orde neemt de rekentijd toe bij groter wordende instanties? 22 oktober 2014 2

Orde-notaties voor groei Definitie: Zij f (n) en g(n) functies zijn van de positieve integers naar de positieve reële getallen: (a) f (n) = O(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) 22 oktober 2014 3

Orde-notaties voor groei Definitie: Zij f (n) en g(n) functies zijn van de positieve integers naar de positieve reële getallen: (a) f (n) = O(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) (b) f (n) = Ω(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) 22 oktober 2014 3

Orde-notaties voor groei Definitie: Zij f (n) en g(n) functies zijn van de positieve integers naar de positieve reële getallen: (a) f (n) = O(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) (b) f (n) = Ω(g(n)) als er een constante c > 0 is zdd, voor groot genoege n, f (n) cg(n) (c) f (n) = Θ(g(n)) als er constanten c, c > 0 zijn zdd, voor groot genoege n, cg(n) f (n) c g(n) 22 oktober 2014 3

Nuttige eigenschap f (n) lim n g(n) = 0, then f (n) O(g(n)) f (n) lim n g(n) = c > 0, then f (n) Θ(g(n)) f (n) lim n g(n) =, then f (n) Ω(g(n)) 22 oktober 2014 4

Voorbeelden f (n) = 2n 3 + 5n 2 + 4n + 10 f (n) = n log(n) + 5n f (n) = 2 n + n 4 22 oktober 2014 5

Voorbeelden f (n) = 2n 3 + 5n 2 + 4n + 10 f (n) = Θ(n 3 ) f (n) = n log(n) + 5n f (n) = Θ(n log(n)) f (n) = O(n 2 ) f (n) = 2 n + n 4 f (n) = Θ(2 n ) 22 oktober 2014 5

Grootte van een instantie Complexiteit van algoritme wordt gemeten als functie van grootte van een instantie Grootte van een instantie = de lengte van een redelijke representatie van de input in een computer, i.a.w. het aantal symbolen nodig om de instantie mee te geven aan een computer Voorbeeld: Integer: binary encodering log(n) = O(log(n)) Voorbeeld: Graaf: Adjacency matrix: O( V 2 ) Adjacency list: V + 2 E = O( E ) 22 oktober 2014 6

Analyse van algoritmen Voorbeeld 1: Dijkstra s algoritme Voorbeeld 2: Ford-Fulkerson algoritme Voorbeeld 3: Simplex algoritme 22 oktober 2014 7

Polynomiale tijd Welke complexiteit is acceptabel? Polynomiale rekentijd O(n), O(n 3 ), O(n 2.5 ), O(n log(n)) 22 oktober 2014 8

Polynomiale tijd Welke complexiteit is acceptabel? Polynomiale rekentijd O(n), O(n 3 ), O(n 2.5 ), O(n log(n)) Waarom is polynomiale tijd goed? Betere schaalbaarheid Profiteert meer van technologische ontwikkeling Combineren van polynomiale algoritmes als subroutine blijft polynomiaal 22 oktober 2014 8

Schaalbaarheid Tabel: Groei van polynomiale en exponeniële functies Functie Functiewaarde 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 22 oktober 2014 9

Profijt van technologische ontwikkeling 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 22 oktober 2014 10

Terug naar bekende algoritmen Dijkstra s algoritme O( V 2 ) is polynomiaal Ford-Fulkerson algoritme O(f x A ) is niet-polynomiaal Simplex algoritme Niet-polynomiaal Tot nu toe alleen bovengrens gegeven, misschien is algoritme wel polynomiaal. 22 oktober 2014 11

Ford-Fulkerson Niet polynomiaal vanwege aantal iteraties dat afhangt van grootte van optimale flow. Kan het voorkomen dat aantal iteraties inderdaad orde f heeft? 22 oktober 2014 12

Ford-Fulkerson Niet polynomiaal vanwege aantal iteraties dat afhangt van grootte van optimale flow. Kan het voorkomen dat aantal iteraties inderdaad orde f heeft? 22 oktober 2014 12

Ford-Fulkerson Niet polynomiaal vanwege aantal iteraties dat afhangt van grootte van optimale flow. Kan het voorkomen dat aantal iteraties inderdaad orde f heeft? Wel polynomiaal wanneer altijd kortste groeipad wordt gekozen 22 oktober 2014 12

Simplex algoritme Aantal iteraties kan exponentieel zijn Minimale voorwaarden voor voorbeeld: Exponentiëel aantal hoekpunten Serie van exponentiëel veel hoekpunten met toenemende doelstellingswaarde 22 oktober 2014 13

Simplex algoritme Aantal iteraties kan exponentieel zijn Minimale voorwaarden voor voorbeeld: Exponentiëel aantal hoekpunten Serie van exponentiëel veel hoekpunten met toenemende doelstellingswaarde Opm: Een d-dimensionale kubus heeft 2d facets en 2 d hoekpunten 22 oktober 2014 13

22 oktober 2014 14

Simplex algoritme Open vraag: Is er een pivotregel die wel leidt tot een polynomiaal algoritme? Alternatieve algoritmen voor LP: (Simplex algoritme: theoretisch slecht, goed in praktijk) Ellipsoid method: theoretisch goed, langzaam in praktijk Interior Point Method: theoretisch goed, snel in praktijk 22 oktober 2014 15