Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, )}, i N, 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 enkel cykel innehåller ingen mindre cykel. En sammanhängande graf har en väg mellan vare 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 vare 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. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Uppspännande träd Sats För en graf med n noder är fölande begrepp ekvivalenta: Ett uppspännande träd. En sammanhängande graf med n bågar. En graf utan cykler med n bågar. En graf är sammanhängande om och endast om den innehåller ett uppspännande träd. efinition Skog: Graf utan cykler (dvs ett eller flera träd). Grafer Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / efinition En fullständig graf har en båge mellan vare par av noder. efinition I en tudelad graf går alla bågar från en nodmängd till en annan. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 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 vare båge exakt en gång. En Hamiltoncykel är en cykel som passerar vare nod exakt en gång. En Hamiltonväg är en väg som passerar vare 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 ämn valens. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Hamiltoncykel Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Notation: mängder δ(i) : bågarna som ansluter till nod i. δ + (i) : bågarna som kommer in till nod i δ (i) : bågarna som går ut ur nod i. 9 δ () : de bågar som går ut ur. δ + () : de bågar som går in till δ() : de bågar som har en av sina ändnoder i. 0 γ() : de bågar som har båda sina ändnoder i. x(e) = x i, c(e) = (i,) E (i,) E c i Petersens graf saknar Hamiltoncykel och Eulercykel. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /
Nodmängder Oberoende nodmängd: Ingen direktbåge mellan två noder. Nodövertäckning: Vare båge ansluter till minst en nod. En nodövertäckning kan fås genom att ta med de noder som inte ingår i en oberoende nodmängd (och tvärtom). Ka Holmberg (LiU) TOP Optimering 0 oktober 0 9 / 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. ågmängder En klick är en fullständig subgraf. ågövertäckning: Vare nod ansluter till en båge. Matchning: Vare nod ansluter till högst en båge. En perfekt matchning innehåller alla noder. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 0 / Intressanta optimeringsproblem Satser Maximal oberoende nodmängd, n O. Minimal nodövertäckning, n. Maximal klick, n K. Minimal bågövertäckning, m. Maximal matchning, m M. Nodfärgning med min antal färger, χ. ågfärgning med min antal färger, χ. n O m och m M n. n O + n = N = m M + m. För tudelad graf: m M = n. n O = m. χ =. χ n K. (En graf kallas perfekt om χ = n K.) Vare plan graf kan färgas med fyra färger. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /
Intressanta optimeringsproblem ågfärgning med min antal 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. Satser χ = om och endast om grafen är en matchning. χ = v MX om grafen är tudelad. χ = v MX om grafen är plan, saknar parallella bågar och har v MX. Metoder? Heuristiker. (Kommer senare.) 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,) T c i är minimal. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Heltalsformulering av MST Variabeldefinition: x i = om båge (i, ) ingår i trädet, 0 om inte, för alla (i, ). min då (i,) (i,) c i x i x i = N x i S för alla S N (Inga cykler.) i S S x i {0, } lternativt: i S N\S för alla (i, ) x i för alla S N Många bivillkor. (Exponentiellt många.) (Sammanhängade.) MST eller min c T x då x() = N x(γ(s)) S för alla S N x {0, } m x(δ(s)) för alla S N Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 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 e 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 Ka Holmberg (LiU) TOP Optimering 0 oktober 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. 0 Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Prims metod (bättre implementering) Håll reda på trädets närmaste granne till nod i, w i. Spara möliga 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.. 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 ) Ka Holmberg (LiU) TOP Optimering 0 oktober 0 9 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 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 i är minimal. 0 (i,) H Handelsresandeproblemet: varianter Handelsresandeproblemet med återbesök (TSPr): Finn billigaste cykel i grafen som besöker vare nod minst en gång. Specialfall: TSP: Symmetrisk kostnadsmatris som uppfyller triangelolikheten: c i c ik + c k för alla k, i,. (Implicerar fullständig graf.) Specialfall: TSPb: Symmetrisk kostnadsmatris som uppfyller den begränsade triangelolikheten: c i c ik + c k för alla bågar som finns. TSP har samma lösning som TSPr. (Återbesök lönar sig aldrig.) Till vare TSP med lösning finns ett TSPb som har samma optimala lösning. (ddera en konstant till alla kostnader.) Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Heltalsformulering av TSP, riktad graf Variabeldefinition: x i = om båge (i, ) ingår i cykeln, 0 om inte. min då (i,) c i x i x i = för alla (en in till vare nod) i N x i = för alla i (en ut från vare nod) N i S N\S x i {0, } x i för alla S N (sammanhängande) för alla (i, ) eller x i S för alla S N (inga småcykler) i S S (e TSPr) Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / TSP, oriktad graf min c i x i (i,) x i = för alla (valens två) i N x i för alla S N (sammanhängande) i S N\S x i {0, } för alla (i, ) För TSPr: Ta bort första bivillkoren. lternativ (e för TSPr): x i S för alla S N (inga småcykler) i S S Observera likheten i formulering med MST. TSP är dock mycket svårare. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /
TSP, kort notation Riktat: min c T x då x(δ (i)) = i N x(δ + (i)) = i N x(γ(s)) S S N x {0, } m eller x(δ (S)) S N Oriktat: min c T x då x() = N x(δ(i)) = i N x(γ(s)) S S N x {0, } m eller x(δ(s)) S N Relaxation av TSP: -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 vare nods valens är lika med två. Om billigaste -träd är en Hamiltoncykel, är turen optimal. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Förbättring av -träd Nodstraff: ddition av konstant till c för alla bågar som ansluter till en nod ändrar e optimal handelsresandetur. lla tillåtna lösningar blir c dyrare. Finn billigaste -träd. Stopp om Hamiltoncykel fås. Optimum. Väl en nod med för hög valens. Öka kostnaderna för alla bågar som ansluter till noden med t.ex.. Gå till. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Försök få tillåten tur Utgå från en lösning där alla noder inte har valens två, t.ex. ett billigaste -träd. Mål: Försök få en tillåten lösning genom att byta enstaka bågar. yt en ändnod för enstaka bågar, från noder med för hög valens till noder med för låg. För att behålla en sammanhängande lösning: Gör förändring i cykler. Lägg till en båge till en nod med för låg valens. å bildas alltid en cykel. Ta bort en båge i cykeln, så att valenserna förbättras (och kostnaden inte ökar för mycket). Upprepa några gånger. Inget garanterat resultat. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /
Exempel: -träd Exempel: TSP 9 illigaste -träd. Kostnad:. -träd. Noder med fel valens. Lägg till båge. Ta bort en annan. Upprepa. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 9 / Exempel: TSP: Nodstraff Ka Holmberg (LiU) TOP Optimering 0 oktober 0 0 / Exempel: TSP -träd. Nod med hög valens. Öka kostnader. -träd. Upprepa. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Optimal TSP-tur. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /
TSP: LP-relaxation Steinerträdsproblemet LP-relaxationen samt relaxation av sammanhängandekrav: Kan ge lösningsgraf (där x i > 0) som e är sammanhängande. Lägg till det bivillkor som e uppfylls. 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. Lös LP-relaxationen. Identifiera en nodmängd S som e är sammanhängande med övriga noder, dvs. finn S : x(δ(s)) = 0. Lägg till bivillkoret x(δ(s)) och lös om LP-relaxationen. Om lösningen inte är sammanhängande, gå till. Mittennoden behöver inte vara med, men det blir billigare att ta med den. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Steinerträd Modell: Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ruttplaneringsproblemet Ett antal lastbilar skall köra ut varor till ett antal kunder. Vare 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. min c T x då x(δ(s)) S N, S N, (N \ S) N x {0, } m Om en måste-nod ligger i S och en annan måste-nod ligger i icke-s, så ska S vara förbunden med icke-s. Vare 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. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /
Matchningsproblemet Matchning: Högst en av bågarna ansluter till någon nod. Matchning med maximal kardinalitet (max antal bågar): max då eller i x i (x i + x i ) för alla i x i {0, } för alla i, max e T x då x(δ(i)) i N, x {0, } m Matchning med maximal vikt: max c i x i under samma bivillkor i Matchningsproblemet Perfekt matchning: samtliga noder har valens ett. Perfekt matchning med minimal vikt: min c i x i då eller i (x i + x i ) = för alla i x i {0, } för alla i, min c T x då x(δ(i)) = i N, x {0, } m eller max c T x då x(δ(i)) i N, x {0, } m Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Metod för matchning med max kardinalitet lternerande väg: Varannan båge ingår i matchningen. Utökande väg: Första och sista bågen ingår e i matchningen. En bättre matchning (en båge mer): yt matchad båge mot omatchad längs en utökande väg. Sats (erge 9) En matchning är maximal om och endast om det inte finns någon utökande väg. Metod: Så länge det finns minst två omatchade noder: Från vare omatchad nod: Finn en utökande väg. yt matchning längs vägen. ntingen finner man en utökande väg, och noden blir matchad, eller så finner man inte det, vilket bevisar att noden inte kan matchas. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 9 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Metod för matchning med max kardinalitet En matchning. Utökande väg: - - - - -. yt. En bättre matchning. Maximal, ty bara en omatchad nod. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 0 /
Metod för matchning med max kardinalitet tt leta efter en utökande väg: Metod för matchning med max kardinalitet Lätt för tudelade grafer. (Jämför tillordningsproblemet.) Men om inte tudelat: Kan innehålla udda cykel. En udda cykel med k bågar och (k )/ matchade bågar kallas blomma. Kan inte blir bättre. Edmonds metod: Krymp ihop blomman till en nod. Fortsätt som förut. När utökande väg finnes: Expandera blomman. Ev. behöver matchningen i den vridas. Polynomisk optimerande metod. En matchning. En blomma. Krymp den. Utökande väg: - - -. yt. Expandera blomman. Vrid blommans matchning. En bättre matchning. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Metod för bågfärgning Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Metod för tudelad bågfärgning I en bågfärgning utgör bågarna som färgats med en färg en matchning. Metod:. Finn en matchning med maximal kardinalitet.. Färga matchade bågar med en färg.. Ta bort färgen och de matchade bågarna. Upprepa tills inga bågar är kvar. Matchningen behöver inte vara maximal. et räcker om den täcker alla noder med maximal valens. å minskar den maximala valensen i vare steg, så antalet iterationer är inte mer än maxvalensen (vilket är mindre än antalet noder). enna metod löser problemet i tudelade grafer exakt, och är en bra heuristik för andra grafer. En matchning. Färga den röd. Ta bort bågarna. En ny matchning. Färga den blå. Ta bort bågarna. En ny matchning. Färga den grön. Färdig. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /
Kinesiska brevbärarproblemet En brevbärartur är en tur som använder vare 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 vare bro en gång. Pregel Königsberg En Eulercykel är en cykel som använder vare 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 ämn valens. et fanns inget promenadstråk genom Königsberg som passerade vare bro exakt en gång. (Se nodvalens.) Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Kinesiska brevbärarproblemet: Modell Matematisk modell: x i : antalet gånger båge (i, ) trafikeras. z i : antal gånger nod i passeras i turen. min c i x i eller då i (x i + x i ) z i = 0 för alla i x i, heltal z i, heltal min c T x då x(δ(i)) z i = 0 i N x, heltal z, heltal för alla i, för alla i Ka Holmberg (LiU) TOP Optimering 0 oktober 0 / Ka Holmberg (LiU) TOP Optimering 0 oktober 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 ä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. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /
Kinesiska brevbärarproblemet: Exempel Kinesiska brevbärarproblemet 0 Königsberg: 9 Finn Eulercykel. Kostnad: + =. 9 Ka Holmberg (LiU) TOP Optimering 0 oktober 0 9 / Ka Holmberg (LiU) TOP Optimering 0 oktober 0 0 / Kinesiska brevbärarproblemet ddera bågarna i billigaste perfekta matchning. Finn valfri Eulercykel. 9 Pregel Königsberg En söndagspromenad i Königsberg. Ka Holmberg (LiU) TOP Optimering 0 oktober 0 /