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 enkel cykel innehåller ingen mindre 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/TOP Optimering september 0 / Uppspännande 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. 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 Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / efinition En fullständig graf har en båge mellan varje par av noder. efinition I en tudelad graf går alla bågar från en nodmängd till en annan. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/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. En Hamiltonväg är en väg 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/TOP Optimering september 0 / Hamiltoncykel Kaj Holmberg (LiU) TOP/TOP Optimering september 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 ij, c(e) = (i,j) E (i,j) E c ij Petersens graf saknar Hamiltoncykel och Eulercykel. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering september 0 /
Nodmängder Oberoende nodmängd: Ingen direktbåge mellan två noder. Nodövertäckning: Varje båge ansluter till minst en nod. Nodmängder En klick är en fullständig subgraf. 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). Kaj Holmberg (LiU) TOP/TOP Optimering september 0 9 / ågmängder ågövertäckning: Varje nod ansluter till en båge. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 0 / Graffärgning Nodfärgning: Inga två närliggande noder har samma färg. 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/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering september 0 /
Intressanta optimeringsproblem 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, χ. Satser 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.) Varje plan graf kan färgas med fyra färger. 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.) Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / illigaste uppspännande träd (MST) Finn ett billigaste uppspännande träd i en given oriktad graf med bågkostnader. 0 Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Heltalsformulering av MST Variabeldefinition: x ij = om båge (i, j) ingår i trädet, 0 om inte, för alla (i, j). min då (i,j) (i,j) c ij x ij x ij = N x ij S för alla S N (Inga cykler.) i S j S x ij {0, } lternativt: i S j N\S för alla (i, j) x ij för alla S N (Sammanhängade.) Många bivillkor. (Exponentiellt många.) Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering september 0 /
MST Graf-baserade lösningsmetoder: 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 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/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) Kaj Holmberg (LiU) TOP/TOP Optimering 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. 0 0 Kaj Holmberg (LiU) TOP/TOP Optimering september 0 9 / Kaj Holmberg (LiU) TOP/TOP Optimering september 0 0 /
Prims metod (bättre implementering) 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. 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. 0 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/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.) Kaj Holmberg (LiU) TOP/TOP Optimering 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/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering 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 Observera likheten i formulering med MST. TSP är dock mycket svårare. 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 Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Relaxation av TSP: -träd Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / 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. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering september 0 /
Försök få tillåten tur Exempel: -träd 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). 9 Upprepa några gånger. illigaste -träd. Kostnad:. Inget garanterat resultat. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 9 / Exempel: TSP Kaj Holmberg (LiU) TOP/TOP Optimering september 0 0 / Exempel: TSP: Nodstraff -träd. Noder med fel valens. Lägg till båge. Ta bort en annan. Upprepa. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / -träd. Nod med hög valens. Öka kostnader. -träd. Upprepa. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 /
Exempel: TSP TSP: LP-relaxation 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, 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. Optimal TSP-tur. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Steinerträdsproblemet Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Steinerträd 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. Modell: 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. Mittennoden behöver inte vara med, men det blir billigare att ta med den. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/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. Matchningsproblemet Matchning: Högst en av bågarna ansluter till någon nod. Matchning med maximal kardinalitet (max antal bågar): max då i j x ij (x ij + x ji ) för alla i j x ij {0, } för alla i, j eller max e T x då x(δ(i)) i N, x {0, } m 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/TOP Optimering september 0 / Matchningsproblemet Perfekt matchning: samtliga noder har valens ett. Perfekt matchning med minimal vikt: min c ij x ij då eller i j (x ij + x ji ) = för alla i j x ij {0, } för alla i, j min c T x då x(δ(i)) = i N, x {0, } m Matchning med maximal vikt: max c ij x ij under samma bivillkor eller i j max c T x då x(δ(i)) i N, x {0, } m Kaj Holmberg (LiU) TOP/TOP Optimering september 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 ej 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 varje 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. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 9 / Kaj Holmberg (LiU) TOP/TOP Optimering september 0 0 /
Metod för matchning med max kardinalitet Metod för matchning med max kardinalitet Hur finner man utökande väg?. Välj en omatchad nod, i, och märk den med.. Välj en omatchad båge (i, j), där nod i är märkt med och nod j omärkt. Märk nod j med +.. Välj en matchad båge (i, j), där nod i är märkt med + och nod j omärkt. Märk nod j med.. Upprepa och tills en omatchad nod, j, blir märkt med +.. Nysta upp en alternerande väg från i till j. Obs: Vägen kan antingen vara en enda omatchad båge, eller måste innehålla minst en matchad båge. Om det inte finns någon båge i steg, måste man upprepa steg. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Metod för matchning med max kardinalitet tt leta efter en utökande väg: En matchning. Välj en omatchad nod. Omatchad båge (,). Matchad båge (,). Omatchad båge (,). Matchad båge (,). Omatchad båge (,). Utökande väg: - - - - -. yt. En bättre matchning. Maximal, ty bara en omatchad nod. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / 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. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering september 0 /
Metod för bågfärgning 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 varje 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. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering 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/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering 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 eller då i j (x ij + x ji ) z i = 0 för alla i j x ij, heltal z i, heltal min c T x då x(δ(i)) z i = 0 i N x, heltal z, heltal för alla i, j för alla i Kaj Holmberg (LiU) TOP/TOP Optimering september 0 9 / 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/TOP Optimering september 0 0 / Kinesiska brevbärarproblemet 0 Königsberg: 9 Finn Eulercykel. Kostnad: + =. 9 Kaj Holmberg (LiU) TOP/TOP Optimering september 0 / Kaj Holmberg (LiU) TOP/TOP Optimering september 0 /
Kinesiska brevbärarproblemet ddera bågarna i billigaste perfekta matchning. Finn valfri Eulercykel. 9 Pregel Königsberg Exempel på tur: ---------. En söndagspromenad i Königsberg. Kaj Holmberg (LiU) TOP/TOP Optimering september 0 /