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

Størrelse: px
Starte visningen fra side:

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

Transkript

1 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

2 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

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

4 Indholdsfortegnelse. Indledning..... Problemformulering Afgrænsning Metode Beskrivelse af ruteplanlægningsproblemet Tabusøgning Metaheuristikker Lokal søgning Tabusøgningens grundlæggende principper Den adaptive hukommelse Korttidshukommelsen Langtidshukommelsen Kvalitet og indflydelse Delkonklusion Eksakt løsning af LP og ILP problemer Simplex metoden Den duale simplex metode Branch-and-bound metoden Cutting plane metoden Branch-and-cut Delkonklusion Søjlegenerering Generel søjlegenerering Søjlegenerering og VRP Delkonklusion Korteste vej problemet Grafer og kompleksitet Netværk flow model Subtourelimineringsbegrænsninger Netværk flow formulering til løsning af elementære korteste vej Valg af korteste vej algoritme Delkonklusion Heuristik til løsning af det elementære korteste vej problem Muligheder ved udarbejdelse af TS heuristik Heuristik Et første forsøg Heuristik 2 - Forbedringsheuristik kantsombytning Heuristik 3 TS heuristik Eksempel på søgning efter ny søjle Design af tabuliste Generelle uhensigtsmæssigheder ved implementeringerne Delkonklusion Program Programdesign Kodeverifikation Beskrivelse af program iii

5 7.4. Delkonklusion Performancemåling Performance af TS heuristik Effekten af at inddrage TS Performance ved eksakt løsning Delkonklusion Konklusion 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

6 . 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.

7 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

8 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

9 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

10 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

11 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 = 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 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

12 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 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

13 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

14 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

15 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

16 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 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

17 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 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

18 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 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

19 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) 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

20 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) 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

21 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

22 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

23 Figur 3 Grafisk illustration af eksempel x2 2,5 2,5 0,5 begrænsning 2 begrænsning 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

24 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

25 . 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 s ½ 2 s 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

26 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

27 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

28 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 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

29 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

30 Det primære problem max z = 5x + 0x x 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

Ugeseddel 12(10.12 14.12)

Ugeseddel 12(10.12 14.12) Ugeseddel (..) Matematisk Programmering Niels Lauritzen..7 FORELÆSNINGER I ugen. 7. gennemgik vi algoritmer til løsning af heltalsprogrammer ved hjælp af simplex algoritmen. Dette er heltalsprogrammeringsugesedlen

Læs mere

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

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomielt tid Optimeringsproblemer kan ikke altid verificeres i polynomiel I dag Løsning af NP -hårde optimeringsproblemer Repetition: branch-and-bound Flere begreber Konkret eksempel: TSP Lagrange relaxering Parallel branch-and-bound 1 Opsummering Løsning af NP -hårde optimeringsproblemer

Læs mere

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 5: Simplex metoden til løsning af LP. -> max problem alle uligheder af typen ì alle højresider ikke-negative alle variable ikke-negative Chapter 5: Simplex metoden til løsning af LP Formål: Udvikling af generel metode til løsning af enhver type LP. Metoden udvikles først for LP i standard form -> max problem alle uligheder af typen ì alle

Læs mere

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

Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid 6 april Løsning af N P -hårde problemer Løs til optimalitet i eksponentiel tid Find tilnærmet løsning i polynomiel tid Oversigt Grænseværdier (repetition) Branch-and-bound algoritmens komponenter Eksempler

Læs mere

Noter til kursusgang 8, IMAT og IMATØ

Noter til kursusgang 8, IMAT og IMATØ Noter til kursusgang 8, IMAT og IMATØ matematik og matematik-økonomi studierne 1. basissemester Esben Høg 25. oktober 2013 Institut for Matematiske Fag Aalborg Universitet Esben Høg Noter til kursusgang

Læs mere

Emneopgave: Lineær- og kvadratisk programmering:

Emneopgave: Lineær- og kvadratisk programmering: Emneopgave: Lineær- og kvadratisk programmering: LINEÆR PROGRAMMERING I lineær programmering løser man problemer hvor man for en bestemt funktion ønsker at finde enten en maksimering eller en minimering

Læs mere

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

Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed Approximations-algoritmer Sidste gang Motivation Definitioner Approximations-algoritme for knudeoverdækning Approximations-algoritme for TSP med trekantsulighed Negativt resultat om generel TSP Approximations-algoritme

Læs mere

Chapter 7: Transport-, assignment- & transshipmentproblemer

Chapter 7: Transport-, assignment- & transshipmentproblemer Chapter 7: Transport-, assignment- & transshipmentproblemer 1) Formulering af de 3 problemtyper 2) Algoritme for det balancerede transportproblem 3) Algoritme for assignmentproblemet Samtlige 3 problemtyper

Læs mere

Tirsdag 12. december David Pisinger

Tirsdag 12. december David Pisinger Videregående Algoritmik, DIKU 2006/07 Tirsdag 12. december David Pisinger Resume sidste to gang Sprog L : mængden af instanser for et afgørlighedsproblem hvor svaret er 1. P = {L : L genkendes af en algoritme

Læs mere

Simplex metoden til løsning af LP

Simplex metoden til løsning af LP Chapter : Simplex metoden til løsning af LP Formål: Udvikling af generel metode til løsning af enhver type LP. Metoden udvikles først for LP i standard form -> max problem alle uligheder af typen Ÿ alle

Læs mere

Operationsanalyse 1 Obligatorisk opgave 2

Operationsanalyse 1 Obligatorisk opgave 2 Operationsanalyse Obligatorisk opgave Anders Bongo Bjerg Pedersen. juni Opgave (i) Vi tilføjer først slack-variable til (P ): Minimize Z = x + x + x subject to x + x + x x 4 = x x + x x 5 = x + x x x =

Læs mere

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

Samtlige 3 problemtyper tilhører klassen 8/>A9<5 069A :<9,6/7=. Chapter 7: Transport-, assignment- & transshipmentproblemer 1) Formulering af de 3 problemtyper 2) Algoritme for det balancerede transportproblem 3) Algoritme for assignmentproblemet Samtlige 3 problemtyper

Læs mere

Noter til kursusgang 9, IMAT og IMATØ

Noter til kursusgang 9, IMAT og IMATØ Noter til kursusgang 9, IMAT og IMATØ matematik og matematik-økonomi studierne 1. basissemester Esben Høg 4. november 013 Institut for Matematiske Fag Aalborg Universitet Esben Høg Noter til kursusgang

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur (struktur opbygget af et endeligt antal enkeltdele) blandt mange mulige. Eksempler:

Læs mere

Logistik og optimering

Logistik og optimering Logistik og optimering JENS LYSGAARD Professor Institut for Økonomi Aarhus Universitet Forskningscentret CORAL v. Institut for Økonomi Logistik og optimering CORAL: Cluster for Operations Research And

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Optimeringsproblem: man ønsker at finde bedste den kombinatoriske struktur blandt mange mulige. Dynamisk programmering Optimeringsproblem: man ønsker at finde

Læs mere

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

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515) Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM55) Institut for Matematik & Datalogi Syddansk Universitet Mandag den 2 Juni 2008, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater

Læs mere

DM559/DM545 Linear and integer programming

DM559/DM545 Linear and integer programming Department of Mathematics and Computer Science University of Southern Denmark, Odense June 10, 2017 Marco Chiarandini DM559/DM545 Linear and integer programming Sheet 12, Spring 2017 [pdf format] The following

Læs mere

Avancerede bjælkeelementer med tværsnitsdeformation

Avancerede bjælkeelementer med tværsnitsdeformation Avancerede bjælkeelementer med tværsnitsdeformation Advanced beam element with distorting cross sections Kandidatprojekt Michael Teilmann Nielsen, s062508 Foråret 2012 Under vejledning af Jeppe Jönsson,

