Ruttplanering i vägdatabas M A L E N A S Ö D E R L U N D

Storlek: px
Starta visningen från sidan:

Download "Ruttplanering i vägdatabas M A L E N A S Ö D E R L U N D"

Transkript

1 Ruttplanering i vägdatabas M A L E N A S Ö D E R L U N D Examensarbete Stockholm, Sverige 2006

2 Ruttplanering i vägdatabas M A L E N A S Ö D E R L U N D Examensarbete i datalogi om 20 poäng vid Programmet för datateknik Kungliga Tekniska Högskolan år 2006 Handledare på CSC var Mikael Goldmann Examinator var Stefan Arnborg TRITA-CSC-E 2006:098 ISRN-KTH/CSC/E--06/098--SE ISSN Kungliga tekniska högskolan Skolan för datavetenskap och kommunikation KTH CSC Stockholm URL:

3 Sammanfattning Att minimera körkostnader kan leda till stora resursbesparingar varför ruttplanering är ett intressant problem för verksamhetsområden som taxikörningar, kundleveranser, skolskjuts och diverse transporter. Uppdragsgivaren för detta examensarbete, Decerno AB, har utvecklat en vägdatabas som binder samman vägnätsanknuten information från flera olika verksamheter. Genom att göra data om vägars fysiska egenskaper, som till exempel bredd och längd, tillgängligt från samma ställe som data om olika gators gällande trafikregler, skapas ett bra underlag för att göra ruttplaneringar på. Decerno vill nu undersöka om vägdatabasens modell och data är tillräckliga och lämpliga för att utföra ruttplanering på. Detta görs genom att titta närmare på problemen Kortaste vägen, att hitta kortaste vägen mellan två punkter, samt the Traveling Salesman Problem, att hitta den bästa rutten mellan flera punkter. Kortaste vägen mellan två punkter erbjuds idag av många karttjänster och det finns flertalet effektiva lösningar på problemet. Traveling Salesman Problem är ett mer avancerat kombinatoriskt problem där flera punkter ska besökas till en så liten körkostnad som möjligt. Ju fler punkter som besöks desto längre tid tar det att beräkna den bästa rutten. Det finns idag inga kända lösningar som hittar den bästa rutten tillräckligt effektivt varför det har utvecklats många approximationsmetoder som ger en tillräckligt bra rutt. Oracle Spatial Network levereras med Oracle 10g och har ett paket för nätverksanalys där lösningar på Kortaste vägen och Traveling Salesman Problem finns implementerade. I examensarbetet undersöks huruvida dessa kan användas för att ruttplanera på Decernos databas samt jämför dem med lösningar på samma problem som utvecklas i en prototyp. En jämförelse görs även mellan Decernos vägdatabas och en kommersiell vägdatabas utvecklad av det holländska företaget Tele Atlas. Den prototyp som utvecklats under examensarbetet kan använda båda databaserna som dataunderlag. Problem med att avgöra vilka två noder i de två databaserna som motsvarar samma punkt i verkligheten har gjort att jämförelsen är grundad på modellen snarare än data. Detta har visat att Tele Atlas modell är väl anpassad för ruttplanering medan Decernos modell har ett bredare användningsområde. Dock kan små förändringar göra Decernos modell till en bra grund för ruttplanering. Då tester körts på samma vägnät i prototypen och i Oracle Spatial Networks analysverktyg har prototypen löst problemet Kortaste vägen snabbare medan Oracles lösningar på the Traveling Salesman Problem har hittats snabbare och resulterat i kortare rutter. Oracle Spatial Networks lösningar missar dock att besöka vissa noder i några få fall.

4 Vehicle Routing in Road Database Abstract Minimizing driving costs can help saving resources which is why vehicle routing is an interesting problem for businesses like cab companies, deliverers, school pick up services and transports. Decerno, the company commissioning the study, has developed a road database that connects road network related information from several organizations. Good conditions for performing vehicle routing are achieved by making the physical attributes of a road network, for example the width and length of a road, accessible from the same place as network traffic rules. Decerno wants to investigate whether or not the database model and data are sufficient and suitable for vehicle routing. This is done by looking at the two problems Shortest Path, where the shortest path between two points is found, and the Traveling Salesman Problem, where the best route visiting two or more points is found. Solutions to the Shortest Path between two points is offered by many map services today and there are several efficient solutions to the problem. The Traveling Salesman Problem is a more complex combinatorial problem where several points are to be visited at the lowest possible driving cost. The more points to visit, the longer it takes to compute the best route. Today there exist no known solutions that can find this route efficiently enough, which is why many approximation methods, that give a sufficiently good route, have been developed. Oracle Spatial Network is delivered with Oracle 10g and has a network analysis package with the Shortest Path and the Traveling Salesman Problem implemented. This thesis investigates whether or not these solutions can be used to perform vehicle routing on Decerno s database and compares these to solutions developed in a prototype. The thesis also compares Decerno s database to a commercial database developed by Tele Atlas, a Dutch corporation specializing in geographic information. The prototype developed for this thesis can perform Shortest Path and Traveling Salesman Problem on both databases. Deciding which two nodes in the databases that correspond to the same point in the road network is problematic. This is why the comparison is based on the two models rather than tests on the data in the databases. The results show that Tele Atlas model is well adjusted to vehicle routing and Decerno s model has a wider usage, though small changes can make Decerno s model just as well adjusted to vehicle routing as Tele Atlas model. Tests show that the prototype solves the Shortest Path problem somewhat faster than Oracles Spatial Network s analysis tools while Oracle solves the Traveling Salesman Problem faster and with shorter routes than the prototype. Oracle Spatial Network s solutions do not visit all the given nodes in a few cases though.

5 Innehåll 1 Introduktion Bakgrund Problem Syfte Avgränsningar Terminologi, förkortningar och definitioner Teori Vägdatabaser Decernos databas Tele Atlas databas Oracle Spatial Network Ruttplanering Kortaste vägen Dijkstra Floyd Traveling Salesman Problem Kandidatmängder Heuristiker baserade på närmsta grannen Insättningsheuristiker Jämförelse av konstruktionsmetoder En approximation för asymmetrisk TSP Förbättringar Metod Arbetsgång Förutsättningar Från vägdatabas till graf Kortaste vägen Traveling Salesman Problem Minimal cykeltäckning Från många cykler till en Förbjudna svängar

6 4 Resultat och jämförelser Prototyp och Oracle Spatial Network Kortaste vägen TSP Databaser Modellen för vägnätet och dess attribut Tillgänglighet Data Syfte med databaserna Slutsatser och rekommendationer 47 Litteraturförteckning 51

7 Kapitel 1 Introduktion Denna rapport avhandlar ett examensarbete inom datalogi utfört på institutionen för Numerisk Analys och Datalogi vid Kungliga Tekniska Högskolan. Arbetet är gjort för uppdragsgivaren Decerno AB, ett konsultföretag med ca 30 anställda som har sitt huvudkontor i Täby utanför Stockholm. Handledare från Decerno är Johan Behrenfeldt och Patrik Engström, handledare från KTH är Mikael Goldmann. Problemet som undersöks är ruttplanering i en vägdatabas. I denna rapport ges först en bakgrund till examensarbetet, därefter följer ett teoriavsnitt som tar upp tidigare arbeten och kända metoder. Sedan beskrivs hur uppgiften lösts, vilken metod som använts och vad resultaten blev. Sist presenteras slutsatser och rekommendationer. Detta inledande kapitel syftar till att presentera problemet, dess bakgrund och tillämpningar, beskriva ramen för examensarbetet samt ge några definitioner som kan vara bra att hålla i minnet under läsandet av rapporten. 1.1 Bakgrund Ruttplaneringsproblem handlar ofta om att från en eller flera terminaler skicka ut ett eller flera fordon för att besöka givna punkter och sedan återvända till utgångsterminalen. Det finns många olika tillämpningar så som skolskjuts, färdtjänst, sophämtning och varuleverans och de ställer alla olika krav på ruttplaneringen. Handlar det om distribution av varor är det viktigt att ta hänsyn till att fordonen inte får överlastas, att chaufförerna får sina raster och att de anländer till kunden när kunden har öppet och kan ta emot leveransen. Om ruttplaneringen avser en skolskjuts handlar kraven istället om att eleverna inte ska behöva vänta på skjutsen för länge eller komma till skolan långt innan första lektionen. Decerno AB har i samarbete med Stockholms Stad tagit fram LV, Lokal Vägdatabas, för att kunna samordna flera olika databaser innehållande information om 1

8 KAPITEL 1. INTRODUKTION stadens vägnät. Tidigare hade olika verksamheter separata system men idag kan mycket vägdata göras åtkomliga från LV. De gamla databaserna finns kvar för att behålla viss verksamhetsuppdelning men de kommunicerar och utbyter data med LV så att flera verksamheter får tillgång till gemensamma vägdata. I dagsläget är LV kopplat till två databaser, Gata, som är en databas över vägars fysiska egenskaper, och LTF (Lokala Trafikföreskrifter) som är en databas över de trafikregler som gäller på vägarna. Vabas är en databas över brunnar och vattenledningssystem och det finns andra över till exempel gropar i vägbanorna. Dessa är exempel på databaser som idag inte är kopplade till LV men skulle kunna bli det i framtiden. LV kan utbyta data med NVDB, Nationell VägDataBas, som är Vägverkets rikstäckande databas över Sveriges vägar. LV är tänkt att komplettera NVDB och ha större detaljrikedom inom det specifikt täckta området. Systemet har nyligen tagits i bruk och det finns nu intresse för att utveckla en ruttplanerare för LV. 1.2 Problem Ruttplanering är ett intressant problem för många verksamheter och med många tillämpningsområden. Kända lösningar på problemet använder sig ofta av en graf som representerar vägnätet. En graf är en mängd länkar, vilka representerar vägavsnitt, som binds samman av noder, vilka representerar korsningar. Minimikrav för en ruttplanering är tillgång till information om vägavsnitt, korsningar och någon kostnadsfunktion (till exempel vägavsnittets längd) kopplad till länkarna. En vägdatabas innehåller normalt detta och mycket mer, så som förbjudna körriktningar eller förbjudna manövrar, vägbredd, fri höjd och annat som kan vara av intresse vid en ruttplanering. LV innehåller och fylls på med denna information kontinuerligt och borde utgöra en bra grund för ruttplanering. För att kunna applicera kända metoder och algoritmer måste informationen i vägdatabasen extraheras till en graf innehållande den information som är relevant för vägnätet i en ruttplanering. Hur detta görs beskrivs mer detaljerat i Metod, kapitel 3. Decerno vill veta om ruttplanering kan ske på LV så som modellen ser ut idag. Ruttplaneraren ska dels kunna ge kortaste vägen från en punkt till en annan och dels kunna föreslå en bra rutt som besöker vissa givna punkter i någon ordning. 1.3 Syfte Examensarbetet syftar till att undersöka om det går att ruttplanera med LV som vägdataunderlag. Detta görs dels genom att utveckla en enkel ruttplaneringsprototyp som använder LV som vägnät och dels genom att använda de inbyggda ruttplaneringsfunktioner som finns tillgängliga i Oracle Spatial Network. 2

