Tabusøgning til effektivisering af eksakt VRP algoritme baseret på søjlegenerering

Relaterede dokumenter
Ugeseddel 12( )

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

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

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid

Noter til kursusgang 8, IMAT og IMATØ

Emneopgave: Lineær- og kvadratisk programmering:

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed

Chapter 7: Transport-, assignment- & transshipmentproblemer

Tirsdag 12. december David Pisinger

Simplex metoden til løsning af LP

Operationsanalyse 1 Obligatorisk opgave 2

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

Noter til kursusgang 9, IMAT og IMATØ

Dynamisk programmering

Logistik og optimering

Dynamisk programmering

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

DM559/DM545 Linear and integer programming

Avancerede bjælkeelementer med tværsnitsdeformation

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

DM559/DM545 Linear and integer programming

4. Snittets kædebrøksfremstilling og dets konvergenter

Kapitel 9: Netværksmodeller

Selvstudium 1, Diskret matematik

Afstande, skæringer og vinkler i rummet

Symmetrisk Traveling Salesman Problemet

Afstande, skæringer og vinkler i rummet

Notat om underleverandører af software til medicinsk udstyr Specielt med fokus på fortolkere, hvor nyt udstyr let kan genereres

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum

Algebra - Teori og problemløsning

Kapitel 9: Netværksmodeller

Kapitel 9. Optimering i Microsoft Excel 97/2000

Approximationsalgoritme giver garanti for løsningskvalitet Heuristik giver ingen garanti for løsningskvalitet

P2-projektforslag Kombinatorik: grafteori og optimering.

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

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

π er irrationel Frank Nasser 10. december 2011

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

Matricer og lineære ligningssystemer

LINALG JULENØD 2013 SUNE PRECHT REEH

Note om interior point metoder

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

Chapter 6: Følsomhedsanalyse og dualitet i LP

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

4. Simplexmetoden. Basisløsning. x Geometrisk hovedindhold

P2-gruppedannelsen for Mat og MatØk

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

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

Projekt 4.6 Løsning af differentialligninger ved separation af de variable

Linear Programming ١ C H A P T E R 2

VisiRegn: En e-bro mellem regning og algebra

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

Start Excel Du skal starte med at åbne Excel. I Excel åbner du herefter en tom projektmappe.

Optimeringsmatematik og matematik-økonomi studiet

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

Kursusgang 3 Matrixalgebra Repetition

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80)

Dynamisk programmering

Aflevering 4: Mindste kvadraters metode

Vejledning i udtræk af input-output data fra Statistikbanken

3. Om skalamønstrene og den indfoldede orden

Funktioner og ligninger

Opgave 1. Hvilket af følgende tal er størst? Opgave 2. Hvilket af følgende tal er mindst? Opgave 3. Hvilket af følgende tal er størst?

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0

Matlab script - placering af kran

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 3. Juni 2014

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb

Branch-and-bound. David Pisinger. Videregående algoritmik, DIKU ( ) 1 Introduktion Gennemgående eksempler Brute-force metoder 10

Det Rene Videnregnskab

Matematik YY Foråret Kapitel 1. Grupper og restklasseringe.

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

Operationsanalyse MØK

Sortering. Eksempel: De n tal i sorteret orden

Mat H /05 Note 2 10/11-04 Gerd Grubb

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

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

Kvadratiske matricer. enote Kvadratiske matricer

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Grundlæggende køretidsanalyse af algoritmer

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125

Elementær Matematik. Funktioner og deres grafer

Projekt Lineær programmering i to variable

Sortering. Eksempel: De n tal i sorteret orden

Matematik og FormLineære ligningssystemer

Pointen med Differentiation

Sortering af information er en fundamental og central opgave.

matematik-økonomi-studerende

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt.

Løsning af simple Ligninger

Danmarks Tekniske Universitet

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

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel.

RUTEPLANLÆGNING OG TRANSPORTNETVÆRK

Netværksalgoritmer 1

Bilag. Resume. Side 1 af 12

Det er muligt at chekce følgende opg. i CodeJudge: og

Transkript:

Institut for Regnskab, Finansiering og Logistik Kandidatafhandling Forfattere: Anders K. Knudsen Jutta J. Jørgensen Vejleder: Jens Lysgaard Tabusøgning til effektivisering af eksakt VRP algoritme baseret på søjlegenerering Handelshøjskolen i Århus 2004

Executive summary The purpose of this Master Thesis is to analyse whether an exact algorithm based on column generation can be optimised using a Tabu Search (TS) heuristic to save time when solving a Vehicle Routing Problem (VRP). The idea is that the VRP are set up as a Set-partitioning model, where the relevant routes are found primarily using the TS heuristic, and only if this does not succeed the exact method are used. It has not been possible to find an existing algorithm, which generates columns using TS in the know literature, so the first part of the Master Thesis are concerned about the theory that needs to be taken into account when developing the algorithm. This theory is concentrated around TS, heuristic solutions and the components in the exact VRP algorithm. The algorithms has been developed into a computer program which has been used to perform the analysis of the performance of the different solution methods. The performance of the purposed method is tested in relation to solution time and the number of generated routes to SP. In relation to this it is interesting how many of the routes that are generated by the exact algorithm. TS has in the implemented heuristic showed its ability to improve the solution process as more routes with negative reduced costs where found compared to a improvement heuristic which also has been implemented. The performance tests indicate that using the TS heuristic on its own is an option if exact solutions is not a must. Using this heuristic on its own reduces solution time and gives good solutions compared to using it with the combined exact method. The performance tests indicate that the slowest solution form is produced when the exact algorithm is used on its own. The solution time is considerably improved when combining the improvement heuristic with the exact algorithm although the improvement heuristic does not find all the routes with negative reduced costs. This results in more intensive use the exact algorithm then necessary. The TS heuristic seams to perform good with a search mechanism i

that searches the solution space in an effective manner. Consequently it results in the lowest solution time of the tested combined exact algorithms. ii

Indholdsfortegnelse. Indledning..... Problemformulering....2. Afgrænsning... 3.3. Metode... 4.4. Beskrivelse af ruteplanlægningsproblemet... 5 2. Tabusøgning... 7 2.. Metaheuristikker... 7 2.2. Lokal søgning... 7 2.3. Tabusøgningens grundlæggende principper... 9 2.4. Den adaptive hukommelse... 2.4.. Korttidshukommelsen... 2 2.4.2. Langtidshukommelsen... 3 2.4.3. Kvalitet og indflydelse... 4 2.5. Delkonklusion... 5 3. Eksakt løsning af LP og ILP problemer... 7 3.. Simplex metoden... 7 3.2. Den duale simplex metode... 23 3.3. Branch-and-bound metoden... 29 3.4. Cutting plane metoden... 33 3.5. Branch-and-cut... 37 3.6. Delkonklusion... 40 4. Søjlegenerering... 42 4.. Generel søjlegenerering... 42 4.2. Søjlegenerering og VRP... 49 4.3. Delkonklusion... 52 5. Korteste vej problemet... 54 5.. Grafer og kompleksitet... 54 5.2. Netværk flow model... 58 5.2.. Subtourelimineringsbegrænsninger... 58 5.2.2. Netværk flow formulering til løsning af elementære korteste vej... 63 5.3. Valg af korteste vej algoritme... 68 5.4. Delkonklusion... 69 6. Heuristik til løsning af det elementære korteste vej problem... 7 6.. Muligheder ved udarbejdelse af TS heuristik... 7 6.2. Heuristik Et første forsøg... 73 6.3. Heuristik 2 - Forbedringsheuristik... 75 6.3.. 2-kantsombytning... 75 6.4. Heuristik 3 TS heuristik... 77 6.4.. Eksempel på søgning efter ny søjle... 79 6.4.2. Design af tabuliste... 80 6.5. Generelle uhensigtsmæssigheder ved implementeringerne... 8 6.6. Delkonklusion... 82 7. Program... 84 7.. Programdesign... 84 7.2. Kodeverifikation... 85 7.3. Beskrivelse af program... 86 iii

