TNK049 Optimeringslära



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

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

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

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

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.

Föreläsningsanteckningar F6

Grafer, allmänt. Med datastrukturen graf menas vanligen: en mängd av noder (vertices) och en mängd av bågar (edges).

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

Föreläsning 5: Grafer Del 1

729G04 - Diskret matematik. Lektion 4

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning 6: Nätverksoptimering

Föreläsning 6 Datastrukturer (DAT037)

729G04 - Diskret matematik. Lektion 4

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

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

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

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

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

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

1 Minkostnadsflödesproblem i nätverk

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

Föreläsning Datastrukturer (DAT036)

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

Föreläsning Datastrukturer (DAT037)

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

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

FÖRELÄSNING 11 DATALOGI I

Tentamensinstruktioner. När Du löser uppgifterna

Föreläsning 8 Datastrukturer (DAT037)

Datastrukturer och Algoritmer D0041D

TNK049 Optimeringslära

Optimeringslära Kaj Holmberg

Graphs (chapter 14) 1

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

Föreläsning Datastrukturer (DAT036)

Föreläsning 10/11! Gruppuppgifter: Gruppuppgift 1: Alla har redovisat. Gruppuppgift 2: Alla har redovisat Gruppuppgift 3: På gång.

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

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

Föreläsning Datastrukturer (DAT037)

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm

Optimeringslära Kaj Holmberg

Föreläsning 6 Datastrukturer (DAT037)

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:

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:

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann

TNK049 Optimeringslära

TENTAMEN. Tentamensinstruktioner. Datum: 30 augusti 2018 Tid: 8-12

Näst nästa gång: Nästa gång: mer grafer (kap 10) Grafer 1 1. ! uppspännande träd. ! minimala uppspännande träd. ! Prims algoritm. !

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Matematik för språkteknologer (5LN445) Institutionen för lingvistik och filologi VT 2014 Författare: Marco Kuhlmann 2013

Föreläsning 2: Grafer. Exempel på graf

Optimering Kruskal s algoritm Prim-Jarník s algoritm

Tentamensinstruktioner. När Du löser uppgifterna

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

Datastrukturer. föreläsning 8. Lecture 6 1

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

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TNK047 [TEN1] OPTIMERING OCH SYSTEMANALYS

Föreläsningsanteckningar S6 Grafteori

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

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

Optimeringslära Kaj Holmberg

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Billigaste väg: Matematisk modell i vektor/matrisform. Billigaste väg: Matematisk modell i vektor/matrisform

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

Föreläsning 5: Dynamisk programmering

Kapitel 9: Grafalgoritmer

Datastrukturer. föreläsning 9. Maps 1

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Optimeringslära Kaj Holmberg

TNK049 Optimeringslära

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

träd dag graf båge och vikt Grafer definitioner och terminologi

Tentamensinstruktioner

Optimeringslära Kaj Holmberg

Trafiksimulering: Grafalgoritmer

Dynamisk programmering. Dynamisk programmering. Dynamisk programmering. Dynamisk programmering

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Tentamensinstruktioner

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

Grafer och grannmatriser

1(8) x ijt = antal mobiltelefoner av typ i=1,,m, Som produceras på produktionslina 1,, n, Under vecka t=1,,t.

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Laborationsinformation

Laborationsinformation

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

Tentamen MMG610 Diskret Matematik, GU

Datastrukturer. föreläsning 8. Maps 1

Hemuppgift 1, SF1861 Optimeringslära, VT 2017

Examinator: Torbjörn Larsson Jourhavande lärare: Torbjörn Larsson, tel Tentamensinstruktioner. När Du löser uppgifterna

Algebra och Diskret Matematik A (svenska)

Föreläsning Datastrukturer (DAT036)

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Transkript:

TNK49 Optimeringslära Clas Rydergren, ITN Föreläsning 7 Nätverksoptimering Billigaste uppspännande träd (MST) Billigaste väg (SP) Projektnätverk Minkostnadsflödesproblem

Agenda Terminologi för grafer/nätverk (kap 8.2) Billigaste uppspännande träd (kap 8.) Billigaste väg (kap 8.4) Projektnätverk (8.5) Minkostnadsflödesproblem (kap 8.6) 2

