Chapter 7: Transport-, assignment- & transshipmentproblemer



Relaterede dokumenter
Samtlige 3 problemtyper tilhører klassen 8/>A9<5 069A :<9,6/7=.

Chapter 5: Simplex metoden til løsning af LP. -> max problem alle uligheder af typen ì alle højresider ikke-negative alle variable ikke-negative

Chapter 6: Følsomhedsanalyse og dualitet i LP

Simplex metoden til løsning af LP

Kapitel 9: Netværksmodeller

Ugeseddel 12( )

Kapitel 9: Netværksmodeller

Operationsanalyse 1 Obligatorisk opgave 2

4. Simplexmetoden. Basisløsning. x Geometrisk hovedindhold

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

Emneopgave: Lineær- og kvadratisk programmering:

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515)

Projekt Planlægning: PERT/CPM

Matrx-vektor produkt Mikkel H. Brynildsen Lineær Algebra

Videregående Algoritmik. Version med vejledende løsninger indsat!

LINEÆR OPTIMERING JESPER MICHAEL MØLLER. Resumé. Disse noter handler om dualitet i lineære optimeringsprogrammer.

M=3 kunde forbindelse. oprettet lokation Steinerkant

Ligninger med reelle løsninger

Aflevering 4: Mindste kvadraters metode

Lineære ligningssystemer og Gauss-elimination

Note om interior point metoder

Ligningssystemer - nogle konklusioner efter miniprojektet

Matematik og FormLineære ligningssystemer

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning

MASO Uge 11. Lineær optimering. Jesper Michael Møller. Uge 46, Formålet med MASO. Department of Mathematics University of Copenhagen

Matematik: Stuktur og Form Lineære ligningssystemer

Udvikling af operations karakteristika/performance mål for køsystemer

Operationsanalyse, Ordinær Eksamen 2017I Rettevejledning

Fagets IT Introduktion til MATLAB

Københavns Universitet, Det naturvidenskabelige Fakultet. Afleveringsopgave 1

To ligninger i to ubekendte

Lineære ligningssystemer

Teoretiske Øvelsesopgaver:

Matematik og Form 3. Rækkereduktion til reduceret echelonfo. Rang og nullitet

Grundlæggende køretidsanalyse af algoritmer

Skriftlig Eksamen Algoritmer og Datastrukturer (dads)

Noter til kursusgang 8, IMAT og IMATØ

De fire elementers kostbare spejl

Operationsanalyse. Hans Keiding

Flemmings Maplekursus 1. Løsning af ligninger

Lineær algebra Kursusgang 6

Selvstudium 1, Diskret matematik

Delprøven uden hjælpemidler

Oversigt [LA] 6, 7, 8

LINALG JULENØD 2013 SUNE PRECHT REEH

Operationsanalyse MØK

Anvendt Lineær Algebra

Kapitel 9. Optimering i Microsoft Excel 97/2000

Algoritmedesign med internetanvendelser ved Keld Helsgaun

Lineær algebra 4. kursusgang

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 8. Juni 2015

Kap4: Velfærdseffekten af prisdiskriminering i flybranchen

Matrix Algebra med Excel Forelæsningsnoter til FR86. Jesper Lund

Analysestrategi. Lektion 7 slides kompileret 27. oktober :24 p.1/17

Matricer og lineære ligningssystemer

Økonometri: Lektion 2 Multipel Lineær Regression 1/27

Figur. To ligninger i to ubekendte. Definition Ved m lineære ligninger med n ubekendte forstås. Definition 6.4 Givet ligningssystemet

Kursusgang 3 Matrixalgebra Repetition

Operationsanalyse Eksamensnoter Frederik Silbye

Fejlkorligerende køder Fejlkorrigerende koder

Sommeren 2001, opgave 1

Kapitel 11 Lineær regression

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel

Tal. Vi mener, vi kender og kan bruge følgende talmængder: N : de positive hele tal, Z : de hele tal, Q: de rationale tal.

Grådige algoritmer. Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Algoritmeskabeloner: Sweep- og søgealgoritmer C#-version