7.4. Delkonklusion... 90 8. Performancemåling... 9 8.. Performance af TS heuristik... 92 8.2. Effekten af at inddrage TS... 93 8.3. Performance ved eksakt løsning... 94 8.4. Delkonklusion... 96 9. Konklusion... 98 Litteraturliste Bilag. Løsning af søjlegenereringens 2 delproblem Bilag 2. Ny formulering af korteste vej problem Bilag 3. VRP søjlegenereringseksempel Bilag 4. Lagrange relaksation Bilag 5. Program, kode og testproblemer (vedlagt på CD) iv

. Indledning I en tid, hvor økonomiske rationaliseringer er en nødvendighed i virksomheder, bliver selv de mindste processer optimeret så meget som muligt. Dette gælder også for transportområdet, hvor hver kilometer tæller. Dette afspejler sig også i de artikler og forskningsmateriale, som inden for de seneste år er blevet publiceret indenfor ruteplanlægningsområdet. Der arbejdes i høj grad med forbedringsmetoder, som har fokus på det tidsmæssige aspekt, hvilket gør sig gældende indenfor både de eksakte og heuristiske algoritmer til løsning af Vehicle Routing Problem. De eksakte algoritmer er tilbøjelige til at være meget langsomme, og er forsøgt forbedret på mange forskellige måder, blandt andet ved brug af parallelle computere. Derimod er heuristikker kendetegnet ved at være hurtige, men til gengæld er løsningen ikke nødvendigvis optimal, og den kan ofte være meget svingende. Ideen med denne opgave er at kombinere de to egenskaber, for at se om man på den måde kan forbedre løsningsprocessen. Det er valgt at tage udgangspunkt i to af de metoder, som er kendt for at give gode løsninger inden for hvert sit område, nemlig søjlegenerering (Larsen 200, s. ix) og tabusøgning. Tabusøgning har været meget populært de seneste år, og metoden hører til i gruppen af metaheuristikker. Det smarte ved tabusøgning er, at dele der normalt hører til i andre grene indenfor optimering kan inddrages i tabusøgningen, hvorved der kan udvikles effektive heuristikker. Taillard skriver i sin artikel Indeed, using a simple implementation of taboo search as an iterative search method, every best-known solution to classical problems was found (Taillard 993, s. 66).. Problemformulering Formålet med denne afhandling er at undersøge, om en eksakt algoritme til løsning af Vehicle Routing Problem (VRP) baseret på søjlegenerering, kan forbedres tidsmæssigt ved hjælp af en tabusøgningsheuristik, således at løsningerne kan frembringes hurtigere. Ideen er, at VRP opstilles som en Set-Partitioning model, hvorefter relevante ruter findes fortrinsvis ved hjælp af tabusøgningsheuristikken, og kun hvis dette ikke lykkes, anvendes den eksakte metode. Dette er illustreret i nedenstående figur.

Figur Søjlegenererings metode Generer startløsning Løs Relakseret SP Tilføj ruter til SP ja ja Kør Tabu Søgning Korteste vej Negativ reduceret omkostning? nej Kør Eksakt korteste vej Negativ reduceret omkostning? nej Returner løsning Kilde: Egen fremstilling efter ide fra Larsen. 200 s. 42 Først løses problemet bedst muligt med tabusøgningsheuristikken. Dernæst skal det undersøges med den eksakte algoritme om den fundne løsning er optimal. Er tilfældet stoppes søgningen. Ellers tilføjes en ny rute fra den eksakte metode, hvorefter der vendes tilbage til tabusøgningsheuristikken hvor søgningen fortsætter. Denne søjlegenereringsprocedure formodes at gå hurtigere i forhold til kun at anvende den eksakte metode. Da det ikke har været muligt at finde en eksisterende algoritme, som finder søjler ved hjælp af tabusøgning, må der til afhandlingens brug udvikles en sådan. Derfor vil der blive redegjort for en række delelementer, som er relevante i forbindelse med udarbejdelsen af en sammensat algoritme. Derfor vil der først i opgaven være en gennemgang af det grundlæggende teori omkring tabusøgningsmetoden og dens principper. Dernæst vil der blive præsenteret en række udvalgte metoder til eksakt løsning af lineære programmerings- (LP) og heltals lineære programmerings (ILP) problemer. Dette vil blandt andet være simplex metoderne samt metoder, der sikrer, at heltallige løsninger fremkommer. 2

Dette leder over i en redegørelse om søjlegenerering, som vil være den centrale del i en sammensat algoritme. Ved søjlegenerering deles problemet op i et master problem og delproblemer, som kan løses med de forinden gennemgåede eksakte metoder. Delproblemerne, hvor der findes nye søjler, er de vanskeligste at løse, da de blandt andet indeholder løsning af det elementære korteste vej problem. Derefter vil der være en præsentation af nogle af de muligheder, som findes til løsning af det elementære korteste vej problem. Det er denne problemstilling, som tabusøgningsheuristikken skal kunne give gode løsninger til. Endelig vil der være en overordnet beskrivelse af, hvordan egne heuristikker er opbygget ud fra den viden, der er givet i tidligere kapitler om tabusøgningsteori og problemstillingens udseende. Heuristikkerne er sammen med en eksakt metode implementeret i Visual Basic, således de kan vurderes ud fra en afprøvning på udvalgte VRP. Som performancemål bruges: Tidsforbrug Antal tilføjede søjler Når den sammensatte algoritme afprøves, bliver performancemålene gemt for begge dele af metoden, således det er muligt at se, hvor stor en del af arbejdet der udføres af heuristik delen..2. Afgrænsning Det er i denne afhandling valgt kun at arbejde med det klassiske VRP, uden inddragelse af yderligere kompleksitet. I den indledende fase har det været diskuteret, hvorvidt problemstillingen omkring tidsvinduer skulle inddrages. Dette blev fravalgt, da det på den ene side ville gøre implementeringen af algoritmen mere kompliceret på grund af de ekstra begrænsninger, mens det på den anden side ville gøre problemet lettere at løse, da der vil være et færre antal kunder indenfor hver tidszone. Det klassiske VRP kan derfor anskues som et VRP med tidsvinduer, hvor tidsvinduerne er lige brede og har samme størrelse som depotet. 3