Graf: Relation mellan Noder (vertices, nodes) Graf/Nätverk Nodmängd N = n, n 2, n, n 4. Bågar (edges, arcs) Bågmängd B = b, b 2, b, b 4, b 5. Båglista b = n, n 2, b 2 = n, n, b = n 2, n, alternativt: b =,2, b 2 =,, b = 2,, n b b b 2 n 2 n b 4 b 5 n 4 Start- och slutnod Nodnummer för start- och slutnod Nätverk: Graf med data för noder/bågar Kapacitet, kostnad, flödesstyrkor etc. Snitt (cut) Mängd bågar som delar N i två delar

Oriktad graf (Undirected graph) Oriktad/Riktad graf Riktad graf (Directed graph) Oriktade bågar (edges) Valens (valence) Antal bågar som ansluter till noden Kedja/Väg (chain/path) Sekvens av oriktade bågar Cykel (cycle) Kedja med samma start/slutnod Sammanhängande graf (connected graph) En kedja mellan varje par av noder Träd (tree) Sammanhängde graf utan cykler Uppspännande träd (spanning tree) Träd som omfattar alla noder i grafen Riktade bågar (arcs) Väg/Rutt (path/route) Sekvens av bågar i framåtriktningen Kedja (chain) Sekvens av bågar utan riktningshänsyn Riktad cykel (directed cycle) Väg med samma start/slutnod Acyklisk graf (acyclic graph) Innehåller ingen riktad cykel Starkt sammanhängande graf (strongly connected graph) En rutt mellan varje par av noder 4

Definieras som: Tudelad (bipartit) graf Noderna kan delas upp i två mängder så att alla bågar går mellan den ena och den andra nodmängden. dvs Det finns ett snitt som alla bågar passerar. Matchningsproblem 5

Algebraisk grafrepresentation Nodmatris om båge går från nod i till nod j annars Anslutningsmatris Noder som rader; Bågar som kolumner om båge j börjar i nod i om båge j slutar i nod i annars a ij a ij N A n n n 2 n 4 b b b 5 b 4 b 2 Glesa matriser! Använd smart representation. 6

Billigaste uppspännande träd Minimum Spanning Tree (MST) Välj ut en delmängd av bågarna i grafen så att de tillsammans bildar ett uppspännande träd, där summan av bågkostnaderna är minimal. Egenskaper hos ett uppspännande träd n noder ger n bågar Minst två noder med valens = Adderas en båge (till ett träd) bildas en unik cykel Varje par av noder (i ett träd) kopplade via en (unik) kedja 6 4 5 8 c k 7

Metoder för billigaste uppspännande träd Kruskals algoritm för glesa grafer (956) Formell beskrivning, boken sid 88.. Betrakta alla bågar som ej avsökta.. Avsök billigaste kvarvarande båge. Om den bildar en cykel, gå till Annars, lägg till den till trädet 2. Om n- bågar i trädet klar Annars gå till Prims algoritm för täta grafer (957) Formell beskrivning, boken sid 88. 8 TNK49 Optimeringslära

Billigaste uppspännande träd (Kruskal) 2 5 Lägst index först! Cykel bildas! 2 T = {(,4); (,); (,2); (4,6); (4,5); (5,7)} 4 7 4 6 8 9 5 8 6 Lägst index först, men cykel bildas! Avbryt! Trädet innehåller 7 bågar! 6 7 9

Billigaste uppspännande träd (Prim) Startnod. Lägst index först! 2 5 2 T = {(,4); (,); (,2); (4,6); (4,5); (5,7)} 4 7 4 6 8 9 5 8 6 Här blev det samma träd som med Kruskals algoritm. Ibland får man dock olika träd, men alltid samma minimala pris. Vilket? Avbryt! Trädet innehåller 7 bågar! 6 7

Billigaste väg/shortest Path (SP) Givet ett riktat nätverk med kostnader (avstånd, restider) för varje båge, finn billigaste (kortaste, snabbaste) väg mellan givna startnod(er) och slutnod(er). En startnod till en slutnod Individuell vägplanering Alternativ En startnod till alla slutnoder o Utryckningsvägar från brandstationen. Alla noder till alla andra o Trafikplanering

