Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Relevanta dokument
Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition

Eulercykel. Kinesiska brevbärarproblemet. Kinesiska brevbärarproblemet: Metod. Kinesiska brevbärarproblemet: Modell. Definition. Definition.

Algoritmkomplexitet. Komplexitet Teoretisk bas för frågorna: Är en viss metod bra eller dålig? Är ett visst problem lätt eller svårt?

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg

Kaliningrad) låg vid bägge sidor av floden Pregel samt på

Speciell användning av heltalsvariabler. Heltalsprogrammering. Antingen-eller-villkor: Exempel. Speciell användning av heltalsvariabler

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Optimeringslära Kaj Holmberg

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet

Flöde i nätverk. Flöde i nätverk. Specialfall av minkostnadsflödesproblemet. Specialfall av minkostnadsflödesproblemet. Slutsats.

Optimeringslära Kaj Holmberg

min c 1 x 1 + c 2 x 2 då x 1 + x 2 = 1, x 1 {0, 1}, x 2 {0, 1} plus andra bivillkor. Vi måste göra k st av n alternativ:

TNK049 Optimeringslära

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

Föreläsning 12+13: Approximationsalgoritmer

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Optimeringslära Kaj Holmberg

TNSL05 Optimering, Modellering och Planering. Föreläsning 5

Optimeringslära Kaj Holmberg

Optimeringslära Kaj Holmberg

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

MA2047 Algebra och diskret matematik

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Tentamensinstruktioner. När Du löser uppgifterna

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C. Tentamensinstruktioner. När Du löser uppgifterna

Föreläsningsanteckningar F6

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Kap.6 Grafer. Egenskaper: Handskakningslemmat och Eulers formel Sats om eulerkrets/väg Isomorfi och representation av grafer Graffärgning

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

LP-problem. Vårt första exempel. Baslösningar representerar extrempunkter. Baslösningar representerar extrempunkter

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Laborationsinformation

Föreläsning 9: NP-fullständighet

Projektinformation TAOP61 Optimering av realistiska sammansatta system Projekt 4: Lösning av snöröjningsproblemet

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Tentamensinstruktioner. När Du löser uppgifterna

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

Laborationsinformation

Algoritmer, datastrukturer och komplexitet

Tentamensinstruktioner. När Du löser uppgifterna

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP07/TEN1 OPTIMERINGSLÄRA GRUNDKURS för Y. Antal uppgifter: 7 Uppgifterna är inte ordnade efter svårighetsgrad.

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Algoritmer, datastrukturer och komplexitet

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Optimering. TAOP88 Optimering för ingenjörer. När inte intuitionen räcker till... Långsiktiga mål med kursen. Vad är optimering?

Tentamensinstruktioner. När Du löser uppgifterna

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TDDB56 DALGOPT Algoritmer och Optimering Tentamen , 8 13

Efternamn förnamn ååmmdd kodnr

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Föreläsning 10. Grafer, Dijkstra och Prim

Uppgifter 6: Grafteori

Laboration 2 - Heltalsoptimering

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

DEL I. Matematiska Institutionen KTH

Tentamensinstruktioner. När Du löser uppgifterna

Tentamensinstruktioner. När Du löser uppgifterna

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Optimalitetsvillkor. Optimum? Matematisk notation. Optimum? Definition. Definition

Föreläsning 5: Giriga algoritmer. Kruskals och Prims algoritmer

Optimering. Optimering

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Föreläsning 5: Grafer Del 1

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Föreläsning 7+8: NP-problem. Begreppet effektiv algoritm är alltså synonymt med går i polynomisk tid i den här kursen. Är detta en rimlig uppdelning?

Föreläsning 10. Grafer, Dijkstra och Prim

Föreläsning 10. Grafer, Dijkstra och Prim

Optimering. TAOP86 Kombinatorisk optimering med miljötillämpningar. När inte intuitionen räcker till... Långsiktiga mål med kursen. Vad är optimering?

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Olinjär optimering med bivillkor: KKT min f (x) då g i (x) 0 för alla i

Föreläsning 7 Datastrukturer (DAT037)

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP61/TEN 1 OPTIMERING AV REALISTISKA SAMMANSATTA SYSTEM. Tentamensinstruktioner. När Du löser uppgifterna

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C. Tentamensinstruktioner. När Du löser uppgifterna

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Transkript:

Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg innehåller ingen cykel. En sammanhängande graf har en väg mellan varje par av noder. Träd: Sammanhängande graf utan cykler. Sats Träd För ett träd med n (> ) noder gäller: et har n bågar. Mellan varje par av noder finns en unik väg. Om en ny båge läggs till skapas exakt en cykel. Om en båge tas bort bildas två träd. Kaj Holmberg (LiU) TOP Optimering september 0 / Uppspännande träd Grafer Kaj Holmberg (LiU) TOP Optimering september 0 / efinition En fullständig graf har en båge mellan varje par av noder. Sats För en graf med n noder är följande begrepp ekvivalenta: Ett uppspännande träd. En sammanhängande graf med n bågar. En graf utan cykler med n bågar. efinition I en tudelad graf går alla bågar från en nodmängd till en annan. Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 /