Teorien omkring eksakt løsning af VRP, der beskrives i kapitel 2, er valgt ud fra, at det skal give en grundlæggende forståelse af problemstillingen, det dækker derfor ikke alle aspekter fundet i forskellige artikler, men kun de som vurderes relevant for denne opgave. Det samme gælder teorien omkring tabusøgning, hvor der i litteraturen findes et utal af finesser, men her er det kun ment til at give overblik. I relation til den praktiske implementering er det heller ikke al den præsenterede teori, der anvendes. De implementerede heuristikker er kun udviklet med henblik på at kunne teste, derfor er det ikke meningen, at de skal kunne anvendes ude i virkeligheden. Ligeledes skal det ikke forventes at de eksakte løsninger til VRP præsenteres. Dette kræver, at der tilføjes søjler til set-partitioning formuleringen, også når der søges efter den heltallige løsning. Tilføjelse af sådanne søjler er fravalgt. De problemer der løses, er løst til optimalitet ved hjælp af den relakserede version af set-partitioning formuleringen. De implementerede metoder er alle kodet selv, men løsningen af LP problemer kræver en avanceret LP solver, for at løsningen sker hurtigt nok. Derfor er valgt at anvende en ekstern LP solver, som er fundet på internettet..3. Metode Da formålet med denne afhandling er at undersøge, om en eksakt algoritme kan gøres hurtigere ved at inddrage en heuristik, er det nødvendigt, at forfatterne selv udvikler og programmerer dele af den sammensatte metode, da en sådan kombination ikke umiddelbart findes. For at være i stand til dette, synes det vigtigt at have en grundlæggende forståelse af teorien indenfor tabusøgning. Selvom det vil forsøges at mindske tidsforbruget ved løsning af VRP problemer ved inddragelse af heuristiske metoder, er det stadig nødvendigt at anvende en eksakt metode til at verificere, at optimalløsningen er fundet. Derfor vil der også blive brugt tid på at beskrive nogle af de bestanddele, der kan indgå i en eksakt metode, herunder også de forskellige redskaber, der er til rådighed, som eksempelvis simplex metoden. 4

Derfor indledes opgaven med et teoriafsnit med tabusøgning og eksakte metoder, som sluttes af med en beskrivelse at søjlegenerering. Dette gøres sådan, fordi nogle af de eksakte metoder, simplex og branch-and-bound metoden, direkte indgår i beskrivelsen af søjlegenerering. De eksakte metoder, der ikke anvendes senere, så som branch-and-cut er medtaget, fordi de tilsammen giver et godt indtryk af, hvor mange muligheder der er for at opbygge en eksakt algoritme. Dernæst beskrives den mere problemspecifikke teori omkring grafer, korteste vej problemet og eliminering af subtoure, som er nogle af grundelementerne i programmeringen. Dette leder over i en beskrivelse af, hvordan metoderne til denne undersøgelse er implementeret. Selve implementeringerne er eget værk, men nogle af ideerne er fremkommet ved at have studeret andre forfatteres heuristikker til løsning af andre problemstillinger. For at kunne konkludere om VRP kan løses hurtigere ved inddragelse af en heuristik, er det valgt at implementere en tabusøgningsheuristik, der testes i forhold til anvendelsen af en eksakt metode. Den eksakte metode er ligeledes implementeret. Således ligger der på vedlagte CD et program, så læseren selv kan udføre VRP beregninger. For at kunne forstå, hvad der er inde i programmet, skal denne opgave gerne anskueliggøre de enkelte byggesten, der skal anvendes ved løsning af denne type problemer..4. Beskrivelse af ruteplanlægningsproblemet Når et VRP ønskes løst med søjlegenerering, så er det oplagt at opstille problemet som en Set Partitioning (SP) model, da denne kombination ofte er en effektiv fremgangsmåde (Lysgaard. 2002). I en SP model angiver hver variabel x j en rute, og den antager værdien, hvis rute j bruges i løsningen, ellers er den 0. Dette kan for et problem med n kunder opstilles på følgende måde: min s. t. x j Z = j R a j R ij x c x { 0,} for j R j j j =, for i =,..., n 5

hvor R er sættet af alle brugbare ruter. a ij = hvis kunde i er med på rute j, ellers 0, hvilket sikrer, at hver kunde kun besøges én gang, og c j er omkostningen ved at bruge rute j. Nedenfor ses et eksempel med 4 kunder, samt de tilhørende mulige ruter. Hver søjle svarer til en brugbar rute, mens rækkerne svarer til kunderne. Figur 2 Set-Partitioning repræsentation af VRP Rute nr. Kunde nr. 2 3 4 5 6 7 8 9 0 2 3 4 5 = 2 = 3 = 4 = Rute omk. C C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 0 C C 2 C 3 C 4 C 5 Beslutningsvar. X X 2 X 3 X 4 X 5 X 6 X 7 X 8 X 9 X 0 X X 2 X 3 X 4 X 5 Kilde: Lysgaard. 2002 Det er nødvendigt, at en SP model er en heltals LP (ILP), da man jo ikke eksempelvis kan bruge /3 af en rute. Men det er ofte vanskeligt at opstille det fulde ILP problem på én gang, idet antallet af variable vokser eksponentielt med problemstørrelsen, og SP problemet er i sig selv NP-hard. Ved et problem med 30 kunder, og hvor begrænsningerne gør, at det kun er muligt at have op til 7 kunder på hver rute, består problemet af dermed søjler der skal dannes, før SP problemet er skrevet komplet. Både hukommelsesmæssigt og beregningsmæssigt er problemet altså vanskeligt. 7 i= 30 3 mio. ruter og i Lige meget hvordan man løser problemet, er det meget vanskeligt, og det gøres ikke lettere af, at man for hver søjle også skal angive den tilhørende ruteomkostning. Beregning af ruteomkostningen er i sig selv et vanskeligt problem, idet det er løsningen til et Traveling Salesman Problem (TSP). Løsningen af TSP problemerne er ikke indeholdt i SP formuleringen og må specificeres et andet sted. Ved at anvende søjlegenerering kan man løse problemet på en forholdsvis effektiv måde, hvis man samtidig relakserer heltalskravet. Da deles problemet op i et master problem og et antal delproblemer, hvilket senere vil blive beskrevet i kapitel 4. 6

2. Tabusøgning Den grundlæggende teori omkring tabusøgning (TS) vil blive gennemgået i dette kapitel for at opbygge et begrebsapparat og synliggøre, hvor bredt et område TS egentlig er. TS er blevet brugt på adskillige måder i relation til ruteplanlægning, men så vidt vides er TS ikke tidligere blevet anvendt til at løse søjlegenereringens delproblemer. 2.. Metaheuristikker TS er en metaheuristik, hvilket er en overordnet betegnelse for nogle avancerede søgestrategier. Når der tales om heuristikker, er formålet netop at producere gode løsninger relativt hurtigt. Dermed er det også sagt, at en heuristik ikke med sikkerhed giver optimalløsningen. Kvaliteten af løsningerne styres af personen, der implementerer heuristikken. For gruppen af metaheuristikker gælder, at de i litteraturen har vist sig at frembringe rigtig gode løsninger. Som allerede antydet er TS blot en af flere overordnede søgemetoder i gruppen af metaheuristikker. Ud over TS findes også Simulated Annealing, Genetic Algorithms, Deterministic Annealing, Ant Systems og Neural Networks. Grunden til, at netop disse kan grupperes sammen er, at de alle er organiseret i en generel søgestrategi, som styrer søgningen ud fra fastlagte retningslinier. Således kan søgningen resultere i, at man midlertidigt forringer løsningen, i håbet om at man på den måde kan åbne op ind til en hidtil uudforsket del af løsningsområdet, der forhåbentlig viser sig at være interessant. Sammen med Simulated Annealing og Genetic Algorithms tager TS udgangspunkt i en lokal søgestrategi. 2.2. Lokal søgning At TS tager udgangspunkt i en lokal søgestrategi betyder, at de naboløsninger, der er til den nuværende løsning, undersøges. Nedenfor ses, hvordan den lokale søgestrategi anvendes: Dette afsnit bygger hovedsageligt på beskrivelsen af samme teori i forfatternes linieseminar 7