Læs mere

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

Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM515) Skriftlig Eksamen Introduktion til lineær og heltalsprogrammering (DM55) Institut for Matematik & Datalogi Syddansk Universitet Tirsdag den Juni 009, kl. 9 Alle sædvanlige hjælpemidler (lærebøger, notater

Læs mere

DM559/DM545 Linear and integer programming

DM559/DM545 Linear and integer programming Department of Mathematics and Computer Science University of Southern Denmark, Odense June 10, 2017 Marco Chiarandini DM559/DM545 Linear and integer programming Sheet 12, Spring 2017 [pdf format] The following

Læs mere

4. Snittets kædebrøksfremstilling og dets konvergenter

4. Snittets kædebrøksfremstilling og dets konvergenter Dette er den fjerde af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 4. Snittets kædebrøksfremstilling og dets konvergenter Vi

Læs mere

Kapitel 9: Netværksmodeller

Kapitel 9: Netværksmodeller Kapitel 9: Netværksmodeller Terminologi: Et netværk eller en graf bestar af et sæt punkter samt et sæt linier, der forbinder par af punkter; netværket betegnes som komplet, hvis ethvert par af punkter

Læs mere

Selvstudium 1, Diskret matematik

Selvstudium 1, Diskret matematik Selvstudium 1, Diskret matematik Matematik på første studieår for de tekniske og naturvidenskabelige uddannelser Aalborg Universitet I dette selfstudium interesserer vi os alene for tidskompleksitet. Kompleksitet

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Nasser 9. april 20 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her.

Læs mere

Symmetrisk Traveling Salesman Problemet

Symmetrisk Traveling Salesman Problemet Symmetrisk Traveling Salesman Problemet Videregående Algoritmik, Blok 2 2008/2009, Projektopgave 2 Bjørn Petersen 9. december 2008 Dette er den anden af to projektopgaver på kurset Videregående Algoritmik,

Læs mere

Afstande, skæringer og vinkler i rummet

Afstande, skæringer og vinkler i rummet Afstande, skæringer og vinkler i rummet Frank Villa 2. maj 202 c 2008-20. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold

Læs mere

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

Notat om underleverandører af software til medicinsk udstyr Specielt med fokus på fortolkere, hvor nyt udstyr let kan genereres December 2018 Notat om underleverandører af software til medicinsk udstyr Specielt med fokus på fortolkere, hvor nyt udstyr let kan genereres Af Carsten Jørgensen FORCE Technology Venlighedsvej 4 2970

Læs mere

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

Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum Jørgen Erichsen Periodiske kædebrøker eller talspektre en introduktion til programmet periodisktalspektrum I artikelserien Studier på grundlag af programmet SKALAGENERATOREN kommer jeg bl.a. ind på begrebet

Læs mere

Algebra - Teori og problemløsning

Algebra - Teori og problemløsning Algebra - Teori og problemløsning, januar 05, Kirsten Rosenkilde. Algebra - Teori og problemløsning Kapitel -3 giver en grundlæggende introduktion til at omskrive udtryk, faktorisere og løse ligningssystemer.

Læs mere

Kapitel 9: Netværksmodeller

Kapitel 9: Netværksmodeller Kapitel 9: Netværksmodeller Terminologi: Et netværk eller en JUDI bestar af et sæt punkter samt et sæt linier, der forbinder par af punkter; netværket betegnes som komplet, hvis ethvert par af punkter

Læs mere

Kapitel 9. Optimering i Microsoft Excel 97/2000

Kapitel 9. Optimering i Microsoft Excel 97/2000 Kapitel 9 Optimering i Microsoft Excel 97/2000 9.1 Indledning... 164 9.2 Numerisk løsning af ligninger... 164 9.3 Optimering under bibetingelser... 164 9.4 Modelformulering... 165 9.5 Gode råd ommodellering...

Læs mere

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

Approximationsalgoritme giver garanti for løsningskvalitet Heuristik giver ingen garanti for løsningskvalitet Generelle optimeringsheuristikker Også kaldet metaheuristikker. Idag gennemgås: Indplacering Lokal søgning Simuleret udgløding Tabusøgning Genetiske algoritmer Løsningsmetoder for NP -hårde opimeringsproblemer

Læs mere

P2-projektforslag Kombinatorik: grafteori og optimering.

P2-projektforslag Kombinatorik: grafteori og optimering. P2-projektforslag Kombinatorik: grafteori og optimering. Vejledere: Leif K. Jørgensen, Diego Ruano 1. februar 2013 1 Indledning Temaet for projekter på 2. semester af matematik-studiet og matematikøkonomi-studiet

Læs mere

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

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 8. Juni 2015 Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 8. Juni 05 Mikkel Findinge Bemærk, at der kan være sneget sig fejl ind. Kontakt mig endelig, hvis du skulle falde over en

Læs mere

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

Matrx-vektor produkt Mikkel H. Brynildsen Lineær Algebra Matrx-vektor produkt [ ] 1 2 3 1 0 2 1 10 4 Rotationsmatrix Sæt A θ = [ ] cosθ sinθ sinθ cosθ At gange vektor v R 2 med A θ svarer til at rotere vektor v med vinkelen θ til vektor w: [ ][ ] [ ] [ ] cosθ

Læs mere

π er irrationel Frank Nasser 10. december 2011

π er irrationel Frank Nasser 10. december 2011 π er irrationel Frank Nasser 10. december 2011 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Indhold 1 Introduktion

Læs mere

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

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

Læs mere

Matricer og lineære ligningssystemer

Matricer og lineære ligningssystemer Matricer og lineære ligningssystemer Grete Ridder Ebbesen Virum Gymnasium Indhold 1 Matricer 11 Grundlæggende begreber 1 Regning med matricer 3 13 Kvadratiske matricer og determinant 9 14 Invers matrix

Læs mere

LINALG JULENØD 2013 SUNE PRECHT REEH

LINALG JULENØD 2013 SUNE PRECHT REEH LINALG JULENØD 203 SUNE PRECHT REEH Resumé I denne julenød skal vi se på lineær algebra for heltallene Z Hvad går stadig godt? og hvad går galt? I de reelle tal R kan vi for ethvert a 0 altid finde R som

Læs mere

Note om interior point metoder

Note om interior point metoder MØK 2016, Operationsanalyse Interior point algoritmer, side 1 Note om interior point metoder Som det er nævnt i bogen, var simplex-metoden til løsning af LP-algoritmer nærmest enerådende i de første 50

Læs mere

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

LINEÆR OPTIMERING JESPER MICHAEL MØLLER. Resumé. Disse noter handler om dualitet i lineære optimeringsprogrammer. LINEÆR OPTIMERING JESPER MICHAEL MØLLER Indhold 1 Introduktion 1 2 Kanoniske programmer 2 3 Standard programmer 2 4 Svag dualitet for standard programmer 3 5 Svag dualitet for generelle lineære programmer

Læs mere

Chapter 6: Følsomhedsanalyse og dualitet i LP

Chapter 6: Følsomhedsanalyse og dualitet i LP Chapter 6: Følsomhedsanalyse og dualitet i LP ) Følsomhedsanalyse -> kriteriekoeffricienter -> RHSs ) Dualitet -> økonomisk fortolkning af dualvariable -> anvendelse af dual løsning til identifikation

