Samenvatting Optimalisatietechnieken

Maat: px
Weergave met pagina beginnen:

Download "Samenvatting Optimalisatietechnieken"

Transcriptie

1 Samenvatting Optimalisatietechnieken Dumon Willem - Van Haute Tom Terminologie Feasible = oplosbaar, voldoen a alle harde beperkingen Harde beperking = beperking wr e oplossing aan moet voldoen Zachte beperking = beperking wr bij voorkeur a voldaan is (nt abs noodz om feasible opl te bekomen) Evaluatiefunctie = doelf tie = objectieff tie = kostf tie : kwaliteit v/d opl hangt oa af v/d mate wrin a/d z8e beperkingen voldaan is vb: waarde evaluatief tie = overtredingen z8e beperkingen Deterministisch zoeken = zoekmethode (algoritme) die altijd opl vindt vr e probl algoritmes die nt altijd zelfde opl vinden als zelfde randvw n Optimalisatie = proces dat beste opl probeert te vinden uit alle beschikbre opl n, daarvr moet probl gemodelleerd worden in termen v/e evaluatieff tie die kwaliteit v/d opl bep. Soms optim = vinden beste oplossing (als gn te grote zoekruimte) Lokaal optimum = opl wrvoor alle buuropl n slechter zijn Globaal optimum = allerbeste oplossing Exhaustief zoeken = alle mogelijke opl n zoeken & beste selecteren (snel moeilijk als grote zoekruimte) Complexiteit = moeilijkheidsgraad v/e optim-probl (vaak tijdscomplexiteit) big O notatie: g(x) is orde v f (x); notatie g(x) = O(f(x)) wnnr vr e c te waarde K g(x) Kf(x) voor alle waarden v x > K Heuristiek = methode om kwaliteitsvolle opl n te bekomen als exhaustief zoeken nt mog, dus zonder alle opl n te doorlopen Constructieve heuristieken: om e initiële opl te construeren v/h begin Lokale zoekmethoden: buren beschouwd als potentiëele vervangers v/d huidige oplossing. Nieuwe oplossing uit die buurt aanvaarden = move v/d huidige nr nieuwe buren v die nieuwe oplossing bekijken Hill climbing: 1voudigst mr vlugst vast in lokaal opt, huidige opl 1 of alle opl i/d buurt, beste kiezen er naartoe gn als evaluatief tie beter is, stoppen als gn betere i/d buurt Metaheuristieken: F. Glover strategie die andere heuristieken leidt & aanpast om betere oplossingen te genereren dan deze die met lokale zoektechnieken te bereiken zijn I. Osman iteratief proces dat e onderliggende heuristiek leidt Evolutiemethoden: vb genetische alg es, onderdeel v metaheuristieken, onderhouden populatie v kandidaatopl n die wedijveren om te overleven Hyperheuristieken: heuristieken die heuristieken zoeken i/e zoekruimte v heuristieken 1

2 2 Klassieke Technieken Wisk ige techniek n vr oplossing v praktische problemen, ontstaan jaren 50, oa dr WO2, toenemende industriële wedloop & vooruitzicht op toegankelijke computerkr8 i/d toekomst, verder geëvolueerd, ng altijd gebruikt om (relatief 1voudige) problemen o/t lossen of als bouwblok in mr complexe algoritmen 2.1 Lineair Programmeren Lineair programmeren probleem = wrrin doelfunctie (te optimaliseren uitdrukking) & beperkingen vr te stellen zijn i/d vorm v lineaire uitdrukkingen v/d beslissingsvariabelen wnnr e probleem n variabelen heeft, definiëren de beperkingen e verzameling hypervlakken i/d n-dimensionale ruimte, deze vormen de grenzen v/h n-dimensionale gebied dat de verzameling feasible oplossingen definieert wiskundige formulering: doelf tie & beperkingen opstellen, alle uitdrukkingen lineair feasible gebied = convex: geen rechtlijnig pad tss 2 punten i/d ruimte mogelijk dat het pad buiten de ruimte gaat wnnr variabelen 0, optimale opl o/e extreem punt v/d opl n -ruimte mogelijk om geometrisch o/t lossen als 2 variabelen: grafisch: elke ongelijkheid definieert e half vlak wrin elke oplossing vr het lineaire programma zich moet bevinden convexe omhulsel dat dr de constraints gevormd wordt = simplex doelfunctie bekijken als lijn met gekende helling die verschoven wordt v oneindig tt ze de simplex raakt (altijd op een hoekpunt, evt e lijn) als niet-lineaire functies bij betrokken zijn moeilijker, wnnr ongelijkheden ook nietlinair zijn kunnen er complexe geometrische vormen ontstaan infeasible wnnr e probleem nt oplosbaar is (bv. als de halve vlakken gn overlapping hebben) redundantie wnnr de simplex al volledig i/h vlak ligt dat dr e nieuwe beperking bepaald wordt onbegrensd wnnr de simplex open is, toch mogelijke oplossing vr sommige doelf ties mr heel moeilijk vr algoritmen om vrbij onbegrensd gebied te geraken nt eenvoudig om dergelijke problemen vast te stellen als vl variabelen & ongelijkheden Conversie naar algemene vorm: 1. maximalisatieprobl minimalisatieprobl: teken v coëff veranderen 2. negatieve variabelen uitdrukken als verschil v 2 positieve 3. alle beperkingen (, ) als gelijkheden door α toe te voegen (x 1 + x 2 3 x 1 + x 2 + α = 3), α = slack -variabele 4. rechterlid altijd pos alles beslissingsvariabele altijd positief x = -x 1 = slack -variabele, opl in x zoeken Gevoeligheidsanalyse: op welke manier beïnvloeden de LP parameters de optimale oplossing? nt altijd LP trug oplossen cf voorbeeld ivm Giapetto probleem Schaduwprijs vr i-de beperking = hoeveelheid toe/afname wnnr rechterlid v/d i-de beperking met 1 toeneemt, geldt enkel als de verandering gn invloed hft o/d huidige basis (= snijpunt max-lijn met simplex) 2

3 Duale formulering Oplossingsmethoden: 1. Simplex methode: zoekt nr uiterste punten i/h feasible gebied v/h primaire of duale probleem tt het optimum gevonden is, gebaseerd op matrixbewerkingen, 1voudig te implementeren slechte worst case rekentijd garantie 2. Interior Point methoden: zoeken e pad v opl n dr interne v/h feasible gebied, zodanig dat, wnnr buitenkant bereikt, de gevonden oplossing = optimaal 2.2 Simplex Methode adhv matrixbewerkingen: pivoteren & methode v Gauss alles gelijkheden behalve 1 die stelt dat alle variabelen 0 slack -variabelen invoegen, als maar 1 variabele en negatief vervangen door x = -x N vgl n, M variabelen & M > N veel opl, optimale oplossing zoeken triviale opl: als alles in rechterlid (RL) > 0 & alle slackvariabelen pos coëff < opl waarbij alles = 0 simplex (geldt in vele situaties) alternatieve opl door pivoteren: matrix (N+1)x(M+1), kolom M+1 = getallen v RL, 0de rij = coëff n v/d doelf tie met tegengesteld teken variabelen die over1komen met e opl = basisvariabelen (= opl met in matrix op 1e rij 0), variabelen die op 0 gezet worden o/e opl te bekomen = niet-basisvar n pivoteren: (zie vb in slides) 1. kies e element a[p,q] i/d matrix v/d coëfficiënten v/d vgl en 2. vermenigvuldig de pde rij met een getal 3. tel het resultaat van 2) op bij alle andere rijen zodanig dat de qde kolom 0 wordt, op het element in rij q na, dat gelijkgesteld wordt aan 1 welke waarde nemen voor p & q: 0de rij toont met hoeveel doelf tie zou toenemen als waarde v die variabele v 0 naar 1 zou gn kolom met negatief getal in rij 0 nemen waarde v over1komstige variabele v 0 nr pos getal doelf tie pivoteren op rij met positief getal in die kolom wrde doelf tie waarde nemen waarvoor ratio van [M+1] a[p,q] kleinst is probleem als gn pos getallen in q-de rij: neg wrde in 0de rij dus wel verhoging doelf tie mr gn mogelijkheid al1 als simplex onbegrensd stoppen probleem als (M+1)e getal i/d rij met pos getal in kolom q = 0, rij wordt gekozen maar doelf tie verhoogd met 0. Enkel probl als 2e zulke rij lus lussen minder wss maken dr ad random mogelijke pivots te kiezen lussen vermijden: vaak versch neg getallen in rij 0: selectie: grootste increment: selecteer kolom met kleinste waarde in 0de rij (= grootste in abs waarde). Nt altijd grootste toename i/d doelfunctie (afh v rij p), kolomselectie samen met rijselectie bij gelijke waardes (rij kiezen wrdr kolom met laagste index uit basis verwijdert wordt) lussen nt mogelijk steepest descent: doelf tie vr elke kolom berekenen, grootste toename kiezen wnnr progr stopt bij q=m+1 optimale opl in a[0][m+1] wnnr progr stopt bij p=n+1 onbegrensde situatie 3

4 2.3 Dynamisch programmeren extreem ver doorgedreven recursie: om e groot probleem o/t lossen opsplitsen in kleinere problemen die onafhankelijk v elkr opgelost kunnen worden als nt precies weten welke kleinere problemen o/t lossen, allemaal berekenen & antwoorden bewaren vr later gebruik programmeren in de betekenis v het proces v beperkingen formuleren zodanig dat de methode toepasbaar is nt altijd mogelijk opl en vr kleinere problemen te combineren & tt e oplossing vr e groter probleem te komen # o/t lossen kleine problemen kan onaanvaardbaar groot zijn knapzak-probleem: zoek e combinatie v objecten die i/e knapzak passen zodanig dat de waarde maximaal is cost[i] = hoogste waarde die met knapzakcapaciteit i verkregen kan worden best[i] is het laatst toegevoegde item om dat maximum te bekomen tijd nodig vr oplossen knapzakprobleem met dyn. progr. NxM (N: soorten objecten, M: grootte knapzak) probl 1voudig o/t lossen als M nt groot als M, groottes of waarden v/d objecten reële getallen ipv gehele werkt het niet (fundamenteel probleem) voordeel: vroeger opgeloste deelproblemen moeten nt opnieuw bekeken worden dynamisch programmeren vindt optimale oplossing Matrix Chain Product: klassieke toepassing: minimaliseren v/d hoeveelheid rekenwerk nodig om reeks matrices v verschillende grootte te vermenigvuldigen 1e eigensch: de volgorde wrin matrices vermenigvuldigd worden bepaalt # bewerkingen # mogelijkheden om N matrices te vermenigvuldigen = Catalaans getal 4N 1 N πn opl met dyn. progr. is bottom-up : er is maar 1 manier om M 1 te vermenigvuldigen met M 2 & 1 manier om M 2 met M 3 te vermenigvuldigen; die kosten worden bewaard algoritme: Stap 1: verdeel de sequentie v matrices in 2 subsequenties Stap 2: bereken de minimale kost om elke subsequentie uit te rekenen subsequentie weer opsplitsen tt je enkel 2 matrices per subseq. over hebt (= maar 1 manier om deze te berekenen) Stap 3: tel deze kosten op, en tel de kost om de resultaten te vermenigvuldigen ook erbij Stap 4: herhaal dit voor elke mogelijke opsplitsing v/d originele matrixsequentie, en neem telkens de minimale kost veel redundante berekeningen (AB berekenen, later ng eens voor andere opsplitsing onthouden top-down ipv bottom up, complexiteit v N 3 nr N 2 ) manier om opeenvolgende triples te vermenigvuldigen w ook berekend adhv wat al berekend is 2e eig: dyn. progr lost matrix chain product -probleem op in tijd evenredig met N 3 en met geheugen evenredig met N 2. 4