9 1.4. AVGRÄNSNINGAR I arbetet ingår även att jämföra dessa två sätt att ruttplanera för LV samt att jämföra LV med en vägdatabas utvecklad av Tele Atlas. 1.4 Avgränsningar Examensarbetet behandlar inte ruttplanering i dess helhet utan koncentrerar sig på delproblemen Traveling Salesman Problem och Kortaste vägen. Båda problemen presenteras mer ingående i Teori, kapitel 2. Endast två sätt att ruttplanera för LV utreds och jämförs, nämligen att använda Oracle Spatial Networks inbyggda funktioner och att implementera en enkel prototyp. Jämförelsen mellan LV och Tele Atlas databas är baserad på en studie av respektive modell. Ruttplaneringsprototypen kan använda båda databaserna som vägnätsunderlag men för få tester har gjorts för att kunna dra några slutsatser. Det enda data som är detsamma i LV och i Tele Atlas databas är vägarnas namn varför det är tidskrävande och omständligt att hitta noder i databaserna som kan anses vara desamma i verkligheten. 1.5 Terminologi, förkortningar och definitioner LV - Lokal Vägdatabas, utvecklad av Decerno NVDB - Vägverkets rikstäckande Nationella VägDataBas Graf - En mängd noder sammankopplade av länkar. I denna rapport kommer länkar och kanter användas som synonymer. I en viktad graf har länkarna en kostnad. Kostnaden beror på tillämpning men det är i ruttplaneringssammanhang vanligt att kostnaden är vägavsnittets längd eller tiden det tar att färdas längs detta. Alla grafer antas vara viktade i denna rapport. Kostnad, vikt och längd används som synonymer för kostnaden på en kant mellan noderna i och j och betecknas med c ij, w ij eller d ij. Oriktad graf - En graf där länkarna saknar riktning. Det är möjligt att färdas längs en länk i båda riktningarna. Riktad graf - En graf där länkarna har riktning. Färd längs en länk kan bara ske i dess riktning. Fullständig graf - Graf där varje nod är kopplad till varje annan nod via en länk. Bipartit graf - En graf vars noder kan delas upp i två disjunkta mängder, X och Y, så att varje kant i grafen förbinder en nod i X med en nod i Y och ingen kant förbinder två noder i X eller två noder i Y. 3

10 KAPITEL 1. INTRODUKTION Kortaste vägen - Problemet att hitta kortaste vägen mellan två punkter. Med kortast menas lägst sammanlagd kostnad för alla länkar som ingår i vägen. I denna rapport används kortast och billigast som synonymer. TSP - Traveling Salesman Problem, Handelsresandeproblemet på svenska. Hitta den kortaste cykel som besöker ett antal givna noder. Stig - En sekvens av länkar och noder där alla noder, utom den första och sista, har exakt en länk före sig och en länk efter sig i sekvensen. Cykel - En stig där första och sista länken är sammankopplade. Hamiltoncykel - En cykel i en graf som besöker alla noder precis en gång och återvänder till startnoden. Att lösa TSP är att hitta den billigaste Hamiltoncykeln i en given graf. Hamiltonstig - En stig som besöker alla noder i en graf exakt en gång. n - I denna rapport kommer n i en funktion f(n) att vara storleken på indata för problemet. I TSP-problemet till exempel är n antal noder att besöka i en rutt. Triangelolikhet - Triangelolikheten säger att d ab d ac + d cb, det vill säga att det aldrig är en genväg att gå via en annan nod. Linjär tid - En algoritm är linjär om exekveringstiden i värsta fall växer som en linjär funktion, det vill säga ett polynom av första graden, till exempel n. Linjära algoritmer anses vara snabba i de flesta tillämpningar. Polynomisk tid - En algoritm är polynomisk om exekveringstiden i värsta fall växer som ett polynom. Ett exempel på ett sådant är n 3. Polynomiella algoritmer anses ofta vara rimligt snabba, men det beror på tillämpning och polynom. Exponentiell tid - En algoritm är exponentiell om exekveringstiden i värsta fall växer som en exponentialfunktion. Exempel på en sådan är 2 n. Sådana exekveringstider är normalt inte rimliga annat än för mycket små n varför problem, för vilka det inte finns en bättre känd lösning än en exponentiell algoritm, ofta approximeras med en polynomiell algoritm. log n - Med funktionen log n avses i denna rapport basen 2, det vill säga log 2 n vilket är den inversa funktionen till 2 n O(f(n)) - En algoritm tillhör O(f(n)) om exekveringstiden växer högst lika snabbt som f(n) gånger en konstant. Ω(f(n)) - En algoritm tillhör Ω(f(n)) om exekveringstiden växer minst lika snabbt som f(n). 4

11 Kapitel 2 Teori Detta kapitel avhandlar några kända metoder för att lösa problemen Kortaste vägen och TSP. För Kortaste vägen finns kända algoritmer som löser problemet på polynomisk tid och därför kan den optimala lösningen hittas. TSP är ett svårare problem och har inga idag kända polynomiska lösningar. För en optimal TSP-lösning finns ännu bara exponentiella algoritmer varför man ofta får nöja sig med en tillräckligt bra rutt och approximera en optimal lösning med en polynomiell algoritm. Det finns diverse metoder för att förbättra den rutt man fått och några presenteras och beskrivs nedan. Eftersom arbetet inte behandlar ruttplanering i stort ges endast en kort beskrivning av helhetsproblemet. Först presenteras de vägdatabaser som ruttplaneringen ska ske på och Oracle Spatial Networks ruttplaneringsfunktioner. 2.1 Vägdatabaser Nedan presenteras LV, den databas som Decerno utvecklat och som examensarbetet avser undersöka lämpligheten för ruttplanering på. Därefter presenteras den databas som Tele Altas har utvecklat och som LV ska jämföras med. Sist ges en beskrivning av Oracle Spatial Network och det paket med vägnätsanalys som följer med den nya versionen Oracle 10g Decernos databas Decerno har utvecklat en lokal vägdatabas, LV i samarbete med Stockholm Stad. Databasens främsta uppgift är att göra vägnätsdata från olika verksamheter tillgängliga från ett och samma ställe. Nu har även intresset väckts för att göra ruttplanering med LV som dataunderlag. Nedan följer en beskrivning av de delar av LV som är viktiga i ruttplaneringssammanhang. 5

12 KAPITEL 2. TEORI Figur 2.1. En referenslänk och dess referenslänksdelar kopplade till noder via portar Vägnätets representation I LV representeras vägavsnitt som referenslänkar. En referenslänk byggs upp av referenslänksdelar som tillsammans sträcker sig heltäckande över det vägavsnitt som referenslänken representerar. Om en referenslänk består av mer än en referenslänksdel är dessa kopplade till varandra via noder. Till skillnad från den traditionella grafrepresentationen, där länkar kopplas direkt till en nod, sker kopplingen mellan en referenslänksdel och en nod via portar. Varje referenslänksdel har en länkport i vardera ände och en nod kan ha godtyckligt många nodportar. Sammankopplingen mellan referenslänksdel och nod går via detta länkport-nodport-par. Figur 2.1 visar hur referenslänksdelar sträcker sig över en referenslänk och hur portas används för att koppla samman noder och referenslänksdelar. Hädanefter antas portar koppla noder och referenslänksdelar även om de utelämnas i figurer. En referenslänk är ett stabilt objekt som inte förändras, så att om vägnätet byggs om försvinner inte information knuten till referenslänken. Istället är det referenslänksdelarna som förändras för att spegla verkligheten. Följande exempel illustreras i figur 2.2. R är en referenslänk mellan noderna A och B. R består av en enda referenslänksdel R 1. En ny väg byggs och ansluts via en T-korsning till den gamla. Den nya vägens referenslänk S ansluts till R via en nod C. Eftersom R är ett stabilt objekt förändras inte det. Referenslänksdelen R 1 ersätts av två referenslänksdelar R 2, mellan noderna A och C, och R 3, mellan noderna C och B. På så sätt går inte information knuten till referenslänken förlorad trots att dess referenslänksdelar har förändrats för att spegla en förändring i verkligheten då den nya vägen byggdes till. Ett LIVO, LInjärtVerksamhetsObjekt, är en mängd länkar och noder som tillsammans utgör en enhet i det verkliga gatunätet. Vanligt är att de utgör en hel gata i de fall då man vill se på gatan som helhet snarare än alla länkar som utgör den [2, 3, 9]. Företeelser och utbredningar En företeelse är en egenskap som ett vägavsnitt kan ha, till exempel bredd, slitlagerstyp, antal körbanor, parkeringsförbud eller påbjuden körriktning. Vissa företeelser kan vara överlappande och andra inte. Ett vägavsnitt kan till exempel ha flera namn 6

13 2.1. VÄGDATABASER R A R 1 B R A R 2 C R 3 B S S 1 D Figur 2.2. Referenslänksdelar återspegar förändringar i verkligheten men inte överlappande hastighetsbegränsningar. Företeelserna kopplas till referenslänkar och noder via utbredningar. Olika företeelser har olika sorters utbredningar. Företeelsen slitlager har till exempel en linjeutbredning då slitlagret på vägavsnittet utbreder sig längs med hela eller delar av referenslänken. Företeelsen brunn har en punktutbredning och finns på en specifik punkt längs med referenslänken. Företeelsen förbjuden vänstersväng har en svängutbredning som är knuten till en nod och har referenser till de två länkarna, frånlänk och tillänk, som förbudet gäller. LV kan beskriva trafikregler så som enkelriktning, förbud mot infart med fordon, påbjuden högersväng och körfält för linjetrafik, vilka kan tas med i beräkningen av en rutt. Information om brunnar, begränsad fri höjd, maximal tyngd för fordon och så vidare kan beskrivas och användas i ruttplanering för större fordon. Tillåten körriktning lagras inte för alla länkar, om inget förbud eller påbud är kopplat till länken anses den vara öppen i båda riktningar. Företeelser kan vara tidsbundna. Till exempel kan ett körfält vara bussfil 9:00-15:00 [8]. Arkitektur En databas byggs upp av tabeller och LV har en modell som tydligt separerar vägnätselement och dess egenskaper. Det finns en tabell för referenslänkar, en för referenslänksdelar, en för noder, en för nodportar, en för länkportar och en kopplingstabell för nod- och länkportar där den egentliga kopplingen mellan en länk och en nod sker. Detta utgör nätverksdelen. Alla typer av företeelser lagras i en företeelsetabell, där en koppling till olika rader i en företeelsetypstabell anger vilken sorts företeelse som avses. Företeelsetabellen kopplas till referenslänkstabellen respektive nodtabellen via en utbredningstabell [9] Tele Atlas databas Tele Atlas är ett holländskt företag som specialiserat sig på geografisk information. En av deras största produkter är en vägdatabas som täcker stora delar av 7

