Twaalfde college algoritmiek. 17 mei Branch & Bound

Vergelijkbare documenten
Twaalfde college algoritmiek. 11/12 mei Branch & Bound

Twaalfde college algoritmiek. 12 mei Branch & Bound

Elfde college algoritmiek. 29 april Algoritme van Dijkstra, Branch & Bound

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

Twaalfde college algoritmiek. 23 mei Branch & Bound, Heapsort

Elfde college algoritmiek. 28 april Gretige Algoritmen, Algoritme van Dijkstra, Branch & Bound

Twaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify

Vijfde college algoritmiek. 3 maart Brute Force, Exhaustive search en Backtracking

Vijfde college algoritmiek. 2/3 maart Exhaustive search

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

Vijfde college algoritmiek. 17 maart Exhaustive search Graafwandelingen Backtracking

Vijfde college algoritmiek. 9 maart Brute Force. Exhaustive search

Tiende college algoritmiek. 4 mei Gretige Algoritmen Algoritme van Dijkstra

Tiende college algoritmiek. 2 mei Gretige algoritmen, Dijkstra

Zesde college algoritmiek. 22 maart Backtracking

Tiende college algoritmiek. 26 april Gretige algoritmen

Tiende college algoritmiek. 14 april Gretige algoritmen

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 2 juni 2009, uur

Tiende college algoritmiek. 3 mei Dynamisch programmeren Gretige Algoritmen Algoritme van Dijkstra

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 5 juni 2007, uur

Elfde college algoritmiek. 10 mei Algoritme van Dijkstra, Gretige Algoritmen

Uitwerking tentamen Algoritmiek 9 juni :00 17:00

Zesde college algoritmiek. 18 maart Backtracking. Verdeel en Heers

Uitwerking tentamen Algoritmiek 10 juni :00 13:00

Zesde college algoritmiek. 23 maart Backtracking. Verdeel en Heers

Twaalfde college complexiteit. 11 mei Overzicht, MST

Zesde college algoritmiek. 9/10 maart Backtracking. Verdeel en Heers

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

Vierde college algoritmiek. 2 maart Toestand-actie-ruimte Exhaustive Search

Tiende college algoritmiek. 14 april Dynamisch Programmeren, Gretige Algoritmen, Kortste Pad met BFS

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

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

Negende college algoritmiek. 15 april Dynamisch Programmeren

TW2020 Optimalisering

ALGORITMIEK: antwoorden werkcollege 5

Algoritmiek. 15 februari Grafen en bomen

Achtste college algoritmiek. 8 april Dynamisch Programmeren

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5

Algoritmiek. 2 februari Introductie

Elfde college complexiteit. 23 april NP-volledigheid III

Het minimale aantal sleutels op niveau h is derhalve

Tweede college algoritmiek. 12 februari Grafen en bomen

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Computationele Intelligentie

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

Negende college algoritmiek. 6/7 april Dynamisch Programmeren

Tentamen combinatorische optimalisatie Tijd:

Minimum Opspannende Bomen. Algoritmiek

Doorzoeken van grafen. Algoritmiek

Computationele Intelligentie

l e x e voor alle e E

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

Minimum Spanning Tree

Eerste college algoritmiek. 5 februari Introductie

1 Vervangingsstrategie auto

Netwerkstroming. Algoritmiek

Vijfde college complexiteit. 21 februari Selectie Toernooimethode Adversary argument

2WO12: Optimalisering in Netwerken

Optimalisering/Besliskunde 1. College 1 6 september, 2012

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

Vierde college complexiteit. 14 februari Beslissingsbomen

TW2020 Optimalisering

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.

Examen Datastructuren en Algoritmen II

TW2020 Optimalisering

Optimalisering/Besliskunde 1. College 1 3 september, 2014

Heuristieken en benaderingsalgoritmen. Algoritmiek

Discrete Structuren. Piter Dykstra Opleidingsinstituut Informatica en Cognitie

TW2020 Optimalisering