Læs mere

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

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger enote 11 1 enote 11 Lineære differentialligningers karakter og lineære 1. ordens differentialligninger I denne note introduceres lineære differentialligninger, som er en speciel (og bekvem) form for differentialligninger.

Læs mere

4. Simplexmetoden. Basisløsning. x Geometrisk hovedindhold

4. Simplexmetoden. Basisløsning. x Geometrisk hovedindhold 4.1. Geometrisk hovedindhold 4. Simplexmetoden 4.1. Geometrisk hovedindhold 4.2. Opstart 4.3. Algebraisk form 4.4. Tableauform 4.5. Løse ender 4.6. Kunstige variabler og tofasemetoden 4.7. Postoptimale

Læs mere

P2-gruppedannelsen for Mat og MatØk

P2-gruppedannelsen for Mat og MatØk Institut for Matematiske Fag Aalborg Universitet Danmark 1-02-2012 Vejledere Bo Hove E-mail: bh@thisted-gymnasium.dk 3 Mat grupper (semesterkoordinator) E-mail: diego@math.aau.dk. Web page: http://people.math.aau.dk/~diego/

Læs mere

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

Lineær programmering. med Derive. Børge Jørgensen Lineær programmering med Derive Børge Jørgensen 1 Indholdsfortegnelse. Forord ---------------------------------------------------------------------------------- 2 Introduktion til lineær programmering