14 KAPITEL 2. TEORI världen. Den som vill veta mer än det som beskrivs i denna rapport hänvisas till Vägnätets representation Precis som i LV representeras vägavsnitt av länkar som knyts samman av noder vilka oftast representerar korsningar, men även kan representera en punkt på vägen där den byter karaktär av något slag eller en ändpunkt på en väg. Länkar och noder kopplas direkt till varandra som i en traditionell graf. Länkarna i Tele Atlas modell motsvarar referenslänksdelarna i LV men det finns även andra typer av länkar så som järnvägslänkar och färjelänkar. Dessa länkar är mycket detaljerade men önskas en översikt av vägnätet finns andra tabeller som abstraherar bort mer eller mindre av vägnätet. Där finns detaljeringsnivåer från gator, som inkluderar alla vägavsnitt, till huvudvägar av motorvägstyp, som enbart inkluderar större huvudleder [14]. Vägnätets egenskaper Tele Atlas databas har inte utbredningar, egenskaper knyts direkt till vägnätselementen via ett ID. Egenskaperna är ungefär desamma som i LV men Tele Atlas databas är i vissa fall mer detaljerad. Till exempel kan vissa egenskaper vara knutna till en fordonstyp. De flesta egenskaper kan anses tillhöra antingen en länk eller en nod men förbjudna manövrar kan inte det. En manöver lagras som en sekvens av nätelement och kan ha olika grader av lämplighet så som rekommenderad eller förbjuden. Manövern spänner över en mängd av länkar och noder som tillsammans utgör en väg eller en bit av en väg i verkligheten. En förbjuden sväng är en manöver som gäller två länkar och en nod, men även förbjuden genomfart kan beskrivas som en manöver. En grupp av vägnätsegenskaper som Tele Atlas har, men LV saknar, är intressanta platser, eller som Tele Atlas kallar det Points Of Interest. Här finns restauranger, affärer, biografer, flygplatser och dylikt. Om dessa finns väldigt detaljerad information så som typ av mat eller typ av varor, telefonnummer, faxnummer, hemsida, ineller utrikesterminal och så vidare. En avancerad ruttplanerare skulle kunna utnyttja dessa attribut för att till exempel besöka alla grekiska restauranger eller alla golfbutiker. Sker denna ruttplanering med tidsfönster kan även chaufförens lunchraster och övernattningar passas in på lämpliga ställen där restauranger och hotell finns. Arkitektur Till skillnad från i LV, där alla företeelser finns samlade i en och samma tabell, är vägnätets egenskaper i Tele Atlas modell uppdelade efter kategori. Det finns en tabell för vägskyltar, en för adresspunkter, en för förbjudna manövrar och så vidare. Dessa egenskaper kopplas direkt till vägnätet, det vill säga länkar och noder, med ett ID för nätelementet. 8

15 2.2. RUTTPLANERING De mest intressanta vägegenskaperna för en ruttplanerare finns duplicerade direkt i länktabellen som kallas Network. En rad i denna tabell innehåller bland annat länkens ID, start- och slutnod, länkens namn, längd, vägklass, eventuella vägtullsavgifter, vägnummer, vägunderlag, beräknad medelhastighet, tillåtna körriktningar och eventuella väghinder [15] Oracle Spatial Network Oracle Spatial Network levereras tillsammans med den nya versionen Oracle 10g och är speciellt lämpad för databaser med spatiell information, till exempel vägdatabaser. Med Oracle Spatial Network medföljer även ett paket för nätverksanalys. Ännu finns inga avancerade ruttplaneringsalgoritmer där men algoritmer för TSP och Kortaste vägen finns implementerade. Analysen kräver att nätverket finns representerat i tabeller på ett visst givet format. I centrum står en länktabell och en nodtabell på vilka nätverksanalys sedan kan ske. För att presentera LV på ett sätt som Oracle Spatial Network kan läsa får dessa tabeller skapas genom sammanslagningar av referenslänksdelar, noder och lämpliga företeelser. När tabellerna är skapade kan analysfunktionerna användas. En länk är, i Oracles modell, antingen en del av nätverket eller inte. Det går inte att låta en länk vara öppen för trafik en viss del av dygnet eller för en viss typ av fordon. Denna förenkling gör att mer avancerade ruttplaneringar inte kan göras med Oracles inbyggda funktioner men den fungerar dock för enklare typer av rutter. För att modellera begränsningar så som förbjuden sväng kan dessa ges som argument till analysfunktionerna. Algoritmerna tar då hänsyn till begränsningarna så att inte en förbjuden väg föreslås. Nätverksanalysen är implementerad i Java och kan användas lätt och smidigt utan allt för mycket kunskap om hur funktionerna är uppbyggda. Det finns några olika implementationer av Kortaste vägen där användaren kan välja algoritm, men TSP finns bara implementerad på ett sätt. Vilken algoritm som används för TSP och vilka förbättringar som görs på turen, om några, är inte dokumenterat. Båda problemen löses med ID för noder som indata och ger en stig respektive cykel som utdata [5, 11]. 2.2 Ruttplanering Ruttplaneringsproblem handlar oftast om att från en eller flera terminaler skicka ut ett eller flera fordon för att besöka givna punkter och sedan återvända till utgångsterminalen. Handlar det om distribution av varor till kunder är det även viktigt att ta hänsyn till att fordonen inte får överlastas, att de kommer i tid till kunderna och att chaufförerna får sina raster. De flesta ruttplaneringsproblem är svåra, tiden för att lösa ett problem kan i värsta fall växa exponentiellt med problemets storlek. 9

16 KAPITEL 2. TEORI Figur 2.3. Tur för ett fordon med metoden av Clarke och Wright Ofta är det inte rimligt att finna den optimala lösningen till problemet utan man får nöja sig med en approximation. Lundgren, Jörnsten och Madsen [10] beskriver några tillvägagångssätt för att distribuera varor från en terminal till flera kunder med ett eller flera fordon så att alla kunderna får sitt behov tillfredställt och varje kund blir besökt av endast ett fordon. Vidare får inget fordon överlastas vilket förutsätter att varje kunds efterfrågan ryms i ett fordon. De förutsätter också att alla fordon har samma lastkapacitet, inte får köra mer än en rutt och börjar och slutar vid terminalen. Målet är att leverera alla varor till kunderna med minsta möjliga resursinsats, vilket för detta problem antas vara körsträckan. Under dessa begränsningar kallas problemet för Det klassiska ruttplaneringsproblemet och klassas som ett optimeringsproblem där vi försöker minimera kostnaden för en given instans. Den första metoden som Lundgren m.fl. beskriver är en besparingsmetod av Clarke och Wright som utgår ifrån en lösning där varje fordon bara besöker en kund och alla kunder besöks av ett fordon, se figur 2.3. Därefter kopplas rutter samman parvis så att den körda sträckan minskar utan att lastkapaciteten överskrids. Från terminalen dras separata turer till samtliga övriga n 1 noder. Man kan se det som att n 1 fordon besöker varsin kund och återvänder till terminalen. Målet är att slå samman turer så att fordon friställs, till dess att inte fler fordon än som finns tillgängliga används. Till en början finns n 1 rutter och bland dessa finns (n 1) 2 möjliga par för sammanslagning med olika besparingsvärden. Två turer slås ihop genom att en kant i vardera tur tas bort. De två öppna ändarna i turerna kopplas därefter till varandra med en kant. Den besparing som görs vid en sammanslagning är summan av de två bortplockade kanterna minus kostnaden för den tillagda kanten som binder turerna till varandra. Sammanslagningarna betraktas i sjunkande ordning, efter hur stor besparing som görs, och kan göras på flertalet sätt. Antal sätt ökar med antalet kunder som ingår i de sammanslagna rutterna. Vid stora problem kan uppräkningar av alla möjligheter vara omöjligt och man får då använda sig av förenklingar. 10

17 2.2. RUTTPLANERING En annan besparingsmetod som beskrivs är en av Mole och Jameson. Den liknar den ovan beskrivna men skapar rutten sekventiellt istället för parallellt. Startlösningen är densamma där varje kund blir besökt av precis ett fordon. En tur i taget betraktas och fylls på med nya kunder. När en tur inte kan ta fler kunder utan att överlasta fordonet betraktas nästa tur. Då nya kunder inkluderas i en tur förändras den totala kostnaden, ett fordon får längre sträcka att köra medan ett annat friställs. Den kund som ger den största totala besparingen väljs att inkludera i aktuell tur. Ett tredje alternativ är svepmetoden av Gillet och Miller. Kundernas koordinater är kända och de delas upp i sektorer så att ingen sektors efterfrågan överskrider ett fordons lastkapacitet. En kund väljs som startposition och sedan sveps kunderna över som av en klockvisare och tilldelas ett fordon till dess att detta fordon är fullt. Varje sektor motsvarar ett fordon. Olika startkunder ger olika lösningar och eftersom svepningen går relativt snabbt kan den göras om för olika val av startkund. Varje sektor schemaläggs sedan för sig och ett alternativ till schemaläggning är att besöka kunderna i den ordningen de inkluderades i sektorn. Nästa metod är en så kallad tvåfasmetod som delar upp kunderna i grupper och skapar en tur för varje grupp. I den första fasen av metoden fördelas kunderna på de fordon som kommer att besöka dem. Varje fordon motsvarar en sektion av kunder. Några geografiskt eller på annat sätt viktiga kunder väljs som seed-kunder och tilldelas ett fordon. Detta fordon besöker sin seed-kund som enda kund i rutten initialt. Därefter görs uppskattningar av hur dyrt det vore att inkludera de obesökta kunderna i respektive sektion. Kostnadsuppskattningarna tillåter att olika fördelningar av kunder på fordon kan jämföras utan att en slutgiltig rutt för fordonets sektion måste läggas upp. Uppskattningsmåttet kan testas på problem med kända lösningar för att utvärdera hur bra uppskattningarna är. Besökskostnaden d ik är en uppskattning på hur mycket det kostar att inkludera kund i i rutten som fordon k tar. Kunder väljs in i fordonets sektion så att den totala kostnaden minimeras och inget fordon överlastas. I den andra fasen löses handelsresandeproblemet för varje sektion. Hur detta görs beskrivs mer utförligt senare i rapporten. En annan modell av andra generationens lösningsmodeller är kolumngenerering som börjar med att generera tillåtna rutter som besöker en eller flera kunder och sedan representerar dessa i en matris. En kolumn svarar mot en rutt och en rad mot en kund. Om kunden ingår i rutten representeras det av en 1:a, annars en 0:a. För varje rutt lagras också dess kostnad. En tillåten rutt är en rutt där inget fordon överskrider sin lastkapacitet. En rutt måste inte nödvändigtvis besöka alla kunder. Därefter väljs den kombination av rutter som täcker alla kunder och som är billigast. Vid små probleminstanser kan alla tillåtna rutter genereras, men detta blir allt för resurskrävande om antalet kunder är många, därför görs detta sällan. I praktiken, om man vill hitta den optimala turen och dess kostnad är känd, genereras 11