l e x e voor alle e E

Discrete Structuren. Piter Dykstra Sietse Achterop Opleidingsinstituut Informatica en Cognitie

Vierde college complexiteit. 16 februari Beslissingsbomen en selectie

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

Kortste Paden. Algoritmiek

Optimalisering/Besliskunde 1. College 1 2 september, 2015

WISKUNDE-ESTAFETTE 2011 Uitwerkingen

De statespace van Small World Networks

Het Queens n 2 graafkleuring probleem

Uitgebreide uitwerking tentamen Algoritmiek Dinsdag 3 juni 2008, uur

In dit gedeelte worden drie problemen genoemd die kunnen voorkomen in netwerken.

Greedy algoritmes. Algoritmiek

Branch-and-Bound en Cutting Planes

Zevende college Algoritmiek. 6 april Verdeel en Heers

Netwerkstroming. Algoritmiek

Duration: 2 hrs; Total points: 100 No documents allowed. Use of electronic devices, such as calculators, smartphones, smartwatches is forbidden.

8C080 deel BioModeling en bioinformatica

Examen Datastructuren en Algoritmen II

Benaderingsalgoritmen

De wissel-eigenschap voor vermenigvuldigen Vermenigvuldigen kan in omgekeerde volgorde gebeuren, want voor ieder paar getallen a enbgeldt: a b=b a.

Examen Datastructuren en Algoritmen II

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren

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

Examen Datastructuren en Algoritmen II

Kosten. Computationale Intelligentie. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route. Zoeken met kosten.

Fundamentele Informatica

Transcriptie:

Twaalfde college algoritmiek 17 mei 2019 Branch & Bound 1

Backtracking Backtracking - bouwt een oplossing component voor component op - kijkt tijdens de stap-voor-stap constructie of de deeloplossing die bekeken wordt nog aan de gestelde restricties/eisen voldoet (kan voldoen) - zo niet, breidt dan de deeloplossing niet verder uit en herziet de laatste keuze (backtrack!) - houdt (alleen) het pad corresponderend met de (deel)oplossing die nu wordt uitgebreid bij - spaart soms veel werk uit vergeleken met exhaustive search - toepasbaar op allerlei problemen waarbij oplossingen stap voor stap gegenereerd kunnen worden - werking te beschrijven m.b.v. een state space tree 2

Optimal feasible Optimalisatieprobleem: er wordt een oplossing gezocht met minimale of maximale... Terminologie: De functie/waarde die ge-optimaliseerd moet worden heet wel de objectfunctie (bijvoorbeeld de lengte van een Hamiltonkring) Een oplossing die voldoet aan de restricties van het probleem heet feasible (toelaatbaar) Een optimale oplossing is een/de toelaatbare oplossing met de beste waarde van de objectfunctie 3

Optimalisatie Backtracking en optimalisatieproblemen - Bij een minimalisatieprobleem kun je bijv. ook stoppen met uitbreiden wanneer je deeloplossing al een grotere waarde van de te optimaliseren functie heeft dan de huidige beste oplossing (die wordt dus bijgehouden/opgeslagen) en alleen maar nog groter kan worden. - Als je snel een (bijna) optimale oplossing vindt, kunnen verdere deeloplossingen eerder worden afgekapt en ben je dus sneller klaar = gretig algoritme. - Backtracking is het efficiëntst wanneer een oplossing gezocht wordt, dus voor optimalisatieproblemen is backtracking niet bij voorbaat de meest geschikte oplossingsmethode. 4

Toewijzingsprobleem Assignmentproblem (toewijzingsprobleem) Gegeven n personen en n taken (jobs). Persoon i kan taak j doen voor kosten[i][j] euro. Gevraagd: de/een toewijzing van de personen aan de jobs (één persoon per job en één job per persoon) met minimale kosten. Voorbeeld: W X Y Z Alice 9 2 7 8 Bob 6 4 3 7 Carol 5 8 1 8 David 7 6 9 4 5