Descent algoritme (Pirlot 996, s. 494) Start: vælg x X. Step n =, 2, ; x n betegner den nuværende løsning. a) Find den bedste x i naboområdet N(x n ). b) Hvis F( x ) F(xn), så bliver x den nye nuværende løsning x n+ ved Step n+ og den bedste værdi F n * af F (op til Step n) samt x n * opdateres. c) Ellers: Stop. Det er meningen at den, der anvender nabosøgningen, selv bestemmer, hvilket område der skal betragtes som nabo. I relation til VRP kan metoden anvendes ved at starte i en tilfældig brugbar løsning, hvorfra der søges efter forbedringer i løsningen ved fx at bytte to kanter om. Metoden kan også ses som en forbedringsmetode, idet processen vil blive ved, indtil det ikke er muligt at forbedre den nuværende løsning ved at ombytte to kanter. Da det er i naboområdet, der søges efter bedre løsninger end den aktuelle, siger det næsten sig selv, at valg af naboområde har stor betydning for kvaliteten af den endelige løsning. For at kunne anvende den lokale søgning må det sikres, at x ikke er indeholdt i sit eget naboområde. Samtidig skal naboområdet være en delmængde af det totale løsningsrum. Et større naboområde vil sikkert forbedre den endelige løsning, men det bliver på bekostning af søgetiden, idet der for hver iteration bliver et større naboområde, der skal gennemsøges for at finde ud af, om der er løsninger med forbedret kriteriefunktionsværdi. Ofte angives naboområdet som værende af typen (M,P), hvor M og P antager små heltallige værdier. M og P er det antal noder, der ombyttes mellem at være med og ikke være med på ruten. Eksempelvis betyder M=, at node ekstra medtages på ruten, mens P står for antallet af noder, der tages ud af ruten. Naboområdet bliver således alle kombinationer af M noder, der kan indsættes på ruten, samtidig med at P noder fjernes fra ruten. Såfremt M og P øges, stiger antallet af mulige ombytninger kraftigt. Selv om naboområdet hurtigt bliver stort, er der stadig en stor risiko for, at søgningen stopper uden at have fundet en god løsning. Idet søgningen kun foregår i en relativt afgrænset del af løsningsområdet, bliver resultatet ofte et lokalt minimum. For at øge sandsynligheden for at slippe væk fra et lokalt minimum, kan TS for eksempel anvendes. 8

2.3. Tabusøgningens grundlæggende principper Der findes mange forskellige TS heuristikker, der løser forskellige optimeringsopgaver inden for det kombinatoriske område. Heuristikkerne er opbygget vidt forskelligt alt efter virkefeltet, men alligevel har de visse ligheder, idet et af grundelementerne i TS er en form for adaptiv hukommelse, som styrer søgningen ved brug af tabulisten. TS kan altså ikke kun anvendes ved løsning af VRP, men kan ses som et generelt framework, der ud over den adaptive hukommelse kan indeholde elementer, der traditionelt hører hjemme i andre teoriområder indenfor heuristisk løsningsmetode. Søgningen er en iterativ proces, der kan opdeles i to dele, som gennemløbes, indtil givne slutkriterier nås. Ligesom ved brug af en lokal søgestrategi startes søgningen i en tilfældig brugbar løsning, hvis kriteriefunktionsværdi gemmes som den hidtil bedste løsning. Derefter starter første fase, hvor det definerede naboområde gennemsøges, og den bedst mulige løsning vælges. Dette gøres under de begrænsninger, som den adaptive hukommelse giver i form af tabulisten, hvilket indebærer, at det blandt andet ikke er tilladt at gå tilbage til den forrige løsning. Også selvom den bedst mulige løsning indebærer en forringelse af kriteriefunktionsværdien, vælges denne. Søgningen stoppes, når bestemte kriterier er opfyldt eksempelvis efter et bestemt antal iterationer. På denne måde udforskes en større del af løsningsområdet. Anden fase starter herefter med, at der blandt de attraktive løsninger, som den adaptive hukommelse har gemt, vælges en ny startløsning, hvorefter processen igen starter med søgning i den nye startløsnings naboområde. Der er ikke noget fast defineret slutkriterium, der skal være opfyldt, før søgningen afsluttes. Det kan frit vælges til at være en tidsmæssig begrænsning, der ikke må overskrides eller andet. Den måde, som søgningen styres på i praksis, er tabulisten, hvis hovedformål er at sikre, at man ikke fanges i lokale optima, og at søgningen ikke cykler rundt mellem de samme løsninger. For at opfylde dette formål modificerer tabulisten det område, som er naboområde til den nuværende løsning. Baggrunden for modificeringen er den viden, der løbende er opsamlet i den adaptive hukommelse. Tabulisten kan designes på forskellig vis. I sin enkleste form bruges tabulisten til at gøre den løsning, der netop er besøgt, tabu, dermed bliver det altså ulovligt at gå tilbage til denne 9

løsning inden for de næste θ iterationer, hvilket samtidig angiver tabulistens længde. Det er i praksis ikke særlig effektivt at gemme hele løsningen i tabulisten (Pirlot 996, s. 499), hvorfor der i stedet blot kan gemmes en attribut for hver kant, der enten er indsat på eller slettet af ruten. Dette giver en noget mere restriktiv tabuliste, hvor flere løsninger end nødvendigt gøres tabu, men det er på den anden side væsentligt nemmere at checke om tabulisten er overholdt. Betydningen af, at en kant indgår i tabulisten, er, at en kant, der er blevet fjernet fra løsningen, ikke må inddrages i løsningen i de næste θ iterationer og omvendt. Når de θ iterationer er gennemført, kan kanten igen indgå i en løsning. Hvornår en attribut tilføjes tabulisten er op til den, der implementerer tabulisten. Dels er det muligt at tilføje attributten, når den tilføjes løsningen. Det er også muligt først at tilføje attributten, når den fjernes fra løsningen. Endelig er det muligt at kombinere de to, således at der holdes styr på både attributter, der tilføjes og fjernes fra løsningen. Såfremt den sidste mulighed vælges, er det ikke nødvendigt, at attributterne er tabuaktive i lige mange iterationer. Det mest oplagte er dog, at de slettede attributter er tabuaktive i længst tid, idet der oftest er flere attributter udenfor løsningen, end der er i løsningen. Hvor lang tabulisten skal være, er ligeledes op til den, der benytter sig af tabulisten, blot skal der tænkes på, at tabulisten ikke må være længere end antallet af attributter, idet søgningen på den måde vil gå i stå. Søgningen kan også gå i stå, selvom tabulisten ikke er så lang, da det i VRP sammenhæng ikke er alle kanter, der kan sammensættes på vilkårlig måde. Der må også tages højde for de yderligere begrænsninger, der skal være opfyldt. Derfor kan en væsentlig mindre tabuliste forårsage, at søgningen går i stå. Det kan evt. være en fordel at indarbejde en procedure i implementeringen af en tabuliste, der netop tager højde for denne type af problemer, således at hvis der er forsøgt et stort antal gange at finde en ny løsning uden resultat, kan det for eksempel vælges at slette den ældste post på tabulisten. I nedenstående tabel er vist et eksempel på en tabuliste, hvor slettede kanter er tabuaktive i 3 iterationer, mens indsatte kun er det i iteration, θ er altså henholdsvis 3 og. 0

