EXAMENSARBETE. Analys och design av nätverksmodul. Carl Mikael Almgren, Anna Hallbygård. Högskoleingenjörsprogrammet Geografisk informationsteknik



Relevanta dokument
Vinjett 1: Relationsdatabas för effektivaste vägen

Bilaga till avtal avseende *** kommuns medverkan som dataleverantör till och användare av den Nationella Vägdatabasen (NVDB)

Optimering av NCCs klippstation för armeringsjärn

Produktbeskrivning: GSD-Tätort, raster

Karta 1:10 000, raster

Vägdata - termer, begrepp och förkortningar. Version 1.0

GSD-Fastighetskartan, sammanslagen raster

Information och nyheter från NVDB

GSD-Fjällkartan, raster

Branschlösningar. DPS Europe AB Gullbergs Strandgata 36 D Göteborg. Tel. +46 (0) E-post: dpss@dpss.se

Module 6: Integrals and applications

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

1. Ställa in ett resmål och söka efter en resväg

Information technology Open Document Format for Office Applications (OpenDocument) v1.0 (ISO/IEC 26300:2006, IDT) SWEDISH STANDARDS INSTITUTE

Vätebränsle. Namn: Rasmus Rynell. Klass: TE14A. Datum:

Ökat personligt engagemang En studie om coachande förhållningssätt

Produktbeskrivning: Topografisk webbkarta Visning, skiktindelad

GSD-Terrängkartan, raster

GSD-Sverigekartor i skalorna 1:5 miljoner, 1:10 miljoner och 1:20 miljoner

TNK049 Optimeringslära

Dataproduktspecifikation Vägnummer för etiketter. Version 1.0

Teknikprogrammet Klass TE14A, Norrköping. Jacob Almrot. Självstyrda bilar. Datum:

ALGORITMER, OPTIMERING OCH LABYRINTER

Obemannade flygplan. Namn: Hampus Hägg. Datum: Klass: TE14B. Gruppmedlemmar: Gustav, Emilia, Henric och Didrik

Solowheel. Namn: Jesper Edqvist. Klass: TE14A. Datum:

Integration av BIM och GIS

SWARCO NORDIC INTELLIGENTA TRANSPORTSYSTEM ITS LÖSNINGAR FÖR KOLLEKTIVTRAFIKEN. SWARCO I First in Traffic Solutions.

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

1. Använda denna bruksanvisning

Topografisk webbkarta Visning

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

Föreläsning 11. Giriga algoritmer

Kort beskrivning av GIS:

Stockholm Open Award 2014 Meet Up 26 mars Trafik och framkomlighet

PM Omledningsvägar för E22 Kalmar-Västervik, delen Gladhammar-Verkebäck Västerviks kommun, Kalmar län Projektnummer: V

GSD-Terrängkartan, raster

Topografisk webbkarta Visning, cache

DPS International Ltd INTEGRATION. Thomas Rickne

Röd ( osäker ) om inget av villkoren 1-7 är uppfyllt.

Vägval. Detta är en handbok för dig som använder Vägval.

Strategi för användning av geografisk information (GIS)

Syns du, finns du? Examensarbete 15 hp kandidatnivå Medie- och kommunikationsvetenskap

Topografisk webbkarta Visning, cache

Information till dig som är intresserad av att ställa ut blomlådor på din gata för att minska bilarnas hastighet.

Optimering av resväg genom Sverige

Avsnitt 3 Färre mil och mer tid med bättre planering

Collaborative Product Development:

10 ANLEDNINGAR TILL ATT RÄKNA MED PTV MAP&GUIDE FÖR BERÄKNING AV TRANSPORTKOSTNADER.

Vägmarkeringsstandard för kantlinjer vid olika vägtyper, utan vägbelysning

Optimering av bränsledepåer för effektiv resa i öknen

Rapport Version 1.0 Johan Aldén Sida 1 av Rapport Förstudie Elevadministration och schemaläggning Sambruk

Att tänka på för dig som arbetar med datainsamling i en kommun

Vektorkartor för mobila terminaler

Syftet med detta dokument är att redovisa Södertörns brandförsvarsförbunds syn på behov av brandposter i olika bebyggelsemiljöer.

Vindkraftens inverkan på Vägarna

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

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

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS för D och C. Tentamensinstruktioner. När Du löser uppgifterna

TAOP33/TEN 2 KOMBINATORISK OPTIMERING GRUNDKURS

Föreläsning 5: Grafer Del 1

Märke H23 förberedande upplysning om vägnära service

Kv. Rosen. Trafik. Utredare. Iterio AB Östgötagatan Stockholm Therese Nyman Linda Lundberg

Dokumentet gäller fr.o.m Skanova Fiber 2009

Din guide till en säkrare kommunikation

Projektmodell med kunskapshantering anpassad för Svenska Mässan Koncernen

Förändrade förväntningar

NVDB Teknisk Lösning - Teknisk beskrivning av datautbyte

Module 1: Functions, Limits, Continuity

TTIT33 Scenario för Tema 3 i Termin 3

Politikerdag 2013 Från GIS till Geografisk förståelse. Lars Backhans

Produktbeskrivning: Höjdmodell Visning

Kvalitativ design. Jenny Ericson Medicine doktor och barnsjuksköterska Centrum för klinisk forskning Dalarna

Kvalitativ design. Jenny Ericson Doktorand och barnsjuksköterska Uppsala universitet Centrum för klinisk forskning Dalarna

Sida 2 (6) De långa tider som krävs för att etablera WiFi kontakt i kombination med de begränsade täckningsområdena är ett problem med dagen teknik.

campus.borlänge Förstudie - Beslutsstöd för operativ tågtrafikstyrning

Metodik för inventering av cykelnät

Laboration 2: Spelteori

Rapport elbilar Framtidens fordon

Länkar. Lite om egenskaper och effekter

COMPUTABILITY BERÄKNINGSBARHET. Källa: Goldschlager, Lister: Computer Science A Modern Introduction 2. upplaga 1988, Prentice Hall

Produktbeskrivning: Topografisk webbkarta Visning, CC BY