Branch & bound snoeien 13 5 7 13 5 7 5 8 state space tree 5 8 gesnoeide boom Witte knopen corresponderen met toelaatbare oplossingen; rode knopen met niettoelaatbare oplossingen; de waarden bij de bladeren geven de waarde van de objectfunctie van de bijbehorende oplossing; de waarden bij de andere knopen geven een ondergrens op de te verwachten waarde van de objectfunctie; bij de knoop met grens 13 kan meteen gesnoeid worden, die met 7 wordt nog bekeken, maar leidt tot een niet-toelaatbare oplossing 6

TP met B&B -1- W X Y Z Alice 9 2 7 8 Bob 6 4 3 7 Carol 5 8 1 8 David 7 6 9 4 Een ondergrens voor de kosten van een optimale oplossing... 7

TP met B&B -1- W X Y Z Alice 9 2 7 8 Bob 6 4 3 7 Carol 5 8 1 8 David 7 6 9 4 Een ondergrens voor de kosten van een optimale oplossing: (a) neem uit elke rij de kleinste waarde en tel die bij elkaar op: 2 + 3 + 1+4 = 10 (b) neem uit elke kolom de kleinste waarde en tel die bij elkaar op: 5 + 2+1+4 = 12 We genereren oplossingen door de personen een voor een aan een job te koppelen, en gebruiken daarbij de ondergrens volgens suggestie (a). De optimale oplossing heeft totale kosten 13: Alice job X; Bob job W; Carol job Y; David job Z 8

TP met B&B -2- Voor een willekeurige knoop/deeloplossing berekenen we de ondergrens op de te verwachten waarde van de objectfunctie door uit elke verdere rij de kleinste waarde van de nog beschikbare jobs te nemen en deze op te tellen bij de waarde van de deeloplossing. Voor de deeloplossing(en) die Alice aan job W koppelt zal die ondergrens bijvoorbeeld 9+3+1+4 = 17 zijn. (Analoog voor kolommen: kies uit elke verdere kolom de kleinste waarde van de nog beschikbare personen(*).) De volgorde waarin de knopen van de state space tree worden uitgebreid laten we afhangen van de berekende ondergrens. We kiezen de knopen met de beste (=laagste) ondergrens als eerste: dit lijkt de meest veelbelovende knoop. Deze strategie heet wel de best-first branch-and-bound. Priority queue nodig. 9

B&B state space tree C/Y D/Z k = 13 0 og = 10 1 2 3 4 A/W A/X A/Y A/Z og = 17 og = 10 og = 20 og = 18 5 6 7 B/W B/Y B/Z og = 13 og = 14 og = 17 8 9 C/Z D/Y k = 25 W X Y Z Alice 9 2 7 8 Bob 6 4 3 7 Carol 5 8 1 8 David 7 6 9 4 Opgave: los het probleem op met de ondergrenzen berekend volgens (*). 10

Branch-and-bound -1- Branch & bound is alleen toepasbaar op optimalisatieproblemen genereert oplossingen stap voor stap en houdt de tot dusver gevonden beste oplossing bij gebruikt voor elke deeloplossing (= knoop in de state space tree) een of andere ondergrens (minimalisatieprobleem) resp. bovengrens (maximalisatieprobleem) op de te verwachten waarde van de objectfunctie, met als doel - van deeloplossingen te kunnen bepalen dat ze niet verder bekeken hoeven te worden: snoeien - de zoekvolgorde in de zoekruimte (state space tree), dus de volgorde waarin knopen worden gegenereerd en verder bekeken, te leiden 11

Branch-and-bound -2- Een branch-and-bound algoritme breidt een knoop (deeloplossing) niet verder uit als de waarde van de ondergrens (bovengrens) bij die knoop niet beter is dan de waarde van de tot dusver gevonden beste oplossing: als ondergrens tot dusver gevonden minimale waarde, dan snoeien de deeloplossing niet meer voldoet aan de restricties (of niet meer uit te breiden is tot een toelaatbare oplossing) er nog maar één volledige, toelaatbare oplossing mogelijk is bij de deeloplossing (i.h.b. als deeloplossing zo n volledige oplossing is); de waarde van deze ene oplossing wordt met beste oplossing tot nu toe vergeleken; update zonodig beste oplossing. 12