Tabel : Eksempel på tabuliste umiddelbart efter initialløsningen Antal iterationer attributten er tabuaktiv Indsat Iteration 2 3 attribut Slettet attribut d 3,6 d 6,8 2 D 3,6 d 6,8 d 4,7 d 5,9 3 d 4,7 d 6,8 d 5,9 d 4,2 d 3,6 4 d 6,8, d 4,2 d 5,9 d 3,6 d,2 d 9,2 Kilde: Jørgensen et. al., 2003, s. 6 Beskrivelsen ovenfor har koncentreret sig om tabulistens basale virkemåde, som er en del af den adaptive hukommelse, men den adaptive hukommelse dækker meget mere end det beskrevne. I næste afsnit vil den adaptive hukommelse blive beskrevet mere fyldestgørende. 2.4. Den adaptive hukommelse Som det fremgår af ovenstående er TS meget mere end blot en simpel tabuliste. TS finder de træk, som skal gøres tabu, ved hjælp af en adaptiv hukommelse, der løbende opdaterer tabulisten. Den adaptive hukommelse opdeles ofte i 4 dimensioner, og det er netop samspillet mellem disse forskellige dimensioner, der gør TS velegnet til søgning i løsningsrummet, når kombinatoriske problemer skal løses. De fire dimensioner er: Korttidshukommelse Langtidshukommelse Kvalitet Indflydelse Den adaptive hukommelse kan enten være eksplicit eller attributiv (Glover et al. 997, s. 5), hvilket betyder, at man kan vælge enten at gemme hele løsninger i tabulisten (eksplicit), eller man kan alternativt vælge kun at gemme de attributter, der udgør forskellen mellem løsningerne, hvilket gør tabulisten attributiv. TS kan ses som en værktøjskasse, hvorfra der kan vælges de komponenter, som egner sig til løsning af et konkret problem. Det er således ikke nødvendigt at anvende alle fire dimensioner

i den adaptive hukommelse i en TS heuristik, for at heuristikken kan klassificeres som en TS heuristik. For at der er tale om en TS heuristik, er det ikke nødvendigt, at der er andet end en simpel tabuliste, der opdateres, for eksempel som vist i tabel ovenfor. Inddragelse af de øvrige dimensioner må dog forventes at forbedre løsningskvaliteten, men samtidig kompliceres også implementeringen af heuristikken. Ikke alle dimensioner er lige godt definerede, og teknikker, der traditionelt klassificeres under andre former for heuristikker end TS, kan også indgå i værktøjskassen. Korttids- og langtidshukommelsen er dem, der er bedst definerede, og det er vigtigt at skelne mellem de to, idet begge dimensioner modificerer naboområdet, selvom det er på hver sin måde. 2.4.. Korttidshukommelsen Korttidshukommelsen er den dimension, der ligger tættest på den basale brug af tabulisten, som blev beskrevet ovenfor. Som navnet også antyder, sørger korttidshukommelsen for at huske, hvad der lige er sket ved at indsætte de attributter, der lige er ændret på tabulisten. Når der kun anvendes attributter i tabulisten, og det ikke er hele løsningen, som gemmes, har det imidlertid den konsekvens, at tabulisten bliver mere restriktiv, end det er meningen, idet attributten bliver tabu i alle de θ fremtidige løsninger. Det er kun meningen, at en bestemt løsning, der netop indeholder denne attribut, skal være tabu. På den måde udelukkes en større del af løsningsområdet end nødvendigt. For at løse dette problem kan der anvendes aspirantkriterier, som kan tilsidesætte tabulisten. Et aspirantkriterium kan være, at såfremt der findes en løsning, hvis kriteriefunktionsværdi er den hidtil bedste, gives der lov til at foretage trækket, selvom attributten egentlig var tabu. Der findes andre aspirantkriterier, der kan anvendes, og det er endnu engang op til personen, der anvender TS at bestemme hvilket kriterium, der skal anvendes. Da det ofte er i nærheden af en tidligere fundet god løsning, at det er muligt at finde endnu bedre løsninger, anvendes den kritiske handlings hukommelse til at huske disse løsninger. Her er det ikke nok at gemme attributværdier, da det er hele løsningen der er interessant. Det er således muligt at gemme tidligere fundne lokale optima, da disse kan være gode at anvende som startløsninger i den fremtidige søgning. 2

Ved store problemer kan man effektivisere TS heuristikken ved at bruge en kandidat liste, som kan mindske antallet af løsninger, der skal afprøves i hver iteration. Der findes mange forskellige strategier til at danne denne liste, men essensen er, at det koster meget tid at beregne alle mulige hele løsninger, hvorfor man i stedet regner på attributværdierne. Et eksempel kan være to-kants ombytning, hvor man lægger længden af de to indsatte attributter sammen og trækker længden af de to slettede attributter fra, så kommer kun de løsninger med et negativt resultat på listen, og kun for disse regnes den fulde løsning ud. 2.4.2. Langtidshukommelsen Hvor korttidshukommelsen husker, hvad der netop er sket i søgningen, koncentrer langtidshukommelsen sig mere om de generelle tendenser i søgningen og får dermed også fokus på det lange sigt. To mål er helt centrale i den langsigtede hukommelse: transitionsfrekvens og residensfrekvens, der begge er opbygget som brøker. For begge tal gælder, at deres nævner er ens og er opbygget på en af følgende 3 måder (Glover et. al. 997, s. 94): Total antal forekomster af alle hændelser præsenteret i tællerne Summen af tællerne Den største tællerværdi For hver attribut i optimeringsproblemet findes der en transitionsfrekvens. For en given transitionsfrekvens forøges tælleren med en, hver gang attributten tilføjes eller fjernes fra løsningen. Transitionsfrekvensen opdateres således efter gennemsøgningen af naboområdet, hvor flytningen til den bedste løsning i naboområdet betyder, at de attributter, der er ændret, får forøget tælleren i transitionsfrekvensen. En høj transitionsfrekvens indikerer, at en attribut ofte går ind og ud af løsningen, hvorfor det kan være en god ide at øge antallet af iterationer, hvor attributten skal være tabuaktiv. Såfremt attributten er tabuaktiv i længere tid, vil det øge sandsynligheden for, at søgningen drejes mod områder, der ikke tidligere er udforsket så intensivt. 3