Læs mere

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

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

Læs mere

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

Projekt 4.6 Løsning af differentialligninger ved separation af de variable Projekt 4.6 Løsning af differentialligninger ved separation af de variable Differentialligninger af tpen d hx () hvor hx ()er en kontinuert funktion, er som nævnt blot et stamfunktionsproblem. De løses

Læs mere

Linear Programming ١ C H A P T E R 2

Linear Programming ١ C H A P T E R 2 Linear Programming ١ C H A P T E R 2 Problem Formulation Problem formulation or modeling is the process of translating a verbal statement of a problem into a mathematical statement. The Guidelines of formulation

Læs mere

VisiRegn: En e-bro mellem regning og algebra

VisiRegn: En e-bro mellem regning og algebra Artikel i Matematik nr. 2 marts 2001 VisiRegn: En e-bro mellem regning og algebra Inge B. Larsen Siden midten af 80 erne har vi i INFA-projektet arbejdet med at udvikle regne(arks)programmer til skolens

Læs mere

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

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

Læs mere

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

Start Excel Du skal starte med at åbne Excel. I Excel åbner du herefter en tom projektmappe. Lineær programmering i Excel Version for PC I lærebogens kapitel 29 afsnit 4 er det med 2 eksempler blevet vist, hvordan kapacitetsstyringen kan optimeres, når der er 2 produktionsmuligheder og flere knappe

Læs mere

Optimeringsmatematik og matematik-økonomi studiet

Optimeringsmatematik og matematik-økonomi studiet Optimeringsmatematik og matematik-økonomi studiet og specielt anvendelser af matematisk programmering Esben Høg Institut for Matematiske Fag Aalborg Universitet Oktober 2012 EH (Institut for Matematiske

Læs mere

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

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

Læs mere

Kursusgang 3 Matrixalgebra Repetition

Kursusgang 3 Matrixalgebra Repetition Kursusgang 3 Repetition - froberg@math.aau.dk http://people.math.aau.dk/ froberg/oecon3 Institut for Matematiske Fag Aalborg Universitet 16. september 2008 1/19 Betingelser for nonsingularitet af en Matrix

Læs mere

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

Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80) Forslag til løsning af Opgaver til afsnittet om de naturlige tal (side 80) Opgave 1 Vi skal tegne alle de linjestykker, der forbinder vilkårligt valgte punkter blandt de 4 punkter. Gennem forsøg finder

Læs mere

Dynamisk programmering

Dynamisk programmering Dynamisk programmering Dynamisk programmering Et algoritme-konstruktionsprincip ( paradigme ) for optimeringsproblemer. Har en hvis lighed med divide-and-conquer: Begge opbygger løsninger til større problemer

Læs mere

Aflevering 4: Mindste kvadraters metode

Aflevering 4: Mindste kvadraters metode Aflevering 4: Mindste kvadraters metode Daniel Østergaard Andreasen December 2, 2011 Abstract Da meget få havde løst afleveringsopgave 4, giver jeg har en mulig (men meget udførlig) løsning af opgaven.

Læs mere

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

Vejledning i udtræk af input-output data fra Statistikbanken - 1 - Vejledning i udtræk af input-output data fra Statistikbanken Introduktion Input-output tabellerne er konsistente med nationalregnskabet og udarbejdes i tilknytning hertil. De opdateres årligt i december

Læs mere