Second handbook of research on mathematics teaching and learning (NCTM)

Gemensam ajourhållning av ett sammanhållet byggnadsobjekt

NVDB Teknisk Lösning - Teknisk beskrivning av datautbyte

PROJEKTERINGSANVISNINGAR DEL

Samtidig utvärdering av form- & lägekrav

Framtidens fordon. Douglas Halse TE14A

Hur fattar samhället beslut när forskarna är oeniga?

Transport. have a. We will not. society. Margaret Mead. Transport 33

RIKTLINJE 2 (29) Lokaliseringsmärken för vägvisning har följande färgsättningar och texttyper om inte annat anges i 17.

Om cykelkartan. Liten smal väg med minimal trafik.

Förskola i Bromma- Examensarbete. Henrik Westling. Supervisor. Examiner

E20 Vårgårda Vara, delen Vårgårda Ribbingsberg

Information om Utökade trafiksäkerhetsåtgärder för cyklister

Grafisk teknik IMCDP IMCDP IMCDP. IMCDP(filter) Sasan Gooran (HT 2006) Assumptions:

ArcGIS KOMMUNLICENS. Följande programvaror omfattas av ArcGIS Kommunlicens:

TRAFIKUTREDNING NYTT VERKSAMHETSOMRÅDE I ROSERSBERG

RÖRELSE. - Mätningar och mätinstrument och hur de kan kombineras för att mäta storheter, till exempel fart, tryck och effekt.

GIS i molnet. GISS After Work, 13 oktober 2011 Roger Hamrén Cartesia GIS AB. -En del av AddNode

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.

Transkript:

2000:86 EXAMENSARBETE Analys och design av nätverksmodul Carl Mikael Almgren, Anna Hallbygård Högskoleingenjörsprogrammet Geografisk informationsteknik Institutionen för Institutionen i Kiruna Avdelningen för - 2000:86 ISSN: 1404-5494 ISRN: LTU-HIP-EX--00/86--SE

Förord Vid Luleå Tekniska Universitets GIS ingenjörsutbildning ingår ett examensarbete som omfattar 10 universitetspoäng. Detta motsvarar ca 10 veckors arbete. Examensarbetet, som innehåller förundersökningar och studier till en kommande nätverksmodul till programvaran MapObjects, har utförts på WM-data - Försvarsdata AB i Stockholm. Examensarbetet utfördes under tidsperioden 1999-03-22 till 1999-06-02. Vi vill tacka våra handledare på WM-data Johan Svensson och Katarina Hökfors. Vi vill också tacka professorer och doktorander vid institutionen NADA/TCS vid Kungliga Tekniska Högskolan, som väglett och hjälpt oss med algoritmteori. Dessutom vill vi tacka vår examinator professor Anders Östman för goda råd och synpunkter. Stockholm den 2 juni 1999 Carl-Mikael Almgren Anna Hallbygård i

Sammanfattning Dagens samhälle blir mer och mer beroende av olika typer av kommunikationsmedel. GIS kan på ett effektivt och smidigt sätt planera för samhällets krav på transporter och kommunikation. Detta kan göras med olika typer av nätverksanalyser i olika GIS där man kan beräkna och planera olika färdvägar. På WM-data, där examensarbetet har utförts, används bl a utvecklingsverktyget MapObjects. MapObjects saknar i sitt grundutförande en nätverksmodul för att kunna utföra olika analyser för planering av färdvägar. Syftet med detta examensarbete var att göra förstudier och undersökningar om vilka databaser och vilka beräkningsmetoder (algoritmer) som behövs för att WM-data ska kunna bygga en egen nätverksmodul. Dessutom har ett förslag på hur nätverksmodulen ska fungera föreslagits. Detta examensarbete har genomförts genom intervjuer, samtal och självstudier av tänkbara databaser och beräkningsmetoder. Utöver detta har vi bidragit med våra egna tankar och funderingar kring hur denna nätverksmodul ska kunna fungera och se ut. Som slutsats kan dras att en nätverksmodul av den här typen skulle kunna vara hur komplex och avancerad som helst. Hur avancerad och komplex nätverksmodulen är beror på vilka krav som ställs på den. Att lösa avancerade nätverksanalyser mellan flera punkter är ett så kallat NP-komplett (NP, nondeterministic algorithm in polynominal time) problem vilket innebär att det inte finns någon exakt lösning på problemet som man i dag känner till. Vid val av algoritmer finns det många olika algoritmer som går att använda för olika ändamål. I detta fall gäller det att hitta en algoritm som kan klara av att genomföra så noggranna beräkningar på en så kort tid som möjligt. Algoritmerna ska som resultat få fram den bästa vägen mellan punkter. De algoritmer som valts att för att lösa avancerade nätverksanalyser är A*-algoritmen, för den är snabbare än Dijkstra s algoritm. Förutom dessa används Kruskals algoritm eftersom den ger ett bra resultat. Ska man se till de vägdatabaser som finns i dagens läge, så är de endast ett begränsat antal vägdatabaser som lämpar sig att använda till en nätverksmodul som denna. För att få en så bra databas som möjligt bör en integrering av olika geografiska databaser ske och dessutom bör den sedan kompletteras med ytterligare information från andra typer av databaser. Av de databaser som studerats är det Blå Kartans vägar och Tätort 2000 som bör användas. För att få en överskådlig bild över hur nätverksmodulen är tänkt att fungera så har även ett översiktligt flödesschema gjorts, där varje steg i modulen redogörs. ii

