Polyeder 0 x, 0 x, 0 x, x + x + x, x + x + x Grafdefinitioner 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. Möjligt synsätt: Simplexmetoden söker i en graf. Träd Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Uppspännande träd 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. 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. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 /
Grafer efinition En fullständig graf har en båge mellan varje par av noder. Grafer efinition En plan graf kan ritas så att inga bågar korsar varandra (förutom i noderna). Plan? Ja, plan. efinition I en tudelad graf går alla bågar från en nodmängd till en annan. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / ykler och vägar efinitioner En Eulercykel är en cykel som använder varje båge exakt en gång. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Hamiltoncykel 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. 0 Petersens graf saknar Hamiltoncykel och Eulercykel. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 /
ågmängder Graffärgning Nodfärgning: Inga två närliggande noder har samma färg. En klick är en fullständig subgraf. Matchning: Varje nod ansluter till högst en båge. En perfekt matchning innehåller alla noder. ågfärgning: Inga två angränsande bågar har samma färg. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / 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 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 0 / illigaste uppspännande träd (MST) Finn ett billigaste uppspännande träd i en given oriktad graf med bågkostnader. Givet: Graf G = (N, ), bågkostnader c. Finn träd G T = (N, T ), T, så att 0 (i,j) T c ij är minimal. Kaj Holmberg (LiU) TOP Optimering 0 september 0 /
Graf-baserade lösningsmetoder: Kruskals metod: Ett uppspännande träd har n bågar, samt saknar cykler är sammanhängande. 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) 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). 0 Kaj Holmberg (LiU) TOP Optimering 0 september 0 / 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. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Prims metod (bättre implementering) Håll reda på trädets närmaste granne till nod i, w i. Spara möjliga nodmärkningar. 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. 0. 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 ) Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 /
Handelsresandeproblemet (TSP) Finn en billigaste Hamiltoncykel i en given graf med bågkostnader. Givet: Graf G = (N, ), bågkostnader c. Finn cykel G H = (N, H), H, så att c ij är minimal. 0 (i,j) H Handelsresandeproblemet: varianter Handelsresandeproblemet med återbesök (TSPr): Finn billigaste cykel i grafen som besöker varje nod minst en gång. 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.) Kaj Holmberg (LiU) TOP Optimering 0 september 0 / 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 0 september 0 / TSP, oriktad graf 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) 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 Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 0 /
Relaxation av TSP: -träd Förbättring av -träd 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. 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. 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. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Exempel: -träd Kaj Holmberg (LiU) TOP Optimering 0 september 0 / TSP: LP-relaxation illigaste -träd. Kostnad:. 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. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 /
Steinerträdsproblemet 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. 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. 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 0 september 0 / 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. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kinesiska brevbärarproblemet En brevbärartur är en tur som använder varje båge minst en gång. Kinesiska brevbärarproblemet 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. 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. Pregel Königsberg En oriktad graf har en Eulercykel om och endast om den är sammanhängande och alla dess noder har jämn valens. et fanns inget promenadstråk genom Königsberg som passerade varje bro exakt en gång. (Se nodvalens.) Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 /
Kinesiska brevbärarproblemet: Modell 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 Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kinesiska brevbärarproblemet: Exempel 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 0 september 0 0 / Kinesiska brevbärarproblemet 0 Königsberg: Finn Eulercykel. Kostnad: + =. Kaj Holmberg (LiU) TOP Optimering 0 september 0 / Kaj Holmberg (LiU) TOP Optimering 0 september 0 /
Kinesiska brevbärarproblemet ddera bågarna i billigaste perfekta matchning. Finn valfri Eulercykel. Pregel Königsberg En söndagspromenad i Königsberg. Kaj Holmberg (LiU) TOP Optimering 0 september 0 /