18 KAPITEL 2. TEORI några få tillåtna rutter som kombineras och kostnadsberäknas. Om kostnaden är över optimal upprepas förfarandet med några nya genererade rutter till dess att en optimal tur uppnåtts. Detta är både tids- och utrymmeskrävande och används därför inte i praktiken för några större problem. Det går att använda metoden som heuristik genom att avbryta innan den optimala rutten hittats, för att minska tidsåtgången. Detta i kombination med att bara generera några få tillåtna rutter, snarare än alla möjligheter, gör att heuristiken kan användas i praktiska tillämpningar [10]. 2.3 Kortaste vägen Det finns ett flertal algoritmer för att finna kortaste vägen mellan två punkter i en graf. Vissa fungerar bara för oriktade grafer, vissa bara för grafer med positiva vikter, och en del fungerar för både riktade och oriktade grafer med, eller utan, negativa kanter. Gemensamt för alla är att en negativ cykel (negativ kant i en oriktad graf) inte får finnas eftersom det ger möjlighet att färdas längs denna cykel upprepade gånger för att uppnå en godtyckligt låg kostnad. Problemet Kortaste vägen är lösbart på tid som är polynomisk i antal noder som ingår i nätverket. Eftersom problemet är snabblöst kan den optimala lösningen hittas Dijkstra Dijkstras algoritm beräknar Kortaste vägen från en nod v till samtliga noder i en enkel graf G med positiva vikter. Algoritmen startar med en överskattning av varje nods avstånd från v, D[u] =, u v, D[v] = 0, och håller en mängd C av noder vars korrekta avstånd till v är känt. Initialt gäller C =. Den nod i V \C som har det minsta avståndet D[u] adderas till C. Först adderas v till mängden C, avståndet till v är ju 0. Därefter uppdateras alla grannar till v så att deras korrekta avstånd från v är kantvikten. För varje nod u som adderas till C uppdateras varje granne z till u på följande sätt (känt som kantrelaxering): Om D[u] + w((u, z)) < D[z] uppdatera D[z] D[u] + w((u, z)). När en nod u adderas till C har den sitt korrekta avstånd till v i D[u] och genom kantrelaxationen får dess grannar sina avstånd uppdaterade. När alla noder är inkluderade i C har alla kortaste avstånd från noden v lagrats i D [7] Floyd Kortaste vägen är inte bara intressant i sig, utan är ofta ett delproblem i att hitta en TSP-tur. De flesta TSP-algoritmer behöver tillgång till en avståndsmatris, det vill säga en matris för alla parvisa avstånd mellan de punkter som ska besökas i turen. För att hitta dessa används till exempel Dijkstras algoritm från varje nod i tur och ordning. Ett annat sätt att lösa Kortaste vägen mellan alla par av noder är 12

19 2.4. TRAVELING SALESMAN PROBLEM Algoritm 1 Dijkstra(G = (V, E)) D[v] 0 Push v in PriorityQueue for u V such that u v do D[u] Push u in PriorityQueue while PriorityQueue not empty do u Pop from PriorityQueue Add u to C for each neighbour z / C to u do if D[z] > D[u] + w(u,z) then D[z] D[u] + w(u,z) att använda Floyds algoritm. Även här uppdateras en uppskattning på avståndet mellan två noder tills den korrekta kortaste vägen har hittats. Först låter vi för alla par av noder i och j avståndet dem emellan vara w ij det vill säga vikten på den sammanbindande länken, om den finns, D[i, j] = w ij, och D[i, j] = om i och j inte är grannar. Detta är en uppskattning av avståndet om inga mellanliggande noder får besökas. Därefter tillåts att söka närmaste vägen via en annan nod, och via ytterligare en och så vidare. När alla noder är tillåtna som mellanliggande noder i en kortaste väg har de korrekta avstånden mellan varje par av noder hittats. Vi låter D[i, j, k-1] vara den kortaste vägen från i till j där noder i mängden {0, 1,..., k-1} får besökas som mellanliggande noder. Nu vill vi beräkna D[i, j, k]. Då blir k en tillåten mellanliggande nod och den kortaste stigen från i till j går då via k eller så gör den inte det. I det första fallet är stigen från i till k en minimal stig och det är även stigen från k till j så D[i, j, k] = D[i, k, k-1] + D[k, j, k-1]. I det andra fallet så gäller D[i, j, k] = D[i, j, k-1]. På så vis utökas mängden av tillåtna mellanliggande noder till hela nodmängden är inkluderad [1]. 2.4 Traveling Salesman Problem I det klassiska handelsresandeproblemet vill man i en given graf besöka alla noder exakt en gång så att turen blir så billig som möjligt och resan börjar och slutar i samma nod. Turens kostnad är summan av vikten på de kanter som ingår i turen. Tiden för att lösa TSP optimalt växer i värsta fall exponentiellt med antal noder som turen ska besöka med de algoritmer som är kända idag. Detta gör att TSP inte kan lösas optimalt utan får approximeras för att hitta en tillräckligt bra tur. 13

20 KAPITEL 2. TEORI Algoritm 2 Floyd (G = (V, E)) for i 0 to n-1 do for j 0 to n-1 do if i == j then D[i, j] 0 else if (i, j) in E then D[i, j] w(i, j) else D[i, j] for k 0 to n-1 do for j 0 to n-1 do for i 0 to n-1 do if D[i, j] > D[i, k] + D[k, j] then D[i, j] D[i, k] + D[k, j] GTSP, eller Graphical Traveling Salesman Problem, handlar om att hitta en sluten tur i en generell, sammanhängande graf G där det är tillåtet att besöka noder och kanter fler än en gång. Detta är användbart i grafer som inte nödvändigtvis innehåller en Hamiltoncykel eller där det kanske inte går att ta sig från nod i till nod j direkt. Detta är precis det problem en ruttplanering för ett fordon vill lösa. Kantvikterna måste vara positiva för att undvika att få godtyckligt låg kostnad genom att resa längs en negativ kant fram och tillbaka. För att ha en praktisk graf att beräkna TSP-turer på används en fullständig graf av noderna som ska besökas. Skapa den fullständiga grafen K n genom att låta de n noderna motsvaras av de ursprungliga i G och kanten mellan nod i och nod j ges den vikt som den kortaste stigen mellan i och j har i G. Den billigaste TSP-turen i K n är nu den billigaste slutna turen som besöker alla noder i G. I denna graf kommer även triangelolikheten att gälla då varje kant representerar kortaste stigen mellan två noder och det därför aldrig kan vara billigare att gå via en annan nod. Dock finns ingen garanti för att triangelolikheten gäller i G. K n är inte nödvändigtvis en euklidisk graf, d.v.s. en graf där vikten på kanten mellan två noder är det euklidiska avståndet, eller fågelvägen, mellan dessa [12]. Eftersom TSP är ett välkänt problem har det studerats av många och det finns en stor mängd lösningsförslag som ger acceptabla turer. Många av dessa antar att indata är en graf som inte bara är fullständig utan även symmetrisk, det vill säga att det är lika långt från nod i till nod j som från j till i. I ruttplaneringar i verkligheten är det sällan så eftersom en del gator är enkelriktade. Därför behöver vi ett sätt att omvandla en asymmetrisk graf till en symmetrisk. Låt D = (W, A) vara den riktade grafen med noderna W = {1, 2,..., n} och kanterna A W W och låt d ij vara vikten på kanten från nod i till nod j. 14

21 2.4. TRAVELING SALESMAN PROBLEM Skapa en ny graf G = (V, E) så att V = W {n + 1, n + 2,..., 2n} E = {(i, n + i) i = 1, 2,..., n} {(n + i, j) (i, j) A} Varje kant, mellan i och j, i den gamla grafen ersätts med två nya, en mellan i och dess skuggnod n + i och en mellan n + i och j. Låt vikterna på kanterna vara c i,n+i = M för i = 1, 2,..., n och c n+i,j = d ij för (i, j) A, där M är ett tillräckligt stort tal, till exempel summan av alla vikterna d ij. Eftersom de gamla kanterna inte finns kvar så är grafen oriktad. Från varje nod i tar sig turen nu via dess skuggnod n + i eftersom det är en mycket billig kant och sedan vidare till j via den kant som har originalvikten d ij. På så sätt kommer alla kanter med vikt M användas och för varje riktad hamiltoncykel d D finns en hamiltoncykel c G = d D nm i G. Detta ger att asymmetrisk TSP kan lösas som symmetrisk [12]. Ett problem med denna lösning är att den introducerar negativa kanter och att den inte bevarar triangelolikhet. Eftersom kanterna med negativ vikt är så billiga blir stigen från i till j bara billigare och billigare ju fler skuggnoder den passerar. Detta kan skapa problem för vissa TSP-algoritmer. En lösning på det problemet skulle kunna vara att istället låta vikterna vara c i,n+i = 0 och c n+i,j = d ij + M. På så sätt finns inga negativa cykler eller kanter och en algoritm tjänar inget på att passera skuggnoder, det kostar bara att ta sig därifrån. För varje hamiltoncykel d D finns nu en motsvarande c G = d D + nm. Man kan se det som att alla kanter i föregående lösning har blivit M dyrare. Problemet med att triangelolikheten inte gäller i grafen kvarstår dock Kandidatmängder För att minska ned på de möjliga vägar en tur kan ta, kan man ur grafen G utvinna en kandidatmängd bestående av alla noder och de kanter som är lovande från vaje nod. Vissa kanter i G är kanske väldigt långa och är därför osannolika att ingå i en bra tur. På detta sätt minskas sökmängden i varje steg där en ny nod ska läggas till i turen vilket i sin tur minskar exekveringstiden. En vanlig kandidatmängd är delgrafen G k = (V, E) av de k närmsta grannarna till varje nod. För ett fixt k beräknas G k enkelt på Ω(n 2 ) tid. V = {1, 2,..., n} E = {uv v är bland de k närmsta grannarna till u} Heuristiker baserade på närmsta grannen Ett vanligt sätt att lösa TSP är att använda konstruktionsheuristiker. I detta avsnitt och nästa presenteras heuristiker baserade på närmsta grannen och insättningsheuristiker. De ger normalt inte en optimal tur men väl en som oftast är acceptabel eller kan tjäna som starttur att försöka förbättra. 15