Abstract The society of today becomes more and more dependent on different means of communication. GIS can in an efficient and adaptable way fulfil some of the demands from the society on transport and communication. Different types of network analysis can accomplish this with different kinds of GIS systems, where you are able to plan and calculate different routes. GIS in combination with GPS makes contact between the vehicle and the route-planner possible. At WM-data, where this bachelor thesis has been accomplished, they use MapObjects development environment among others. MapObjects it self is missing a network-module to make different route-planning analysis. The purpose with this thesis is to make pre-studies and research about which database and what calculation methods (algorithms) should be applied when to building a network module. The network module will also be described by flowcharts. There is also a suggestion on how the network module will function. This bachelor thesis have been carried out through interviews, conversations and self studies of the best possible databases and algorithms. In addition we have contributed with our own thoughts and ideas about how this network module will function and look like. The conclusions are that a network module like this can be very complex and advanced. How complex and advanced this network module is, is related to the required functionality. An advanced network analysis between several points is called a NP-complete (NP, nondeterministic algorithm in polynominal time) problem, which means that there is no exact solution that is known today. When choosing algorithm there are several different algorithms that can be used, each one have different purpose. In this case the objective is to find an algorithm that can accomplish as accurate calculations as possible on as short time as possible. The algorithms shall calculate the best way between points. The algorithms that have been chosen to solve advanced network analysis is the A*-algorithm, because it solves the problem faster than the Dijkstra s algorithm. In addition the Kruskal s algorithm is used because it gives a good result. Considering the road databases of today, there are only some that can be used for this kind of network module. To get as good data as possible there should be integration between different databases. The databases should also be completed with other information from other kinds of databases. Of the studied databases, Blå Kartans vägar and Tätort 2000 shall be used. To get an overview on how this network module will work, a simple flowchart have been made. Every step in the module is described. iii

Innehållsförteckning 1 Inledning... 1 1.1 Bakgrund...1 1.2 Syfte och mål...2 1.3 Avgränsningar...2 1.4 Kort om WM-data AB...3 2 Exempel på befintliga programvaror inom GIS... 4 2.1 MapObjects...4 2.2 ARC/INFO- Arc Network...4 2.3 ArcView- Network Analyst...5 2.4 ArcLogistics Route (ALR)...5 2.5 Route 66...6 2.6 Route- LogiX Professional...6 3 Frågeställningar... 7 3.1 Grundfrågor...7 3.2 Den Bästa Vägen...8 3.3 Attributfrågor...8 3.4 Övriga frågor...9 4 Algoritmer... 10 4.1 Vad är en algoritm?...10 4.2 Travelling Salesman Problem...10 4.3 Vilka algoritmer finns att tillgå?...11 4.3.1 Dijkstras algoritm... 11 4.3.2 A* (A-stjärna) algoritmen... 12 4.3.3 Kruskals algoritm... 12 4.3.4 Prims algoritm... 13 4.3.5 Lin & Kernighans förbättringsmetod... 13 4.4 För och nackdelar med de olika algoritmerna...14 4.5 Val av algoritm...15 5 Geografiska databaser... 16 5.1 Vägdatabaser...16 5.1.1 Blå kartans vägar... 17 5.1.2 Tätort 2000... 18 5.1.3 Vägdatabanken (VDB)... 19 5.1.4 Nationell vägdatabas (NVDB)... 20 5.1.5 GeoTätort 2.0... 21 5.1.6 Atlas... 22 5.2 Val av databas...23 6 Design av modulen... 24 iv

Modulens olika delar...24 7 Diskussioner och Slutsatser... 28 8 Referenser... 29 9 Tack till... 30 Bilaga 1 Exempelnätverk för algoritmer... 31 Bilaga 2 Flödesschema för nätverksmodul... 32 Bilaga 3 Pseudokod... 33 v

1 Inledning 1.1 Bakgrund För att samhället ska följa med i dagens IT-baserade utveckling blir det mer och mer beroende av olika typer av informationsförsörjning. Detta för att försörja städer och landsbyggd med bra kommunikationsmedel och erbjuda företag en effektivare, billigare och ett mer miljövänligt alternativ till gårdagens transporter. GIS (Geografiska InformationsSystem) erbjuder ett väl utvecklat, smidigt och effektivt sätt att planera för ett samhälle som kan uppfylla dagens krav på transporter och kommunikation. Med i dag olika existerande GIS kan man utföra avancerade nätverksanalyser och på så sätt planera färdvägar och rutter för exempelvis lokaltrafik och för att samordna stads- och trafikplanering. Att använda nätverksanalyser i kombination med GPS (Global Positioning System) möjliggör en direktkontakt mellan fordon och färdplaneraren. På så sätt vet man hela tiden vart fordon befinner sig och kan därmed vägleda fordonet den bästa vägen. För att kunna utföra sådana här analyser med GPS så måste en geografisk databas med vägar och en beräkningsmetod för att finna den bästa vägen finnas. Exempel på användningsområden: Räddningsfordon: Lokaltrafik: Försvaret: Om ett räddningsfordon kommer till en olycksplats och förstärkning behövs så kan fordonet ange sin position till räddningscentralen. Räddningscentralen i sin tur kan vägleda och dirigera de andra räddningsfordonen så att de snabbt och enkelt kan komma fram till olycksplatsen. Inom lokaltrafiken vill man effektivisera körningar för att minska bränsleförbrukning och tidsåtgången. Genom att optimera olika vägrutter kan man dels få fram vart man befinner sig och vart man ska åka härnäst för att få en så kort färdväg som möjligt. Inom försvaret ska fordon kunna förflyttas i dåliga siktförhållanden. Med en GPS kan man navigera sig fram till en bestämd punkt även om sikten är dålig. (ref. Teracom AB) På WM-data Försvarsdata, där examensarbetet har utförts, används bl a ESRIs (Environmental Systems Research Institute) utvecklingsverktyg MapObjects (se 2.1). På WM-data utvecklas bl a egna applikationer som används vid kartpresentationer. För att kunna tillgodose kunders behov av att kunna utföra avancerade nätverksanalyser så vill WM-data att en modul skapas. WM-data vill i och med detta examensarbete veta mer om vilka algoritmer som kan utföra avancerade nätverksanalyser. De vill även veta vilka geografiska databaser som lämpar sig att utföra nätverksanalyser på och hur en sådan nätverksmodul skulle kunna fungera. Modulen ska kunna användas av olika programvaror och i olika utvecklingsmiljöer. Modulen ska med andra ord vara en fristående komponent. 1