5 Optimale Binaire Zoekbomen: nr sommige sleutels wordt vl vaker gezocht, best vaakst gezochte bovenaan in zoekboom plaatsen, aan elke knoop v/d binaire boom kennen we e integer toe, zoekfrequentie kost v/d boom berekenen dr frequentie v elke knoop te vermenigvuldigen met afstand tt de wortel & alles optellen (gewogen interne padlengte) verschil met Huffman codering: wel belangrijk om volgorde te respecteren (alle knopen links v/d wortel kleiner) algoritme: Stap 1: bereken de kost van elke mogelijkheid (n-1 sub-bomen) om 2 knopen in een boom (met die 2 elementen) te stoppen Stap 2: bewaar telkens de kleinste van de 2 en sla deze op, alsook welke v/d 2 de root is Stap 3: gebruik deze om de minimale kost om sub-bomen met 3 knopen te berekenen Stap 4: herhaal dit proces tot de kost & de root voor de optimale boom met n elementen is berekend 3e eig: dyn. progr. methode om e optimale binaire boom te vinden gebeurt in tijd evenredig met N 3 (N 2 sub-boom kosten, n operaties om deze te bekomen) & gebruikt ruimte evenredig met N 2 Representatie: nt altijd 1voudig, bepaal toestanden & fasen, probleem afbeeldbaar op klassiek probleem (routering, knapzak,...)?, methode moet vl effici enter zijn dan e opsomming v alle mogelijke oplossingen; de eerste toestand moet triviaal zijn & er moet e 1voudige recursieve methode bestaan om van een fase naar een andere te gaan Performantie: kan vl tijd & geheugenruimte in beslag nemen & probeer # te evalueren toestanden te minimaliseren 2.4 Zoekstrategiën voltooiing (garandeert strategie e opl te vinden als er 1 is?), tijdcomplexiteit (benadering v/d relatieve uitvoeringstijd v/h algoritme), geheugencomplexiteit (benadering v/h geheugengebruik), optimaal (vindt strategie beste oplossing als versch opl en?) terminologie: d = diepte 1e oplossing, b = branching factor = gemiddeld # afstammelingen v/e oplossing Breedte eerst 1. vorm e w8rij met wortelknooppunt 2. zolang w8rij nt leeg & doel nt bereikt controleer of 1e knooppt uit w8rij gelijk aan doel zoja: doe niets zonee: verwijder 1e knooppt uit w8rij & voeg alle kinderen ervan toe 8raan de w8rij 3. doel gevonden melden, anders falen v algoritme melden leidt nr minst diepe oplossing, nt altijd optimale uniforme kost zoeken, altijd beste knoop 1st expanderen (met laagste kost) & breedte 1st = speciaal geval wrin kost = diepte v/d knoop Diepte eerst 1. vorm w8rij met initieel enkel het wortelknooppunt (= root) 2. zolang wachtrij nt leeg en doel nt bereikt ga na of 1e knooppunt in w8rij = doel zoja: doe niets zonee: verwijder dat knooppt uit w8rij & voeg kinderen ervan toe voorraan 5

6 3. doel gevonden melden, anders falen v algoritme melden Zoeken met beperkte diepte vermijden te lange rekentijd dr heel diepe subtak te doorzoeken Iteratief zoeken = zoekdiepte initieel 1 herhalen: diepte 1st met gegeven diepte & diepte verhogen tt opl gevonden of zoekdiepte > langste pad Bidirectioneel zoeken bep vw en : minstens 1 gekende eindtoestand & stappen om tt e opl te komen zn omkeerbr 1. start vanaf beginpunt met breedte eerst 2. start vanaf eindpunt met diepte eerst 3. ga door tot paden elkaar ontmoeten 2.5 Branch & Bound eindige verz mogelijke opl en : alle opl en opnoemen & beste selecteren, behalve vr kleinste versies snel te rekenintensief, reduceert # opl en dr probleem voortdurend in deelproblemen o/t splitsen & op basis v lokale kennis de opl en die suboptimaal zijn te elimineren 1voudige implementatie = constructief: opl opbouwen met 1 element per stap: veronderstel probleem wrvan opl en bestaan uit eindige vectoren van de vorm (x 1,x 2,...,x k ), k variabel v opl tt opl verzameling v alle mogelijke opl en kan bekomen worden dr elke feasible waarde vr x 1 te nemen, daarna vr elke x 1 iedere compatibele x 2 beschouwen, wrna vr elke parti le opl (x 1, x 2,...) alle compatibele x 3 bestuderen, enz. volledige zoekboom doorzoeken nt geschikt vr grotere problemen takken die zkr nt nr optim opl kunnen leiden worden gesnoeid dmv onder- & bovengrens: bovengrens UB: opl moet minstens zo goed zijn (kost moet minstens kleiner zijn dan UB) ondergrens i/e partiële knoop i LB i = meest optimistische schatting v/d waarde die kan bereikt worden dr in knoop i verder te zoeken knopen wrvoor LB i UB nt verder onderzoeken (beste vr subtak > UB = max kost) wnnr gn enkele knoop nog verder onderzocht moet worden: UB = optim opl onderschatting: L 1 = kost v huidig pad, L 2 = goedkoopste volgende stap, L 3 = goedkoopste pad naar einde (F) v gelijk waar LB = L 1 +L 2 +L 3, behalve als huidig punt nr F leidt LB = L 1 +max(l 2,L 3 ) meer afsnijden rightarrow vlugger tt oplossing betere grenzen & vertakking: pad met kleinste kost eerst onderzoeken ng meer afsnijden ng vlugger efficiëntere manieren om kortste pad te zoeken adhv dyn progr ism branch& bound Grafen kleuren - voorbeeld! minimaliseer # kleuren nodig om knopen v/e graaf te kleuren zodanig dat buren nt zelfde kleur grafen = interessant model vr timetabling- & schedulingprobl en algoritme v Brown, gebaseerd op branch & bound met eenvoudige grenzen: 1. definieer volgordes: knopen 1, 2,... n, kleuren c 1, c 2,... Γ (i) = de buren v knoop i die aan i voorafgaan 2. zoek e initiële kleuring in volgorde v/d laagst geïndiceerde kleur 1st 6

7 3. bewaar de nieuwe oplossing, q = # gebruikte kleuren = bovengrens, bewaar huidige kleuring. identificatielijst J = lijst v backtrack knopen = knopen die je wil veranderen 4. Backtrack: (a) Zoek 1e knoop i die overeenkomt met kleur van bovengrens = kleur q (b) Pas J en Γ (i ) aan verwijder alle j < i uit J, stel J = J {i } & wachtrij = j J Γ (j) (c) backtrack tt o/h niveau v/d 1e knoop i/d w8rij = i met kleur q als i = k en knopen 1, 2,... k hebben kleuren c 1, c 2,... c k optimale oplossing, anders verwijder kleuren v alle i i 5. Branch (a) kleur i opnieuw i/d 1st toegelaten kleur (kleur 1,2... q-1), indien nt mog i = i & terug naar stap 3.2 (b) kleur overblijvende knopen (i +1...n) met kleuren 1...q-1 dr 1st toegelaten kleur te gebruiken. Als knoop i kleur q nodig heeft, i = i & terug naar stap 3.2, anders naar stap 2 ondergrenzen worden nt expliciet bijgehouden & 1e knoop met lokale ondergrens q = plaats wr kleur q vr 1st gebruikt 3 Lokaal Zoeken lokaal zoeken wordt gebruikt om problemen o/t lossen wrvoor exacte algoritmen (1e deel) te traag werken (te groot # alternatieven te bestuderen). voordeel: i/e aanvaardbare rekentijd toch e oplossing nadeel: gn garantie dat oplossing optimaal zoekruimte = verz v alle mogelijke oplossingen v/h probleem neighbourhood v/e oplossing = deelverz v/d zoekruimte met oplossingen bekomen dr 1voudige bewerkingen uit te voeren o/d huidige opl 3.1 Steepest descent minimalisatieprobleem: steepest descent maximalisatieprobleem: hill climbing Oplossen van combinatorische of nt-lineaire problemen (nt-lineaire heel moeilijk op te lossen) Kleine dimensies: herstarten lokale optimalisatie vanuit initiële punten deterministische globale optimalisatietechnieken Grote dimensies: helemaal moeilijk (ook vr lineaire problemen) Werkwijze: 1. Kies een initiële opl s in X stop := false HERHAAL: 2. Genereer een verz V opl en in N(s) Selecteer de beste s in V (zodanig dat f(s ) f( s) voor elke s in V ) if f(s ) f( s) then stop:=true; else s := s tot STOP In tegenstelling tot alg vebetertechn w hier beste oplossing telkens uit V gekozen 7

8 3. Neem volledige omgeving van s: V = N(s) 4. Indien volledige omgeving te groot (tijdrovend) deelverz V N(s) met V N(s) 5. Extreem geval: V = 1 (elimineert vgl tss elementen; gebruikt in simulated annealing) 6. Afwegen v kwaliteit v/d opl en inspanning om een grotere omgeving te doorzoeken Zie voorbeeld personeelsplanning! 3.2 Metaheuristieken Moeilijke optimalisatieproblemen zoektocht nr efficiënte opl-methoden Inspiratie gezocht in natuur; andere wetenschappen: materiaalkunde, biologie,... Tabu search, Simulated annealing, Genetische algoritmen, Mierenalgoritmen, Scatter search, variabele neighbourhood search, GRASP, memetic algorithms, Tabu search Uitbreiding v Zoeken in een omgeving, zoeken in Al context Eenvoudige implementatie - eenvoudig uit te breiden met nieuwe bep en, doelf tie Alg heuristsiche procedure Goed afgestemde implementaties generen opl die soms nog nt geëvenaard zijn met andere technieken Voorkomt vastlopen in lokaal optimum ( hill climbing, steepest descent) Probleem: eens in lokaal optimum zal elke stap in omgeving een slechtere waarde van de doelf tie veroorzaken Flexibel (adaptief) geheugen Iteratieve techn die een verz opl voor een probleem (X) doorzoekt, door herhaaldelijk zetten (moves) uit te voeren van een opl s naar een opl s in de omgeving (neighbourhood) N(s) van s De bedoeling met zetten op een efficiënte manier tot een opl te komen die goed is(in termen van een te max/min eren doelf tie f(s)) V 1 Opl van een lokaal optimalisatieprobl om een s te vinden die overeenkomt met: min{f(s ) s V N(s)} lokale optimalisatie uitvoeren op een strategische manier (systematisch werken met het geheugen om ook kennis buiten de f tie f(s) en N(s) te gebruiken) zonder sturing beste geval tot lokaal optimum, waar het stopt algoritme sturen zet van s nr s (in V ) kan uitvoeren, zelf als f(s ) f(s) Probleem: gevaar om in lus terecht te komen (soms na interval v tussenliggende opl, omgeving is vaak al voldoende veranderd weinig gevaar voor lussen) Gebruikt geheugenstructuur verbiedt zetten die leiden naar recent bezochte opl De omgeving afh v/d tijd (iteratie): beter N(s,k) dan N(s), k = iteratienummer Opl v/d lokale optimalisatie w bewaard zodat ze niet verloren raakt 8