Hver attribut har ligeledes en residensfrekvens. En given residensfrekvensens tæller øges efter hver iteration, hvor den tilhørende attribut indgår i løsningen. Residensfrekvensen er således et udtryk for, hvor mange gange attributterne hver især har indgået i løsningen. Såfremt det udforskede område er præget af gode løsninger, kan en høj residensfrekvens indikere, at en given attribut er meget attraktiv og ikke attraktiv i et område med dårlige løsninger (Glover F. et. al., 997). Ud fra disse retningslinier kan det være hensigtsmæssigt at forsøge at påvirke søgningen i retning af de mere attraktive områder, ved at tildele de enkelte attributter en straf/belønning, når kriteriefunktionsværdien udregnes. De to brøker kan være med til at styre søgningen således, at langsigtshukommelsens to søgestrategier anvendes, intensivering og diversifikation. Ved diversifikation spredes søgningen, hvilket kan anvendes i områder med potentielt dårlige løsninger, mens søgningen kan intensiveres, hvor det forventes, at løsningernes kvalitet er særligt attraktive. Ved at skifte søgestrategi en gang i mellem opnås en effektiv søgning, hvor løsningsområdet dækkes, samtidig med at der anvendes mest tid på de områder, der ser ude til at indeholde de mest lovende løsninger. Sammen med den kortsigtede hukommelse udgør den langsigtede hukommelse en effektiv søgemekanisme, hvor koblingen mellem de to dimensioner gives ved logisk restrukturering. Its goal is to exploit the ways in which influence (structural, local and global) can uncover improved routes to high quality solutions. For this purpose, a critical step is to re-design standard strategies to endow them with the power to ferret out opportunities otherwise missed. (Golver et al. 997 s. 69). 2.4.3. Kvalitet og indflydelse Som allerede antydet er disse to dimensioner luftige, og de kan ydermere være vanskelige at indarbejde i en given TS heuristik. Opdelingen i både en kvalitets- og en indflydelsesdimension kan virke overflødig, da kvalitet også kan ses som en del af indflydelsesdimensionen, men da kvalitet i sig selv er en vigtig parameter, medtages den oftest som en selvstændig dimension. 4

I kvalitetsdimensionen sammenlignes de lokale optima for at finde mønstre, der kan beskrive en god løsning. Det, der er særligt interessant, er rutesekvenser, der giver gode løsninger. I stedet for blot at anvende den kritiske handlings hukommelse ved dannelse af initialløsninger, kan man i stedet forsøge at sammensætte de rutesekvenser, der er identificeret i kvalitetsdimensionen, således at en bedre initialløsning dannes (Pålsson, 2002). Ud over at gemme på de gode løsninger kan kvalitetsdimensionen også huske de ombytninger, der har ført frem til at en god løsning. Dermed kan disse træk favoriseres, hvorved der opnås et fundament til en incitamentsbaseret læring, hvor handlinger, der fører til gode løsninger, belønnes (Glover et al. 997). Indflydelsesdimensionen relaterer sig i stedet til læring om forskellige handlingers indflydelse på de fundne bedste løsninger, hvilket til dels drejer sig om løsningernes kvalitet, men også i særdeleshed deres struktur. En handling kan have stor indflydelse, ved at der sker en markant ændring i løsningens attributsammensætning, som eksempelvis kan gøre det let for heuristikken at komme væk fra et lokalt optimum (Golver et al. 997). 2.5. Delkonklusion Tabusøgning hører ind under gruppen af heuristikker kaldet metaheuristikker, som er kendt for at frembringe gode løsninger. Fundamentet for TS er en lokal søgestrategi, hvor der søges efter en bedre løsning i naboområdet, som kan defineres forskelligt afhængig af problemstillingen. Men en sådan søgning ender oftest i et lokalt optimum, hvilket er det, TS forsøger at slippe væk fra. TS heuristikker kan opbygges på mange forskellige måder og kobles med elementer, der hører hjemme under andre teoriområder indenfor optimering. Men fælles for dem alle er, at de har en form for adaptiv hukommelse, der styrer en tabuliste. Tabulisten, som kan opbygges på forskellig vis, modificerer naboområdet, således at man ikke kan komme tilbage til en kendt løsning i de efterfølgende iterationer ved at gøre attributterne tabuaktive, så den enkelte attribut enten ikke kan fjernes eller sættes ind i løsningen. Selve søgningen består af mange delsøgninger, hvor den bedst mulige løsning vælges, også selvom det reelt er en forringelse. Imellem søgningerne vælges en ny startløsning ud fra den viden der er tilgængelig i den adaptive hukommelse 5

Tabulisten styres af den adaptive hukommelse, der består af de fire dimensioner: korttids-, langtids-hukommelsen, indflydelse og kvalitet, men det er ikke nødvendigt at inddrage alle dimensioner for at frembringe en brugbar heuristik. Korttidshukommelsen, som er basis i TS algoritmer, opsamler især data omkring de attributter, der lige er blevet ændret, mens langtidshukommelsen husker de generelle tendenser i søgningen, som for eksempel hvor ofte bestemte kunder indsættes i løsningen, og om dette fører til gode løsninger. Kvalitets- og indflydelses-dimensionerne er med til at koble de to hukommelses dimensioner sammen, så heuristikken bliver så effektiv som muligt. 6

3. Eksakt løsning af LP og ILP problemer Metoderne, der vil blive beskrevet i dette kapitel, er grundelementerne i hovedparten af de eksakte ruteplanlægningsalgoritmer, som anvendes i praksis. En af de helt basale elementer er simplex metoden, som blev udviklet i 947 af George Dantzig, og den danner basis for mange computerprogrammer til løsning af optimeringsproblemer. Men simplex metoden er i sin rene form meget langsom, når problemet indeholder mange variable, og den kan ikke med sikkerhed finde heltalsløsninger uden inddragelse af en anden metode. Til gengæld er måden, hvorpå den løser problemer, genial, og det er yderst let at inddrage begrænsninger, som findes ved hjælp af andre metoder. De andre metoder har til formål at effektivisere søgningen eller at finde heltallige løsninger. Som det vil kunne ses, er en af modellerne sammenkoblinger af nogle af de andre, hvorfor de enkleste gennemgås først. Alle metoderne vil være illustreret med eksempler, som ikke har direkte relation til ruteplanlægning, men de synes at fremhæve metodikken bag de enkelte metoder. 3.. Simplex metoden Når man har med LP problemer at gøre, danner begrænsningerne altid et konveks set, hvorom der gælder, at et ekstremt punkt altid er et hjørne punkt (Winston et al. 2003, s 59) eller flere hjørnepunkter, som ligger på samme begrænsningslinie, hvilket derfor også gælder for optimalpunktet. Det er det, som simplex metoden benytter, da den som regel starter i (0,0), hvis dette punkt er indeholdt i løsningsmængden, og springer derefter videre til en kantløsning som har kantforbindelse til den foregående løsning. Dette er vist i nedenstående graf, og eksemplet er taget fra bogen Introduction to mathematical programming (Winston et al. 2003, s 5). Derefter beskrives der en mere matematisk fremgangsmåde. Det brugbare løsningsområde er afgrænset at de to begrænsninger og af de 2 akser. Simplex gør altså det, at den starter i (0,0) og følger en af begrænsningslinierne, her anden aksen x = 0, hen til næste hjørnepunkt, her (0;,5). Det vil sige at den aldrig springer over et hjørnepunkt, for eksempel direkte fra (0,0) til (24/4,6/7), som er skæringspunktet mellem de to begrænsninger. 7