1.2 Syfte och mål Syftet med detta examensarbete är att undersöka möjligheterna för att bygga denna ovan nämnda nätverksmodul. Uppgiften är att göra nulägesanalys på befintliga GIS-programvaror, göra undersökningar och förarbete för modulen, att identifiera användarkrav och tekniska krav för modulen (se kap 3), att ta reda på vilken algoritm (se kap 4) som kan användas för de olika typerna av nätverksanalyser samt undersöka vilken/vilka vägdatabaser (se kap 5) det är lämpligt att använda. Dessutom föreslå hur denna nätverksmodul skulle kunna fungera. Examensarbetet har delats in i fyra delar: Att identifiera kraven på nätverksmodulen Att hitta en lämplig algoritm Att hitta en passande vägdatabas Att ge förslag på hur nätverksmodulen ska fungera 1.3 Avgränsningar En nätverksmodul kan innehålla en stor mängd egenskaper och funktioner. Detta examensarbete går ut på att göra förundersökningar/förarbete till tidigare nämnd nätverksmodul och att även göra förarbetet till en produktspecifikation för denna nätverksmodul. Examensarbetet inkluderar inte implementering av modulen. 2

1.4 Kort om WM-data AB WM-data är idag ett av Nordens ledande datakonsultföretag. För närvarande är det drygt 7000 anställda på WM-data och de fortsätter att öka med ca 20-25 procent per år. WM-data har kontor på 50 orter utspridda över Norden. Dessutom två kontor utplacerade i Holland och Frankrike. Redan 1969 startade WM-data sitt första kontor i Stockholm. Ända från början har utveckling och förvaltning av IT-baserade lösningar legat som grund för verksamheten. WM-data arbetar oberoende av leverantörer och andra intressen och har egna utvecklade metoder och hjälpmedel. WM-data har sedan längre varit aktiv inom området geografisk informationsteknik i samarbete med bl a skogsnäringen och Försvarsmakten. Försvarsdata WM-data har ett bolag som inriktar sig på IT-lösningar för totalförsvaret. De största kunderna är svenska Försvarsmakten och FMV. Inom WM-data Försvarsdata finns huvudinriktningen mot GIS, för både civila och militära kunder. Det är under Försvarsdata - GIS som detta examensarbete har utförts under. Försvarsdatas huvudsakliga områden är: Utveckling och förvaltning av IT-system Drift och drifttekniknära tjänster Specialistkonsulting inom säkerhet och geografiska informationssystem Försvarskunnande Systemutveckling Visionen inom företaget är att vara ett ledande konsultföretag i fråga om kvalitet och resurser och kunna erbjuda sina kunder ett komplett sortiment av tjänster med hög kvalitet. WM-data avser att bli en ledande europeisk leverantör med Norden som hemmamarknad. (ref. WM-data) 3

2 Exempel på befintliga programvaror inom GIS I dagsläget finns flertalet programvaror som används inom GIS-området. De flesta GISprogramvaror kan utföra nätverksanalyser, en del mer avancerade än andra. Nedan återfinns en kort beskrivning på några av dessa program som används av etablerade GIS-företag och transportfirmor och exempel på vad de olika programvarorna klarar av. 2.1 MapObjects MapObjects är en programvara som ESRI har tagit fram för applikationsutvecklare. MapObjects är uppbyggt av GIS-komponenter som man kan skapa karthanteringsprogram med. Förutom att skapa de nya karteringsprogrammen kan man dessutom förbättra redan existerande komponenter och skräddarsy applikationer efter kundernas olika behov. Applikationerna som skapas kan sedan användas tillsammans med vanliga desktopprodukter tex. kalkylblad ordbehandlare och databaser. MapObjects används i olika utvecklingsmiljöer så som Visual Basic, Delphi och Visual C++. I MapObjects kan man bl a utföra följande funktioner Panorera och zooma i karta med flera skikt Stöd för extern databasaccess via Microsoft's ODBC 1 Textsättning och positionering Dynamiskt visa real-tids -data (GPS) Göra utsökningar med SQL-frågor Geokodning (adressmatchning) (ref. ESRI 99) 2.2 ARC/INFO- Arc Network Arc Network är en tilläggsmodul till ARC/INFO. I dag används Arc Network till alla typer av ruttplaneringar som tex. hämtning och lämning av varor och planering av skolskjutsar. Utöver detta används Arc Network även till ledningsanalyser på tex. VA-ledningar och el-ledningar. Med Network modulen kan man hitta den kortaste, effektivaste och/ eller billigaste vägen mellan två eller flera punkter. Se vilka länkar i nätverket som sitter i anslutning till varandra. Beräkna avståndet mellan start- och slutpunkter. Bestämma lokalisering av nya objekt, tex. skolor och uppskatta om det finns ett behov av en skola i ett visst område. Beräkna åtkomst till en plats och förflyttning mellan platser baserat på transportkostnad. (ref. ESRI 98) 1 Open Database Connectivity 4

2.3 ArcView- Network Analyst Network Analyst är en tilläggsmodul till ArcView och är ett avancerat nätverksanalysprogram. I Network Analyst kan man bland annat göra analyser såsom: Finna den mest direkta vägen mellan två punkter Tex. Vilken är den mest direkta vägen från min nuvarande position till närmaste bibliotek? Finna den optimala rutten mellan flera punkter Tex. Vilken väg skall ett pizzabud åka med sina tio pizzor? Finna den närmaste byggnaden Tex. Vilken pizzeria ligger närmast mitt hotell, och hur tar jag mig dit? Körtids-analys Tex. Vilka är treminuters -, femminuters - och tiominuters zonerna runt en potentiell snabbmatsrestaurang? Det vill säga vilka restauranger kan man nå inom tre, fem eller tio minuter. Network Analyst klarar även av att ge färdbeskrivningar baserade på landmärken. Den kan leverera klartext i form av vid fontänen sväng vänster, därefter. Man kan även skräddarsy sin egen nätverksanalys med hjälp av det inbyggda applikationsspråket Avenue. (ref. ESRI 99) 2.4 ArcLogistics Route (ALR) ALR är en ny produkt från ESRI. Den finns hittills endast framtagen i en amerikansk version, men planer pågår att ta fram nationella versioner. ALR är ett mycket avancerat nätverksanalysprogram. Det klarar inte bara av att göra analyser rörande ett objekt eller från-via-till förhållanden, det klarar även av mer avancerade analyser. ALR nyttjar optimeringsalgoritmer (se kap 4) för att fördela punkter på tillgängliga objekt. I ALR kan man göra nätverksanalyser med flertalet punkter (adresser) och flertalet objekt (fordon) och lägga upp körschema för varje enskilt fordon. Resultatet visualiseras i en vy som en mängd olikfärgade rutter. Vid optimeringen kan man jämföra totalkostnad mot tidspassning. Exempel: En flyttfirma har tre bilar, alla i olika delar av en stad. 16 adresser skall besökas. Med ALR kan man både beräkna den optimala rutten för en körning och den optimala rutten då alla tre bilarna är inblandade, d v s vilken bil kör till vilken adress. (ref. ESRI 99) 5