9 Werkwijze tabu search met aangepaste omgeving: 1. Kies een initiële opl s in X s := s en k:= 1 2. While stopvw niet bereikt do (a) k := k+1 (b) Genereer V N(s, k) (c) Kies beste s in V (d) s := s (e) if f(s ) < f(s) then s := s 3. end while Stopcondities: procedure stopt nt, ook als globaal optimum gevonden is stopcriterium nodig! Mogelijke stopcondities: optimale opl gevonden N(s, k+1) = (soms beter om toch een random zet uit te voeren) k > max toegelaten # iteraties # iteraties uitgevoerd sinds laatste verbetering > toegelaten # Geheugenstructuur: gebaseerd op recente opl tabulijst T die de T meest recent bezochte opl opslaat voortdurend w lijst v/d laatste stappen aangepast, er w gecontroleerd of de volgende stap in die lijst staat (tabu is) meer praktisch: N(s) definiëren in termen van zetten waarmee de opl s in andere toep k omgezet w voor elke s: verz M(s) van legale zetten m die op s k toegepast w om nieuwe opl s = s m te bekomen dan wordt N(s) = {s m M(s) met s = s m} Best een verz zetten gebruiken die omkeerbaar is: m M(s), m 1 M(M(s)) zodanig dat (s m) m 1 = s in dit geval kan T bestaan uit de laaste T omgekeerde zetten van de zetten die uitgevoerd zijn Aspiratiecriteria: Wnnr de tabu-vw gebaseerd zijn op geselecteerde attributen va nzetten, is het mogelijk dat ook zetten naar nog nt eerder bezochte opl tabu zijn Veronderstel een tabu-zet m die leidt naar een opl die beter is dan de beste tot nu toe gevonden best om tabu status te negeren, en zet accepteren Tabu search algoritme: 1. Gegeven: opl x met f(x ) = z 2. Start: stel x = x met f(x) = z 3. Iteratie: zolang niet voldaan is aan het stopcriterium: 9

10 (a) selecteer beste zet van x naar x met waarde f(x ) Indien toegelaten: niet tabu Inien een tabu zet x beter is dan z, negeer de tabu-vw (b) onderhoud de tabulijst, bereken de zetten die tabu moeten zijn (c) voer de zet uit: x=x, f(x)=f(x ) (d) als f(x) > z dan z = f(x), x = x 4. Resultaat: x is de beste gevonden opl met waarde v/d doelf tie z Zie terug voorbeeld personeelsplanning! Intensificatie Observeren of goede opl gemeenschappelijke kenmerken hebben Intensificatie: op sommige momenten omgeving beperken tot opl en die goede kenmerken vertonen Combinatie met beam seading op een interessant punt Diversificatie Tegengewicht vr intensificiatie: zoeken nr opl en met variërende kenmerken Vb. overgaan naar opl en die sterk verschillen van voorgaande opl en (en nt met eenvoudige zetten te bereiken) Tabu search alterneert best tussen intensificatie (veelbelovend gebied v/d oplossingsruimte) en diversificatie (om ook andere gebieden te bereiken) Verfijningen: Variabele tabu lijstlengte: vb zolang verbetering lengte laten afnemen, zolang gn verbetering lengte laten toenemen Variabele neighbourhood search = (random) initiële opl en Shifting penalty: variëren v/d doelf tie (overtredingen anders aanrekenen) om weg te geraken uit lokale optima Strategic oscillation: afwisslend in feasable en in infeasable gebied zoeken 3.4 Simulated Annealing (Dr. Graham Kendall) Drempel algoritme Gebaseerd op proces v koelen en kristallisatie: wnnr gesmolte materiaal gekoeld w bewegingsvrijheid moleculen. Structuur v resulterende vaste stof afh v snelh temp. Snel koelen vele kiemen in vaste stof, traag koelen (uitgloeien = annealing ) zo zuiver mogelijk kristal, minimum aan inwendige spanningen Opeenvolgende opl en v/e combinatorisch optimalisatieprobl voorstellen op basis v/d overeenkomsten met een fysisch systeem met deeltjes: Opl en v/h optimalisatieprobl zijn equivalent aan toestanden v/h fysisch systeem De kost v/e opl is equivalent aan de inwendige energie v/e toestand (= fitness, kwaliteit) De temperatuur vormt een controleparamter In simulated annealing neemt de wss-heid wrmee slechtere opl n aanvaard w af met T 10

11 behoort tot de klasse van drempel (threshold) algoritmen in local search vrij succesvol voor breed spectrum v praktische probl en bevat stochastische component 1, die een theoretische analyse v/h asymptotische gedrag mogelijk maakt slaagt erin te ontsnappen uit het lokale optima stuurt door af en toe een opl s, een niet-verbeterende zet s uit te voeren, met een wss heid die afhangt van f(s), f(s ) en een parameter die afhangt van de T (virtueel) alle zetten in een omgeving evalueren aan beste zet de hoogste wss heid voor selectie toekennen, 2 e beste 2 e 2 hoogste wss heid wss heden nemen exponentieel af overeenkomstig de grootte v/d verbetering [ ] (Ej E i ) p j exp kt p j wss heid om de zt van i nr j uit te voeren E i waarde v/d doelf tie voor toestand i (energieniveau) E j waarde v/d doelf tie voor toestand j (E i én E j 0) k normalisatiefactor (Boltzmann c te ) T controlefactor (temperatuur) Simulated Annealing algoritme: 1. Genereer initiële oplossing s 2. s = s (beste oplossing) 3. bepaal starttemperatuur T 4. while niet bevroren (a) while geen evenwicht voor T genereer random opl s i/d omgeving van s if f(s ) f(s) then s = s if f(s) < f(s ) then s = s else genereer random getal r uit [0,1] (uniform) if r < exp(-(f(s )-f(s))/kt) then s = s (b) verlaag T return s Parameters bepalen: (bij voorkeur door experimenteren) Starttemperatuur: moet hoog genoeg zijn om elke opl i/d zoekruimte te kunnen bereiken 1 Stochastische variabele (of toevalsgrootheid of toevalsvariabele) is een begrip uit de kansrekening. In veel kansexperimenten, zoals steekproeftrekkingen, wordt uit een populatie door toeval een element, b.v. een willekeurige voorbijganger, aangewezen. We vragen deze voorbijganger naar zijn leeftijd, inkomen, e.d. Vooraf weten we niet wat we als antwoord zullen krijgen, achteraf wel, maar bij herhaling treffen we vermoedelijk een andere voorbijganger, met zeer waarschijnlijk andere antwoorden. Om in de theorie over de leeftijd van een willekeurige voorbijganger te kunnen spreken is het begrip stochastische variabele ingevoerd. Het toeval wijst een uitkomst aan - een of andere voorbijganger - en aan deze uitkomst wijzen we een getal toe - z n leeftijd. 11

12 Eindtemperatuur: toestand moet bevroren zijn Temperatuurafname: Evenwicht bij elke temp veel iteraties nodig Compromis: temp-afname in stappen vb: Lineair Volgens T = αt met α < 1 # iteraties op elke temp Typisch starten met hoge T om heel intensief te zoeken (max verbetering), daarna geleidelijk T verlagen als zoeken moeilijker wordt (meer diversicatie) Temperatuur dynamisch variëren Verschil tss SA (Simulated Annealing) en TS (Tabu Search) SA diversifieert door randomisatie TS door nieuwe zetten te verplichten Praktijk: Hoe temperatuur normaliseren? Hoe temperatuur dynamisch aanpassen? traag koelen optimale oplossing! 4 Multicriteria Optimalisatie meeste reële optimalisatieprobl en w voorgesteld als nt-lineaire probl en met objectieven w vaak geconverteerd naar enkelvoudige optimalisatietechnieken probleem: fundamenteel verschil tss enkelvoudige en multicriteria optimalisatietechnieken multicriteria oplossing nt een optimale oplossing voor elk v/d criteria 4.1 Enkelvoudige Multicriteria optimalisatie meestal een verz v gelijkwaardige optimale opl en in plaats v/e enkelvoudige opl = optimalisatiedoelen verz vormt een front en wordt het Pareto front genoemd Doelstelling: convergeren naar de Pareto optimale opl en verz maximaal verspreide opl en behouden 2 onafhankelijke doelstellingen een optimalisatiealgoritme moet daarop inspelen beslissingsvariabelen zelf vormen multidimensionale zoekruimte: S criteria vormen samen een multidimensionale ruimte: criteria ruimte Z (verz met kwaliteit waardes v opl en, max hier zoeken dan trug nr S om opl te vinden!) 12

13 voor elke opl i/d verz beslissingsvariabelen punt i/d criteria ruimte, voorgesteld: f(x) = z = (z 1, z 2,..., z m ) T er is een afbeelding v/e N-dimensionale opl-vector naar een M-dimensionale doelvector Criteria ruimte: zoekproces v/e algoritme gebeurt i/d ruimte v/d beslissingsvariabelen goede multicriteria algoritmen info uit criteria ruimte gebruiken Kiezen uit gelijkwaardige oplossingen: los v/d gekende criteria spelen soms andere belissingsmotieven een rol vb v/d auto: hoeveel passagiers, welk verbruik, dagelijks af te leggen afstand, enz... Werkwijze: Stap 1: Stap 2: zoek gelijkwaardige optimale opl en i/e breed bereik v doelwaarden kies een opl uit die verz op basis v andere informatie (hogere orde) Ideale mulicriteria procedure: (zie figuur 1) Figuur 1: Ideale multicriteria procedure hogere orde info plaatst de criteria impliciet i/e bepaalde volgorde indien volgorde gekend eenvoudige manier voor optimaliseren multicriteria enkelvoudig criterium Preferentie multicriteria procudure: (zie figuur 2) 13