Grafer efinition En plan graf kan ritas så att inga bågar korsar varandra (förutom i noderna). Plan? Ja, plan. ykler och vägar efinitioner En Eulercykel är en cykel som använder varje båge exakt en gång. En Hamiltoncykel är en cykel som passerar varje nod exakt en gång. Exempel på frågeställningar: Finns en Eulercykel i en given graf? Finns en Hamiltoncykel i en given graf? efinition En nods valens är antalet bågar som ansluter till noden. Sats En sammanhängande oriktad graf har en Eulercykel om och endast om alla dess noder har jämn valens. Kaj Holmberg (LiU) TOP Optimering september 0 / Hamiltoncykel Kaj Holmberg (LiU) TOP Optimering september 0 / Nod-/bågmängder En klick är en fullständig subgraf. 0 Matchning: Varje nod ansluter till högst en båge. En perfekt matchning innehåller alla noder. Petersens graf saknar Hamiltoncykel och Eulercykel. Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 /

Graffärgning Nodfärgning: Inga två närliggande noder har samma färg. ågfärgning: Inga två angränsande bågar har samma färg. Kaj Holmberg (LiU) TOP Optimering september 0 / illigaste uppspännande träd (MST) Intressanta optimeringsproblem Maximal klick, n K. Maximal matchning, m M. Nodfärgning med min antal färger, χ. ågfärgning med min antal färger, χ. Satser χ n K. (En graf kallas perfekt om χ = n K.) Varje plan graf kan färgas med fyra färger. Satser χ v MX. χ v MX +. (v MX är grafens maxvalens.) χ är v MX eller v MX +, men det är NP-fullständigt att avgöra vilket. Metoder? Heuristiker. (Kommer senare.) Kaj Holmberg (LiU) TOP Optimering september 0 0 / Graf-baserade lösningsmetoder: Finn ett billigaste uppspännande träd i en given oriktad graf med bågkostnader. 0 Ett uppspännande träd har n bågar, samt saknar cykler är sammanhängande Två metodprinciper:. Ta med billigaste återstående bågen, om ingen cykel bildas (Kruskals metod).. Ta med billigaste bågen som utökar delträdet (Prims metod). Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 /

Kruskals metod:. Finn billigaste återstående båge. Ta bort bågen ur listan.. Om bågen ej bildar cykel, ta med den. (nnars släng den.). Om antal bågar är n : Stopp. nnars gå till. Komplexitet: O( log ) (sortera bågarna först) Prims metod: 0. Låt nod vara delträdet.. Finn billigaste båge ut från delträdet.. Ta med den och dess andra ändnod i delträdet.. Om antal bågar är n : Stopp. nnars gå till. 0 0 Kaj Holmberg (LiU) TOP Optimering september 0 / Prims metod (bättre implementering) Kaj Holmberg (LiU) TOP Optimering september 0 / Handelsresandeproblemet (TSP) Finn en billigaste Hamiltoncykel i en given graf med bågkostnader. Håll reda på trädets närmaste granne till nod i, w i. Spara möjliga nodmärkningar. 0 0. Låt nod vara delträdet och sätt w i = för alla andra noder i.. Finn billigaste båge ut ur delträdet: min i c i,wi.. Ta med bågen i delträdet.. Uppdatera w i via den nya bågen. (Närmare granne?). Om antal bågar är n : Stopp. nnars gå till. Komplexitet: O( N ) Handelsresandeproblemet med återbesök (TSPr): Finn billigaste cykel i grafen som besöker varje nod minst en gång. Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 /

Handelsresandeproblemet: varianter Specialfall: TSP: Symmetrisk kostnadsmatris som uppfyller triangelolikheten: c ij c ik + c kj för alla k, i, j. (Implicerar fullständig graf.) Specialfall: TSPb: Symmetrisk kostnadsmatris som uppfyller den begränsade triangelolikheten: c ij c ik + c kj för alla bågar som finns. TSP har samma lösning som TSPr. (Återbesök lönar sig aldrig.) Till varje TSP med lösning finns ett TSPb som har samma optimala lösning. (ddera en konstant till alla kostnader.) Heltalsformulering av TSP, riktad graf Variabeldefinition: x ij = om båge (i, j) ingår i cykeln, 0 om inte. min då (i,j) c ij x ij x ij = för alla j (en in till varje nod) i N x ij = för alla i (en ut från varje nod) j N i S j N\S x ij {0, } x ij för alla S N (sammanhängande) för alla (i, j) eller x ij S för alla S N (inga småcykler) i S j S (ej TSPr) Kaj Holmberg (LiU) TOP Optimering september 0 / TSP, oriktad graf Kaj Holmberg (LiU) TOP Optimering september 0 / Relaxation av TSP: -träd min c ij x ij (i,j) x ij = för alla j (valens två) i N x ij för alla S N (sammanhängande) i S j N\S x ij {0, } för alla (i, j) illigaste -träd: Ett MST för noderna {,,..., n}, plus de två billigaste bågarna som ansluter till nod. (lltså inte ett träd.) Rätt antal bågar. Nod får valens, men andra noder kan ha fel valens. En cykel (som kan vara för liten) bildas genom nod. För TSPr: Ta bort första bivillkoren. lternativ (ej för TSPr): x ij S för alla S N (inga småcykler) i S j S Lika lätt att hitta billigaste -träd som MST. Ett -träd är en Hamiltoncykel om varje nods valens är lika med två. Om billigaste -träd är en Hamiltoncykel, är turen optimal. Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 0 /