22 KAPITEL 2. TEORI Konstruktionsheuristiker bygger upp en rutt genom att enligt något givet kriterium lägga till nod efter nod i turen. Ofta används ovan nämnda kandidatgraf för att söka i istället för originalgrafen. På så sätt minskar sökmängden för varje nod och de längsta kanterna beaktas inte förrän som sista utväg. Nedanstående metoder beskrivs av Reinelt [12]. Standardversionen av närmsta grannen Den enklaste varianten på närmsta grannen börjar i en godtycklig nod i och lägger till dess närmsta granne j som inte redan är med i turen. För att sluta turen kopplas första och sista noden ihop. Varianten där noder under uppbyggnaden kan kopplas på i båda ändar av turen finns också. Tiden för konstruktion av en tur på detta vis är Ω(n 2 ). Dessa turer tenderar att börja bra men bli dyra mot slutet av konstruktionen där de noder som glömts bort läggs in via långa kanter. Förberäknade grannar Om man har tillgång till en k-delgraf av de k närmaste grannarna till varje nod kan Standardversionen av närmsta grannen snabbas upp lite genom att i första hand söka efter okopplade grannar i k-delgrafen. Om alla grannar i denna redan är inkluderade i turen söks grannar i originalgrafen. Tidsåtgången för det värsta tänkbara fallet förbättras inte men en viss förbättring kan ses i praktiska beräkningar. Grannar till föregångare Även här används en kandidatmängd, till exempel k-delgrafen. Om noden i saknar lediga grannar i denna söks lediga grannar till föregångaren till i. Om även denna nod saknar lediga grannar söks dess föregångares grannar och så vidare. Om ingen ledig granne hittats efter exempelvis 20 steg söks en ledig granne till i i originalgrafen eftersom en ledig granne i k-delgrafen sannolikt skulle vara långt bort från i. Inte heller här påverkas värstafallstiden men praktiska beräkningar kan vinna tid. Insättning av glömda noder För att undvika de dyra insättningarna av glömda noder långt bort sätts dessa in innan de blir glömda. En räknare hålls i varje nod och räknar hur många lediga grannar noden har i k-delgrafen. Om räknaren passerar någon gräns, exempelvis 2 eller 3, sätts aktuell nod omedelbart in i turen. Detta kan i sin tur resultera i att andra räknare passerar gränsen och andra noder sätts in. Värsta fallet är dock fortfarande kvadratiskt. 16

23 2.4. TRAVELING SALESMAN PROBLEM k j i Figur 2.4. Rotationsoperation Rotationsoperationer I denna variant byts kanter ut i turen då man i kandidatgrafen råkat på en nod i utan lediga grannar. En oanvänd kandidatkant från i till turnoden k sätts in i turen och för att undvika en cykel måste en annan kant tas bort, se figur 2.4. En del av turen byter härmed riktning. En ny nod j blir slutnod för turen och har inte heller j lediga grannar i kandidatgrafen upprepas förfarandet med kantutbyte. Om alla sådana försök misslyckas kan någon av ovanstående metoder användas. Olika typer av grafer Metoderna ovan antas få en fullständig graf som indata. På så vis kommer det alltid att finnas en granne som inte ännu är med i turen till dess att bara kopplingen mellan turens start och slut är kvar. En fullständig graf kan alltid fås ur en allmän sammanhängande graf genom att låta kanten mellan två noder representera den kortaste vägen mellan dessa i den allmänna grafen. Skapas den fullständiga grafen på detta sätt gäller även triangelolikheten i grafen, det vill säga att det från nod a till nod b aldrig kan vara billigare att gå via en annan nod c. Är originalgrafen inte sammanhängande kan ingen TSP-tur hittas varför sådana bortses från. Om metoderna ska fungera på en allmän graf som inte är fullständig behövs små anpassningar liknande de som beskrivits då en kandidatgraf används. Det är då inte alltid säkert att en nod har en obesökt granne. Detta inträffar till exempel varje gång man når en nod som bara har en granne. I det fallet kan föregångarens obesökta granne, och om ingen sådan finns, föregångarens föregångares obesökta granne besökas. På så vis kan man stega bakåt i turen till en obesökt granne hittas. Givetvis måste kravet på att passera varje nod exakt en gång släppas om denna situation uppstår och inga nya kanter får läggas till i grafen. I en Euklidisk graf är kantvikten mellan två noder längden av en rak linje som börjar i ena noden och slutar i den andra. Metoderna ovan fungerar lika bra för Euklidisk TSP som för icke-euklidisk TSP eftersom de alla använder kantvikt som ett mått på hur långt det är mellan två noder snarare än nodkoordinater. Hur kantvikten räknats fram är irrelevant. Metoden som bygger på rotationsoperationer är inte lämplig för asymmetrisk TSP eftersom delar av turen vid varje rotation byter riktning och det inte kan antas att den motsatta riktningen har samma kostnad som den ursprungliga, om det alls 17

24 KAPITEL 2. TEORI går att byta riktning i k-delgrafen. Övriga metoder löser asymmetrisk TSP lika väl som symmetrisk. Turerna byggs upp genom att gå från en nod till en granne och det görs aldrig några antaganden om att avståndet mellan två noder är lika långt i båda riktningar. För grafer där triangelolikhet inte gäller uppstår problem för vissa av metoderna som nämnts. Grannar till föregångare bygger på antagandet att den nod som till slut hittas inte ligger längre från aktuell nod än längden på stigen som man sökt bakåt på. Om kanten som förbinder aktuell nod och den hittade lediga noden är väldigt dyr kan metoden ge dåliga resultat. Ett liknande problem kan uppstå när Insättning av glömda noder används. När en nod passerar gränsen för antal tillåtna lediga grannar sätts den in i turen omedelbart. Detta kan ge upphov till att en dyrare kant används istället för att ta en billigare omväg genom att vänta med att lägga in noden i fråga. Närmaste grannens metod har dock inget problem med grafer utan triangelolikhet. Där kommer den billigaste grannen väljas och om en billigare omväg av lediga noder finns kommer den att tas istället för den dyrare kanten. Det samma gäller för metoden med förberäknade grannar som använder sig av en k-delgraf. Fördel ges till kortare kanter och därför kommer en billigare omväg undersökas före en dyrare kant även om inte alla kanter är representerade i delgrafen. Inte heller metoden baserad på rotationsoperationer har problem med grafer utan triangelolikhet. Riktningsändringen av delar av turen utnyttjar samma kanter som tidigare och påverkas därför inte av frånvaron av triangelolikhet Insättningsheuristiker Insättningsmetoder börjar med en grundtur på k noder, där k kan vara så litet som 1 eller 2, och utökar dessa genom att välja ut någon nod och addera den till turen. Det finns många olika sätt att välja ut denna nod och Reinelt har studerat nedanstående alternativ. Den utvalda noden sätts in på det ställe i turen där den orsakar den minsta ökningen i turens längd. Med avstånd till turen menas avstånd till någon nod i turen. Närmaste insättning: Välj den nod vars kortaste avstånd till turen är minimalt. Längsta insättning 1: Välj den nod vars kortaste avstånd till turen är maximalt. Längsta insättning 2: Välj den nod vars längsta avstånd till turen är maximalt. Längsta insättning 3: Välj den nod vars längsta avstånd till turen är minimalt. Billigaste insättning 1: Välj den nod som ger den minsta ökningen av turens längd. Håll uppdaterad information om billigaste insättningspunkt för alla noder som inte ännu är med i turen. En insättningspunkt är ett ställe där noden kan skju- 18

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

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, )}, i N, N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg innehåller

Läs mer

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

Grafer. 1 Grafer. Grunder i matematik och logik (2015) 1.1 Oriktade grafer. Marco Kuhlmann Marco Kuhlmann 1 En graf är en struktur av prickar förbundna med streck. Ett tidsenligt exempel på en sådan struktur är ett social nätverk, där prickarna motsvarar personer och en streck mellan två prickar

Läs mer

Föreläsning 4: Kombinatorisk sökning

Föreläsning 4: Kombinatorisk sökning DD2458, Problemlösning och programmering under press Föreläsning 4: Kombinatorisk sökning Datum: 2009-09-25 Skribent(er): Kristina Nylander, Dennis Ekblom, Marcus Öman Föreläsare: Fredrik Niemelä 1 Introduktion

Läs mer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer

Föreläsning 4: Giriga algoritmer. Giriga algoritmer Föreläsning 4: Giriga algoritmer Giriga algoritmer Denna typ av algoritmer arbetar efter följande princip: Gör i varje situation det som är lokalt optimalt, d.v.s. bäst för stunden. Några exempel vi redan

Läs mer

Föreläsning 11. Giriga algoritmer

Föreläsning 11. Giriga algoritmer Föreläsning 11 Giriga algoritmer Föreläsning 11 Giriga algoritmer Användning Växelproblemet Kappsäcksproblemet Schemaläggning Färgläggning Handelsresandeproblemet Uppgifter Giriga algoritmer (Greedy algorithms)

Läs mer

Föreläsning 8: Intro till Komplexitetsteori

Föreläsning 8: Intro till Komplexitetsteori Föreläsning 8: Intro till Komplexitetsteori Formalisering av rimlig tid En algoritm som har körtid O(n k ) för någon konstant k är rimligt snabb. En algoritm som har körtid Ω(c n ) för någon konstant c>1