3. Om skalamønstrene og den indfoldede orden

3. Om skalamønstrene og den indfoldede orden Dette er den tredje af fem artikler under den fælles overskrift Studier på grundlag af programmet SKALAGENERATOREN (forfatter: Jørgen Erichsen) 3. Om skalamønstrene og den indfoldede orden Lad os begynde

Læs mere

Funktioner og ligninger

Funktioner og ligninger Eleverne har både i Kolorit på mellemtrinnet og i Kolorit 7 matematik grundbog arbejdet med funktioner. I 7. klasse blev funktionsbegrebet defineret, og eleverne arbejdede med forskellige måder at beskrive

Læs mere

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?

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? Tip til. runde af Georg Mohr-Konkurrencen Algebra Her præsenteres idéer til hvordan man løser algebraopgaver. Det er ikke en teoretisk indføring, men der er i stedet fokus på at illustrere nogle centrale

Læs mere

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

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 BAndengradspolynomier Et polynomium er en funktion på formen f ( ) = an + an + a+ a, hvor ai R kaldes polynomiets koefficienter. Graden af et polynomium er lig med den højeste potens af, for hvilket den

Læs mere

Matlab script - placering af kran

Matlab script - placering af kran Matlab script - placering af kran 1 Til at beregne den ideelle placering af kranen hos MSK, er der gjort brug af et matlab script. Igennem dette kapitel vil opbygningen af dette script blive gennemgået.

Læs mere

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

Project Step 7. Behavioral modeling of a dual ported register set. 1/8/ L11 Project Step 5 Copyright Joanne DeGroat, ECE, OSU 1 Project Step 7 Behavioral modeling of a dual ported register set. Copyright 2006 - Joanne DeGroat, ECE, OSU 1 The register set Register set specifications 16 dual ported registers each with 16- bit words

Læs mere

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

Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 3. Juni 2014 Besvarelser til Calculus og Lineær Algebra Globale Forretningssystemer Eksamen - 3. Juni 204 Mikkel Findinge Bemærk, at der kan være sneget sig fejl ind. Kontakt mig endelig, hvis du skulle falde over

Læs mere

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign

28 Algoritmedesign. Noter. PS1 -- Algoritmedesign 28 Algoritmedesign. Algoritmeskabelon for Del og Hersk. Eksempler på Del og Hersk algoritmer. Binær søgning i et ordnet array. Sortering ved fletning og Quicksort. Maksimal delsums problem. Tætteste par

Læs mere

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

Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb Projekt 7.4 Kvadratisk programmering anvendt til optimering af elektriske kredsløb Indledning: I B-bogen har vi i studieretningskapitlet i B-bogen om matematik-fsik set på parallelkoblinger af resistanser

Læs mere

Branch-and-bound. David Pisinger. Videregående algoritmik, DIKU (2007-08) 1 Introduktion 5 1.1 Gennemgående eksempler... 7. 2 Brute-force metoder 10

Branch-and-bound. David Pisinger. Videregående algoritmik, DIKU (2007-08) 1 Introduktion 5 1.1 Gennemgående eksempler... 7. 2 Brute-force metoder 10 Branch-and-bound David Pisinger Videregående algoritmik, DIKU (2007-08) Indhold 1 Introduktion 5 1.1 Gennemgående eksempler..................... 7 2 Brute-force metoder 10 3 Divide and Conquer 11 4 Grænseværdier

Læs mere

Det Rene Videnregnskab

Det Rene Videnregnskab Det Rene Videnregnskab Visualize your knowledge Det rene videnregnskab er et værktøj der gør det muligt at redegøre for virksomheders viden. Modellen gør det muligt at illustrere hvordan viden bliver skabt,

Læs mere

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

Matematik YY Foråret Kapitel 1. Grupper og restklasseringe. Matematik YY Foråret 2004 Elementær talteori Søren Jøndrup og Jørn Olsson Kapitel 1. Grupper og restklasseringe. Vi vil i første omgang betragte forskellige typer ligninger og søge efter heltalsløsninger