Branch-and-bound -3- De volgorde waarin de knopen (deeloplossingen) worden uitgebreid hangt direct af van de berekende grenzen: er worden meerdere deeloplossingen tegelijk bijgehouden, dit in tegenstelling tot backtracking in elke stap wordt een van al deze deeloplossingen gekozen, en daarvan worden alle 1-staps-uitbreidingen (kinderen in de state space tree) bekeken en geëvalueerd (d.w.z. ondergrens/bovengrens bepaald) zinloze uitbreidingen worden meteen verworpen meestal wordt de deeloplossing gekozen die het meest veelbelovend lijkt: best-first branch-and-bound bij minimalisatieproblemen (resp. maximalisatieproblemen) kiezen we de knoop met de laagste ondergrens (resp. hoogste bovengrens) als eerste 13

B&B vs backtracking Werkcollege: Los het toewijzingsprobleem op voor onderstaand voorbeeld met behulp van 1. backtracking (snoeien op de kosten van deeloplossingen) 2. branch-and-bound en vergelijk de hoeveelheid snoeiwerk bij beide methoden, alsmede de volgorde waarin de knopen van de state space tree worden bekeken. W X Y Z Alice 4 7 3 5 Bob 6 2 9 1 Carol 3 9 5 3 David 1 1 1 8 14

Knapzakprobleem Gegeven n objecten, met gewicht w 1,...,w n en waarde v 1,...,v n, en een knapzak met capaciteit W. Gevraagd: de meest waardevolle deelverzameling der objecten die in de knapzak past (dus met totaalgewicht W). Voorbeeld: item w v v/w 1 4 40 10 2 7 42 6 3 5 25 5 4 3 12 4 Maximaal gewicht W = 10 15

KZP met B&B item w v v/w 1 4 40 10 2 7 42 6 3 5 25 5 4 3 12 4 W = 10 Opbouwen van de oplossing: in de i-de stap wordt object i wel of niet gekozen, Een bovengrens voor de waarde van een optimale oplossing: Bij aanvang:... Na de i-de stap:... 16

KZP met B&B item w v v/w 1 4 40 10 2 7 42 6 3 5 25 5 4 3 12 4 W = 10 Opbouwen van de oplossing: in de i-de stap wordt object i wel of niet gekozen, Een bovengrens voor de waarde van een optimale oplossing: Bij aanvang: W (v 1 /w 1 ) = 100; Na de i-de stap: v + (W w) (v i+1 /w i+1 ), met v de totaalwaarde van de reeds gekozen objecten en w het totaalgewicht daarvan. De optimale oplossing heeft gewicht 9 en waarde 65: {1,3}. 17

B&B state space tree 0 w = 0,v = 0 bg = 100 w = 4,v = 40 bg = 76 1 1 1 2 w = 0,v = 0 bg = 60 3 2 2 4 w = 11 w = 4,v = 40 bg = 70 w = 9,v = 65 bg = 69 5 3 3 6 w = 4,v = 40 bg = 64 7 4 4 8 w = 12 w = 9,v = 65 waarde = 65 item w v v/w 1 4 40 10 2 7 42 6 3 5 25 5 4 3 12 4 W = 10 Zie ook exercise 12.2.5, Levitin. 18

Handelsreizigersprobleem Traveling Salesman Problem (handelsreizigersprobleem) Gegeven n steden waarvan alle onderlinge afstanden bekend zijn. Gevraagd: de/een kortste route die elke stad precies één keer aandoet, en weer terugkeert in het vertrekpunt. Ofwel: vind de/een kortste Hamiltonkring in een samenhangende gewogen (complete) graaf. Het gaat hier om een ongerichte graaf. 19