Läs mer

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4

Grafer, traversering. Koffman & Wolfgang kapitel 10, avsnitt 4 Grafer, traversering Koffman & Wolfgang kapitel 1, avsnitt 4 1 Traversering av grafer De flesta grafalgoritmer innebär att besöka varje nod i någon systematisk ordning precis som med träd så finns det

Läs mer

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod.

N = {i}: noder (hörn) Graf: G = (N, B) Definitioner. Väg: Sekvens av angränsande bågar. Cykel: Väg som startar och slutar i samma nod. Polyeder 0 x, 0 x, 0 x, x + x + x, x + x + x Grafdefinitioner N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar

Läs mer

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum: 2015-03-09

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum: 2015-03-09 Solowheel Namn: Jesper Edqvist Klass: TE14A Datum: 2015-03-09 Abstract We got an assignment that we should do an essay about something we wanted to dig deeper into. In my case I dug deeper into what a

Läs mer

Föreläsning 12+13: Approximationsalgoritmer

Föreläsning 12+13: Approximationsalgoritmer Föreläsning 12+13: Approximationsalgoritmer Många av de NP-fullständiga problemen är från början optimeringsproblem: TSP, Graph Coloring, Vertex Cover etc. Man tror att P NP och att det alltså inte går

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR för IT Datum: 2 oktober 2013 Tid:.00-13.00 Hjälpmedel: Miniräknare Kaj Holmberg: Optimering.

Läs mer

Föreläsning 7 Datastrukturer (DAT037)

Föreläsning 7 Datastrukturer (DAT037) Föreläsning 7 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-21 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra

Läs mer

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED

TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED Matematiska institutionen Optimeringslära TENTAMEN TAOP86/TEN 1 KOMBINATORISK OPTIMERING MED MILJÖTILLÄMPNINGAR för IT Datum: 10 mars 01 Tid: 8.00-1.00 Hjälpmedel: Miniräknare Kaj Holmberg: Optimering.

Läs mer

TNK049 Optimeringslära

TNK049 Optimeringslära TNK49 Optimeringslära Clas Rydergren, ITN Föreläsning 7 Nätverksoptimering Billigaste uppspännande träd (MST) Billigaste väg (SP) Projektnätverk Minkostnadsflödesproblem Agenda Terminologi för grafer/nätverk

Läs mer

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum: 2015-03-09

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum: 2015-03-09 Vätebränsle Namn: Rasmus Rynell Klass: TE14A Datum: 2015-03-09 Abstract This report is about Hydrogen as the future fuel. I chose this topic because I think that it s really interesting to look in to the

Läs mer

Föreläsningsanteckningar F6

Föreläsningsanteckningar F6 Föreläsningsanteckningar F6 Martin Andersson & Patrik Falkman Kortaste vägen mellan en nod och alla andra noder Detta problem innebär att givet en graf G = (E,V) hitta den kortaste vägen över E från en

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 28 maj 2014 Tid: 14.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

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

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

UPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm

UPPGIFT 1 KANINER. Håkan Strömberg 1 Pär Söderhjelm UPPGIFT 1 KANINER Kaniner är bra på att föröka sig. I den här uppgiften tänker vi oss att det finns obegränsat med hannar och att inga kaniner dör. Vi ska försöka simulera hur många kaninhonor det finns

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-18 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Prims algoritm. Kruskals algoritm. Djupet först-sökning. Cykel

Läs mer

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037) Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-23 Idag Mer om grafer: Minsta uppspännande träd (för oriktade grafer). Djupet först-sökning. Minsta uppspännande träd Träd (utan rot)

Läs mer

Alternativa rutter med tidsbegränsning via en dubbelriktad modifiering av Dijkstra s algoritm

Alternativa rutter med tidsbegränsning via en dubbelriktad modifiering av Dijkstra s algoritm AKADEMIN FÖR TEKNIK OCH MILJÖ Avdelningen för industriell utveckling, IT och samhällsbyggnad Alternativa rutter med tidsbegränsning via en dubbelriktad modifiering av Dijkstra s algoritm Viktoria Edström

Läs mer

ETS052 Internet Routing. Jens A Andersson

ETS052 Internet Routing. Jens A Andersson ETS052 Internet Routing Jens A Andersson Routing Routing-konceptet Unicast Routing Multicast Routing (en kort översikt) Läsanvisning: Kapitel 8 Nätverkslagret /Lager 3 Olika länkprotokoll! Datagram och

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Datum: 10 januari 201 Tid: 1.00-19.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar

Läs mer

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

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

Föreläsning 6: Introduktion av listor

Föreläsning 6: Introduktion av listor Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.

Läs mer

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002

R AKNE OVNING VECKA 1 David Heintz, 31 oktober 2002 RÄKNEÖVNING VECKA David Heintz, 3 oktober 22 Innehåll Uppgift 27. 2 Uppgift 27.8 4 3 Uppgift 27.9 6 4 Uppgift 27. 9 5 Uppgift 28. 5 6 Uppgift 28.2 8 7 Uppgift 28.4 2 Uppgift 27. Determine primitive functions

Läs mer

Graphs (chapter 14) 1

Graphs (chapter 14) 1 Graphs (chapter ) Terminologi En graf är en datastruktur som består av en mängd noder (vertices) och en mängd bågar (edges) en båge är ett par (a, b) av två noder en båge kan vara cyklisk peka på sig själv

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2012-11-13 Idag Mer om grafer: Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. Floyd-Warshall. Topologisk sortering

Läs mer

Nät med flera länkar. Vägval. Enklaste formen av kommunikation:

Nät med flera länkar. Vägval. Enklaste formen av kommunikation: Nät med flera länkar väljarstrukturer Vägval vägvalsalgoritmer Dijkstra Bellman-Ford-Fulkerson ) UHOlVQLQJ 2002-10-11 Gunnar Karlsson, Bengt Sahlin 1 )UnQOlQNWLOOQlW Enklaste formen av kommunikation: kommunikation

Läs mer

Algoritm för uppskattning av den maximala effekten i eldistributionsnät med avseende på Nätnyttomodellens sammanlagringsfunktion

Algoritm för uppskattning av den maximala effekten i eldistributionsnät med avseende på Nätnyttomodellens sammanlagringsfunktion Algoritm för uppskattning av den maximala effekten i eldistributionsnät med avseende på Nätnyttomodellens sammanlagringsfunktion Carl Johan Wallnerström December 2005 Kungliga Tekniska Högskolan (KTH),

Läs mer

Trafiksimulering: Grafalgoritmer

Trafiksimulering: Grafalgoritmer 1 (38) Trafiksimulering: Grafalgoritmer Michael Hanke Skolan för teknikvetenskap SF1538 Projekt i simuleringsteknik 2 (38) Introduktion Varför grafalgoritmer? Grafer möjliggör en enkel och systematisk

Läs mer

Tentaupplägg denna gång

Tentaupplägg denna gång Några tips på vägen kanske kan vara bra. Tentaupplägg denna gång TIPS 1: Läs igenom ALLA uppgifterna och välj den du känner att det är den lättaste först. Det kan gärna ta 10-20 minuter. Försök skriva

Läs mer

NMCC Sigma 8. Täby Friskola 8 Spets

NMCC Sigma 8. Täby Friskola 8 Spets NMCC Sigma 8 Täby Friskola 8 Spets Sverige 2016 1 Innehållsförteckning Innehållsförteckning... 1 Inledning... 2 Sambandet mellan figurens nummer och antalet små kuber... 3 Metod 1... 3 Metod 2... 4 Metod

Läs mer

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15

ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B kl. 08:15 13:15 ORDINARIE TENTAMEN I DATASTRUKTURER OCH ALGORITMER DVG B03 150112 kl. 08:15 13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Inga. Algoritmerna finns i de respektive uppgifterna eller i bilogarna. ***

Läs mer

Föreläsning 6 Datastrukturer (DAT037)

Föreläsning 6 Datastrukturer (DAT037) Föreläsning 6 Datastrukturer (DAT037) Fredrik Lindblad 1 15 november 2017 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037

Läs mer

Föreläsning 5: Grafer Del 1

Föreläsning 5: Grafer Del 1 2D1458, Problemlösning och programmering under press Föreläsning 5: Grafer Del 1 Datum: 2006-10-02 Skribent(er): Henrik Sjögren, Patrik Glas Föreläsare: Gunnar Kreitz Den här föreläsningen var den första

Läs mer

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning.