1 Oligopoler (kapitel 27)

DesignMat Uge 1 Gensyn med forårets stof

1 Ensidet variansanalyse(kvantitativt outcome) - sammenligning af flere grupper(kvalitativ

Eksempel Multipel regressions model Den generelle model Estimation Multipel R-i-anden F-test for effekt af prædiktorer Test for vekselvirkning

2010 Matematik 2A hold 4 : Prøveeksamen juni 2010

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

DesignMat Lineære ligningssystemer og Gauss-elimination

Module 3: Statistiske modeller

3.1 Baser og dimension

grupper(kvalitativ exposure) Variation indenfor og mellem grupper F-test for ingen effekt AnovaTabel Beregning af p-værdi i F-fordelingen

dcomnet-nr. 8 Simpel aritmetik på maskinniveau Computere og Netværk (dcomnet)

Substitutions- og indkomsteffekt ved prisændringer

Målet for disse slides er at beskrive nogle algoritmer og datastrukturer relateret til at gemme og hente data effektivt.

LiA 2 Side 0. Lineær algebra 3. kursusgang

Lineær programmering. med Derive. Børge Jørgensen

LiA 5 Side 0. Lineær algebra Kursusgang 5

Opgaver til Kapitel 6 MatB

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger

Besvarelser til Lineær Algebra Reeksamen August 2016

Algebra - Teori og problemløsning

Danmarks Tekniske Universitet

Skriftlig Eksamen Algoritmer og sandsynlighed (DM538)

Lineære ligningssystemer

Statistik II 1. Lektion. Analyse af kontingenstabeller

1 Regressionsproblemet 2

Lineær algebra 1. kursusgang

Mindste kvadraters tilpasning Prædiktion og residualer Estimation af betinget standardafvigelse Test for uafhængighed Konfidensinterval for hældning

Undervisningsbeskrivelse

Undervisningsbeskrivelse

Grådige algoritmer. Et generelt algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer.

Basale forudsætninger. Sortering ved fletning med tre bånd, i to faser.

Lineær Algebra. Lars Hesselholt og Nathalie Wahl

1 Kapitel 5: Forbrugervalg

Transkript:

Chapter 7: Transport-, assignment- & transshipmentproblemer 1) Formulering af de 3 problemtyper 2) Algoritme for det balancerede transportproblem 3) Algoritme for assignmentproblemet Samtlige 3 problemtyper tilhører klassen 8/>A9<5069A:<9,6/7=. Det betyder, at de kan beskrives grafisk i termer af et netværk. Et netværk Kbestår af et sæt af noder a og et sæt af kanter T-> K( a, T) Enhver kant forbinder 2 noder. Kanter kan være orienterede eller ikke-orienterede. Kanter har i nogle applikationer en tilknyttet parameter,f.eks. længde, kapacitet eller omkostning pr. transporteret enhed.sættet af parametre for alle kanter i netværket kan samles i vektoren G. etværket er dermed defineret ved K( a, T, GÞ ) Transportproblemet: etværket består her af 2 typer noder 1) udbydere 3œ1,..., 2) efterspørgere 4œ1,..., Enhver kant svarer til en forbindelse mellem en udbyder 3 og en efterspørger 4. Enhver udbyder har et kendt udbud s 3 og enhver efterspørger en kendt efterspørgsel d 4. Omkostningerne ved at sende en vareenhed fra udbyder 3 til efterspørger 4 langs kanten fra 3 til betegnes c. 4 34 Problemet består nu i at bestemme det omkostningsminimerende transportskema, så samlet flow ud fra enhver udbyder er mindre end eller lig med pågældende udbud, og så samlet flow ind til enhver efterspørger er lig med pågældende efterspørgsel. Eksempel: 3œ1,..., 3 4œ1,..., 4