Læs mere

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

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 Affine rum I denne note behandles kun rum over R. Alt kan imidlertid gennemføres på samme måde over C eller ethvert andet legeme. Et underrum U R n er karakteriseret ved at det er en delmængde som er lukket

Læs mere

Operationsanalyse MØK

Operationsanalyse MØK Operationsanalyse MØK 2015II Eksamensopgave, Rettevejledning, side 1 Operationsanalyse MØK Eksamensopgave, 4. januar 2016 Rettevejledning 1. Vi har at gøre med et transportproblem, der kan skrives på formen

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 34 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

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

Mat H /05 Note 2 10/11-04 Gerd Grubb Mat H 1 2004/05 Note 2 10/11-04 Gerd Grubb Nødvendige og tilstrækkelige betingelser for ekstremum, konkave og konvekse funktioner. Fremstillingen i Kapitel 13.1 2 af Sydsæters bog [MA1] suppleres her med

Læs mere

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

MASO Uge 11. Lineær optimering. Jesper Michael Møller. Uge 46, 2010. Formålet med MASO. Department of Mathematics University of Copenhagen MASO Uge 11 Lineær optimering Jesper Michael Møller Department of Mathematics University of Copenhagen Uge 46, 2010 Formålet med MASO Oversigt 1 Generelle lineære programmer 2 Definition Et generelt lineært

Læs mere

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

Videregående Algoritmik. Version med vejledende løsninger indsat! Videregående Algoritmik DIKU, timers skriftlig eksamen, 1. april 009 Nils Andersen og Pawel Winter Alle hjælpemidler må benyttes, dog ikke lommeregner, computer eller mobiltelefon. Opgavesættet består

Læs mere

Kvadratiske matricer. enote Kvadratiske matricer

Kvadratiske matricer. enote Kvadratiske matricer enote enote Kvadratiske matricer I denne enote undersøges grundlæggende egenskaber ved mængden af kvadratiske matricer herunder indførelse af en invers matrix for visse kvadratiske matricer. Det forudsættes,

Læs mere

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen

Sekvensafstand DM34 - Eksamensopgave. Jacob Aae Mikkelsen Sekvensafstand DM34 - Eksamensopgave Jacob Aae Mikkelsen 19 10 76 kokken@grydeske.dk 27. maj 2005 Resumé Rapporten her beskriver tre forskellige rekursive metoder til at sammenligne tekst strenge med.

Læs mere

Grundlæggende køretidsanalyse af algoritmer

Grundlæggende køretidsanalyse af algoritmer Grundlæggende køretidsanalyse af algoritmer Algoritmers effektivitet Størrelse af inddata Forskellige mål for køretid Store -notationen Klassiske effektivitetsklasser Martin Zachariasen DIKU 1 Algoritmers

Læs mere

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

Tietgenskolen - Nørrehus. Data warehouse. Database for udviklere. Thor Harloff Lynggaard DM08125 Tietgenskolen - Nørrehus Data warehouse Database for udviklere Thor Harloff Lynggaard DM08125 Juni 2010 Indhold Beskrivelse... 3 Data warehouse... 3 Generelt... 3 Sammenligning... 3 Gode sider ved DW...

Læs mere

Elementær Matematik. Funktioner og deres grafer

Elementær Matematik. Funktioner og deres grafer Elementær Matematik Funktioner og deres grafer Ole Witt-Hansen 0 Indhold. Funktioner.... Grafen for en funktion...3. grafers skæring med koordinat akser...4. To grafers skæringspunkter...4 3. Egenskaber

Læs mere

Projekt Lineær programmering i to variable

Projekt Lineær programmering i to variable Projekt 5.5 - Lineær programmering i to variable. Den grundlæggende ide i lineær programmering Håndtering af optimeringsproblemer er et af de store anvendelsesområder inden for differentialregningen. Det

Læs mere

Sortering. Eksempel: De n tal i sorteret orden

Sortering. Eksempel: De n tal i sorteret orden Sortering 1 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 2 / 32 Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden

Læs mere