En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning. F5 LE1460 Analog elektronik 2005-11-23 kl 08.15 12.00 Alfa En ideal op-förstärkare har oändlig inimedans, noll utimpedans och oändlig förstärkning. ( Impedans är inte samma sak som resistans. Impedans

Läs mer

Föreläsning Datastrukturer (DAT036)

Föreläsning Datastrukturer (DAT036) Föreläsning Datastrukturer (DAT036) Nils Anders Danielsson 2013-11-13 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får

Läs mer

Handledning hur man motiverar föräldrar att inte skjutsa sina barn i bil till skolan

Handledning hur man motiverar föräldrar att inte skjutsa sina barn i bil till skolan Sida 1 av 6 Handledning hur man motiverar föräldrar att inte skjutsa sina barn i bil till skolan Bakgrund För tredje året i rad arrangeras Europeiska Mobilitetsveckan, mellan den 16:e och 22:e september.

Läs mer

Bygga hus med LECA-stenar

Bygga hus med LECA-stenar Bygga hus med LECA-stenar När man bygger hus med LECA-stenar finns det en del att tänka på. Till att börja med finns det LECA-stenar i olika dimensioner (t.ex. 59x19x19 och 59x19x39). Dessa dimensioner

Läs mer

Kommentar till bilderna. Att spara hörsel för framtiden. Bara det värdefulla är vi beredda att skydda! Hörseln vad kan vi förstå?!

Kommentar till bilderna. Att spara hörsel för framtiden. Bara det värdefulla är vi beredda att skydda! Hörseln vad kan vi förstå?! Kommentar till bilderna Att spara hörsel för framtiden SIS-seminarium i Stockholm 2010-11-10 Anders Jönsson Dessa bilder är gjorda att tala till och innehåller inte en sammanfattning av föredraget. Dessutom

Läs mer

Optimering. Optimering av transportproblem. Linköpings universitet SL. Campusveckan VT2013

Optimering. Optimering av transportproblem. Linköpings universitet SL. Campusveckan VT2013 Optimering Optimering av transportproblem Campusveckan VT2013 Linköpings universitet SL 1 Optimering - Distributionsproblem Företaget Kulprodukter AB producerar sina kulor vid fyra olika fabriksanläggningar

Läs mer

Concept Selection Chaper 7

Concept Selection Chaper 7 Akademin för Innovation, Design och Teknik Concept Selection Chaper 7 KPP306 Produkt och processutveckling Grupp 2 Johannes Carlem Daniel Nordin Tommie Olsson 2012 02 28 Handledare: Rolf Lövgren Inledning

Läs mer

Föreläsning Datastrukturer (DAT037)

Föreläsning Datastrukturer (DAT037) Föreläsning Datastrukturer (DAT037) Nils Anders Danielsson 2015-11-20 Idag Grafer: Terminologi. Datastrukturer. Topologisk sortering. Kortaste vägen. Bredden först-sökning. Dijkstras algoritm. (Vi får

Läs mer

Föreläsning 5: Dynamisk programmering

Föreläsning 5: Dynamisk programmering Föreläsning 5: Dynamisk programmering Vi betraktar en typ av problem vi tidigare sett: Indata: En uppsättning intervall [s i,f i ] med vikt w i. Mål: Att hitta en uppsättning icke överlappande intervall

Läs mer

729G04 - Diskret matematik. Lektion 4

729G04 - Diskret matematik. Lektion 4 729G04 - Diskret matematik. Lektion 4 1 Lösningsförslag 1.1 Vägar, stigar och annat 1. Vi ges den oriktade grafen G=(V,E), V = {a, b, c, d, f, g, h, i, j}, E = {{a, b}, {b, c}, {a, c}, {f, g}, {c, d},

Läs mer

Införande av ruttplanering och slottider: ett medel att påverka kötider och uppstallning vid slakterier.

Införande av ruttplanering och slottider: ett medel att påverka kötider och uppstallning vid slakterier. Införande av ruttplanering och slottider: ett medel att påverka kötider och uppstallning vid slakterier. Sellman S a*., Flisberg P a., Henningsson M a., Jonsson A b., Rönnqvist M c., Wennergren U a. a

Läs mer

FACIT version 121101 (10 sid)

FACIT version 121101 (10 sid) FACIT version 20 (0 sid) Frågor inom moment VM, Virkesmarknad, inom tentamen i kursen SG006: Skogsindustriell försörjningsstrategi För frågorna inom moment VM gäller följande: Totalt antal poäng är 8.

Läs mer

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

Träd. Sats. Grafer. Definition. En fullständig graf har en båge mellan varje par av noder. Definition Grafdefinitioner Träd N = {i}: noder (hörn) = {(i, j)}, i N, j N: bågar (kanter) Graf: G = (N, ) efinitioner Väg: Sekvens av angränsande bågar. ykel: Väg som startar och slutar i samma nod. En enkel väg

Läs mer

FÖRELÄSNING 1 ANALYS MN1 DISTANS HT06

FÖRELÄSNING 1 ANALYS MN1 DISTANS HT06 FÖRELÄSNING ANALYS MN DISTANS HT06 JONAS ELIASSON Detta är föreläsningsanteckningar för distanskursen Matematik A - analysdelen vid Uppsala universitet höstterminen 2006. Förberedande material Här har

Läs mer

Samrådsgrupper Hösten 2014

Samrådsgrupper Hösten 2014 Sanja Honkanen Skoog Ungas Röst -Nuorten Äänet Hösten 2014 Situationen i samrådsgrupper i Sverige idag I mitten av september fick de 52 finska förvaltningskommuner som i dag har en koordinater eller samordnare

Läs mer

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

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Broarna i Königsberg, Euler, 17 Grafer

Läs mer

Collaborative Product Development:

Collaborative Product Development: Collaborative Product Development: a Purchasing Strategy for Small Industrialized House-building Companies Opponent: Erik Sandberg, LiU Institutionen för ekonomisk och industriell utveckling Vad är egentligen

Läs mer

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

Kaliningrad) låg vid bägge sidor av floden Pregel samt på Grunder i matematik och logik (2018) Grafteori Marco Kuhlmann Grafteori är det område inom matematiken som undersöker egenskaper hos grafer. Inom grafteorin har begreppet graf en annan betydelse än graf

Läs mer

KUNGSBACKA KOMMUN. Duvehed Trafikutredning. Göteborg 2013-03-01

KUNGSBACKA KOMMUN. Duvehed Trafikutredning. Göteborg 2013-03-01 KUNGSBACKA KOMMUN Trafikutredning Göteborg 2013-03-01 Trafikutredning Datum 2013-03-01 Uppdragsnummer 61441255720 Utgåva/Status Slutleverans v:\44\12\61441255720\3_teknik\t\dokument\pm 2013-03-01.doc Kinell

Läs mer

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015

Självkörande bilar. Alvin Karlsson TE14A 9/3-2015 Självkörande bilar Alvin Karlsson TE14A 9/3-2015 Abstract This report is about driverless cars and if they would make the traffic safer in the future. Google is currently working on their driverless car

Läs mer

Questionnaire for visa applicants Appendix A

Questionnaire for visa applicants Appendix A Questionnaire for visa applicants Appendix A Business Conference visit 1 Personal particulars Surname Date of birth (yr, mth, day) Given names (in full) 2 Your stay in Sweden A. Who took the initiative

Läs mer

Föreläsning 8 Datastrukturer (DAT037)

Föreläsning 8 Datastrukturer (DAT037) Föreläsning 8 Datastrukturer (DAT037) Fredrik Lindblad 1 2016-11-23 1 Slides skapade av Nils Anders Danielsson har använts som utgångspunkt. Se http://www.cse.chalmers.se/edu/year/2015/course/dat037 Förra

Läs mer

Basbyte (variabelbyte)

Basbyte (variabelbyte) Basbyte (variabelbyte) En vektors koordinater beror på valet av bas! Tänk på geometriska vektorer här. v har längden 2 och pekar rakt uppåt i papprets plan. Kan vi då skriva v (, 2)? Om vi valt basvektorer

Läs mer

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER

TAOP88/TEN 1 OPTIMERING FÖR INGENJÖRER Matematiska institutionen Optimeringslära TENTAMEN TAOP88/TEN OPTIMERING FÖR INGENJÖRER Datum: juni 0 Tid: 8.00-.00 Hjälpmedel: Miniräknare Kurslitteratur: Kaj Holmberg: Optimering Anteckningar i boken

Läs mer

Algoritmer, datastrukturer och komplexitet

Algoritmer, datastrukturer och komplexitet Algoritmer, datastrukturer och komplexitet Övning 10 Anton Grensjö grensjo@csc.kth.se 9 november 2017 1 Idag En konstruktionsreduktion Fler bevis av NP-fullständighet 2 Teori Repetition Ett problem tillhör

Läs mer

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

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

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

Föreläsning 10. Grafer, Dijkstra och Prim Föreläsning 10 Grafer, Dijkstra och Prim Föreläsning 10 Grafer Representation av grafer Dijkstras algoritm Implementation av Dijkstras algoritm Minimium spanning tree Läsanvisning och uppgifter Broarna

Läs mer

Förord. Implementering och utvärdering av en bildbaserad autentiseringsmetod

Förord. Implementering och utvärdering av en bildbaserad autentiseringsmetod Förord Implementering och utvärdering av en bildbaserad autentiseringsmetod För att autentisera sig på Internet idag finns det en de facto standard som tillämpas, vilket är alfanumeriska lösenord. Denna

Läs mer

Träd, binära träd och sökträd. Koffman & Wolfgang kapitel 6, avsnitt 1 4

Träd, binära träd och sökträd. Koffman & Wolfgang kapitel 6, avsnitt 1 4 Träd, binära träd och sökträd Koffman & Wolfgang kapitel 6, avsnitt 1 4 1 Träd Träd är ickelinjära och hierarkiska: i motsats till listor och fält en trädnod kan ha flera efterföljare ( barn ) men bara

Läs mer

Lennart Carleson. KTH och Uppsala universitet

Lennart Carleson. KTH och Uppsala universitet 46 Om +x Lennart Carleson KTH och Uppsala universitet Vi börjar med att försöka uppskatta ovanstående integral, som vi kallar I, numeriskt. Vi delar in intervallet (, ) i n lika delar med delningspunkterna

Läs mer

1. How many hours per week have you on average spent on the course, including scheduled time?

1. How many hours per week have you on average spent on the course, including scheduled time? Design through practice and management LK0162, 30240.1516 15 Hp Pace of study = 100% Education cycle = Advanced Course leader = Petter Åkerblom Evaluation report Evaluation period: 2016-03-18-2016-03-31

Läs mer

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

Grafer MST Top. sortering Starkt samm. komponenter Kortaste avstånd. Grafalgoritmer 1. Douglas Wikström KTH Stockholm Grafalgoritmer 1 Douglas Wikström KTH Stockholm popup-help@csc.kth.se Oriktade och riktade grafer Definition. En oriktad graf består av en mängd noder V och en mängd kanter E, där en kant är ett oordnat

Läs mer

Användarhandbok. MHL to HDMI Adapter IM750

Användarhandbok. MHL to HDMI Adapter IM750 Användarhandbok MHL to HDMI Adapter IM750 Innehåll Inledning...3 MHL to HDMI Adapter-översikt...3 Komma igång...4 Smart Connect...4 Uppgradera Smart Connect...4 Använda MHL to HDMI Adapter...5 Ansluta

Läs mer

http://www.leidenhed.se Senaste revideringen av kapitlet gjordes 2014-05-08, efter att ett fel upptäckts.

http://www.leidenhed.se Senaste revideringen av kapitlet gjordes 2014-05-08, efter att ett fel upptäckts. Dokumentet är från sajtsidan Matematik: som ingår i min sajt: http://www.leidenhed.se/matte.html http://www.leidenhed.se Minst och störst Senaste revideringen av kapitlet gjordes 2014-05-08, efter att

Läs mer

Module 6: Integrals and applications

Module 6: Integrals and applications Department of Mathematics SF65 Calculus Year 5/6 Module 6: Integrals and applications Sections 6. and 6.5 and Chapter 7 in Calculus by Adams and Essex. Three lectures, two tutorials and one seminar. Important

Läs mer

Nätverksoptimering. Examensarbete i Datavetenskap. - Bästa möjliga tillgänglighet till lägsta möjliga länkkostnad

Nätverksoptimering. Examensarbete i Datavetenskap. - Bästa möjliga tillgänglighet till lägsta möjliga länkkostnad Examensarbete i Datavetenskap Nätverksoptimering - Bästa möjliga tillgänglighet till lägsta möjliga länkkostnad Författare: Jimmy Abrahamsson Handledare: Patrik Brandt Termin: VT12 Kurskod: 1DV41E Abstrakt

Läs mer

Ickelinjära ekvationer

Ickelinjära ekvationer Löpsedel: Icke-linjära ekvationer Ickelinjära ekvationer Beräkningsvetenskap I Varför är det svårt att lösa icke-linjära ekvationer? Iterativa metoder Bisektion/intervallhalvering Newton-Raphsons metod

Läs mer

Tentamen MMG610 Diskret Matematik, GU

Tentamen MMG610 Diskret Matematik, GU Tentamen MMG610 Diskret Matematik, GU 2017-01-04 kl. 08.30 12.30 Examinator: Peter Hegarty, Matematiska vetenskaper, Chalmers/GU Telefonvakt: Peter Hegarty, telefon: 0766 377 873 Hjälpmedel: Inga hjälpmedel,

Läs mer

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert 20130122. Problemexempel 1

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert 20130122. Problemexempel 1 Fortsättningskurs i programmering F 2 Algoritmer i Programutveckling Hugo Quisbert 20130122 1 Exempel 1 Problemexempel 1 En souvenirbutik behöver ett datorprogram som omvandlar ett pris i svenska kronor

Läs mer

Riskanalys fo r kritiska IT-system - metodbeskrivning

Riskanalys fo r kritiska IT-system - metodbeskrivning Riskanalys fo r kritiska IT-system - metodbeskrivning Kim Weyns, kim.weyns@gmail.com 2013-08-22 Martin Höst, martin.höst@cs.lth.se Inledning Denna rapport innehåller en metodbeskrivning för en riskanalysmetod

Läs mer

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB. 30.04.2015

Problem: BOW Bowling. Regler för Bowling. swedish. BOI 2015, dag 1. Tillgängligt minne: 256 MB. 30.04.2015 Problem: BOW Bowling swedish BOI 0, dag. Tillgängligt minne: 6 MB. 30.04.0 Byteasar tycker om både bowling och statistik. Han har skrivit ner resultatet från några tidigare bowlingspel. Tyvärr är några

Läs mer

Optimering. Optimering

Optimering. Optimering TAOP88 Optimering för ingenjörer Examinator: Kaj Holmberg kaj.holmberg@liu.se Kurshemsida: http://courses.mai.liu.se/gu/taop88 Lärare: Föreläsningar: Kaj Holmberg Lektioner, labbar: Oleg Burdakov, William

Läs mer

Kapacitet för godståg på Västra och Södra stambanan

Kapacitet för godståg på Västra och Södra stambanan Kapacitet för godståg på Västra och Södra stambanan Sävedalen en nyckelstation där körriktningarna (ännu) är kopplade Olov Lindfeldt KTH Trafik och Logistik 2008-05-19 Innehåll 1 INLEDNING...3 1.1 JÄRNVÄGSKAPACITET...3

Läs mer

TNSL11 Kvantitativ Logistik

TNSL11 Kvantitativ Logistik TENTAMEN TNSL11 Kvantitativ Logistik Datum: 25 mars 2013 Tid: 08:00 12:00 i TP56 Hjälpmedel: Hjälpmedel av alla slag, förutom kommunikationsutrustning (telefoner, datorer, och andra saker som kan ta emot

Läs mer

Några svar till TDDC70/91 Datastrukturer och algoritmer

Några svar till TDDC70/91 Datastrukturer och algoritmer Några svar till TDDC70/91 Datastrukturer och algoritmer 2011--18 Följande är lösningsskisser och svar till uppgifterna på tentan. Lösningarna som ges här ska bara ses som vägledning och är oftast inte

Läs mer

Viktigt att tänka på i en intervju och de vanligaste fallgroparna. som intervjuar. Ett kostnadsfritt whitepaper utgivet av Level Recruitment

Viktigt att tänka på i en intervju och de vanligaste fallgroparna. som intervjuar. Ett kostnadsfritt whitepaper utgivet av Level Recruitment Viktigt att tänka på i en intervju och de vanligaste fallgroparna för dig som intervjuar Ett kostnadsfritt whitepaper utgivet av Level Recruitment Level Recruitment AB - 2015 Viktigt att tänka på i en

Läs mer

Administrationsverktyg för marinvåg

Administrationsverktyg för marinvåg Computer Science Opponent(s): Ewelina Helmersson & Mollin Widegren Respondent(s): Christer Oscarsson & Jonas Larsson Administrationsverktyg för marinvåg Opposition Report, C-level 2010:VT 1 En generell

Läs mer

Kapitel 6, 7, 8 o 9: Data och protokoll. LUNET o SUNET

Kapitel 6, 7, 8 o 9: Data och protokoll. LUNET o SUNET Kapitel 6, 7, 8 o 9: Data och protokoll Internet LUNET o SUNET Jens A Andersson Vad är Internet? Internet ägs ej av en enskild organisation. Styrs till viss del av Internet Society (ISOC). Består av ett

Läs mer

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05

Om oss DET PERFEKTA KOMPLEMENTET THE PERFECT COMPLETION 04 EN BINZ ÄR PRECIS SÅ BRA SOM DU FÖRVÄNTAR DIG A BINZ IS JUST AS GOOD AS YOU THINK 05 Om oss Vi på Binz är glada att du är intresserad av vårt support-system för begravningsbilar. Sedan mer än 75 år tillverkar vi specialfordon i Lorch för de flesta olika användningsändamål, och detta enligt

Läs mer

Email: david@davidhallstrom.se

Email: david@davidhallstrom.se David is the founder of 2 companies: Getfound and Pacific Fencing. Through his entrepreneurial career David has helped large corporations like Plan, ANZ Bank, Goodman and RipCurl make more money from the

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

Sammanställning av trafikåtgärder Riktlinjer för trafiksäkerhetsarbetet i Nacka 2009

Sammanställning av trafikåtgärder Riktlinjer för trafiksäkerhetsarbetet i Nacka 2009 2009-01-26 Sammanställning av trafikåtgärder Riktlinjer för trafiksäkerhetsarbetet i Nacka 2009 Dnr TN 2007/355 Författare: Elenore Bjelke, Ivan Ericson, Christin Gimberger Förord Nacka kommuns Riktlinjer

Läs mer

någon skulle föreslå, att ur våra räkningar utesluta tecknet "j/, så att man t. ex. skulle skriva lösningen av

någon skulle föreslå, att ur våra räkningar utesluta tecknet j/, så att man t. ex. skulle skriva lösningen av Om någon skulle föreslå, att ur våra räkningar utesluta tecknet "j/, så att man t. ex. skulle skriva lösningen av andragradsekvationen.1 -f 2 där y' 2 = b, eller i st. f. x=y$-\-yj

Läs mer

PM- Kalibrering av barriärmatriser i Skåne modellen

PM- Kalibrering av barriärmatriser i Skåne modellen PM- Kalibrering av barriärmatriser i Skåne modellen Sammanfattning Detta PM avser beskriva uppdatering av kalibreringskonstanter i Sampers regionala modell för Skåne/Själland, så kallade barriärkonstanter.

Läs mer

trafiksäkerhet i nytt ljus Vi hjälper dig att skapa en tryggare väg

trafiksäkerhet i nytt ljus Vi hjälper dig att skapa en tryggare väg trafiksäkerhet i nytt ljus Vi hjälper dig att skapa en tryggare väg Säkerhet på väg Vägbelysningen finns till för att man som trafikant och fotgängare ska kunna upptäcka faror och bedöma risker i tid.

Läs mer

Datastrukturer och algoritmer

Datastrukturer och algoritmer Datastrukturer och algoritmer Föreläsning 16 2 Innehåll Snabbrepetition Exempeltentamen Kursutvärdering Mina målsättningar Kursens mål: 3 Rolig och viktig kurs Bli en bättre programmerare och inse att

Läs mer

Svar och arbeta vidare med Student 2008

Svar och arbeta vidare med Student 2008 Student 008 Svar och arbeta vidare med Student 008 Det finns många intressanta idéer i årets Känguruaktiviteter. Problemen kan inspirera undervisningen under flera lektioner. Här ger vi några förslag att

Läs mer

miljö och samhällsbyggnad Till dig som ska börja ditt sista år på en utbildning inom miljö eller samhällsbyggnad

miljö och samhällsbyggnad Till dig som ska börja ditt sista år på en utbildning inom miljö eller samhällsbyggnad Huddingetrainee: miljö och samhällsbyggnad Till dig som ska börja ditt sista år på en utbildning inom miljö eller samhällsbyggnad Ska skriva ett examensjobb och har inget emot att få betalt för det Vill

Läs mer

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02

UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap. Grafproblem. Laboration 4, Datastrukturer och Algoritmer VT02 UMEÅ UNIVERSITET 26 april 2002 Instutionen för datavetenskap Grafproblem Laboration 4, Datastrukturer och Algoritmer VT02 Laboration 4 - grafproblem Förpackningsdatum: Denna lab-spec är senast ändrad:

Läs mer

Uppgift 1. Kylskåpstransporter

Uppgift 1. Kylskåpstransporter Uppgift 1. Kylskåpstransporter 1. Här kan du se de två bilarna lastade med kylskåp på väg mot stormarknaden En fabrik som tillverkar kylskåp ska leverera ett större parti med n, 1 n 1000, kylar till en

Läs mer

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack 725G61 - Laboration 7 Implementation av ett API Johan Falkenjack December 13, 2013 1 Inledning Hittills i kursen har vi tittat på grundläggande programmering och grundläggande objektorientering. I den

Läs mer

Digitalisering av gångvägnät för hela staden PROJEKTSKISS TILL E-TJÄNSTEPROGRAMMET

Digitalisering av gångvägnät för hela staden PROJEKTSKISS TILL E-TJÄNSTEPROGRAMMET TILL E-TJÄNSTEPROGRAMMET Förvaltning: 1 (6) 1. BAKGRUND OCH NULÄGE I projektet e-adept samverkar Stockholms stad med bland annat Post- och telestyrelsen, Vägverket, Banverket, Vinnova och ett antal leverantörsföretag.

Läs mer

The National Institute of Child Health and Human Development (NICHD) Protocol: Intervjuguide

The National Institute of Child Health and Human Development (NICHD) Protocol: Intervjuguide The National Institute of Child Health and Human Development (NICHD) Protocol: Intervjuguide This Swedish version is based on the English version available on the NICHD Protocol website (www.nichdprotocol.com).

Läs mer