6000 5000 3 2 7 6 4000 s œ Î 6000 Ñ Î Ñ, d œð Ó, Gœ Î 7 5 2 3 Ñ Ï 2000 2500Ò Ï2 5 4 5Ò Ï1500 Ò odel p. 297! Generel formulering for problemet i standardform, d.v.s. med! s œ! d: 3œ" 3 4 4œ" min!! c x 3œ"4œ" 34 34 34 3 4œ" 34 4 3œ" s.t.! x œs, 3œ1,...,! x œd, 4œ1,..., x34 0, 3œ1,..., 4œ, 1,..., Her måler x 34 flow fra udbyder 3til efterspørger 4. Observation: s- og d-vektorerne heltallige ->heltallige basis løsninger Variationer:! s Á! d 3œ" 3 4 4œ" maximering af kriteriefunktion øvre og nedre bånd på flows langs kanter ikke tilladte flows Assignmentproblem: etværket består af 2 typer noder 1) udbudsnoder 3œ1,..., O 2) efterspørgselsnoder 4œ1,..., O Enhver udbudsnode er udbyder af en enhed, og enhver efterspørgselsnode er efterspørger af en enhed. Omkostningerne ved at assigne udbyder 3 til efterspørger betegnes c. 4 34

Problemet består nu i at bestemme det omkostningsminimerende assignment, så enhver udbyder assignes til netop en efterspørger. Bemærk: Problemet er et specialtilfælde af transportproblemet. Eksempel: 3œ1,..., 3 4œ1,..., 3 Gœ Î 10 15 9 9 18 5 Ñ Ï 6 14 3Ò odel p. 304! Generel formulering: min O O!! c x 3œ"4œ" 34 34 O s.t.! x34 œ1, 3œ1,..., O 4œ" O! x34 œ1, 4œ1,..., O 3œ" x34 œ0 Î", 34œ, 1,..., O Her er x principielt en binær variablel, der antager værdien 1 hvis og kun hvis udbyder assignes til efterspørger 4. 34 3 Observation: RHSs heltalige netværskstruktur -> heltallige basis løsninger -> x34 œ0 Î" kan skrives x34 0 Variationer: # udbydere Á # efterspørgere maximering af kriteriefunktion ikke tilladte assignments multiple assignments Kvadratisk assignment problem: O O O O O O 34 34 35 46 34 56 3œ"4œ" 3œ"4œ"5œ"6œ" -> min!! c x!!!! f d x x

s.t. assignment betingelser Det kvadratiske assignment problem opstår f.eks. ved lokalisering af butikker i et stort varehus. ogle butikker besøges oftere af de samme kunder end andre. Det er derfor hensigtsmæssigt at placere sådanne butikker tæt ved hinanden, så deres kunder ikke tvinges til at gå fra den ene ende af varehuset til den anden. Lad c 34 betegne de direkte omkostninger ved placering af butik 3 på plads 4 i varehuset. Lad f 35 betegne det forventede antal kunder, der på en bestemt dag både skal besøge butik 3 og butik 5, og lad d46 betegne gangafstanden mellem plads 4 ogplads 6 i varehuset. Så måler f35d 46 den samlede gangafstand for disse kunder hvis butik 3 placeres på plads 4og butik 5på plads 6. Denne gangafstand realiseres kun hvis både x 34 og x 56 antager værdien 1. Transshipmentproblem: etværket består her af 3 typer noder 1) udbydere 3œ1,..., 2) efterspørgere 4œ1,..., 3) intermediate noder eller depoter 5œ1,..., O Enhver kant svarer til en forbindelse mellem Ú en anden udbyder 3w, 1) en udbyder 3 og Û en efterspørger 4, eller Ü en intermediate node 5 Ú en udbyder 3, 2) en intermediate 5 ogû en efterspørger 4, eller Ü en anden intermediate 5' Ú en udbyder 3, 2) en efterspørger 4 ogû en anden efterspørger 4', eller Ü en intermediate 5 Enhver udbyder har et kendt udbud s og enhver efterspørger en kendt efterspørgsel d. 3 4 Omkostningerne ved at sende en vareenhed fra node til node ' betegnes c. 6 6 66' Problemet består nu i at bestemme det omkostningsminimerende transportskema, så samlet flow ud fra enhver udbyder er mindre end eller lig med pågældende udbud, samlet flow ind til enhver efterspørger er lig med pågældende efterspørgsel, og så samlet flow ind er lig med samlet flow ud for enhver intermediate node.