2.5 Route 66 Route 66 är en komplett och fristående programvara utvecklad för en slutanvändare. Det är ett mycket lättanvänt program med många kraftfulla funktioner. I första hand vänder sig Route 66 till Storbritannien och Nederländerna men arbetar på att leverera till övriga Europa. Med Route 66 kan man beräkna den kortaste, snabbaste, billigaste eller den mest ekonomiska rutten för bil eller lastbil Man kan skapa rutter med ett eller flera stopp Man kan även ange turordningen till stoppen dock behövs turordningen inte anges för alla stoppen Route 66 är ett nätverksanalysprogram som endast vänder sig till kunder vars intresse berör transporter med bil eller lastbil (ref. Route 66) 2.6 Route- LogiX Professional Route-LogiX är ett ruttplaneringssystem med en mängd avancerade funktioner. Det riktar sig främst till den professionella användaren. Systemen används av såväl köpare som säljare av transporter. Användningsområdena är bl.a. att planera transporter, ta fram offerter eller fakturaunderlag. Programmet beräknar avstånd, tid och kostnad för den kortaste, snabbaste eller billigaste rutten. Route-LogiX Professional tar hänsyn till fordons hastighet på olika vägtyper, bärighetsklasser, enkelriktningar etc. Resultatet av beräkningarna presenteras i form av en kartbild, färdplan och en ruttsummering. Man kan ha upp till 200 besökspunkter per rutt och 60 olika fordonstyper. Antalet användardatabaser är obegränsat och programmet hanterar dessutom övernattningar. Route- LogiX Professional har tracking med GPS integrerat i systemet. Det innebär att man har möjlighet att följa fordonsflottan på skärmen i samma program som man planerar rutterna. Man kan också optimera besöksordningen med programmet. Route-LogiX Professional kan också på ett enkelt sätt integreras med andra system. Man kan importera data genom ASCIIfiler eller användardatabaser. Formatet för dessa databaser är dbase med FoxPro-index. Export från systemet sker genom att rutterna sparas i ASCII-format, som kan läsas av andra program t.ex. Excel eller Lotus (ref. DPS International) 6

3 Frågeställningar För att veta vilken typ av algoritm som behövs för att bygga en nätverksmodul så måste först en del krav sättas upp på vad denna algoritm ska kunna klara av. Det som är av största vikt är då vilka krav användaren har på nätverksmodulen, d v s vilka typer av analyser som användaren vill att modulen ska kunna utföra. 3.1 Grundfrågor Vid identifiering av frågor och problem är den viktigaste frågan att fastställa vilka frågor som modulen ska kunna besvara. Tre större krav har satts upp på modulen (se nedan). De handlar om vilka analyser som modulen ska klara av att lösa. 1. Nätverksanalys mellan två punkter i ett nätverk Den första uppgiften är att med hjälp av modulen göra en nätverksanalys mellan två förbestämda/ kända punkter. Den ska finna den bästa vägen mellan de två kända punkterna, d v s att från modulen få den mest optimala rutten mellan dessa punkter. Vad som menas med den bästa vägen är en helt egen frågeställning (se 3.2). 2. Nätverksanalys mellan flera punkter eller mellan två punkter med mellanstopp Den andra uppgiften är grunden samma ide som i fråga 1, men mer utvecklad och komplicerad. I detta problem har man flertalet punkter som skall passeras innan slutpunkten nås, och det är vägen mellan dessa som skall optimeras så pass att man får fram den bästa vägen. Resultatet blir en rutt med en definierad turordning, d v s i vilken ordning som punkterna ska besökas. Om startpunkt och slutpunkt är densamma blir resultatet en rutt i form av en loop/cykel, d v s som en rundtur. 3. Nätverksanalys mellan två till flera punkter med två till flera objekt I denna uppgift måste ett flertal olika faktorer tas hänsyn till. Liksom i fråga 2 rör det sig om en avancerad nätverksanalys med flertalet punkter som skall passeras. Tillägget här är att man har flera objekt, flera fordon, till sitt förfogande. Modulen skall kunna utföra en nätverksanalys baserad på flera punkter, och dessutom fördela optimala rutter till det antalet objekt som finns till förfogande. Med andra ord är inte uppgiften längre att söka efter den bästa vägen, utan att finna den totalt bästa körsträckan, utslaget på det antal objekt som är inblandade. Objekten kan antingen befinna sig på en och samma punkt eller vara utspridda på olika platser. Övriga frågeställningar Andra frågeställningar som kan dyka upp kan vara Ska var och en av dessa problem ha en egen lösning, eller kan man baka samman frågeställningarna till en större lösning?, Vilken av frågorna är viktigast, d v s vilket problem anses ha högst prioritet? Innan man kan göra något annat måste dessa frågor besvaras. En annan fråga som måste lösas är definitionen på den bästa vägen. Vilka kriterier kan ställas på uttrycket? Vad ska ingå? Vilka faktorer ska prioriteras? 7