Voorbeeld a 3 b 5 6 1 7 8 c 2 4 3 d 9 e De optimale oplossing heeft lengte 16: a, b, d, e, c, a Mogelijke ondergrenzen voor de kosten van een optimale oplossing... 20

TSP met Branch & Bound Mogelijke ondergrenzen voor de kosten van een optimale oplossing: a 3 b eenvoudig: n kortste afstand tussen twee knopen; 5 1 = 5 bij aanvang (analoog als reeds takken gekozen zijn). iets beter: de lengtes van de n kortste takken gesommeerd; 1 + 2 + 3 + 3 + 4 = 13 bij aanvang (analoog als reeds takken gekozen zijn). 8 c 5 6 1 7 2 4 e 3 d 9 nog beter: som over alle knopen i van de afstanden van knoop i tot de twee dichtstbijzijnde knopen (inclusief al gekozen takken), en dat gedeeld door 2(*); ((1+3)+(3+6)+(1+2)+(3+4)+(2+3))/2 = 14 bij aanvang. Opmerking: delen door 2 is niet nodig; je kunt ook 2 lengte minimaliseren (*). 21

tree Branch & Bound, state space a 3 b 5 6 1 7 8 c 2 4 3 d 9 e Ondergrens: som over alle knopen i van de afstanden van knoop i tot de twee dichtstbijzijnde knopen (inclusief al gekozen takken), en dat gedeeld door 2; ((1+3)+(3+6)+(1+2)+(3+4)+(2+3))/2 = 14 bij aanvang. State space tree... 22

Toelichting De volgende versnellingen zijn mogelijk: bekijk alleen Hamiltonkringen startend in a immers, de kring c, d, e, a, b, c is hetzelfde als de kring a, b, c, d, e, a (en als d, e, a, b, c, d en e, a, b, c, d, e en als b, c, d, e, a, b). bekijk alleen situaties waarbij b wordt bezocht voor c de kring a, c, d, b, e, a is dezelfde kring als a, e, b, d, c, a maar in omgekerde volgorde. Beide hebben dezelfde lengte (want deze graaf is ongericht). Zie vorige sheet: deeloplossingen beginnend met a, c zijn ontoelaatbaar (infeasible) na uitbreiding komt c voor b. Deze knoop hoeft dus ook niet verder bekeken te worden; bijbehorende oplossingen komen we elders wel tegen. Bijv.: a, c, e, b, d, a vinden we terug als a, d, b, e, c, a, dus via knoop a, d. 23

TSP met B&B We zeiden wel: delen door 2 is niet nodig; je kunt ook 2 lengte minimaliseren (*) Delen door 2 geeft echter wel scherpere ondergrens, als je resultaat afrondt naar boven. In vorige voorbeeld werd ondergrens 31 van knoop a,d hiermee 16. Deze knoop hoefden we nu niet uit te werken (zie boom in boek). 24

tree (zonder door 2 delen) a 3 b Branch & Bound, state space 8 c 5 6 1 7 a,b,c og = 4+9+7 +7+5 = 32 a,b,c,d (e,a) 2L = 11+9+10 +7+11 = 48 0 a og = 4+9+3 +7+5 = 28 4 d 9 2 3 e 1 2 3 4 a,b a,c a,d a,e og = 4+9+3 og = 6+9+3 og = 9+9+3 +7+5 = 28 +8+5 = 31 +7+10 = 38 a,b,d a,b,e a,d,b a,d,c a,d,e og = 4+10+3 og = 4+12+3 og = 6+10+3 og = 6+9+3 +10+5 = 32 +7+11 = 37 +12+5 = 36 +8+5 = 31 a,d,e,c 5 6 7 8 9 10 13 14 15 16 11 12 a,b,c,e (d,a) 2L = 8+9+8 +8+5 = 38 a,b,d,c (e,a) 2L = 11+10+6 +11+10 = 48 a,b,d,e (c,a) 2L = 4+10+3 +10+5 = 32 a,d,e,b (c,a) 2L = 6+15+7 +8+12 = 48 25

