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 /