3.2 Den Bästa Vägen Innebörden av uttrycket den bästa vägen är direkt kopplat till den information (attribut) som finns till vägarna i de olika databaserna. Vilken standard vägarna har och vilken typ av väg det är. Att svara på frågan om vad som är den bästa vägen är väldigt svårt. Svaren som ges är olika och det beror på att det som är den bästa vägen för en person behöver inte vara det för en annan. Den bästa vägen kan definieras som någon av följande punkter: Den kortaste vägen Den snabbaste vägen Den minst trafikerade vägen Den rakaste vägen I detta fall skulle en kombination av samtliga punkter vara den optimala vägen d v s den bästa vägen. Två av ovan nämnda aspekter är ofta av större vikt, det är tid och sträcka. En vägd kombination av dessa ger en bra definition på den bästa vägen. En annan intressant aspekt är flödet av trafik på olika vägar. Om attributen tillåter så är även det en av de viktigare aspekter vid val av väg. Utifrån tekniska krav och användarkrav, skall en utredning ske angående vilka attribut som skall tas hänsyn till, vilka egenskaper som skall ingå i begreppet och hur stor betydelse olika attribut har. Den väg som är kortast eller snabbast är att föredra som definition för den bästa vägen. Att kombinera dessa ger förhoppningsvis ett tillfredsställande resultat, d v s en väg som inte är lång och går relativt fort. 3.3 Attributfrågor Vid transportplanering av olika slag ska man så långt som möjligt ta hänsyn till framkomligheter och hastigheter mm på en väg, för att effektivisera kostnaden och tiden för transporten. I och med detta vill man att en databas ska innehålla så mycket information som möjligt om varje objekt. Vilka attribut är viktiga När man ska välja de attribut som är av intresse för en avancerad nätverksanalysmodul måste man veta vilka attribut som är av stor vikt och vad som kan påverka resultatet och prestandan. I och med att den tänkta nätverksalgoritmen ska fungera på ett vägnät för transporter och trafikvägledning, så bör de attribut som normalt kopplas till allmän väginformation finnas med. Nedan följer en lista på de attribut som man bör ta hänsyn till. Vägtyp Motorväg, grusväg, landsväg, allmän väg, enskild väg mm Enkelriktat, huvudled, skilda körfält Vägbredd Antal körfält, körfältsbredd, väggren Hastighet 8

Hastighetsbegränsningar Flöden Hinder Farthinder, broar (broöppning), färjor Stopplikt, väjningsplikt Fri höjd Signaler & signaltyper 4-vägskorsning, T-korsning, rondeller, övergångsställe Belastning Maxtyngd, broar Typ av last Bred last, farlig last, lång last Fordonstyp Personbil, lastbil, vägredskap mm Tid Lasta, lossa Raster Adresser Attributen kan delas upp i två grupper, de som ska ingå i modulen och de som kan tas hänsyn till utanför. Om man tar hänsyn till attribut utanför modulen skulle det innebära en minskad datamängd som skulle underlätta arbetet för algoritmen. Nedan följer en lista på de attribut som anses vara av sådan karaktär att det är bättre att utelämna dem från modulen, att lösa dem innan modulen anropas: Vägtyp Vägbredd Fordonstyp Typ av last Belastning Hinder Dessa attribut ska man kunna ta hänsyn till utanför modulen. Beroende på vilken typ av objekt det är medför det olika kriterier man måste ta hänsyn till. Man gör helt enkelt ett urval ur databasen beroende av vilken typ av objekt som valts att användas. Hur ska attributen prioriteras? De attribut som är av väsentlig betydelse är de attribut som står i direkt anknytning till fordonstypen, dess last och till uttrycket bästa vägen (se 3.2). Vägtyp, hastighet, belastning, vägbredd, restriktioner om farlig transport, axeltryck och hinder är några som måste ingå i den prioriteringen. 3.4 Övriga frågor En övrig fråga som återstår är om man till vägdatabasen kan koppla en annan typ av databas för att komplettera attributlistan med övrig information som kan anses vara viktig. På detta sätt skulle man kunna anpassa databasen till det ändamål som den är tänkt att användas till. Databaser av denna karaktär skulle kunna vara, befolkningsdata, vegetationsdatabas, ledningsdatabas mm. 9

4 Algoritmer 4.1 Vad är en algoritm? Att förklara vad en algoritm är är inte en alltför lätt sak. Peter Lewerin som är lärare vid Vadsbogymnasiet i Mariestad som har gjort en mycket bra och förståerlig förklaring till detta. Han förklarar en algoritm på följande sätt: En algoritm är en beskrivning av en metod för att automatiskt lösa ett problem. En algoritm är definierad som en ordnad, ändlig följd av elementära och entydiga operationer som löser en klass av uppgifter. I sammanhanget betyder: Ordnad: att den följd i vilken operationerna inträffar är bestämd. I en algoritm vet man alltid vilken operation som ska utföras först, och vilken operation som ska utföras härnäst. Ändlig: Elementära: Entydiga: Löser: att algoritmen alltid kommer till ett slut. att man gör en sak i taget. att det aldrig är någon tvekan om vad en viss operation innebär. att algoritmen resulterar i ett resultat som relaterar till den givna uppgiften. Resultatet kan vara framgång eller misslyckande, men det finns alltid, och är alltid giltigt. Klass av uppgifter: att metoden kan användas för att lösa varje praktisk situation där ett problem av den aktuella formen föreligger. När en algoritm väl är konstruerad kan den genomföras automatiskt utan att man behöver använda någon form av intelligens eller omdöme. Detta gör dem mycket tilltalande i datorsammanhang. En algoritm för en klass av uppgifter medger att varje given uppgift ur denna klass kan lösas enbart med de operationer som algoritmen anger, utan att den människa eller maskin som arbetar med uppgiften behöver veta hur uppgiften ska lösas. (ref. Algoritmer 1) 4.2 Travelling Salesman Problem De algoritmer som här är intressanta är så kallade nätverksalgoritmer. Det problem som algoritmen eller algoritmerna är ämnad att lösa (se 3.1) är mer känt under namnen The Travelling Salesman Problem (TSP). TSP syftar på följande: En handelsresande ska besöka X antal städer. Han befinner sig i staden Y och skall avsluta sin resa i staden Z. Hur ska hans resväg se ut för att vara så optimal som möjligt? 10