Figur 3 Grafisk illustration af eksempel x2 2,5 2,5 0,5 begrænsning 2 begrænsning 0 0 2 4 6 x Kilde: Egen fremstilling efter ide fra Winston et al. 2003, s 5. Helt generelt er simplex metoden en algoritme, der ved hjælp af simple rækkeoperationer er i stand til at løse optimeringsproblemer underlagt et bestemt antal begrænsninger. For at det skal virke, stilles problemet altid op på standardform, som ser ud som følgende for et problem med n variable og m begrænsninger (Winston et al. 2003, s 30): max z = c x + c 2 x 2 + +c n x n (el. min) s.t. a x + a 2 x 2 + +a n x n = b a 2 x + a 22 x 2 + +a 2n x n = b 2 : : :... a m x + a m2 x 2 + +a mn x n = b m x i >= 0 (i =, 2,, n) At sætte problemet på standardform betyder egentlig bare, at alle begrænsninger skal laves om til rene = begrænsninger, og at der for hver begrænsning skal findes en basisvariabel, hvilket er en variabel, der antager værdi, så begrænsningerne er opfyldt. Hvordan dette gøres, afhænger af hvilken form begrænsningen har i udgangspunktet. Er det en begrænsning med <=, så lægges der en slack variabel s til på venstre side af lighedstegnet, og denne slack variabel får i udgangspunktet en værdi lig højresiden, hvorved begrænsningen er opfyldt. Er 8

det en begrænsning med >=, kan man bruge store M metoden, hvor der trækkes en excess variabel e fra på venstre side, men den kan i de fleste tilfælde ikke bruges som basisvariabel, da den ikke er >= 0, når højreside er positiv. Derfor lægger man også en artificial variabel a til på venstre side, som så kan bruges som basisvariabel, men for at man kan finde en optimalløsning, må man være sikker på at a er lig 0 i den endelige løsning. Dette gøres ved at man lægger Ma til objektfunktionen ved et minimeringsproblem, eller i tilfælde af et maksimeringsproblem trækkes det fra, og M står for et meget stort tal. Har begrænsningen allerede formen = fra starten, bruges store M metoden også, med undtagelse af fratrækningen af excess variablen, til at finde en basisvariabel. Problemet stilles op i en slags tabel, hvor første linie er objektfunktionen, som er vendt om så selve funktionen er flyttet over og trukket fra på venstresiden, hvorved højresiden bliver lig 0, og resten af linierne er begrænsningerne. Ved et minimeringsproblem gælder det så om at få alle positive koefficienter i objektfunktionslinien fjernet, (de negative koefficienter ved et maksimeringsproblem), hvilket gøres ved hjælp af simple rækkeoperationer, hvor basisvariablene en efter en byttes rundt med ikke-basisvariable. Som ny basisvariabel vælges den ikke-basisvariabel, som har den mest positive koefficient ud for objektfunktionen, og på baggrund af denne variabels koefficienter i de enkelte begrænsninger beregnes en ratio, som er begrænsningens højreside b divideret med variablens koefficient i samme begrænsning. Den basisvariabel, som hører til den begrænsning med mindst ratio > 0, gøres til en ikkebasisvariabel. Derefter laves der rækkeoperationer, så der ud for den nye basisvariabel er et 0 i objektfunktionslinien og i alle begrænsninger på nær i den begrænsning, hvor den selv er basisvariabel, hvor der skal være et tal. Dette fortsætter man med indtil der ikke er flere positive koefficienter i objektfunktionslinie, og optimalløsningen dermed er fundet. Basisvariablene er kendetegnet ved, at de altid har en koefficient lig 0 i objektfunktionen og deres værdi er angivet på højresiden, mens ikke-basisvariablene har en værdi i objektfunktionen og er pr definition lig 0. Dette giver følgende proces, der kan bruges ved løsning af LP problemer: 9

. Omskriv problemet til standard form, og frembring en basisvariabel for hver begrænsning hvis muligt (umuligt hvis det brugbare løsningsområde er tomt) 2. Bestem om nuværende løsning er optimal (ud fra koefficienterne i objektfunktionslinien) 3. Hvis løsningen ikke er optimal, bestem hvilken ikke-basisvariabel og hvilken basisvariabel der skal byttes rundt 4. Opdater tabellen ved hjælp af rækkeoperationer, og gå tilbage til 2. Processen er illustreret i følgende eksempel, som er det samme, der blev brugt til ovenstående grafiske gennemgang. Dette omskrives til standardform og objektfunktionen vendes rundt, så den bliver lig 0 på højreside. Tabel 2 Opstilling af simplex problem Oprindeligt problem min z = 2x 5x 2 s.t. 3x + 8x 2 <= 2 2x + 3x 2 <= 6 x, x 2 >= 0 Standard form min z 2x + 5x 2 = 0 s.t. 3x + 8x 2 + s = 2 2x + 3x 2 + s 2 = 6 x, x 2, s, s 2 >= 0 Kilde: Egen opstilling Dette kan derefter stilles op som en tabel på følgende måde: Tabel 3 Simplex tabel Række nr BV z x x 2 s s 2 RHS Ratio 0 z -2 5 0 0 0 s 0 3 8 0 2 ½ 2 s 2 0 2 3 0 6 2 Kilde: Egen fremstilling Som det ses er række 0 objektfunktionslinien, mens række og 2 er begrænsningerne, og under RHS står alle højresiderne. I denne løsning er det kun slack variablene der har værdi, henholdsvis 2 og 6, som er større end 0, og x variablene er begge 0 (fordi de ikke er basisvariable under BV), hvilket er en brugbar men ikke optimal løsning, da der i række 0 20

under x 2 er en positiv koefficient, og det er et minimeringsproblem. Derfor vælges x 2 som ny basisvariabel, og der beregnes en ratio for hver begrænsning, hvilket giver henholdsvis 2/8 = ½ og 6/3 = 2, og man vælger så den række, der har mindst ratio, som pivot, hvilket betyder at man her sætter x 2 ind som basisvariabel i stedet for s. Da x 2 nu er blevet basisvariabel, skal der laves rækkeoperationer, så der kommer til at være et tal ud for den selv og et 0 ud for z og s 2. Dette gøres ved at række divideres med 8, hvorved række 4 dannes. De to sidste rækker ændres ved at trække henholdsvis 5 og 3 gange række 4 fra. Resultatet ses i nedenstående tabel. Tabel 4 Simplex tabel Række nr BV Z x x 2 s s 2 RHS 3 z -3/8 0-5/8 0-7½ 4 x 2 0 3/8 /8 0 ½ 5 s 2 0 7/8 0-3/8 ½ Kilde: Egen fremstilling Dette er optimalløsningen da der ikke er nogle positive koefficienter ud for z i række 3, og løsningen er x = 0, x 2 = ½, hvilket giver z = -7½. Havde der stadig været positive koefficienter ud for z, skulle man have gentaget proceduren. Hvis nogle af ikke-basisvariablene havde haft en koefficient lig 0 ud for z ligesom basisvariablene, ville det være en indikation af at der evt. er en alternativ optimal løsning. Hvis man ved beregningen af ratio skal dividere med et ikke-positivt tal, kan rækken ikke bruges som pivot, og hvis dette forekommer i alle rækker samtidig, betyder det at problemet er ubegrænset, hvilket vil sige, at mindst én variabel kan øges til det uendelige, uden at begrænsningerne overskrides. Hvis problemet er degenereret, hvilket er kendetegnet ved at der findes en brugbar løsning, hvor mindst en af basisvariablene er lig 0, så kan simplex metoden ikke finde en optimalløsning. Alternativt kan et problem stilles op på matrix-form delt op efter de optimale basis- og ikkebasisvariable. Dette kan i udgangspunktet virke lidt mærkværdigt, da man ikke ved, hvilke variable der er hvad, før problemet er løst, men det giver til gengæld et godt overblik over, 2