Billigaste väg kan formuleras som ett LP-problem Hitta billigaste väg från till 5 Varje båge som används orsakar kostnad Antag inga cykler med negativ kostnad, c ij <. Problemet kan formuleras som ett minkostnadsflödesproblem Flöde av en enhet skickas från till 5 Multiplicera flödet på varje båge, med bågkostnaden Kan formuleras som ett LP Problemet kan lösas med simplexmetoden! Effektivare metoder finns! 2 4 min x då x 4 5 2 x x24 x2 4x5 x x ij ij 2 x 2 x x, heltal x x 24 24 x x 2 2 x ij flödet på båge ( i, j) Här ekvivalent med: x ij x x om( i, j)används annars 5 5 x x x 4 4 4 x x x,( i, j) B, där B är bågmängden Ej nödvändigt (se nästa Fö) 45 45 45 2

Bellmans ekvationer Acykliska nätverk kan ritas på en linje så att inga bågar går bakåt 8 8 s 2 2 5 4 4 5 t s 2 2 6 5 4 4 4 5 t 6 4 I acykliska nätverk kan billigaste väg bestämmas med Bellmans ekvationer: Bestäm successivt nodpriset y j, som är kostnaden från stardnod till nod j som y j min i ( i, j) { y c : B i ij } y 5 y Exempel: y 5 c 57 c 7 7 y 7 min{ y c7, y5 57} 7 c

4 Edsger W. Dijkstra 9 22 Eindhoven University, Nederländerna

Dijkstras algoritm (959) För nätverk med cykler krävs iterativa metoder. T ex Dijkstras algoritm. Formell beskrivning, boken sid 92.. Dela upp nodmängden N i avsökta A, och ej avsökta D. Sätt initialt A = och D = N. Märk alla noder med (föregångare, nodpris): För startnoden s gäller p s, y s =, ; för övriga noder p i, y i =,.. Hitta den ej avsökta nod i D, som har lägst nodpris. 2. Avsök nod i, dvs undersök alla utgående bågar från noden. Om y i + c ij < y j så har billigare väg till nod j hittats. Märk om nod j med p j, y j = i, y i + c ij. (* Om j A, flytta över j till D.). Flytta över nod i från D till A. 4. Avbryt om alla noder avsökta (A = N). Annars gå till * Kan bara inräffa om nätverket har negativa bågkostnader. Algoritmen kallas då Fords algoritm (956) 5

Projektnätverk/Aktivitetsnät Bågarna svarar mot aktiviteter. Noderna svarar mot händelser (då aktiviteter kan lösas av). Aktiviteter längs en kritisk linje. Kan ses som dyraste väg. Acyklisk Bellmans ekvationer duger. Vissa aktiviteter kan utföras parallellt. En del aktiviteter kan göras nästan när som helst. Exempel: Bygga hus. Genomföra stora ingenjörsprojekt. 6

Minkostnadsflödesproblem Vi vill skicka ett flöde till minsta kostnad. Noder Bågar Lösning Har en styrka (positiv om källa, negativ om sänka, noll annars). Styrkan anger volymen som ska skeppas ut/tas emot. Ibland okänd styrka, modelleras med superkälla/supersänka. Vi måste behålla nodbalans. Anger möjliga flöden i tid, rum och/eller tillstånd. Kan ha kostnader (eller intäkter). Kan ha kapaciteter. Kapaciteter nedåt kan användas för att modellera kontrakterade flöden. Nätverkssimplex, speciell variant av simplexmetoden (nästa föreläsning). 7

Exempel minkostnadsflödesproblem (Miniprojekt 2 handlar om modellering av det här slaget.) Ett företag har Två fabriker med produktionskapacitet på 5 enheter vardera. 2 kunder med efterfrågan respektive 75 enheter. Varorna kan levereras direkt eller via ett centrallager (dock ej direkt fabrik till kund 2 eller fabrik 2 till kund ). Fabrik 2s varor kan skickas via fabrik. Kund 2s varor kan skickas via kund. Mål Uppfyll efterfrågan och minimera företagets transportkostnad. Konstruera nätverket! 8

Inför Lektion 7 Uppgift 8.2: Billigaste uppspännande träd. Försök lösa med både Kruskals och Prims algoritm. Titta på exemplen ovan. Obs, det måste noga framgå vad som gjorts och i vilken ordning! Uppgift 8.4: Billigaste väg. 9

www.liu.se