Det finns en hel del algoritmer som försöker lösa detta problem, men idag finns det ingen algoritm för en exakt lösning. Lösningen till TSP är ett NP-komlett problem (NP, nondeterministic algorithm in polynomial time), d v s det finns inte någon exakt lösning på problemet som man idag känner till. Orsaken är att lösningen tar exponentiellt lång tid och mycket minne i förhållande till storleken på problemet. För att undvika detta har man räknat fram olika approximativa metoder. Man har med andra ord funnit algoritmer som närmar sig en lösning på problemet, men bara närmar sig och löser därmed inte problemet med en optimal lösning. Beroende på hur approximationen är gjord tar det olika lång tid att lösa det och resultatet kan variera kraftigt. (ref. TSP) 4.3 Vilka algoritmer finns att tillgå? I detta kapitel kommer flertalet algoritmer (som kan användas föra att ge en approximativ lösning på TSP problemet) att beskrivas och jämföras med varandra. En del av algoritmerna som tas upp beskrivs först i korthet och därefter ges och beskrivs ett praktiskt exempel på hur algoritmen arbetar. Till exemplen finns en bild (se bilaga 1) över det nätverk (länk-nodsystem) som används. Det kommer även att beskrivas optimeringsmetoder för att skapa bättre rutter. De algoritmer som studeras är av två olika slag. Den första gruppen beräknar den bästa vägen mellan två kända punkter (Dijkstras algoritm och A*-algoritmen). Den andra gruppen bygger ett minimalt spännande träd mellan flera punkter (Kruskals algoritm och Prims algoritm). 4.3.1 Dijkstras algoritm Den här typen av algoritm löser ett problem mellan två punkter. Denna algoritm arbetar baklänges, börjar med ruttens slutnod men om det är samma som startnoden är det ingen skillnad. Det leder till att slutnoden för rutten blir algoritmens startnod. Algoritmen läser av de närmast liggande noderna vilka är länkade med startnoden, jämför dem och väljer den närmsta noden, d v s den länk med minst motstånd. Därefter sker samma sak igen, men nu har algoritmen fler noder att välja på. Den har de noder som är kopplade till startnoden och de noder som är kopplade till noden som precis valdes. Algoritmen provar alla vägar och spar valen i så kallade vägvalslistor. Den lista som först når målet d v s startnoden sparas. I och med att algoritmen söker igenom samtliga möjliga vägar tar det lång tid att få fram den kortaste vägvalslistan. Exempel: Se bilaga 1 för figur. Startpunkten är F och slutpunkten är A, det ger att algoritmens beräkningar utgår från A. 1. Det två närmaste punkterna är B och D. Motstånd till B är 4 och till D är 1. Algoritmen väljer A-D. 2. Åter kontrolleras de närmaste punkterna och sträckan till dessa. Denna gång finns det 3 punkter, B, E och G. Till punkt G och E blir sträckan A-D + D-E (el. D-G). Sträckan A-B är kortast och väljs. Nu finns det två vägar/listor, A-D och A-B. Alla vägar/listor sparas tills målet är nått. 3. Vid nästa val finns C, E och G. Sträckan A-B + B-C är kortast. C väljs. 4. I nästa val finns två sträckor som är lika långa, C-J och B-E, men det blir B-E som väljs på grund av att A-B + B-E är mindre än A-B + B-C + C-J. 5. I steget efter väljs däremot sträcka C-J. 11

6. De tre nästa valen är D-G, J-I och därefter G-H. 7. Till slut väljs sträcka I-F. Här når algoritmen sitt mål, då spar den den väg/lista som först nådde målet, nämligen A-B-C-J-I-F (4+2+12+7+11=36). (ref. Algoritmer 2) Bild 4.1: Bilderna föreställer algoritmens val i exemplet ovan. För större och mer utförlig bild, se Bilaga 1. 4.3.2 A* (A-stjärna) algoritmen Den här algoritmen är som den förra, en algoritm som löser ett problem mellan två punkter. Algoritmen A* (uttalas A-stjärna) är en heuristisk algoritm. Heuristiska algoritmer skulle kunna förklaras som en tumregelsalgoritm, d v s den antar en lösning och försöker följa den. Till sättet att arbeta är A* väldigt lik Dijkstras algoritm. A* utgår från en punkt och väljer den sträcka som är kortast att färdas precis som Dijkstras. Det som dock skiljer dem åt är att A* hela tiden söker sig mot målet i sitt vägval och Dijkstras däremot söker i alla riktningar tills den nått slutpunkten. A* antar en väg mellan start- och slutpunkten, en hypotetisk väg. Denna väg är oftast fågelvägen mellan start- och slut-punkten. Utifrån den försöker A* då att nå målet utan att avvika för mycket från sitt antagande. Man kan med andra ord säga att A* är medveten om riktningar och riktningar i förhållande till start-slut-punkt. Om algoritmen märker att en väg bär iväg långt från sitt antagande så väljer den att inte forska vidare där. 4.3.3 Kruskals algoritm Till skillnad från de två föregående algoritmerna så löser Kruskals algoritm ett problem där flera punkter är inblandade. Kruskals algoritm är en greedy algoritm (snål algoritm). Det innebär att den byggs upp steg för steg och hela tiden tar det billigaste alternativet, d v s det lägsta motståndet. Denna typ av algoritm försöker finna ett minimalt spännande träd (minimum spanning tree). Ett minimalt spännande träd är en lösning i ett nod-länk-system där valda noder nås utan att en väg används två gånger eller att loopar/cykler skapas (loop/cykel = att det bildas ringar/öglor i nätverket). Kruskals algoritm skapar med andra ord en grenstruktur. Algoritmen söker hela tiden ut de punkter som ligget närmast varandra och detta medför att punkter sammanlänkas. Den fortsätter på samma sätt tills problemet är löst, d v s tills alla valda punkter är passerade och ett slutet nät har skapats. Forskare inom området har matematiskt bevisat att det inte finns någon loop/cykel som är mindre än ursprungsträdet. Det ger att om man nu drar en linje runt sitt träd är sträckan alltid mindre än sträckan hos dubbla bästa loop/rutt. Bild 4.2: En förenklad förklaring om hur Kruskals algoritm fungerar. 12