hvordan den optimale simplex tabel hænger sammen med start tabellen. Gøres dette, ser et problem ud som følgende (Winston et al. 2003, s 269): z = c BV x BV + c NBV x NBV s.t. Bx BV + Nx NBV = b x BV, x NBV 0 hvor c BV er en rækkevektor bestående af basisvariablenes objektfunktionskoefficienter, og c NBV er en tilsvarende rækkevektor med ikke-basisvariablenes objektfunktionskoefficienter. x BV er en vektor bestående af basisvariablene, i den rækkefølge de står i den optimale simplex tabel, mens x NBV er vektoren med ikke-basisvariablene. B og N er matricer, hvis k te søjler er lig henholdsvis basis- og ikke-basisvariabel k s søjle. Slutteligt er b en vektor med alle begrænsningers højreside. I relation til denne opstilling findes der nogle smarte formler til beregning af optimalløsningen, hvilket dog kræver kendskab til basisvariablene og deres rækkefølge. Disse er til beregning af en enkeltværdi. Variabel j s søjle = B - a j (B - er B s inverse, og aj er variabel j s startsøjle, som indgår i enten B eller N alt efter om variabel j er med i basis eller ej) Begrænsningernes højreside = B - b Optimalværdien = c BV B - b Værdier i objektfunktionslinien c j= c BV B - a j c j, hvilket skal være 0 for basisvariablene. Ud fra dette er der følgende sammenhæng mellem simplex metodens start tabel og optimal tabellen, hvor alle værdier i en blok beregnes på én gang. 22

Tabel 5 Sammenhæng mellem start og slut BV x BV x NBV RHS z-c -c BV -c NBV 0 s B N b Start z-c 0 c BV B - N - c NBV c BV B - b x BV I B - N B - b Kilde: Egen fremstilling Slut Som før nævnt er simplex tabellen ved et maksimeringsproblem optimal, når alle koefficienter i objektfunktionslinien er 0 ( 0 ved minimering), hvilket vil sige, at c BV B - N - c NBV skal være 0. Denne optimalitetstest vil senere blive brugt i relation til søjlegenerering. 3.2. Den duale simplex metode Ud fra ethvert LP-problem kan der konstrueres et såkaldt dualt LP-problem, som kan fortælle noget om problemets skyggepriser. Det givne LP-problem kaldes det primære problem, mens det andet kaldes det duale. Der er nogle helt bestemte relationer mellem det primære og det duale problem, og det er disse egenskaber, som danner baggrund for den duale simplex metode. Der gælder nogle helt bestemte regler for, hvordan det duale problem findes, afhængig af hvorledes det primære problem ser ud. De to problemer er altid modsat på den måde, at hvis det primære problem er et maksimeringsproblem, så er det duale problem et minimeringsproblem, og omvendt. Nedenstående viser et eksempel på, hvordan det duale problem til et normalt maksimeringsproblem findes (Winston et al. 2003, s 295): Det primære problem max z = c x + c 2 x 2 + +c n x n s.t. a x + a 2 x 2 + +a n x n b a 2 x + a 22 x 2 + +a 2n x n b 2 : : :... a m x + a m2 x 2 + +a mn x n b m x i >= 0 (i =, 2,, n) 23

Det duale problem min w = b y + b 2 y 2 + +b m y m s.t. a y + a 2 y 2 + +a m y m c a 2 y + a 22 y 2 + +a m2 y m c 2 : : :... a n y + a 2n y 2 + +a mn y n y j >= 0 (j =, 2,, m) c n Som det ses er det de samme koefficienter der bruges, de er bare flyttet rundt, så rækkerne er blevet til søjler og omvendt. Dette system gør, at de to problemer altid er hinandens duale. Reglerne for, hvordan man opstiller det duale problem i alle tilfælde, er skitseret i nedenstående tabel. Tabel 6 Sammenhæng mellem det primære og det duale problem. Primær problem (eller Dual problem) Maksimer Z (eller w) Begrænsning i: form = form form Variabel x j (eller y j ): x j 0 Ubegrænset x j 0 Dual problem (eller Primær problem) Minimer w (eller Z) Variabel y i (eller x i ): y i 0 Ubegrænset y i 0 Begrænsning j: form = form form Kilde: Hillier et al. 995 s. 23. Hvordan det duale problem giver information om det primære problem kan bedst illustreres med et lille eksempel, hvor det primære problem består i at maksimere den samlede indtjening for 3 produkter, hvor der er begrænsninger på mængden af råvarer. 24

Det primære problem max z = 5x + 0x 2 + 30x 3 s.t. 8x + 2x 2 + 8x 3 48 råvare 2x + 3x 2 + 5x 3 20 råvare 2 x i >= 0, i =, 2, 3 Det duale problem min w = 48y + 20y 2 s.t. 8y + 2y 2 5 produkt 2y + 3y 2 0 produkt 2 8y + 5y 2 30 produkt 3 y j >= 0, j =, 2 Det duale problem fortæller noget om, hvilken værdi de enkelte stykker af råvarer har for producenten i det primære problems optimal punkt. Hvis en anden tilbyder at købe råvarerne, så kan producenten vælge at producere eller sælge råvarerne uden forarbejdning. Spørgsmålet er da, hvilken pris producenten skal forlange for råvarerne? Han skal selvfølgelig mindst kræve den værdi, som råvarerne har for ham i produktionen, altså han skal tjene det samme, som hvis han producerer. y værdierne kan derfor antages at være prisen for et styk af den enkelte råvare, altså y er prisen for ét styk af råvare. Det er opstillet som et minimeringsproblem, da det gælder om at gøre udgifterne til råvarer så lille som muligt. Den første begrænsning fortæller da, at prisen for den mængde råvarer, der skal bruges til at fremstille et styk af produkt, mindst skal være 60, da det er det, der opnås ved salg af produkt. På samme vis skal dette være opfyldt for de to andre produkter, hvilket er udtrykt i de næste begrænsninger. Det vil sige, at man, ved at løse det duale problem, får de råvarepriser, der gælder i det primære problems optimal punkt. Løses det duale problem fås følgende løsning: y = 5/8, y 2 = 5 med w* = 30. Det vil sige, at producenten får en indtjening på 30, ved at sælge alle styk af råvare og 2 til en pris på henholdsvis 5/8 og 5, og det er den mindste pris, producenten vil sælge råvarerne for. y og y 2 kaldes også for skyggepriser, da de angiver den værdi, hvormed Z vil ændre sig, hvis der 25