Matematik og FormLineære ligningssystemer

Matematik og FormLineære ligningssystemer Matematik og Form Lineære ligningssystemer Institut for Matematiske Fag Aalborg Universitet 2014 Ligningssystemer og matricer Til et ligningssystem svarer der en totalmatrix [A b] bestående af koefficientmatrix

Læs mere

Pointen med Differentiation

Pointen med Differentiation Pointen med Differentiation Frank Nasser 20. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Sortering af information er en fundamental og central opgave.

Sortering af information er en fundamental og central opgave. Sortering Sortering Input: Output: Eksempel: n tal De n tal i sorteret orden 6, 2, 9, 4, 5, 1, 4, 3 1, 2, 3, 4, 4, 5, 9 Mange opgaver er hurtigere i sorteret information (tænk på ordbøger, telefonbøger,

Læs mere

matematik-økonomi-studerende

matematik-økonomi-studerende matematik-økonomi-studerende Første studieår Introduktion til matematiske metoder i økonomi Skriftlig prøveeksamen december 2012 med korte svar Dato: selvvalgt Tidspunkt: varighed 4 timer Tilladte hjælpemidler:

Læs mere

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

Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Merging og hashing Mål Målet for disse slides er at diskutere nogle metoder til at gemme og hente data effektivt. Dette emne er et uddrag af kurset DM507 Algoritmer og datastrukturer (2. semester). Mål

Læs mere

Løsning af simple Ligninger

Løsning af simple Ligninger Løsning af simple Ligninger Frank Nasser 19. april 2011 c 2008-2011. Dette dokument må kun anvendes til undervisning i klasser som abonnerer på MatBog.dk. Se yderligere betingelser for brug her. Bemærk:

Læs mere

Danmarks Tekniske Universitet

Danmarks Tekniske Universitet side af sider Danmarks Tekniske Universitet Skriftlig prøve, den. maj 00. Kursusnavn Algoritmer og datastrukturer Kursus nr. 06. Tilladte hjælpemidler: Alle hjælpemidler. Vægtning af opgaverne: Opgave

Læs mere

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

2010 Matematik 2A hold 4 : Prøveeksamen juni 2010 1 of 7 31-05-2010 13:18 2010 Matematik 2A hold 4 : Prøveeksamen juni 2010 Welcome Jens Mohr Mortensen [ My Profile ] View Details View Grade Help Quit & Save Feedback: Details Report [PRINT] 2010 Matematik

Læs mere

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

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Gruppeteori Michael Knudsen 8. marts 2005 1 Motivation For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel. Eksempel 1.1. Lad Z betegne mængden af de hele tal, Z = {..., 2, 1, 0,

Læs mere

RUTEPLANLÆGNING OG TRANSPORTNETVÆRK

RUTEPLANLÆGNING OG TRANSPORTNETVÆRK 98 Ruteplanlægning og transportnetværk Af professor Oli B.G. Madsen 99 Flere og flere mennesker og større og større mængder af varer og gods bliver transporteret over længere afstande end nogensinde før.

Læs mere

Netværksalgoritmer 1

Netværksalgoritmer 1 Netværksalgoritmer 1 Netværksalgoritmer Netværksalgoritmer er algoritmer, der udføres på et netværk af computere Deres udførelse er distribueret Omfatter algoritmer for, hvorledes routere sender pakker

Læs mere

Bilag. Resume. Side 1 af 12

Bilag. Resume. Side 1 af 12 Bilag Resume I denne opgave, lægges der fokus på unge og ensomhed gennem sociale medier. Vi har i denne opgave valgt at benytte Facebook som det sociale medie vi ligger fokus på, da det er det største

Læs mere

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

Det er muligt at chekce følgende opg. i CodeJudge: og Det er muligt at chekce følgende opg. i CodeJudge:.1.7 og.1.14 Exercise 1: Skriv en forløkke, som producerer følgende output: 1 4 9 16 5 36 Bonusopgave: Modificer dit program, så det ikke benytter multiplikation.

Læs mere