Eksempel: 3œ1, 2 4œ1,..., 4 5œ1, 2 Î200 Ñ 600 150 s œœ, d œ, 400 Ð Ó 350 Ï300 Ò GœŒ 2 3, Hœ Œ 2 6 3 6 3 1 4 4 6 5 x 35 måler flow fra udbyder 3 til intermediate 5 y54 måler flow fra intermediate 5 til efterspørger 4 odelformulering afviger lidt fra p. 310, fordi det ofte er fordelagtigt i en dokumentation af modellen at skelne mellem de forskellige typer af flows, her altså fra udbydere til intermediates og fra intermediates til efterspørgere. Generel formulering for problemet i standardform, d.v.s. alene med forbindelser mellem udbydere og intermediates og mellem intermediates og efterspørgere og med! s œ! d: 3œ" 3 4 4œ" O O 35 35 54 54 3œ"5œ" 5œ"4œ" min!! c x!! d y O 35 3 5œ" O 54 4 5œ"! 35! 54 3œ" 4œ" s.t.! x œs, 3œ1,...,! y œd, 4œ1,..., x y œ0, 5œ1,..., O x35 0, 3œ1,..., 5œ, 1,..., O y54 0, 4œ1,...,, 5œ1,..., O Observation: s- og d-vektorerne heltallige netværksstruktur-> heltallige basis løsninger Variationer:! s Á! d 3œ" 3 4 4œ" maximering af kriteriefunktion øvre og nedre bånd på flows langs kanter ikke tilladte flows

flow principielt tilladt mellem ethvert par af noder Algoritme til løsning af transportproblemet i standardform: min!! c x 3œ"4œ" 34 34 34 3 4œ" 34 4 3œ" s.t.! x œs, 3œ1,...,! x œd, 4œ1,..., x34 0, 3œ1,..., 4œ, 1,..., Bemærk: Lineær afhængighed mellem sættet af begrænsninger. Adder først alle udbudsbegrænsninger. Adder dernæst alle efterspørgselsbegrænsninger. Træk sidste sum fra første. Resultatet er 0 œ 0, fordi samlet udbud summerer til samlet efterspørgsel, og fordi ethvert x 34 alene indgår i den 3'te udbudsbegrænsning og den 4'te efterspørgselsbegrænsning begge steder med koefficient 1. En vilkårlig begrænsning kan derfor udelades - hvis de resterende er opfyldt holder den sidste pr. konstruktion. En basisløsning i simplexforstand består derfor af 1 basis variable. Identificer en initial basisløsning v.h.a. min-cost metoden med udgangspunkt i det såkaldte transportarray: 3Ï4 1 2 3 4 s3 1 3 2 7 6 5000 2 7 5 2 3 6000 3 2 5 4 5 2500 d 6000 4000 2000 1500 4 Her svarer hver række til en udbudsbegrænsning og hver søjle til en efterspørgselsbegrænsning. Hver celle i rækkerne mærket 1, 2 og 3 og søjlerne mærket 1, 2, 3 og 4 svarer til en variabel x. 34 in cost algoritme: 1) Send så meget som muligt i celle med laveste omkostningskoefficient. Vælg celle med maximalt tilladt flow ved ties.