Exempel: Se bilaga 1 för figur. 1. Algoritmen söker ut den länk med det minsta motståndet, d v s den kortaste sträckan. I detta fall är det A-D. 2. I nästa steg söker den efter kortaste sträckan igen. Men denna gång är A-D borträknad. Den finner B-C. Nu har algoritmen två fristående träd. 3. Algoritmen fortsätter och finner A-B, vilken binder samman de två träden. Därefter finner den I-J vilket åter gör att vi har två träd. 4. Sträckan G-H påträffas och därefter I-F. Nu finns tre fristående träd. F-J FÅR inte väljas, även om den skulle vara på tur. Om F-J väljs skapas nämligen en loop/cykel, F-J-I. 5. I nästa steg finner den både C-J och B-E. Dessa är lika långa och ingen loop bildas av någon, så båda sträckorna väljs. 6. Med sträckan D-G avslutas algoritmen. Alla träd är sammankopplade och alla punkter nådda UTAN att någon loop/cykel skapats. Bild 4.3: Bilderna föreställer algoritmens val i exemplet ovan. För större och mer utförlig bild, se Bilaga 1. För pseudokod se bilaga 3. (ref. Algoritmer 2) 4.3.4 Prims algoritm Även Prim s algoritm löser ett problem med flera punkter. Liksom Kruskals algoritm skapar Prims algoritm ett minimalt spännande träd (minimum spanning tree). Prims algoritm påminner mycket om hur Dijkstras algoritm arbetar för att finna den kortaste vägen och hur Kruskals algoritm tänker. Prims algoritm arbetar från en bestämd nod (startnod eller slutnod) och bygger därifrån sitt träd, men på det sätt Dijkstras algoritm bygger sitt träd. Skillnaden mellan Kruskals algoritm och Prims algoritm är att i Kruskals algoritm ser indata som en skog, d v s beaktar alla träden samtidigt. Den kortaste sträckan mellan två träd länkas samman tills ett minimalt spännande träd har skapats. I Prims algoritm ses indata som fristående träd. Varje sammanlänkning sker till det träd vars sträcka är kortast till de tidigare valda noderna. (ref. Algoritmer 2) 4.3.5 Lin & Kernighans förbättringsmetod Lin & Kernighans förbättringsmetod är en metod för att optimera eller förbättra redan färdiga rutter. Med andra ord måste man redan ha beräknat fram en tänkbar rutt med någon typ av algoritm för att man ska kunna använda sig av denna metod. Metoden arbetar med hela den rutt som den blivit tilldelad. Den tar X antal sträckor och byter ut dem mot Y antal sträckor som inte finns i rutten men som gör att rutten förminskas/kortas, optimeras. Metoden fortsätter på detta vis att byta ut sträckor i rutten ända tills alla möjliga utbyten är gjorda. Då sägs lösningen vara så optimal som Lin & Kernighans metod kan göra den. 13

Lin & Kernighans metoden väljer de sträckor som ska bytas ut på följande sätt: Metoden väljer en godtycklig punkt i rutten och arbetar utifrån den. Från den valda punkten utgår två sträckor som ingår i rutten. En av dessa, spelar ingen roll vilken, väljs för att bytas ut. Metoden väljer nu en till punkt som den sammanlänkar med den förstvalde punkten. Nu har ett byte skett. Den nya sträckan skapar ett hål i grundrutten och dessutom skapas en liten rutt. Rutten får formen av en sexa. Nu skall en till sträcka väljas ut för utbyte. Den sträcka som väljs är den sträcka som är kopplad till den nya punkten och ingår i den lilla rutten (i sexan). Härifrån arbetar metoden lite annorlunda. Metoden jämför alla tänkbara val med varandra och med den valda sträckan som ska bytas. Kravet som ställs på ett byte är att det ska ske en lokal vinst, d v s att den nya sträckan blir kortare än den befintliga. Metoden fortsätter på detta vis tills en rutt skapats. Den nya rutten jämförs med den gamla, och är den kortare sparas den nya. Nu sker samma procedur igen men på den nya rutten. Lin & Kernighan fortsätter på detta sätt tills rutten är färdigoptimerad. Det bästa skulle vara att byta ut alla sträckor samtidigt och prova sig fram, men kostnaden/tiden skulle vara för stor för det. Antalet beräkningar som är tvungna att göras vid ruttoptimering är n n där n är antalet sträckor som ska bytas ut. För pseudokod se bilaga 3. (ref. Algoritmer 3) Bild 4.4: Början av Lin & Kernighan. I mitten ser man sen så kallade sexan. 4.4 För och nackdelar med de olika algoritmerna De algoritmer vi tittat på är av två olika slag. Den första gruppen beräknar den bästa vägen mellan två kända punkter (Dijkstras algoritm och A*-algoritmen). Den andra gruppen bygger ett minimalt spännande träd mellan flera punkter (Kruskals algoritm och Prims algoritm). De två algoritmerna i den första gruppen är väldigt lika varandra. De båda arbetar mellan två punkter och bygger upp listor (vägvalslistor) där den lista som först når slutet anses vara den optimala vägen. Det som skiljer dem åt är att A*-algoritmen är medveten om riktningar och försöker hela tiden att arbeta mot slutpunkten då Dijkstras algoritm arbetar i alla riktningar. Överlag kan man säga att Dijkstra levererar en säkrare svar är A* men att A* arbetar mycket fortare är Dijkstra. De två algoritmerna i den andra gruppen är inte lika besläktade som A* och Dijkstra är. De båda skapar spännande träd och de båda arbetar med flertalet punkter, men arbetssätten skiljer sig markant åt. Kruskals algoritm bygger minimalt spännande träd genom att arbeta helt fritt, d v s att vara oberoende av tidigare valda länkar medan Prims algoritm utgår från en startpunkt och hela tiden bygger vidare på trädet direkt på stammen, d v s det redan befintliga trädet. Prims algoritm arbetar snabbare är Kruskals algoritm men levererar inte ett lika säkert svar som Kruskals algoritm gör. Det svar som Kruskals algoritm levererar är det bästa minimalt spännande träd som går att skapa. 14