Exercise 12.2.9 Werkcollege: Nog een voorbeeld, met als ondergrens wederom de som van de twee kortste takken per knoop (eventueel gedeeld door 2, zoals in het boek). a 2 b 7 8 5 3 c 1 d De optimale oplossing heeft lengte 11: a, b, d, c, a. 26

Exercise 12.2.9, vervolg a,b og = (7+5 +6+4)/2 = 11 a,b,c (d,a) L = (9+10 +9+8)/2 = 18 0 a og = (7+5 +6+4)/2 = 11 1 2 3 a,c a,d og = (9+5 +6+8)/2 = 14 4 5 a,b,d (c,a) L = (7+5 +6+4)/2 = 11 2 a b 7 8 5 3 1 c d 27

ES Bt B&B (1) Overeenkomsten en verschillen tussen: Exhaustive search (ES) Backtracking (Bt) Best-first branch-and-bound (B&B) N.B.: Verschillende punten hieronder hangen soms met elkaar samen. ES geschikt voor optimalisatieproblemen en andere problemen Bt geschikt voor optimalisatieproblemen en andere problemen B&B alleen geschikt voor optimalisatieproblemen 28

ES Bt B&B (2) ES kán oplossing component voor component opbouwen, maar is ook geschikt voor problemen waar geen sprake is van componenten en deeloplossingen Bt bouwt oplossing component voor component op B&B bouwt oplossing component voor component op ES controleert pas op geldigheid als het complete oplossing heeft opgebouwd (in geval dat ES oplossing component voor component opbouwt, ook verderop) Bt breidt deeloplossing niet verder uit als het geen geldige complete oplossing meer kan worden B&B breidt deeloplossing niet verder uit als het geen geldige complete oplossing meer kan worden 29

ES Bt B&B (3) ES let niet op ondergrens/bovengrens voor waarde complete oplossing Bt let niet op ondergrens/bovengrens voor waarde complete oplossing (hoogstens op waarde huidige deeloplossing bij minimalisatieprobleem) B&B breidt deeloplossing niet verder uit als ondergrens/bovengrens voor waarde complete oplossing niet beter is dan beste waarde van tot nu toe gevonden complete oplossing ES houdt op elk moment slechts één deeloplossing bij (en impliciet de daaraan voorafgaande deeloplossingen in de toestandsboom) Bt houdt op elk moment slechts één deeloplossing bij (en impliciet de daaraan voorafgaande deeloplossingen in de toestandsboom) B&B houdt verzameling van deeloplossingen bij die (mogelijk) nog uitgebreid worden tot complete oplossing 30

ES Bt B&B (4) ES genereert bij uitbreiden van deeloplossing één kind tegelijk Bt genereert bij uitbreiden van deeloplossing één kind tegelijk B&B genereert bij uitbreiden van deeloplossing meteen alle kinderen B&B gebruikt ondergrens/bovengrens om deeloplossing te selecteren die als eerstvolgende wordt uitgebreid ES volgt (in de praktijk) depth-first wandeling in toestandsboom bij zoeken naar (optimale) oplossing Bt volgt depth-first wandeling in toestandsboom bij zoeken naar (optimale) oplossing B&B kan heen en weer springen in toestandsboom bij zoeken naar optimale oplossing 31

(Werk)college Lezen/leren bij dit college: paragraaf 12.2 Werkcollege: vanmiddag, 13.30 15.15, in deze zaal Opgaven: zie http://www.liacs.leidenuniv.nl/~vlietrvan1/algoritmiek Na werkcollege: vragenuur opdracht 3 Laatste keer: 24 mei: tentamen oefenen, De Sitterzaal Vragenuur tentamen? Tentamen: donderdag 6 juni 2019, 14.00 17.00 Herkansing opdracht 1: 28 juni, 23.59 32