2) Reducer udbud i modsvarende række og efterspørgsel i modsvarende søjle med dette flow. Slet række/søjle, med residual udbud/efterspørgsel lig 0 (slet kun den ene eller den anden, hvis begge går i 0!). 3) Hvis alle rækker og søjler er slettede, STOP; initial basis løsning er fundet. Ellers gå til 1). Bemærk: Vi finder en løsning med 1 allokerede celler svarende til det krævede antal basis variable. Optimalitetstest: Til en given basisløsning beregnes den modsvarende kriteriefunktionsværdi let ved addition af basisvariablenes værdier ganget med deres kriteriekoefficienter. Anvendelse af algoritmen på eksemplet resulterer i Tabel 7.14! Dualitetsrelationerne fra Chapter 6 viste, at en optimal primal basis løsning korresponderer til en optimal dual basis løsning. Hvis aktuel basis for transportproblemet er optimal, så skal modsvarende duale løsning være optimal i det duale problem, d.v.s. brugbar og med samme kriteriefunktionsværdi. Lad os se på det duale LP for et transportproblem: 3 3 4 4 3œ" 4œ" max! du! sv s.t. u3 v4 Ÿc 34, 3œ1,..., 4œ, 1,..., hvor u og v er frie variable, fordi de primale begrænsninger er ligheder. Dualitetsteorien viste også, at en primal basis variabel korresponderer til en bindende dual begrænsning. Vi kender den primale basis løsning, for den er defineret ved de allokerede celler i transportarrayet (se Tabel 7.14). x B œ (x 11, x 12, x 21, x 23, x 24, x 31) Det modsvarende sæt af bindende duale uligheder er derfor: u 1 v 1 œ3 u 1 v 2 œ2 u 2 v 1 œ7 u 2 v 3 œ2 u 2 v 4 œ3 u v œ2 3 1

Vi har her 6 ligninger med 7 ubekendte, d.v.s. i princippet uendeligt mange løsninger. en 'en dual variabel kan vælges frit, fordi der er lineær afhængighed i sættet af primale begrænsninger. Vi vælger at sætte u 0. 1 œ Herefter trævles ligningssystemet op: v1 œ 3 u1 œ0 Êœ v2 œ 2 u2 œ 4 v1 œ3 Êœ u3 œ 1 v3 œ 2 u2 œ4 Êœ v œ 1 4 Vi har beregnet den duale løsning med udgangspunkt i et sæt bindende duale uligheder. Hvis løsningen skal være dualt brugbar, skal de resterende uligheder være opfyldt. Lad os se på disse: u1 v3 Ÿc13 Ê 0 2 Ÿ7 r u1 v4 Ÿc14 Ê 0 1 Ÿ6 r u2 v2 Ÿc22 Ê 4 2Ÿ5 u3 v2 Ÿc32 Ê 1 2 Ÿ5 r u3 v3 Ÿc33 Ê 1 2 Ÿ4 r u3 v4 Ÿc34 Ê 1 1 Ÿ5 r Den duale ulighed svarende til variabel x er brudt. Den intuitive fortolkning er, at værdien af 22 at sende en enhed fra udbyder 2 til efterspørger 2 er 6, mens de hermed forbundne omkostninger er 5. Idet marginalværdien er højere end marginalomkostningerne, kan en billigere transportløsning findes ved at ved at bruge kanten fra udbyder 2 til efterspørger 2. I termer af simplexalgoritmen er x p.t. ikke-basis variabel (aktuel værdi 0), som ønskes 22 løftet. Det betyder at en aktuel basis variabel skal reduceres til 0, d.v.s. gører til en ikke-basis variabel. Hvordan kan den operation udføres i vort transportarray? Lad os se på den aktuelle løsning: v4 3 2 2 1 u3 3Ï4 1 2 3 4 s3 0 1 1000 4000 - - 5000 4 2 2500 2000 1500 6000 1 3 2500 - - - 2500 d 6000 4000 2000 1500 4