14 Figuur 2: Preferentie multicriteria procedure vormt samengesteld doel door gewogen som te nemen v/d doelen (gewicht voorkeur) opl bekomen met dergelijke methode subjectief wijzigingen i/d preferentievolgorde zorgen (nrml gezien) voor een andere opl 4.2 Nt-gedomineerde opl en Pareto optimale opl en Objectievere methodes: Ideale doelvector voor elk v/d M conflicterende criteria bestaat er een andere optimale opl ideale doelvector is geconstrueerd met die individuele optimale waarden m-de component v/d ideale doelvector z wordt bekomen door: { Minimaliseer f m (x) s.t. x S Ideale vector is dan: z = f = (f 1, f 2,..., f M ) T komt meestal niet overeen met een bestaande opl indien toch zou bestaan de criteria conflicteren nt al bestaat ideale opl nt kwaliteit opl bepaald dr afstand tot ideale opl (kennis ondergrens wordt soms gebruikt voor normaliseren) Utopische doelvector ideale doelvector elke doelf tie min 1 opl in feasable zoekruimte die dezelfde waarde heeft als overeenkomstig element i/d ideale opl voor sommige algoritmen is een strikt betere doelwaarde nodig voor elke opl i/d zoekruimte utopische doelvector z is elk v/d componenten marginaal kleiner dan die v/d ideale doelvector: z = z ε i > 0 voor alle i = 1, 2,..., M zowel ideale als utopische doelvector stellen een niet-bestaande opl voor 14

15 4.2.3 Nadir doelvector nadir doelvector z nad stelt bovengrens voor van elk criterium i/d volledige Pareto optimale verz (en nt volledige zoekruimte) ideale doelvector die ondergrens van elk criterium voorstelt i/d volledige feasable zoekruimte nt verwarren met een vector v objectieven die de slechtste feasable functiewaarden voorstelt f max i kan bestaande of nt-bestaande opl voorstellen, afh v/d convexiteit en continuïteit v/d Pareto optimale verz kennis v/d nadir en ideale doelvectoren kan gebruikt worden om de criteria te normaliseren Genormaliseerde doelvector: f norm i = f i zi z nad zi i Figuur 3: Verschillende vectors Dominantie onderstel M criteria operator tss 2 opl en i en j : i j = opl i is beter dan j voor bepaald criterium analoog: i j = i is slechter dan j voor dat criterium operatoren laten toe min tie en max tie criteria algemeen te behandelen opl x 1 domineert opl x 2 als: Eigenschappen: x 1 niet slechter is dan x 2 voor alle criteria: f j (x 1 ) f j (x 2 ) voor alle j 1, 2,..., M x 1 beter is als x 2 voor tenminste één criterium: f j (x 1 ) f j (x 2 ) voor ten minste één j 1, 2,..., M 3 mogelijke relaties tussen opl 1 en 2 1. opl 1 domineert opl 2 2. opl 2 domineert opl 1 3. de opl 1 en 2 zijn nt dominant t.o.v. elkaar dominantie is: nt reflextief: opl i kan zichzelf niet domineren 15

16 nt symmetrisch: als i j kan j opl i niet domineren nt antisymmetrisch want niet symmetrisch transitief: a b & b c a c als opl p opl q nt domineert betekent dat nt dat opl q opl p domineert Niet gedomineerde verzameling alle mogelijke paren opl bestuderen om na te gaan welk opl welke andere domineert, en welke opl nt gedomineerd zijn vb zie figuur: 3 en 5 zijn nt gedomineerd door een andere opl i/e verz v opl en P, nt gedomineerde verz v opl en P = verz van opl en die nt gedomineerd zijn door een element v/d verz P Pareto optimale verzameling wanneer P = volledige zoekruimte (P=S) nt gedomineerde verz = Pareto optimale verz voor een zelfde zoekruimte hangt de Pareto optimale verz af v/d criteria (te min en of te max en ) bestaat altijd uit opl en die zich ad rand v/h feasible deel v/d zoekruimte bevinden dominantieregels volstaan om met alle mogelijke soorten criteria om te gaan, vaak worden alle criteria omgevormd tot min tie criteria Zoals bij enkelvoudig criterium globale en lokale Pareto optimale verz en Procedures: Globale Pareto Optimale Verzameling: nt gedomineerde verz v/d volledige feasible zoekruimte S Lokale Pareto Optimale Verzameling: wnnr voor elke x P er gn opl y bestaat (in de omgeving van x zodanig dat y x ɛ met ɛ een klein positief getal) die elk element v/d verz P domineert, opl en v/d verz P behoren tot lokale Pareto optimale verzameling Procedure 1: beste nt gedomineerde front zoeken Stap 1: Initialiseer P = 1. Stel # opl i=2 Stap 2: Stel j =1 Stap 3: Controleer opl i en opl j uit P op dominantie Stap 4: Als i j verwijder het j de element uit P (P = P \{P (j) }), j ++ en ga naar Stap 3. Anders, ga naar Stap 5 Als j i i++ en ga naar Stap 2 Stap 5: Voeg i toe aan P (P = P i). Als i < N, incrementeer i met 1 en ga naar Stap 2. Anders, stop met P als de niet gedomineerde verz algoritme voert (N 1) = N(N 1)/2 dominantiecontroles uit in werkelijkheid # berekeningen lager omdat meestal ook (gedomineerde) opl en uit P verdwijnen Procedure 2: niet gedomineerde sorteerprocedure Stap 1: Voor elke i P, n i = 0, initialiseer S i =. j i en j P, voer Stap 2 uit en ga dan nr Stap 3 Stap 2: Als i j, aanpassen v S i = S i {j}. Anders als j i, stel ni = n i + 1 Stap 3: Als n i = 0, behoud i i/h eerste nt gedomineerde front P 1 (gelijk aan P i/d vorige procedure) Stel front teller k = 1 Stap 4: Zolang P k, voer de volgende stappen uit 16

17 Stap 5: Initialiseer Q = om de volgende nt gedomineerde opl en op te slaan. Voor elke i P k en voor elke j S i : Stap 5a: Stel n j = n j 1 Stap 5b: Als n j = 0, behoud j in Q of stel Q = Q {j} Stap 6: Stel k = k + 1 en P k = Q. Ga naar Stap 4 dominantieteller n i : # opl en die opl i domineren S i verz v opl en die door i gedomineerd worden opl i wordt max N 1 maal bezocht voor zijn dominantieteller 0 wordt 4.3 Oplossingsmethodes Klassieke methode: gewogen som eenvoudigste methode, vaakst toegepast omzette v/e verz criteria i/e enkelvoudig criterium door elk criterium te vermenigvuldigen met gewicht (bep dr gebruiker) probleem: welke gewichten? Formule: Minimaliseer: F (x) = M m=1 w mf m (x) s.t. g j (s) 0 j = 1, 2,..., J h k (x) = 0 k = 1, 2,..., K w m ( [0,1] uniform) stelt het gewicht voor v/h m-de criterium vaak kiest men de gewichten zodanig dat M m=1 w m = 1 door gewichten te variëren ander Pareto optimaal punt bekomen Problemen: 1. Uniforme keuze gewichtsvectoren nt noodzakelijk uniforme verz Pareto optimale opl en 2. procedure nt bruikbaar om Pareto optimale opl en te vinden die op nt-convexe deel v/h Pareto optimaal front liggen figuur 4 links Figuur 4: Oplossingmethodes: gewichten vs ɛ-constraint 17

18 4.3.2 ɛ-constraint methode bedoeling: problemen vermijden van gewogen som bij nt convexe zoekruimten 1 v/d criteria behouden en andere beperken binnen ingestelde grenzen (gekozen door gebruiker) Formule: Minimaliseer: f µ (x) s.t. f m (x) ɛ m m = 1, 2,..., M en m µ g j (z) 0 j = 1, 2,..., J h k (x) = 0 k = 1, 2,..., K ɛ m stelt bovengrens voor v/d waarde f m Probleem: 1. opl sterk afh v/d gekozen ɛ-vector 2. voor ɛ a 1 (in fig 10 slides) gn feasible opl, voor ɛ d 1 zoekruimte volledig feasible figuur 4 rechts Evolutiemethode Dit mag je eens lezen (voor de liefhebbers) 4.4 Voorbeeld Voorbeeld ivm personeelsplanning zie slides! 4.5 Conclusie Multicriteria benadering voor multicriteria probleem Efficiënt om beperkingen van aard te modelleren Gebruikers hebben controle over de compensaties v beperkingen Uitdagingen: interactieve multicriteria optimalisatie, grote aantallen criteria, performantie metrieken, benchmarking,... 5 Geheeltallig programmeren (Integer programming) = lineair programmeren + branch & bound 5.1 Inleiding Basis: lineair programmeren Variabelen, beperkingen, functies Beperkingen en doelfuncties moeten lineair zijn Extra beperkingen: enkele (of alle) variabelen moeten geheeltallig zijn Geheeltallige variabelen: voordeel: # aantal problemen dat kan gemodelleerd worden is veel groter, nadeel: veel moeilijker op te lossen dan zonder geheeltallige variabelen Richtlijnen om problemen succesvol te modelleren & op te lossen: Formulering & Relaxatie Voorbeeld in slides: Lokaliseren van faciliteiten! 18

19 5.2 Lineaire Relaxatie Met geheeltallig programma (IP) komt lineair programma (LP) overeen: lineaire relaxatie (LR) Gevormd door de geheeltallige beperkingen te laten vallen Nieuw probleem = minder beperkt dan oorspronkelijke Als IP een minimalisatieprobl is, dan optimale waarde vd doelf tie v LR optimale waarde v IP Als IP een maximalisatieprobl is,dan optimale waarde vd doelf tie v LR optimale waarde v IP Als LR = infeasible, dan IP ook Als alle variabelen i/e optimale opl ing van LR = geheeltallig, dan die opl ing ook optimaal voor IP Als coef en v/d doelf tie gehele getallen zijn, dan: vr min tie probl: optimale waarde v IP kleinste geheel getal > optimale waarde vr LR vr max tie probl: optimale waarde v IP grootst geheel getal < optimale waarde vr LR Nut van LR opl e, : levert grenzen vr de optimale waarde v IP, en levert (in beste geval) optimale opl ing vr IP (Zie terug voorbeeld!) verder uitwerken met een intermediaire branch & bound boom! Stoppen met boom uitwerken als optimale gevonden is!! (Niet hele boom uitwerken!) Nadelen: Branch & bound leidt niet altijd snel tot een opl ing, wnnr nergens bound mogelijk is probl met n 0/1 variabelen 2 n probleem Voordeel: IPs veel meer toepassingsbereik dan LPs Problemen op een creatieve manier formuleren zo nadelen minder doorwegen 5.3 Creatieve Formulering Bekijk zeker alle vb-en in de slides!!! Geheeltallige hoeveelheden Toegevoegde precisie v/e geheel getal niet altijd nodig! (Vb: tv toestellen, opl ing LP = niet de moeite voor B&B, gwn 202 of 203 nemen) Niet nodig om relaxatie toe te passen (wel voor kleine hoeveelheden!) Binaire beslissingen Kiezen uit projecten A, B, C, D om in te investeren (met gegeven kapitaal en opbrengst. Bij bep bedrag, welke projecten best investeren?) Vaste kosten In productieomgevingen nemen productiekosten evenredig toe met hoeveelh, behalve wnnr er niet geproduceerd wordt: Niet uit te drukke met LP, wel mogelijk met extra 0/1 variabele y (1= productie, 0= gn productie) x en y moeten aan elkaar gelinkt worden (anders is een mog resultaat: y = 0, x = 10) variabelen linken dr bovengrens aan x te stellen: x My, big M model 19

20 5.3.4 Logische beperkingen Onmogelijk met LP: vb. binaire variabelen y 1, y 2, y 3, y 4, y 5 die overeenkomen met beslissing om magazijn te openen op locatie 1, 2, 3, 4 & Sequentieproblemen Volgordes bepalen, planning: vb product i met bewerkingstijd p i op een machine die maar 1 product tgl kan bewerken 5.4 Formuleringen met sterke relaxatie = IP formuleringen mogelijke v/e probleem goede formulering bewezen optimale opl ing best: formulering zoeken waarvan lineaire relaxatie overeenkomstig lineair probl Zie voorbeeld raffinaderij Niet eenvoudig om snijvlakke te vinden alg procedure: Gomory-Chvatal procedure Vb voor beperkingen met nt-negatieve variabelen: 1. Neem 1 of meedere beperkingen, x nt-negatieve constante (mag zijn vr elke beperking), tel resulterende beperkingen op i/e enkelvoudige beperking 2. Rond elke coef i/h linkerlid v/d beperking af nr beneden 3. Rond rechterlid v/d beperking af nr beneden Resultaat: beperking die gn enkele feasible 0/1 opl ing afsnijdt, nieuwe beperking kan snijvlak vormen als effect v/h rechterlid afronden > effect v/d afronding v/d coef. Voorbeeld: zie slides! De 3 stappen hebben een effect: 1. Gn effect, voegt gn nieuwe feasible waarden toe en verwijderdt er gn 2. Verzwakking v/d beperking mogelijk extra feasible breukwaarden 3. Versterking v/d beperking ideaal tot de verwijding v alle breukwaarden big M formuleringen meestal niet wenselijk Lineaire relaxatie v dergelijke formuleringen laat meestal breukwaarden toe vb: x 1 + x 2 + x y (alle variabelen 0/1) Bedoeling: uitdrukken dat x-en slechts 1 kunnen zijn als y dat ook is Leidt tot heel slechte B&B-bomen Beter: x 1 + x 2 + x 3 3y (maak de grote M zo klein mogelijk) Nog beter: x 1 y, x 2 y, x 3 y 20

21 5.5 Symmetrie vermijden Geheeltallig programmeren kan heel inefficiënt zijn vr modellen met veel symmetrie { y j = 1, z j = 0, w j = 0 Vb: raffinaderijen, per locatie 3 soorten y j, z j, w j : stel y j = 0, z j = 1, w j = 0 = hetzelfde, 1 soort gebouwd, voor B&B zijn er opl en! gedraagd zich slecht door symmetrie Vermijden door: beperkingen toevoegen, variabelen vastleggen, formulering aanpassen Voor faciliteiten: probleem is eenvoudigst om beperkingen toe te voegen y i z j w j voor alle j z j kan nu pas 1 zijn als y j dat ook is, enz. symmetrie gedeeltelijk doorbroken Andere manier: variabelen herdefiniëren: stel y j = # raffinaderijen op locatie j, verwijdert symmetrie maar de lineaire relaxatie is nt meer zo sterk als i/h geval met binaire variabelen Variabelen vastleggen: voorbeeld grafen kleuren!! Zeker in slides bekijken 5.6 Formuleringen met veel beperkingen Betere formuleringen verz beperkingen die te groot zijn vr i/d formulering op te nemen vb. beperkingen met nt negatieve coef: a 1 x 1 + a 2 x 2 + a 3 x a n x n b met x i 0/1 variabelen, veronderstel een deelverz S v/d variabelen zodanig dat i S x i S 1 vormt een geldig snijvlak, ze snijdt breukopl en af als S minimaal is: cover constraints dergelijke beperkingen opnemen in formulering? # kan heel groot zijn, niet aangewezen om mee te nemen in de formulering, enkel de beperkingen die nodig zijn! Voorbeeld slides!! cover beperkingen niet altijd eenvoudig te zien vb heuristiek: variabelen ordenen volgens afnemende a i x i, dan toevoegen aan S tot i S a i > b deze heuristiek garandeerd niet dat optimale opl ing gevonden wordt maar ze zorgt wel voor een veel krachtiger formulering Formaliseren: Branch & Cut methode formulering heeft expliciete (Ax b) en impliciete (A x b ) beperkingen, maximaliseer doelf tie cx, alle x zijn 0/1 variabelen Algoritme: Stap 1 Los LP op: Max cx, s.t. Ax b op om de optimale relaxatie oplossing x te bekomen Stap 2 Als x geheeltallig is, stop, x is optimaal Stap 3 Zoek beperking a x b uit impliciete beperkingen zodanig dat a x > b. Gevonden? toevoegen aan expliciete verz en naar Stap 1. Nt gevonden? voer B&B uit op huidige formulering wordt separation problem genoemd 21

22 5.7 Formuleringen met veel variabelen Variabelen toevoegen aan formulering kan ook + effect hebben Zeker goed bekijken in slides!! Vb Graph colouring Extra variabelen generen: Los formulering op met beperkt aantal variabelen Los LR probleem op en bereken duale waarden π Bepaal (mbv π) of er variabelen zijn die opl ing kunnen verbeteren door toe te voege aan formulering Indien niet, LR opgelost. Indien wel, toevoegen aan formulering en herhaal wnnr LR opgelost is en de opl ing = geheeltallig, ook = optimaal Maximum weighed independent set (MWIS) maximum gewogen onafhankelijke verzameling probleem moeilijk probl maar er bestaan methoden voor Opletten bij de branch, mag gne ffect zijn o/h MWIS deelprobleem wnnr vb op y i variabelen wordt vertakt (=0/1), kan MWIS nt meer gebruikt worden Als y i = 0, zoeken we verbeterde verz, maar S j is nt verbeterend, dus moeten we 2e beste verz zoeken, enz.. Variabelen genereren + geschikte branching regels + variabelen genereren vr de deelprob = branc & price 6 Complexiteit (Belangrijkste hoofdstuk!) 6.1 No free lunch Stelling: Geen enkel zoekalgoritme is beter dan een ander wanneer het gedrag beschouwd wordt voor alle mogelijke discrete f ies. Complexiteitstheorie: bestudeert de tijd en geheugencomplexiteit van algoritmen. Enkel discrete functies beschouwen random enumeratie: 1 vd minst intelligente algoritmen steekproeven i/d opl en -ruimte (risico op herhaaldelijk bekijken v dezelfde opl ing ) volgens no free lunch stelling is gn enkel algoritme beter dan random enumeratie = tss stochastische en deterministische algoritmen deterministisch alg: bereikt vanuit gegeven opl altijd dezelfde andere opl bv. steepest descent stochastische alg: tijdens zoeken worden veel random beslissingen genomen bv. simulated annealing 22

23 6.2 Complexiteit, N, NP bekende complexiteitsklassen: P en NP probleemklasse P (= Polynomiaal): verz problemen die in polynomiale tijd (O(n k ) k = integer) opgelost kunnen worden o/e deterministische Turing machine (theoretisch model) alg: worden beschouwd als haalbare problemen probleemklasse NP (niet-deterministisch polynomiaal ( niet-polynomiaal)): verz problemen die in polynomiale tijd opgelost kunnen worden o/e niet-deterministische Turing machine niet-deterministische Turing machine: keuzes maken zodat nt alle berekeningen nodig zijn, de berekening zoekboom probleem is in NP als zoekboom polynomiaal is in hoogte; het # knopen kan exp zijn als alle zoekpaden in parallel doorlopen in polynomiale tijd een opl ing bekomen als deterministisch juiste pad i/d zoekboom bepaald kan worden voor elk probleem, probleem behoort tot klasse P alle problemen in P behoren ook tot NP algoritmische kloof : indien de bewezen complexiteit v/e probl < complexiteit v/h beste algoritme tot nu toe gekend bv. de complexiteit van sorteren is O(NlogN) (bewezen), er bestaan algoritmen die sorteren in O(NlogN) gn algoritmische kloof als sorteeralgoritme sneller werkt dan O(NlogN), speciaal ontworpen vr een bep deelverz van problemen TSP: travelling salesman problem: bestaat wel algoritmische kloof enige algoritme dat gegarandeerd nr een optimale opl leidt enumeratie best gekende methode: slechtste geval een complexiteit van O(N!) voor een probl met N steden nog niet bewezen dat de complexiteit v/h TSP zodanig is dat het probl nt in polynomiale tijd kan opgelost worden klasse NP compleet: NP compleet NP probl R is NP compleet als R is NP-hard & R NP R is NP-hard = minstens even moeilijk op te lossen is als elk ander probleem in NP R is NP-hard = NP-compleet probl R 0 bestaat elk geval van R 0 te herformuleren als een geval v R in deterministische polynomiale tijd R moet even moeilijk zijn als R 0 vermits we niet weten hoe optimale opl te zoeken vr NP-hard probl, beperken tot benaderende opl, die wel in polynomiale tijd te berekenen zijn 6.3 Aanbevelingen Zoekalgoritmen: algemeen? specifiek? tijd-kost afwegingen maken probl-specifieke info gebruiken indien mogelijk groot verschil tss benchmark probl en reële probl 23

24 6.4 Tijd- en geheugencomplexiteit Analyse van algoritmen: bepalen v/d hoeveelheid uitvoeringstijd en geheugenruimte Een algoritme = gespecificeerde verz instructies die computer volgt bij oplossen v/e probl Hoe de efficiëntie v algoritmen vergelijken? Implementeren als programma s: uitvoeren op een set van inputs meten hoeveel resources elk gebruikt nadeel: 2x implementeren, nt noodz allebei even goed geschreven, keuze testprobl kan 1 v/d 2 bevoordelen betere techniek: asymptotische analyse (schattingstechniek) Tijdscomplexiteit: invloedsfactoren uitvoeringstijd: hardware: snelheid CPU, bus, randapparatuur competitie met andere gebruikers van de resources programmeertaal en kwaliteit van de code programmeervaardigheid # stappen: # basisbew om een zekere grootte v input te verwerken uitvoeringstijd mag nt afh zijn v/d specifieke waarden v/d operanden inputgrootte: # inputgegevens dat verwerkt wordt VOORBEELD: sorteren van een aantal elementen (lengte van de lijst elementen) bewerkingen op matrices (grootte van de matrix) Model geldt enkel voor sequentiële verwerking uitgaan v/e standrd instructieset, alle basisinstructies (+,*,=) nemen 1 tijdseenh in beslag aannemen dat alle gehele getallen (int) een zelfde vast formaat hebben onbeperkt RAM-geheugen Tekortkomingen basismodel: nt alle basisinstructies worden in exact dezelfde tijd uitgevoerd Functie Benaming c constant log(n) logaritmisch n lineair n.log(n) n.log(n) n 2 kwadratisch n 3 kubisch 2 n exponentieel Tabel 1: Functies in stijgende orde van toename cn: met c = c te : lineaire orde v toename 24

25 n 2 : kwadratisch algoritme, f tie v/d uitvoeringstijd heeft dominante term n 2 in praktijk meestal onbruikbaar bij inputgrootte 1000 n 3 : kubisch algoritme: input v enkele 100-den nt haalbaar n log(n): logaritmisch: dominante term is n log 2 (n) 2 n : exponentieel: onaanvaardbaar duur, zelfs vr kleine waarde v n Gemiddelde, beste en slechtste uitvoeringstijd: bv. doorzoeken v/e array om de positie v/e geg waarde K te bepalen: afh v/d plaats van K i/d array T b (n) best mogelijke: 1 T s (n) slechtst mogelijke: n T g (n) gemiddeld: n/2 Nut v/d beste: als kan aangenomen worden dat best mogelijke het meest waarschijnlijk is Nut v/d slechtste: belangrijk vr real-time toep en waarin bovengrens vr de uitvoeringstijd gekend moet zijn (bv. in luchtverkeersgeleidingscentrum) Asymotische analyse: Constanten v/d lagere orde termen negeren als schatting gemaakt wordt v/d uitvoeringstijd Bv. f(n) = 10n 3 + n n + 80 Voor n = 1000 is f(n) = Enkel de kubische term in rekening te brengen fout = 0,01% Het in rekening brengen v/d leidende c te is nt zinvol omdat de exacte waarde v/d uitvoeringstijd toch afh v/d computer Gedrag v/d f tie is nt zinvol vr kleine inputwaarden dus hier best het eenvoudigste algoritme gekozen belangrijk: de orde v toename: O-notatie Orde v toename v/e kwadratische f tie wordt voorgesteld door O(n 2 ) Gedrag van de uitvoeringstijd voor voldoende grote inputgroottes Bovengrens vr de uitvoeringstijd geeft aan wat hoogste orde v toename is die een algoritme kan hebben ( slechtst mogelijke uitvoeringstijd vr een gegeven inputgrootte n, wel bovengrens vr de orde v toename) Zie voorbeelden in de slides! Bovengrens en O-notatie Ondergrens en Ω-notatie: analoog Notatie f(n) = O(g(n)) Relatieve oder van toename toename van f(n) is toename van g(n) Tabel 2: Betekenis v/d asymptotische notatie 25

26 6.5 Besluit: tijd ruimte tijd/ruimte tradeoff-principe: reductie in tijd alleen bekomen door ruimte op te offeren en vice versa Voorbeeld: opslaan v 32 logische waarden 32 int waarden gebruiken: 1 vr elk logische waarde 128 bytes in Java Een logische waarde kan slechts 2 waarden aannemen zodat de 32 bits v/e int kunnen volstaan om de waarden op te slaan Probleem: vergt op de meeste pc s meer tijd om 1 enkele bit uit een int waarde te wijzigen/op te vragen dan waarde van een byte of int variabele te wijzigen/op te vragen Vereiste geheugenruimte voor elk v/d implementaties voor n logische waarden is O(n): verschil is enkel een c te factor Opzoektabel of lookup-table Tabel stockeert de vooraf berekende waarde v/e f tie die anders telkens opnieuw moet berekend worden Bv. 12! is grootste faculteit die nog i/e 32-bit int variabele kan gestockeerd worden Als herhaaldelijk, in willekeurige volgorde, faculteiten berekend moeten worden de moeite om waarden vooraf te berekenen en op te slaan Optimaliseren v/d code Aanpassen v/h algoritme belangrijker dan optimaliseren v/d programmacode Code optimalisatie = laatste stap Kan leiden tot een reductie v/d uitvoeringstijd met factor 10 en v/h geheugengebruik met factor 2 of meer Belangrijk om tijdstatisieken te verzamelen Bv. met profilers die voor de meeste besturingsyst en en compilers voor handen zijn FUCKING SLIDES!! 26

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST

Twaalfde college complexiteit. 11 mei 2012. Overzicht, MST College 12 Twaalfde college complexiteit 11 mei 2012 Overzicht, MST 1 Agenda voor vandaag Minimum Opspannende Boom (minimum spanning tree) als voorbeeld van greedy algoritmen Overzicht: wat voor technieken

Nadere informatie

Uitwerking tentamen Analyse van Algoritmen, 29 januari

Uitwerking tentamen Analyse van Algoritmen, 29 januari Uitwerking tentamen Analyse van Algoritmen, 29 januari 2007. (a) De buitenste for-lus kent N = 5 iteraties. Na iedere iteratie ziet de rij getallen er als volgt uit: i rij na i e iteratie 2 5 4 6 2 2 4

Nadere informatie

Branch-and-Bound en Cutting Planes

Branch-and-Bound en Cutting Planes Branch-and-Bound en Cutting Planes Vandaag: Er is nog geen algoritme om ILP s in polynomiale tijd op te lossen. Twee opties: 1 Exponentiëel algoritme dat optimale oplossing geeft 2 Polynomiaal algoritme

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering 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

Nadere informatie

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

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). Tentamen Optimalisering (IN2805-I) Datum: 3 april 2008, 14.00 17.00. Docent: Dr. J.B.M. Melissen Naam: Studienummer: 1 In deze opgave wordt vijftien maal telkens drie beweringen gedaan waarvan er één juist

Nadere informatie

1 Complexiteit. of benadering en snel

1 Complexiteit. of benadering en snel 1 Complexiteit Het college van vandaag gaat over complexiteit van algoritmes. In het boek hoort hier hoofdstuk 8.1-8.5 bij. Bij complexiteitstheorie is de belangrijkste kernvraag: Hoe goed is een algoritme?

Nadere informatie

Local search. Han Hoogeveen. 21 november, 2011

Local search. Han Hoogeveen. 21 november, 2011 1 Local search Han Hoogeveen 21 november, 2011 Inhoud vandaag 2 Inhoud: Uitleg methode Bespreking oude opdrachten: ˆ Bezorgen wenskaarten ˆ Roosteren tentamens Slides staan al op het web www.cs.uu.nl/docs/vakken/opt/colleges.html

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 7 Leo van Iersel Technische Universiteit Delft 26 oktober 2016 Leo van Iersel (TUD) TW2020 Optimalisering 26 oktober 2016 1 / 28 Deze week: analyseren van algoritmes Hoe

Nadere informatie

Tie breaking in de simplex methode

Tie breaking in de simplex methode Tie breaking in de simplex methode Tijdens de Simplexmethode kan op een aantal momenten onduidelijk zijn wat je moet doen: 1. Variabele die de basis in gaat: Zoek de grootste coëfficiënt in de doelfunctie.

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 10 Leo van Iersel Technische Universiteit Delft 23 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 23 november 2016 1 / 40 Vraag Ik heb het deeltentamen niet

Nadere informatie

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

Elfde college algoritmiek. 16 mei Dijkstra, Gretige algoritmen en Branch & Bound Algoritmiek 013/11 College 11 Elfde college algoritmiek 1 mei 013 Dijkstra, Gretige algoritmen en Branch & Bound 1 Algoritmiek 013/11 Voorbeeld -1- A B C D E F G H 9 7 5 A B C D E F G H 0 9 9 7 5 A B C

Nadere informatie

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound

Elfde college algoritmiek. 21 april Dijkstra en Branch & Bound Algoritmiek 011/11 College 11 Elfde college algoritmiek 1 april 011 Dijkstra en Branch & Bound 1 Algoritmiek 011/11 Kortste paden Gegeven een graaf G met gewichten op de takken, en een beginknoop s. We

Nadere informatie

Local search. Han Hoogeveen CGN A februari, 2009

Local search. Han Hoogeveen CGN A februari, 2009 1 Local search Han Hoogeveen CGN A312 j.a.hoogeveen@cs.uu.nl www.cs.uu.nl/docs/vakken/opt/colleges.html 4 februari, 2009 2 Inhoud vandaag In totaal vier uur Slides staan al op het web www.cs.uu.nl/docs/vakken/opt/colleges.html

Nadere informatie

Hoofdstuk 8: Algoritmen en Complexiteit

Hoofdstuk 8: Algoritmen en Complexiteit 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

Nadere informatie

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms

Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Onafhankelijke verzamelingen en Gewogen Oplossingen, door Donald E. Knuth, The Art of Computer Programming, Volume 4, Combinatorial Algorithms Giso Dal (0752975) Pagina s 5 7 1 Deelverzameling Representatie

Nadere informatie

Hoofdstuk 13: Integer Lineair Programmeren

Hoofdstuk 13: Integer Lineair Programmeren Hoofdstuk 13: Integer Lineair Programmeren Vandaag: Wat is Integer Lineair Programmeren (ILP)? Relatie tussen ILP en LP Voorbeeld 1: Minimum Spanning Tree (MST) Voorbeeld 2: Travelling Salesman Problem

Nadere informatie

Samenvatting college 1-12

Samenvatting college 1-12 Samenvatting college 1-12 Probleemformulering Duidelijk definiëren van beslissingsvariabelen Zinvolle namen voor variabelen bv x ij voor ingrediënt i voor product j, niet x 1,..., x 20 Beschrijving van

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 11 Leo van Iersel Technische Universiteit Delft 25 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 25 november 2015 1 / 28 Vandaag Vraag Voor welke problemen

Nadere informatie

Uitwerking tentamen Algoritmiek 9 juli :00 13:00

Uitwerking tentamen Algoritmiek 9 juli :00 13:00 Uitwerking tentamen Algoritmiek 9 juli 0 0:00 :00. (N,M)-game a. Toestanden: Een geheel getal g, waarvoor geldt g N én wie er aan de beurt is (Tristan of Isolde) b. c. Acties: Het noemen van een geheel

Nadere informatie

(On)Doenlijke problemen

(On)Doenlijke problemen Fundamentele Informatica In3 005 Deel 2 College 1 Cees Witteveen Parallelle en Gedistribueerde Systemen Faculteit Informatie Technologie en Systemen Overzicht Inleiding - Relatie Deel 1 en Deel 2 - Doenlijke

Nadere informatie

Benaderingsalgoritmen

Benaderingsalgoritmen Benaderingsalgoritmen Eerste hulp bij NP-moeilijkheid 1 Herhaling NP-volledigheid (1) NP: er is een polynomiaal certificaat voor jainstanties dat in polynomiale tijd te controleren is Een probleem A is

Nadere informatie

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek

Divide & Conquer: Verdeel en Heers vervolg. Algoritmiek Divide & Conquer: Verdeel en Heers vervolg Algoritmiek Algoritmische technieken Vorige keer: Divide and conquer techniek Aantal toepassingen van de techniek Analyse met Master theorem en substitutie Vandaag:

Nadere informatie

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

Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk. Netwerkanalyse (H3) Sommige praktische IP problemen kunnen worden geformuleerd als optimalisering op een netwerk. Deze problemen kunnen vaak als continu LP probleem worden opgelost. Door de speciale structuur

Nadere informatie

Lokaal zoeken. Computationele Intelligentie. Een representatie van het kleuringsprobleem. Impliciete doeltoestanden. Lokaal zoeken

Lokaal zoeken. Computationele Intelligentie. Een representatie van het kleuringsprobleem. Impliciete doeltoestanden. Lokaal zoeken Lokaal zoeken Computationele Intelligentie Lokaal zoeken algoritmen voor lokaal zoeken zijn ontwikkeld voor problemen I met grote oplossingsdiepten; I waarbij een oplossing slechts een doeltoestand is;

Nadere informatie

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

Elfde college algoritmiek. 29 april Algoritme van Dijkstra, Branch & Bound Algoritmiek 01/Algoritme van Dijkstra Elfde college algoritmiek 9 april 01 Algoritme van Dijkstra, Branch & Bound 1 Algoritmiek 01/Algoritme van Dijkstra College 10: Voorbeeld -1- A B C D E F G H 9 7 5

Nadere informatie

Tentamen combinatorische optimalisatie Tijd:

Tentamen combinatorische optimalisatie Tijd: Tentamen combinatorische optimalisatie 26-05-2014. Tijd: 9.00-11.30 Tentamen is met gesloten boek. Beschrijf bij elke opgave steeds het belangrijkste idee. Notatie en exacte formulering is van minder belang.

Nadere informatie

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

Overzicht. Inleiding. Toepassingen. Verwante problemen. Modellering. Exacte oplosmethode: B&B. Insertie heuristieken. Local Search Overzicht Inleiding Toepassingen Verwante problemen Modellering Exacte oplosmethode: B&B Insertie heuristieken Local Search Handelsreizigersprobleem 1 Cyclische permutatie van steden b 3 77 a 93 21 42

Nadere informatie

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

Twaalfde college algoritmiek. 13 mei Branch & Bound Heap, Heapsort & Heapify Algoritmiek 2016/Branch & Bound Twaalfde college algoritmiek 13 mei 2016 Branch & Bound Heap, Heapsort & Heapify 1 Algoritmiek 2016/Branch & Bound TSP met Branch & Bound Mogelijke ondergrenzen voor de

Nadere informatie

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

Optimalisering en Complexiteit, College 2. Han Hoogeveen, Utrecht University Optimalisering en Complexiteit, College 2 Han Hoogeveen, Utrecht University Inhoud vandaag Inhoud: Uitleg methode Bespreking oude opdracht: Bezorgen wenskaarten Slides staan al op het web www.cs.uu.nl/docs/vakken/opt/colleges.html

Nadere informatie

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University

Discrete Wiskunde, College 12. Han Hoogeveen, Utrecht University Discrete Wiskunde, College 12 Han Hoogeveen, Utrecht University Dynamische programmering Het basisidee is dat je het probleem stap voor stap oplost Het probleem moet voldoen aan het optimaliteitsprincipe

Nadere informatie

8. Complexiteit van algoritmen:

8. Complexiteit van algoritmen: 8. Complexiteit van algoritmen: Voorbeeld: Een gevaarlijk spel 1 Spelboom voor het wespenspel 2 8.1 Complexiteit 4 8.2 NP-problemen 6 8.3 De oplossing 7 8.4 Een vuistregel 8 In dit hoofdstuk wordt het

Nadere informatie

Achtste college algoritmiek. 8 april Dynamisch Programmeren

Achtste college algoritmiek. 8 april Dynamisch Programmeren Achtste college algoritmiek 8 april 2016 Dynamisch Programmeren 1 Werkcollege-opgave Dutch Flag Problem Gegeven een array gevuld met R, W, en B. Reorganiseer dit array zo dat van links naar rechts eerst

Nadere informatie

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

Datastructuren. Analyse van algoritmen. José Lagerberg. FNWI, UvA. José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren Analyse van algoritmen José Lagerberg FNWI, UvA José Lagerberg (FNWI, UvA) Datastructuren 1 / 46 Datastructuren en Algoritmen Datastructuren, 6 ECTS eerstejaars Bachelor INF Datastructuren,

Nadere informatie

Tentamen: Operationele Research 1D (4016)

Tentamen: Operationele Research 1D (4016) UITWERKINGEN Tentamen: Operationele Research 1D (4016) Tentamendatum: 12-1-2010 Duur van het tentamen: 3 uur (maximaal) Opgave 1 (15 punten) Beschouw het volgende lineaire programmeringsprobleem P: max

Nadere informatie

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

Elfde college algoritmiek. 18 mei Algoritme van Dijkstra, Heap, Heapify & Heapsort Algoritmiek 018/Algoritme van Dijkstra Elfde college algoritmiek 18 mei 018 Algoritme van Dijkstra, Heap, Heapify & Heapsort 1 Algoritmiek 018/Algoritme van Dijkstra Uit college 10: Voorb. -1- A B C D

Nadere informatie

l e x e voor alle e E

l e x e voor alle e E Geselecteerde uitwerkingen Werkcollege Introduceer beslissingsvariabelen x e met x e = als lijn e in de boom zit en anders x e = 0. De doelfunctie wordt: min e E l e x e Voor elke deelverzameling S V met

Nadere informatie

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.

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. 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. Een LP probleem heeft n>2 variabelen en n+2 constraints.

Nadere informatie

Lineaire programmering

Lineaire programmering Lineaire programmering Hans Maassen kort naar Inleiding Besliskunde van J. Potters [Pot]. en Methods of Mathematical Economics van J. Franklin [Fra]. Lineaire programmering is het bepalen van het maximum

Nadere informatie

Zoeken met beperkt geheugen. Zoekalgoritmen ( ) College 7: Zoeken met beperkt geheugen. Een representatie van het kleuringsprobleem

Zoeken met beperkt geheugen. Zoekalgoritmen ( ) College 7: Zoeken met beperkt geheugen. Een representatie van het kleuringsprobleem Zoeken met beperkt geheugen Zoekalgoritmen (2009 2010) College 7: Zoeken met beperkt geheugen Dirk Thierens, Tekst: Linda van der Gaag algoritmen voor zoeken met beperkt geheugen zijn ontwikkeld voor problemen

Nadere informatie

Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search

Recapitulatie: Ongeïnformeerd zoeken. Zoekalgoritmen ( ) College 2: Ongeïnformeerd zoeken. Dynamische breadth-first search Recapitulatie: Ongeïnformeerd zoeken Zoekalgoritmen (009 00) College : Ongeïnformeerd zoeken Peter de Waal, Tekst: Linda van der Gaag een algoritme voor ongeïnformeerd zoeken doorzoekt de zoekruimte van

Nadere informatie

9. Strategieën en oplossingsmethoden

9. Strategieën en oplossingsmethoden 9. Strategieën en oplossingsmethoden In dit hoofdstuk wordt nog even terug gekeken naar alle voorgaande hoofdstukken. We herhalen globaal de structuren en geven enkele richtlijnen voor het ontwerpen van

Nadere informatie

Geheeltallige programmering

Geheeltallige programmering Geheeltallige programmering In een LP probleem zijn alle variabelen reëel. In een geheeltallig probleem blijven doelfunctie en constraints lineair, maar zijn de variabelen geheeltallig. LP: IP: BIP: MIP:

Nadere informatie

Uitwerking tentamen Algoritmiek 9 juni :00 17:00

Uitwerking tentamen Algoritmiek 9 juni :00 17:00 Uitwerking tentamen Algoritmiek 9 juni 2015 14:00 17:00 1. Clobber a. Toestanden: m x n bord met in elk hokje een O, een X of een -. Hierbij is het aantal O gelijk aan het aantal X of er is hooguit één

Nadere informatie

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

Vierde college algoritmiek. 23/24 februari Complexiteit en Brute Force Algoritmiek 2017/Complexiteit Vierde college algoritmiek 23/24 februari 2017 Complexiteit en Brute Force 1 Algoritmiek 2017/Complexiteit Tijdcomplexiteit Complexiteit (= tijdcomplexiteit) van een algoritme:

Nadere informatie

Kosten. Zoekalgoritmen ( ) College 5: Zoeken met kosten. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route

Kosten. Zoekalgoritmen ( ) College 5: Zoeken met kosten. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route Kosten Zoekalgoritmen (00 00) ollege 5: Zoeken met kosten Peter de Waal, Tekst: Linda van der aag Veel zoekproblemen omvatten kosten: een afstand in kilometers; een geldbedrag; een hoeveelheid tijd; ongemak;...

Nadere informatie

Vakgroep CW KAHO Sint-Lieven

Vakgroep CW KAHO Sint-Lieven Vakgroep CW KAHO Sint-Lieven Objecten Programmeren voor de Sport: Een inleiding tot JAVA objecten Wetenschapsweek 20 November 2012 Tony Wauters en Tim Vermeulen tony.wauters@kahosl.be en tim.vermeulen@kahosl.be

Nadere informatie

Getallensystemen, verzamelingen en relaties

Getallensystemen, verzamelingen en relaties Hoofdstuk 1 Getallensystemen, verzamelingen en relaties 1.1 Getallensystemen 1.1.1 De natuurlijke getallen N = {0, 1, 2, 3,...} N 0 = {1, 2, 3,...} 1.1.2 De gehele getallen Z = {..., 4, 3, 2, 1, 0, 1,

Nadere informatie

Computationele Intelligentie

Computationele Intelligentie Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd

Nadere informatie

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

Kosten. Computationale Intelligentie. Een zoekprobleem met stapkosten. Een voorbeeld: het vinden van een route. Zoeken met kosten. Kosten omputationale Intelligentie Zoeken met kosten Veel zoekproblemen omvatten kosten: een afstand in kilometers; een geldbedrag; een hoeveelheid tijd;... Voorbeelden van dergelijke problemen zijn: het

Nadere informatie

Twaalfde college algoritmiek. 12 mei Branch & Bound

Twaalfde college algoritmiek. 12 mei Branch & Bound Twaalfde college algoritmiek 12 mei 2016 Branch & Bound 1 Branch and bound -1- Branch & bound is alleen toepasbaar op optimalisatieproblemen genereert oplossingen stap voor stap en houdt de tot dusver

Nadere informatie

TU/e 2DD50: Wiskunde 2 (1)

TU/e 2DD50: Wiskunde 2 (1) TU/e 2DD50: Wiskunde 2 (1) Organisatorische informatie Wat Dag Tijd Zaal Docent College Tue 5+6 Aud 6+15 Gerhard Woeginger Thu 1+2 Aud 1+4 Gerhard Woeginger Clicker session Tue 7+8 Aud 6+15 Gerhard Woeginger

Nadere informatie

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

Universiteit Utrecht Faculteit Wiskunde en Informatica. Examen Optimalisering op maandag 18 april 2005, uur. Universiteit Utrecht Faculteit Wiskunde en Informatica Examen Optimalisering op maandag 18 april 2005, 9.00-12.00 uur. De opgaven dienen duidelijk uitgewerkt te zijn en netjes ingeleverd te worden. Schrijf

Nadere informatie

Transparanten bij het vak Inleiding Adaptieve Systemen: Evolutionary Computation. f(s max ) f(s) s

Transparanten bij het vak Inleiding Adaptieve Systemen: Evolutionary Computation. f(s max ) f(s) s Transparanten bij het vak Inleiding Adaptieve Systemen: Evolutionary Computation. M. Wiering f(s max ) f(s) s Evolutionary Computation (EC) Optimalisatie algoritmen geinspireerd door Darwin s evolutie

Nadere informatie

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

Tiende college algoritmiek. 13/21 april Gretige Algoritmen Algoritme van Dijkstra Algoritmiek 017/Gretige Algoritmen Tiende college algoritmiek 13/1 april 017 Gretige Algoritmen Algoritme van Dijkstra 1 Algoritmiek 017/Gretige Algoritmen Muntenprobleem Gegeven onbeperkt veel munten

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 9 Leo van Iersel Technische Universiteit Delft 11 november 2015 Leo van Iersel (TUD) TW2020 Optimalisering 11 november 2015 1 / 22 Mededelingen Huiswerk 2 nagekeken Terug

Nadere informatie

Computationele Intelligentie

Computationele Intelligentie Computationele Intelligentie Uitwerking werkcollege Representatie, Ongeïnformeerd zoeken, Heuristisch zoeken 1 lokkenwereld a. De zoekboom die door het dynamische breadth-first search algoritme wordt gegenereerd

Nadere informatie

Informatica: C# WPO 10

Informatica: C# WPO 10 Informatica: C# WPO 10 1. Inhoud 2D arrays, lijsten van arrays, NULL-values 2. Oefeningen Demo 1: Fill and print 2D array Demo 2: Fill and print list of array A: Matrix optelling A: Matrix * constante

Nadere informatie

Twaalfde college algoritmiek. 17 mei Branch & Bound

Twaalfde college algoritmiek. 17 mei Branch & Bound 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

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2012 2013, tweede zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 2 Leo van Iersel Technische Universiteit Delft 14 september 2016 Leo van Iersel (TUD) TW2020 Optimalisering 14 september 2016 1 / 30 Modelleren van LP en ILP problemen

Nadere informatie

Oefeningen voor de oefeningenles. Oefening 1

Oefeningen voor de oefeningenles. Oefening 1 Oefeningen voor de oefeningenles Oefening 1 Gegeven een arbitraire binaire zoekboom T met n toppen en een (andere of gelijke) binaire zoekboom T die ook n sleutels bevat. Beschrijf een algoritme dat in

Nadere informatie

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

Vierde college complexiteit. 26 februari Beslissingsbomen en selectie Toernooimethode Adversary argument Complexiteit 2019/04 College 4 Vierde college complexiteit 26 februari 2019 Beslissingsbomen en selectie Toernooimethode Adversary argument 1 Complexiteit 2019/04 Zoeken: samengevat Ongeordend lineair

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 26, 2018 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Vijfde college algoritmiek. 2/3 maart Exhaustive search

Vijfde college algoritmiek. 2/3 maart Exhaustive search Vijfde college algoritmiek 2/3 maart 2017 Exhaustive search 1 Voor- en nadelen Brute force: Voordelen: - algemeen toepasbaar - eenvoudig - levert voor een aantal belangrijke problemen (zoeken, patroonherkenning)

Nadere informatie

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

Tentamen Optimalisering (IN2520) Datum: 5 november 2004, Docent: Dr. J.B.M. Melissen Tentamen Optimalisering (IN2520) Datum: 5 november 2004, 14.00 17.00. Docent: Dr. J.B.M. Melissen Veel succes! 1 Deze opgave bestaat uit 15 tweekeuzevragen. Per goed antwoord krijg je 2 punten. a. Dynamisch

Nadere informatie

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007

Uitgebreide uitwerking Tentamen Complexiteit, mei 2007 Uitgebreide uitwerking Tentamen Complexiteit, mei 007 Opgave. a. Een beslissingsboom beschrijft de werking van het betreffende algoritme (gebaseerd op arrayvergelijkingen) op elke mogelijke invoer. In

Nadere informatie

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

Achtste college algoritmiek. 12 april Verdeel en Heers. Dynamisch Programmeren Achtste college algoritmiek 12 april 2019 Verdeel en Heers Dynamisch Programmeren 1 Uit college 7: Partitie Partitie Partitie(A[l r]) :: // partitioneert een (sub)array, met A[l] als spil (pivot) p :=

Nadere informatie

De statespace van Small World Networks

De statespace van Small World Networks De statespace van Small World Networks Emiel Suilen, Daan van den Berg, Frank van Harmelen epsuilen@few.vu.nl, daanvandenberg1976@gmail.com, Frank.van.Harmelen@cs.vu.nl VRIJE UNIVERSITEIT AMSTERDAM 2 juli

Nadere informatie

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University

Optimalisering en Complexiteit, College 11. Complementaire speling; duale Simplex methode. Han Hoogeveen, Utrecht University Optimalisering en Complexiteit, College 11 Complementaire speling; duale Simplex methode Han Hoogeveen, Utrecht University Duale probleem (P) (D) min c 1 x 1 + c 2 x 2 + c 3 x 3 max w 1 b 1 + w 2 b 2 +

Nadere informatie

Twaalfde college algoritmiek. 11/12 mei Branch & Bound

Twaalfde college algoritmiek. 11/12 mei Branch & Bound Twaalfde college algoritmiek 11/12 mei 2017 Branch & Bound 1 Backtracking Backtracking - bouwt een oplossing component voor component op - kijkt tijdens de stap-voor-stap constructie of de deeloplossing

Nadere informatie

Zevende college Algoritmiek. 6 april Verdeel en Heers

Zevende college Algoritmiek. 6 april Verdeel en Heers Zevende college Algoritmiek 6 april 2018 Verdeel en Heers 1 Algoritmiek 2018/Backtracking Programmeeropdracht 2 Puzzel 2: D O N A L D G E R A L D + R O B E R T Elke letter stelt een cijfer voor (0,1,...,9)

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2016 2017, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees de hele

Nadere informatie

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

Optimalisering en Complexiteit, College 10. Begrensde variabelen. Han Hoogeveen, Utrecht University Optimalisering en Complexiteit, College 10 Begrensde variabelen Han Hoogeveen, Utrecht University Begrensde variabelen (1) In veel toepassingen hebben variabelen zowel een ondergrens als een bovengrens:

Nadere informatie

Examen Datastructuren en Algoritmen II

Examen Datastructuren en Algoritmen II Tweede bachelor Informatica Academiejaar 2008 2009, eerste zittijd Examen Datastructuren en Algoritmen II Naam :.............................................................................. Lees elke

Nadere informatie

Zevende college algoritmiek. 23/24 maart Verdeel en Heers

Zevende college algoritmiek. 23/24 maart Verdeel en Heers Zevende college algoritmiek 23/24 maart 2017 Verdeel en Heers 1 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht 0 1 2 3 0 1 2 3 4 1 2 3 4 5 2 Algoritmiek 2017/Backtracking Tweede Programmeeropdracht

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 9 Leo van Iersel Technische Universiteit Delft 16 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 16 november 2016 1 / 28 Vandaag Integer Linear Programming (ILP)

Nadere informatie

ALGORITMIEK: antwoorden werkcollege 5

ALGORITMIEK: antwoorden werkcollege 5 ALGORITMIEK: antwoorden werkcollege 5 opgave 1. a. Brute force algoritme, direct afgeleid uit de observatie: loop v.l.n.r. door de tekst; als je een A tegenkomt op plek i (0 i < n 1), loop dan van daaruit

Nadere informatie

Discrete Wiskunde 2WC15, Lente Jan Draisma

Discrete Wiskunde 2WC15, Lente Jan Draisma Discrete Wiskunde 2WC15, Lente 2010 Jan Draisma HOOFDSTUK 2 Gröbnerbases 1. Vragen We hebben gezien dat de studie van stelsels polynoomvergelijkingen in meerdere variabelen op natuurlijke manier leidt

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 12 Leo van Iersel Technische Universiteit Delft 7 december 2016 Leo van Iersel (TUD) TW2020 Optimalisering 7 december 2016 1 / 25 Volgende week: Study guide Vragenuurtje

Nadere informatie

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013

Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag 11 Januari 2013 Modeluitwerking Tentamen Computationele Intelligentie Universiteit Leiden Informatica Vrijdag Januari 20 Opgave. Python Gegeven is de volgende (slechte) Python code:. def t(x): 2. def p(y):. return x*y

Nadere informatie

1 Rekenen in eindige precisie

1 Rekenen in eindige precisie Rekenen in eindige precisie Een computer rekent per definitie met een eindige deelverzameling van getallen. In dit hoofdstuk bekijken we hoe dit binnen een computer is ingericht, en wat daarvan de gevolgen

Nadere informatie

Universiteit Utrecht Departement Informatica

Universiteit Utrecht Departement Informatica Universiteit Utrecht Departement Informatica Uitwerking Tussentoets Optimalisering 20 december 206 Opgave. Beschouw het volgende lineair programmeringsprobleem: (P) Minimaliseer z = x 2x 2 + x 3 2x 4 o.v.

Nadere informatie

Inleiding Programmeren 2

Inleiding Programmeren 2 Inleiding Programmeren 2 Gertjan van Noord November 28, 2016 Stof week 3 nogmaals Zelle hoofdstuk 8 en recursie Brookshear hoofdstuk 5: Algoritmes Datastructuren: tuples Een geheel andere manier om te

Nadere informatie

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III

Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Combinatorische Algoritmen: Binary Decision Diagrams, Deel III Sjoerd van Egmond LIACS, Leiden University, The Netherlands svegmond@liacs.nl 2 juni 2010 Samenvatting Deze notitie beschrijft een nederlandse

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 2 november 2016 Leo van Iersel (TUD) TW2020 Optimalisering 2 november 2016 1 / 28 Minimum Opspannende Boom (Minimum Spanning

Nadere informatie

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.

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. Grafen Grafen Een graaf bestaat uit een verzameling punten (ook wel knopen, of in het engels vertices genoemd) en een verzameling kanten (edges) of pijlen (arcs), waarbij de kanten en pijlen tussen twee

Nadere informatie

TU/e 2DD50: Wiskunde 2

TU/e 2DD50: Wiskunde 2 TU/e 2DD50: Wiskunde 2 Enkele mededelingen Instructies (vandaag, 10:45 12:30) in vier zalen: Zaal Aud 10 Pav b2 Pav m23 Ipo 0.98 voor studenten met achternaam beginnend met letters A tot en met D met letters

Nadere informatie

Heuristieken en benaderingsalgoritmen. Algoritmiek

Heuristieken en benaderingsalgoritmen. Algoritmiek Heuristieken en benaderingsalgoritmen Wat te doen met `moeilijke optimaliseringsproblemen? Voor veel problemen, o.a. optimaliseringsproblemen is geen algoritme bekend dat het probleem voor alle inputs

Nadere informatie

Tie breaking in de simplex methode

Tie breaking in de simplex methode Tie breaking in de simplex methode Tijdens de Simplexmethode kan op een aantal momenten onduidelijk zijn wat je moet doen: 1. Variabele die de basis in gaat: Zoek de grootste coëfficiënt in de doelfunctie.

Nadere informatie

Computationale Intelligentie Dirk Thierens

Computationale Intelligentie Dirk Thierens Computationale Intelligentie Dirk Thierens Organisatie Onderwijsvormen: Docent: Topic: Collegemateriaal: Boek: Beoordeling: hoorcollege, practicum, werkcollege Dirk Thierens Deel : Zoekalgoritmen Toets

Nadere informatie

Negende college algoritmiek. 15 april Dynamisch Programmeren

Negende college algoritmiek. 15 april Dynamisch Programmeren Negende college algoritmiek 15 april 2016 Dynamisch Programmeren 1 algemeen Uit college 8: DP: - nuttig bij problemen met overlappende deelproblemen - druk een oplossing van het probleem uit in oplossingen

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 8 Leo van Iersel Technische Universiteit Delft 28 oktober 2015 Leo van Iersel (TUD) TW2020 Optimalisering 28 oktober 2015 1 / 25 Definitie Een boom is een samenhangende

Nadere informatie

Programmeermethoden. Recursie. week 11: november kosterswa/pm/

Programmeermethoden. Recursie. week 11: november kosterswa/pm/ Programmeermethoden Recursie week 11: 21 25 november 2016 www.liacs.leidenuniv.nl/ kosterswa/pm/ 1 Pointers Derde programmeeropgave 1 Het spel Gomoku programmeren we als volgt: week 1: pointerpracticum,

Nadere informatie

Tweede college complexiteit. 12 februari Wiskundige achtergrond

Tweede college complexiteit. 12 februari Wiskundige achtergrond College 2 Tweede college complexiteit 12 februari 2019 Wiskundige achtergrond 1 Agenda vanmiddag Floor, Ceiling Rekenregels logaritmen Tellen Formele definitie O, Ω, Θ met voorbeelden Stellingen over faculteiten

Nadere informatie

TW2020 Optimalisering

TW2020 Optimalisering TW2020 Optimalisering Hoorcollege 13 Leo van Iersel Technische Universiteit Delft 9 december 2015 Leo van Iersel (TUD) TW2020 Optimalisering 9 december 2015 1 / 13 Vraag Wat moet ik kennen en kunnen voor

Nadere informatie

Basiskennis lineaire algebra

Basiskennis lineaire algebra Basiskennis lineaire algebra Lineaire algebra is belangrijk als achtergrond voor lineaire programmering, omdat we het probleem kunnen tekenen in de n-dimensionale ruimte, waarbij n gelijk is aan het aantal

Nadere informatie

Zevende college algoritmiek. 24 maart Verdeel en Heers

Zevende college algoritmiek. 24 maart Verdeel en Heers Zevende college algoritmiek 24 maart 2016 Verdeel en Heers 1 Verdeel en heers 1 Divide and Conquer 1. Verdeel een instantie van het probleem in twee (of meer) kleinere instanties 2. Los de kleinere instanties

Nadere informatie

Greedy algoritmes. Algoritmiek

Greedy algoritmes. Algoritmiek Greedy algoritmes Algoritmiek Algoritmische technieken Trucs, methoden, paradigma s voor het ontwerpen van algoritmen Dynamisch Programmeren Divide & Conquer Greedy 2 Greedy algoritme Bouwt de oplossing

Nadere informatie

Tweede college algoritmiek. 12 februari Grafen en bomen

Tweede college algoritmiek. 12 februari Grafen en bomen College 2 Tweede college algoritmiek 12 februari 2016 Grafen en bomen 1 Grafen (herhaling) Een graaf G wordt gedefinieerd als een paar (V,E), waarbij V een eindige verzameling is van knopen (vertices)

Nadere informatie

VAN HET PROGRAMMEREN. Inleiding

VAN HET PROGRAMMEREN. Inleiding OVERZICHT VAN HET PROGRAMMEREN Inleiding Als je leert programmeren lijkt het nogal overweldigend om die eerste stappen te doorworstelen. Er zijn dan ook heel wat programmeertalen (Java, Ruby, Python, Perl,

Nadere informatie