Förbättring av -träd Exempel: -träd Nodstraff: ddition av konstant till c för alla bågar som ansluter till en nod ändrar ej optimal handelsresandetur. lla tillåtna lösningar blir c dyrare. Finn billigaste -träd. Stopp om Hamiltoncykel fås. Optimum. Välj en nod med för hög valens. Öka kostnaderna för alla bågar som ansluter till noden med t.ex.. Gå till. Heuristik: Försök få en tillåten lösning genom att flytta en ändnod för enstaka bågar, från noder med för hög valens till noder med för låg. illigaste -träd. Kostnad:. Kaj Holmberg (LiU) TOP Optimering september 0 / TSP: LP-relaxation Kaj Holmberg (LiU) TOP Optimering september 0 / Steinerträdsproblemet LP-relaxationen samt relaxation av sammanhängandekrav: Kan ge lösningsgraf (där x ij > 0) som ej är sammanhängande. Lägg till det bivillkor som ej uppfylls. Lös LP-relaxationen. Identifiera en nodmängd S som ej är sammanhängande med övriga noder. Lägg till bivillkoret att minst två bågar ska gå ut från S och lös om LP-relaxationen. Om lösningen inte är sammanhängande, gå till. Givet: Graf G = (N, E), en nodmängd N N och bågkostnader c. Ett Steinerträd måste omfatta samtliga noder i N men får också omfatta noder i N \ N. Steinerträdsproblemet: Finn ett Steinerträd med minimal kostnad. Mittennoden behöver inte vara med, men det blir billigare att ta med den. Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 /

Ruttplaneringsproblemet Ett antal lastbilar skall köra ut varor till ett antal kunder. Varje lastbil startar i en depå, kör runt till några kunder och levererar varor och återvänder till depån. Lastbilarna har begränsad lastkapacitet och kunderna given efterfrågan. Kinesiska brevbärarproblemet En brevbärartur är en tur som använder varje båge minst en gång. et kinesiska brevbärarproblemet är att finna en brevbärartur med minimal kostnad. Königsbergs broar: (Euler, 00-talet) Försök finna en tur som passerar varje bro en gång. Varje lastbil kör en handelsresandetur i en mängd noder som ska bestämmas. Samtliga noder skall täckas av någon tur. Målfunktion: Minimera kostnaden eller avgasutsläppen eller en kombination av dem. Pregel Königsberg Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 / Kinesiska brevbärarproblemet Kinesiska brevbärarproblemet: Modell Pregel Königsberg En Eulercykel är en cykel som använder varje båge i grafen exakt en gång. En Eulercykel är en optimal brevbärartur, om den finns. En oriktad graf har en Eulercykel om och endast om den är sammanhängande och alla dess noder har jämn valens. Matematisk modell: x ij : antalet gånger båge (i, j) trafikeras. z i : antal gånger nod i passeras i turen. min c ij x ij då i j (x ij + x ji ) z i = 0 för alla i j x ij, heltal z i, heltal för alla i, j för alla i et fanns inget promenadstråk genom Königsberg som passerade varje bro exakt en gång. (Se nodvalens.) Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 /

Kinesiska brevbärarproblemet Sats et finns en optimallösning med x (om c 0). (vs. ingen båge används mer än en gång för mycket.) Metod: Minimera extraarbetet. vs. minimera kostnaden för de bågar som används mer än en gång. Lägg till bågar mellan noder med udda valens, så att alla noder får jämn valens, på billigaste sätt. En Eulercykel ger då den billigaste brevbärarturen.. Förbind noderna med udda valens på billigaste sätt (mha billigaste-väg och minimal perfekt matchning).. Finn Eulercykeln. Polynomisk optimerande metod. Kaj Holmberg (LiU) TOP Optimering september 0 / Kinesiska brevbärarproblemet Kinesiska brevbärarproblemet: Exempel 0 Finn Eulercykel. Kostnad: + =. Kaj Holmberg (LiU) TOP Optimering september 0 0 / Kinesiska brevbärarproblemet Königsberg: ddera bågarna i billigaste perfekta matchning. Finn valfri Eulercykel. Pregel Königsberg Exempel på tur: ---------. En söndagspromenad i Königsberg. Kaj Holmberg (LiU) TOP Optimering september 0 / Kaj Holmberg (LiU) TOP Optimering september 0 /