'et i cellen i række 2 og søjle 2 indikerer, at flowet i denne celle ønskes løftet. Husk nu, 1) at hver celle i arrayet korresponderer til en variabel, 2) at hver række korresponderer til udbudsbegrænsning og hver søjle til en efterspørgselsbegrænsning, og 3) at vi i simplex baseret LP altid bevæger os fra en basis til en nabobasis. 3) betyder, at alle øvrige aktuelle ikke-basis variable bortset fra x skal vedblive at antage 22 værdi 0. 1) betyder derfor, at flow i cellerne (1, 3), (1, 4), (3, 2), (3, 3) og (3, 4), der alle er mærket (-), skal forblive på nivau 0. 2) betyder, at vi ikke kan ændre flow i en celle placeret i en række eller en søjle, hvor flow i pågældende celle er det eneste, der kan ændres. Sådanne rækker og søjler kan derfor overstreges. Gentag nu overstregningsproceduren i det således reducerede array. Vi ender da i en situation, hvor der i enhver ikke overstreget række eller søjle er præcis to celler med et flow, der kan ændres. Og cellen mærket vil aldrig være overstreget. Bruges den procedure på eksemplet ovenfor kan søjlerne 3 og 4 samt rækken 3 overstreges. Det reducerede array består herefter af cellerne (1, 1), (1, 2), (2, 1) og (2, 2). Skal flow i celle (2, 2) løftes må flow i celle (1,2) nødvendigvis reduceres, skal flow i (1, 2) reduceres må flow i (1, 1) øges, skal flow i (1, 1) øges må flow i (2, 1) reduceres, og dette kræver, at flow i (2, 2) øges. Dette er den basale ide i den såkaldte stepping stone algoritme. Stepping Stone Algoritme: 1) ærk indgående celle i array og lad 4 betegne dennes søjle index. Gå til 2). 2) ærk den eneste anden celle i søjle 4 hvori flow kan ændres med og lad 3 betegne dennes række index. Gå til 3). 3) ærk den eneste anden celle i række 3 hvori flow kanændres med og lad 4 betegne dennes søjle index. STOP hvis 4 er søjleindex for indgående celle; opdateringsloop er identificeret. Ellers gå til 2). Flowet i cellerne skiftevis mærket og skal nu opdateres. Vi ønsker at øge flowet mest muligt i indgående celle. Hver gang det øges med en enhed, skal flowet i efterfølgende celler mærket reduceres med en enhed, og flowet i efterfølgende celler mærket øges med

en enhed. Den maximale flowtilvækst i indgående celle findes derfor som det minimale aktuelle flow i celler mærket. Lad @ betegne denne mindsteværdi. Den ny basis løsning fremkommer da ved at øge flow i alle celler mærket med værdien @ og reducere flow i alle celler mærket med @. Vi skal nu undersøge om den nye basis løsning er optimal. Det sker ved at beregne de duale priser svarende til den nye basis løsning og teste, om en dual ulighed for en primal ikke-basis variabel er brudt. Er dette ikke tilfældet, er aktuel basis løsning optimal. Er det tilfældet vælges den aktuelle ikke-basis variabel svarende til den 'mest brudte' duale ulighed som indgående, og Stepping Stone Algoritmen anvendes til identifikation af ny basis løsning. Transportalgoritmen: Specialalgoritme er hensigtsmæssig, fordi problemets helt specielle struktur kan udnyttes til simpel udregning af dualpriser. Og fordi problemet ofte er karakteriseret ved et meget stort antal variable og antal begrænsninger. Specialalgoritmen er baseret pa simplex metoden. Alle beregninger er relateret til det såkaldte transport array: 1) Find en brugbar initial basisløsning. -> brug min cost metoden 2) Beregn dualpriser svarende til aktuel basisløsning. -> løs dualt ligningssystem for sættet af aktuelle basis variable/allokerede celler 3) Beregn reducerede omkostninger (svarende til elementer i 0'te række i simplextableauet) for aktuelle ikke-basisvariable T " T T T " -> c B A ( c ) -> c c B A F F -> c u v for alle ikke-basis/ikke-allokerede celler i transportarray 34 3 4 Hvis min (c34 u3 v) 4 < 0(hvor der minimeres over ( 3, 4) kombinationer for ikke allokerede celler), sa pivoter ( 3, 4)'te p.t. ikke-basisvariabel til basis. Ellers STOP. Aktuel løsning er optimal. 4) Find udgaende variabel (den p.t. basisvariabel, der først antager værdien 0, nar den indgaende p.t. ikke-basisvariabel bringes til at stige. Her bruges stepping stone algoritmen.

5) Opdater transportarray (find ny basisløsning). Ga til 2). etoder til bestemmelse af initial brugbar basisløsning: 1) in cost metode: 1) Find billigste kant (i', j') og send sa meget som muligt langs denne. 2) Reducer udbud i række i' og efterspørgsel i søjle j' med mængden allokeret til celle (i', j'). 3) Hvis ethvert række udbud / søjle efterspørgsel er dækket, sa STOP. Aktuel allokering udgør en BFS. Ellers ga til 4). 4) Hvis reduceret udbud i en række er lig 0, sa slet rækken. Hvis efterspørgsel i en søjle er lig 0, sa slet søjlen. Hvis flere rækker/søjler har reduceret udbud/efterspørgsel lig 0 slettes kun 'en af disse; slettet række/søjle vælges i den situation vilkarligt. 5) Ga til 1) og gentag for ikke slettede rækker og søjler. De efterfølgende 3 metoder er ikke gennemgået i lærebogen: 2) ord-vest metoden: 1) Find den celle (i', j') i transportarrayet, der er placeret længst mod retningen nord-vest og send sa meget som muligt langs den modsvarende kant. 2) Reducer udbud i række i' og efterspørgsel i søjle j' med mængden allokeret til celle (i', j'). 3) Hvis ethvert række udbud / søjle efterspørgsel er dækket, sa STOP. Aktuel allokering udgør en BFS. Ellers ga til 4). 4) Hvis reduceret udbud i en række er lig 0, sa slet rækken. Hvis efterspørgsel i en søjle er lig 0, sa slet søjlen. Hvis flere rækker/søjler har reduceret udbud/efterspørgsel lig 0 slettes kun 'en af disse; slettet række/søjle vælges i den situation vilkarligt. 5) Ga til 1) og gentag for ikke slettede rækker og søjler. 3) Vogel-metode:

1) Bestem i hver række og søjle differens mellem omkostninger i billigste og næstbilligste celle. Find den række eller søjle, hvor denne differens er størst. Send sa meget som muligt i den billigste (ikke slettede) celle i pågældende række eller søjle, d.v.s. langs kanten (i', j'). 2) Reducer udbud i række i' og efterspørgsel i søjle j' med mængden allokeret til celle (i', j'). 3) Hvis ethvert række udbud / søjle efterspørgsel er dækket, sa STOP. Aktuel allokering udgør en BFS. Ellers ga til 4). 4) Hvis reduceret udbud i en række er lig 0, sa slet rækken. Hvis efterspørgsel i en søjle er lig 0, sa slet søjlen. Hvis flere rækker/søjler har reduceret udbud/efterspørgsel lig 0 slettes kun 'en af disse; slettet række/søjle vælges i den situation vilkarligt. 5) Ga til 1) og gentag for ikke slettede rækker og søjler. 4) Russell-metode: 1) Find i enhver række maximal c 34; definer max c 34 u 3, a3. 4 Find i enhver søjle maximal c 34; definer max c 34 v 4, a4. 3 Beregn for enhver ikke-allokeret celle c u v. 34 3 4 Bestem celle (i', j') med minimal værdi af c34 '' u 3' v 4' og send sa meget som muligt langs den modsvarende kant. 2) Reducer udbud i række i' og efterspørgsel i søjle j' med mængden allokeret til celle (i', j'). 3) Hvis ethvert række udbud / søjle efterspørgsel er dækket, sa STOP. Aktuel allokering udgør en BFS. Ellers ga til 4). 4) Hvis reduceret udbud i en række er lig 0, sa slet rækken. Hvis efterspørgsel i en søjle er lig 0, sa slet søjlen. Hvis flere rækker/søjler har reduceret udbud/efterspørgsel lig 0 slettes kun 'en af disse; slettet række/søjle vælges i den situation vilkarligt. 5) Ga til 1) og gentag for ikke slettede rækker og søjler. Stepping stone algoritmen:

1) Bestem celle (i', j') med minimal værdi af c 34 c34 u3 v. 4 STOP hvis c 0; aktuel løsning er optimal. Ellers ga til 2). 34 '' 2) Slet rækker ( Ái') og søjler ( Áj') hvori indgar en og kun en basisvariabel. Gentag dette i det saledes reducerede transportarray indtil der i enhver tilbageværende række og søjle er netop 2 basisceller (i række i' og søjle j' en basiscelle og celle (i', j')). 3) Celle (i', j') mærkes +. Den ikke slettede basiscelle (i', j ") i række i' mærkes. Den resterende ikke slettede basiscelle i søjle j " (i", j ") mærkes +. Den resterende ikke slettede basiscelle i række i " (i", j #) mærkes +. Den resterende ikke slettede basiscelle i søjle j # (i", j ") mærkes +. Der fortsættes pa denne made til en celle i søjle j' mærkes, hvorefter den initiale celle (i',j') nas. 4) Herefter øges flowet sa meget som muligt i celle (i', j'). Den maximale flowtilvækst er den minimale værdi af flowstørrelserne i de celler, der ovenfor er mærket. Denne mindsteværdi adderes i cellerne mærket + (svarende til tilvækster i p.t. basisvariable) og subtraheres fra cellerne mærket (svarende til reduktion af p.t. basisvariable). Det resulterende flow vil herefter være 0 i mindst 'en af cellerne mærket. Dette svarer til, at en hidtidig basisvariable er pivoteret ud af basen og nu antager værdien 0. Den ungarnske assignment algoritme: Betragt følgende assignmentproblem: person\job I II III I 10 15 9 II 9 18 5 III 6 14 3 Ideen i algoritmen er at finde et assignment til cost 0 i et array med manipulerede omkostningskoefficienter. Det fundne 0 assignment er identisk med et optimalt assignment i de oprindelige data. 1) Reducer initiale data, så enhver række og søjle indeholder mindst et 0-element: a) Subtraher i hver række det mindste element fra ethvert element i rækken. b) Subtraher i hver søjle i det reducerede array det mindste element fra ethvert element i søjlen. 2) Find det mindste antal vertikale/horisontale linier i array, der indebærer

overstregning af samtlige 0-elementer. STOP Hvis antallet er lig med antallet af rækker (eller søjler), så eksisterer der et 0-assignment, og optimum er fundet. Ellers må der etableres en ny celle med 0-cost blandt de resterende celler i ikke-overstregede rækker eller søjler (disse må alle aktuelt have strengt positive omkostninger - ellers var de overstreget!). Gå til 3). 3) Identificer det mindste element blandt de ikke overstregede elementer. Subtraher dette element fra ethvert element i enhver ikke-overstreget række. Der etableres herved bland alle ikke-overstregede elementer mindst en ny 0-cost celle. Overstregede søjler får negative celler. Derfor adderes elementet til ethvert element i enhver overstreget søjle. Gå til 2). Anvendelse af algoritme på exempel: 1) person\job I II III I 1 6 0 II 4 13 0 III 3 11 0 person\job I II III I 0 0 0 II 3 7 0 III 2 5 0 rækkereredultion med ialt œ 9 5 3 œ 17 søjlereduktion med ialt œ 1 6 œ 7 Bemærk: inimalt assignment mindst med omkostninger œ7 17! Optimal assignment uændret, fordi omkostninger er reduceret på samme måde række- og søjlevis, og fordi enhver person og ethvert job skal assignes! 2) 2 linier dækker samtlige 0-celler - en linie gennem række I og en gennem søjle III. 3) Etabler nyt 0-element blandt cellerne (II, I), (II, II), (III, I) og (III, II) ved subtraktion af 2 fra ethvert element række II og III: person\job I II III I 0 0 0 II 1 5 2 III 0 3 2 Ú Ý egative celler i søjle III elimineres ved addition Û Ý med 2. Samlet reduktion Ü 17 7 2 2 2 œ26

person\job I II III I 0 0 2 II 1 5 0 III 0 3 0 2) indste antal linier krævet for overstregning af 0'er er nu 3 -> brugbart 0-assignment fundet -> optimalt assignment til opr. problem er fundet. Optimalt assignment er (I til II), (II til III) og (III til I). De minimale assignment omkostninger er derfor 15 5 6svarende til den foretagne reduktion.