• No results found

Analys och design av nätverksmodul

N/A
N/A
Protected

Academic year: 2021

Share "Analys och design av nätverksmodul"

Copied!
40
0
0

Loading.... (view fulltext now)

Full text

(1)

Carl Mikael Almgren, Anna Hallbygård

Analys och design av nätverksmodul

EXAMENSARBETE

(2)

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

(3)

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.

(4)

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.

(5)

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

(6)

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

(7)

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

Lokaltrafik: 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.

Försvaret: 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

(8)

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.

(9)

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)

(10)

2 Exempel på befintliga programvaror inom GIS

I dagsläget finns flertalet programvaror som används inom området. De flesta GIS-programvaror 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 ODBC1

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

(11)

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.

(12)

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 ASCII-filer 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

(13)

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?

(14)

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

(15)

• 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

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.

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.

(16)

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: att algoritmen alltid kommer till ett slut.

Elementära: att man gör ‘en sak i taget’.

Entydiga: att det aldrig är någon tvekan om vad en viss operation innebär.

Löser: 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?

(17)

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-nod-system) 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.

(18)

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)

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.1: Bilderna föreställer algoritmens val i exemplet ovan. För större

och mer utförlig bild, se Bilaga 1.

Bild 4.2: En

förenklad förklaring om hur Kruskals algoritm fungerar.

(19)

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.

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

Bild 4.3: Bilderna föreställer algoritmens val i exemplet ovan. För större och mer utförlig bild,

(20)

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 nn där n är antalet sträckor som ska bytas ut.

För pseudokod se bilaga 3. (ref. Algoritmer 3)

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.

Bild 4.4: Början av Lin & Kernighan. I mitten ser man sen så kallade ”sexan”.

(21)

4.5 Val av algoritm

För att tillgodose de krav som ställs på denna nätverksmodul och för att kunna besvara de tre grundfrågor behövs en kombination eller ett samspel mellan flera av de nämnda algoritmerna. Till frågeställning nummer ett (se 3.1) ses A*-algoritmer alternativt Dijkstras algoritm som den mest lämpliga. De båda algoritmerna är specialiserade på att ge svar på frågan om bästa väg mellan två kända punkter. Vilken som används har mycket att göra med vad man vill få, snabbhet eller exakthet. När man kommer till mer avancerade analyser som i de två resterande grundfrågorna (se 3.1) har det visat sig att den bästa lösningen är en kombination av metoder och algoritmer. Den lösning som i detta fall är att föredra är att skapa ett minimalt spännande träd (se 4.3.3). En algoritm som gör detta bra är Kruskals algoritm, men den skapar ett träd som besöker alla punkter i det nätverk som algoritmen får att arbeta på. Det är ett problem som måste lösas och en bra lösning är att skapa ett virtuellt nätverk, ett nät som bara har de punkter som ska besökas och de länkar som knyter dem samman.

Detta virtuella nät skapas enklast med hjälp av en annan algoritm, det är A* eller Dijkstras algoritm. Algoritmen får till uppgift att beräkna kortaste vägen mellan alla punkter som ska besökas, d v s den tar två punkter i taget och beräknar bästa väg där emellan och tar därefter nästa två punkter och gör samma beräkning. Först när alla sträckor mellan punkterna är beräknade är denna del avklarad. Av dessa sträckor och punkter skapar man sedan det virtuella nätverket används i Kruskals algoritm. Efter att ha fått ett minimalt spännande träd för det intressanta punkterna kan man gå vidare till nästa delmoment vilket är att skapa bästa rutt.

Den enklaste rutten är att följa det nu skapade trädet. Det innebär att man färdas varje sträcka två gånger. Men genom att utnyttja Lin & Kernighans förbättringsmetod som går igenom rutten och försöker finna genvägar kan man optimera sin rutt avsevärt.

Angående den tredje grundfrågeställningen där det skall tas hänsyn till flera objekt måste en ruttindelning ske. Genom att utnyttja A*-algoritmen kan punkterna som ska besökas delas upp på ett lätt och smidigt sätt. Man beräknar helt enkelt alla sträckorna från fordonen till alla de punkter som ska besökas. Efter detta fördelas punkterna till de olika fordonen genom att jämföra avstånden till de olika objekten, d v s alla punkter som är belägna närmast ett av objekten tillhör då dess rutt. Därefter behandlas varje ”delgrupp” som en egen rutt och optimeras oberoende av de andra.

(22)

5 Geografiska databaser

Innan val av en databas sker måste man se till att relevanta attribut finns med (se 3.3). För att kunna använda databasen till att utföra nätverksanalyser måste den ha fullständig topologi2, dvs. det ska vara ett sammanhängande länk3 - nod nätverk. Om topologi saknas eller är bristfällig kan nätverksanalyser ej genomföras. En viktig del av databasen är dess fullständighet, d v s hur mycket av de svenska vägnätet (totalt ca 420 800 km väg) som finns med i databasen. Dessutom är det av yttersta vikt att databasen ajourhålls så att det data som finns i databasen hela tiden är aktuellt.

Databasen bör, oberoende om den är rikstäckande eller endast över ett begränsat område som t ex en tätort, innehålla så många attribut som möjligt om alla förekommande objekt i

databasen. Information om vägtyp, vägbredd, hastighetsbegränsning och trafikflöde är några av de attribut som bör finnas med. Detta på grund av att man ska kunna utföra så exakta analyser som möjligt med hänsyn till vilken typ av fordon som ska användas.

I dagens läge finns det inte många databaser som klarar av att uppfylla alla tidigare nämnda attribut som nämns i 3.3. Den/de databaser som till slut väljs ska naturligtvis uppfylla så många av dessa som möjligt.

5.1 Vägdatabaser

De databaser som är intressanta att studera närmare för denna typ av nätverksmodul är vägdatabaser i vektorformat över hela Sverige och över de större tätorterna.

Det finns många olika producenter av vägdatabaser, både statliga och privata företag. Bland de största producenterna av databaser som valts att studera närmare är följande:

• Lantmäteriverket • Blå kartans vägar • Tätort 2000 • Vägverket • Vägdatabanken • Nationell vägdatabas (NVDB)4 • Telia InfoMedia • GeoTätort 2.0 • Atlas

2 Beskrivning av hur geografiska objekt ansluter eller angränsar till varandra. 3 En länk har en definierad riktning och startar och slutar i noder.

(23)

5.1.1 Blå kartans vägar

Blå kartans vägar är en rikstäckande vägdatabas i rikets koordinatsystem, RT 90 2,5 gon V, som innehåller den blåa kartans vägar i vektorformat. Databasen har samma indelning som den Blå kartan, d vs storrutor om 50*50 km och omfattar ca 200 Mb.

Databasen är uppbyggd av länkar och noder vilket innebär att det finns topologi, d v s att väg-och järnvägsnätet är sammanhängande inom väg-och mellan baserna. Data är insamlat via

digitalisering av Blå kartan (1:100 000) och Topografiska kartan (1:50 000). Detta medför ett punktmedelfel i databasen på 15 – 20 m (kan i vissa delområden uppgå till 150 m på grund av kartografisk generalisering).

På grund av insamlingsmetoden ligger databasen i ett skalområde på ca 1:100 000 d v s att denna skala är lämpligast för presentationer av Blå kartans vägar.

Ajourhållningen av de statliga allmänna vägarna i denna databas görs av Vägverket ca två gånger per år. Övriga vägar ajourhålls i samarbete med att den tryckta kartan kontrolleras och uppdateras.

Databasen kan levereras i olika dataformat så som KF85-, ARC/INFO-, MapInfo- eller ASCII-format.

Databasen innehåller följande:

• Allmänna vägar • Enskilda vägar • Stigar • Vandringsleder • Järnvägar • Järnvägsstationer

De stigar och vandringsleder som finns är dock ej nätverksbildande. Attributdata som finns kopplade till databasens vägar är :

• Vägnummer för Europavägar, riksvägar och statliga vägar

• Bärighetsklass för både statliga och kommunala vägar

• Information om svängrestriktioner • Symbolriktning • Trafikriktning • Ajourhållningsuppgifter • Planskild korsning • Geometrisk lägesnoggrannhet

För- och nackdelar med databasen:

+ Rikstäckande − Stora geometriska fel i vissa områden

+ Bra attribut

+ Olika dataformat

+ Bra ajourhållning

(24)

5.1.2 Tätort 2000

Tätort 2000 innehåller ca 300 av Sveriges tätorter5 i vektorformat. Vissa av tätorterna är sammanhängande och i övrigt kan man koppla ihop Tätort 2000 med Blå kartans vägar för att få en heltäckande nationell vägdatabas. Data till databasen är insamlat genom digitalisering (i skala 1:10 000 – 1:20 000) och fotogrammetrisk mätning vilket innebär en

lägesnoggrannhet på ± 10m. Tätort 2000 ligger i rikets koordinatsystem,

RT 90 2,5 gon V. Databasen uppdateras årligen. Databasen säljs per tätort och levereras i dataformat som ARC/INFO, ArcView och MapInfo.

Databasen innehåller följande :

• Markanvändning • Offentliga byggnader • Vägnät • Spår • Idrottsplatser • Hydrografi

Attributdata som finns till databasens vägar är:

• Vägtyp

• Gatunamn

• Adressuppgifter

• Vägklass

• Vägnummer

• Nivå (under - och överfart)

• Längd på delsträckor

• Tunnlar

För- och nackdelar med databasen:

+ Kan kopplas till Blå kartans vägar − Ej rikstäckande

+ Bra ajourhållning

+ Olika dataformat

(25)

5.1.3 Vägdatabanken (VDB)

VDB är vägverkets vägdatabas som innehåller vägnätsdata av olika slag. Koordinatsystemet som används är rikets nät, RT 90 2,5 gon V i plan och RH 70 i höjd.

Databasen är rikstäckande och innehåller det statliga vägnätet som motsvarar ca 98 000 km väg. Det motsvarar ca 24% av det totala vägnätet i Sverige. VDB täcker hela det statliga vägnätet och en del av det statskommunala, för att binda ihop det statliga nätet och bilda fullständig topologi. Nätet är uppbyggt av noder och länkar.

Insamlingsmetoden är geodetisk - och fotogrammetrisk mätning som medför bra noggrannhet och databasen lämpar sig därmed bäst att presenteras i en skala på ca 1:10 000.

Databanken ajourhålls genom regelbundna (varje vecka) kontroller av vägnätet. VDB finns i dataformat som: ARC/INFO, MapInfo och KF85.

Databasen innehåller:

• Vägar

• Vägkorsningar

Attributdata som finns till databasens vägar är:

• Vägtyp (motorväg, motorled, vanlig väg)

• Vägnummer

• Vägbredd

• Slitlager, vilken typ av beläggning vägen har

• Hastighet • Enkelriktningar • Lokala trafikföreskrifter • Bärighetsklass • Järnvägskorsningar • Brolängd • Omkörningsförbud • Stigningsfält • Trafikflöde

• Vägkategori (europaväg, riksväg, landsväg mm)

• Vilken inmätningsmetod som använts

För- och nackdelar med databasen:

+ Många attribut − Dålig fullständighet

+ Höjddata

+ Mycket bra ajourhållning

+ Bra noggrannhet

+ Olika dataformat

(26)

5.1.4 Nationell vägdatabas (NVDB)

NVDB är ett nu pågående projekt mellan Vägverket, Lantmäteriverket, Svenska Kommunförbundet och skogsnäringen där det är tänkt att bygga upp en rikstäckande vägdatabas och på så sätt uppfylla behovet av en komplett databas med all tänkbar

information som behövs vid transportplanering och trafikvägledning. Som grund till NVDB kommer den redan existerande VDB och Ekonomiska kartan att användas. Enligt uppgift från Vägverkets projektledning planeras NVDB att vara färdig i slutet av år 2001.

Referenssystemet som används för NVDB är rikets koordinatsystem, RT 90 2,5 gon V i plan och RH 70 i höjd. Lägesnoggrannheten på vägnätet i plan är ± 10 m och i höjd ± 20 m. Databasen kommer att få en god kartografisk presentation vilket innebär att det ska vara lätt att orientera sig och känna igen sig när man ritar upp vägnätet.Ajourhållning ska ske på så sätt att kommuner och skogsnäring ska informera när förändringar inträffar.

Databasens innehåll:

• Statliga, kommunala och enskilda vägar

• Bussgator

• Cykelvägar

• Vägar som är avsedda för drift- och räddningsfordon

De attribut som är tänkt att ingå i NVDB är följande: För statliga och kommunala vägar:

• Vägbetäckning (vägnummer, gatunamn)

• Väghållare

• Vägfunktion (tex. riksväg, europaväg)

• Vägtyp (tex. motorväg, motortrafikled)

• Slitlager ( tex. asfalt och grus)

• Vägbredd

• Bärighet

• Hinder (tex. bro, färja)

• Hastighet

• Svängningsrestriktioner

• Trafikrestriktion (tex. Axeltryck, fordonsbredd)

Dessutom tillkommer för enskilda vägar:

• Tillgänglighet

• Linjefördröjning (olika fordons framkomstmöjlighet)

• Vändmöjlighet

• Bidrag till drift och underhåll

För- och nackdelar med databasen:

+ Många attribut − Ej färdig

+ Rikstäckande

+ Olika dataformat

+ Mycket bra ajourhållning

(27)

5.1.5 GeoTätort 2.0

GeoTätort 2.0 är en tätortsdatabas som omfattar ca 310 av Sveriges största tätorter. En tätort definieras även här enligt SCB:s tätortsavgränsningar. Den tar även med orter som är

huvudort i mindre kommuner.

Om det är mindre än 2 km emellan två tätorter så slås dessa ihop.

GeoTätort 2.0 är nu under uppbyggnad och samtliga 310 orter kommer inte att finnas klara förrän i oktober år 2000.

Data ligger i rikets koordinatsystem RT90 2.5 gon V.

Databasen lagras i ARC/INFO:s vektorformat. Uppbyggnaden av länkar och noder medför att databasen har fullständig topologi.

Data är insamlat via vektorisering av digitalt ortofoto som inte får vara äldre än ett år.

Lägesnoggrannheten inom Stockholm, Göteborg och Malmö är + 10 meter och i övriga städer är lägesnoggrannheten + 15 meter.

Den rekommenderade presentationsskalan ligger på 1:5 000 – 1:20 000.

Ajourhållning av databasen sker varje år i storstadsregionerna och vart annat år i de övriga tätorterna. Uppdateringar sker med ortofoto och fältinventering.

GeoTätort 2.0 innehåller dessutom en generaliserad kartbild i skala 1:15 000. Databasen kan levereras i ARC/INFO:s, ArcView:s och MapInfo:s vektorformat. Databasen innehåller b la:

• Vägar och gator

• Bebyggelsekvarter • Industriområden • Offentliga byggnader • Grönområden • Vattendrag • Järnvägar • Tunnelbanor • Spårvägar • Text • Symboler

Attribut som finns till vägar är b la:

• Vägnamn, vägbetäckning

• Adressnumer

• Vägtyp

• Väglängd

• Av- och påfart

• Svängningsrestriktioner

• Enkelriktningar

• Planskilda korsningar

(28)

För- och nackdelar med databasen:

+ Olika dataformat − Ej färdig

+ Många attribut − Mindre bra ajourhållning inom vissa

+ Bra lägesnoggrannhet tätorter.

+ Bra ajourhållning av vissa tätorter.

(ref. Telia InfoMedia)

5.1.6 Atlas

Atlas är en rikstäckande databas som innehåller det allmänna vägnätet, orter med fler än 50 invånare och i viss mån även de enskilda vägarna. Databasen är uppbyggd med länkar och noder som skapar fullständig topologi. Atlas ligger i rikets koordinatsystem RT 90 2,5 gon V. Data är insamlat via digitalisering av befintliga vägkartor och tolkning av sattelitbilder. Presentationsskalan ligger mellan 1:100 000 och 1:450 000. Uppdateringar sker i samarbete med vägverket omkring en gång per år.

Vägnätet har en noggrannhet på ± 200 m.

Lämplig presentationsskala för Atlas är 1:100 000 eller mindre.

Atlas kan kopplas samman med GeoTätort 2.0 databasen och på så sätt få en rikstäckande vägdatabas.

Atlas kan levereras i dataformat som: ARC/INFO, MapInfo och ArcView.

Databasen innehåller b la:

• Allmänna vägar • Enskilda vägar • Järnvägar • Symboler • Text • Hydrografi

• Kommun och länsgränser

Attribut som finns till vägar är b la:

• Vägtyp

• Längd

• Vägnummer

För- och nackdelar med databasen:

+ Bra ajourhållning − Nästan inga attribut

+ Rikstäckande − Dålig fullständighet

− Dålig lägesnoggrannhet (ref. T-Kartor, Telia Infomedia)

(29)

5.2 Val av databas

Det som krävs vid val av databas för att överhuvudtaget kunna utföra en nätverksanalys är, som nämnts tidigare, att databasen har fullständig topologi. Detta krav uppfylls av samtliga databaser som studerats så utifrån den punkten kan ingen slutsats eller beslut tas.

Beslut om vilken/vilka databaser som anses vara de mest lämpliga är med utgångspunkt ifrån vilken geografisk täckning som finns, vilka objekt som finns och vilka attribut som är

kopplade till objekten. För att en databas ska hållas med aktuella data bör den uppdateras minst en gång per år.

Den/de databaser som, utifrån de ovanstående kriterierna, anses vara den mest lämpade, och som vi därmed rekommenderar, för den här nätverksmodulen är en kombination av Blå kartans vägar, för att få ett rikstäckande vägnät, och Tätort 2000, för att få en större detaljrikedom inom större städer och tätorter. De båda databaserna innehåller många

väsentliga attribut för att tillgodose en hel del av de uppsatta kraven i 3.3. För att komplettera med ännu flera attribut så att samtliga krav som satts upp i 3.3 ska uppfyllas så borde delar av VDB även inkluderas.

Slutsatsen är att hela Blå kartans vägar och Tätort 2000 ska användas och endast delar av attribut ur VDB kan användas som komplettering.

(30)

6 Design av modulen

Innan man sätter igång att bygga denna nätverksmodul måste man vara på det klara med hur den ska vara uppbyggd, hur den ska vara designad. Med design och utseende menas att beskriva hur det är tänkt att modulen ska fungera, hur flödet skall ske och vilken

funktionalitet varje delprocess ska ha. Alla tänkbara alternativ och resultat måste ha beaktats så att modulen vet exakt vad den ska göra i varje steg, vilken turordning varje delprocess ska ha och hur alla val skall ske.

6.1 Modulens olika delar

För en översiktlig bild av modulens alla delar se ovan.

Nedan följer en kortare förklaring av hur de olika delarna är tänkta att fungera.

Indata

Den information som skickas till nätverksmodulen är indelad i två delar, en frågedel och en del innehållande data. Frågedelen innehåller den fråga man vill få svar på och den information som behövs för att besvara frågan. Med det menas att förutom själva frågan skickas även information angående objektets typ (fordonstyp), farlig last mm. Dessutom skickas de punkter med som skall besökas, och de skickas i form av koordinater. Datadelen innehåller den/de grafiska databaser man valt att koppla till modulen.

IN-Data

Bild 6.1: Flödesschema för nätverksmodul. För en

större och tydligare bild se bilaga 2.

IN-Data UT-Data 2,3 3 Förprocess A Optimering G Beräknings modul E Algoritm modul F Algoritm modul F Avstånds beräkning C Rutt-indelning D Förprocess A Selektering Områdesselektering vägselektering Viktning av länkar Rensning

Skickar bara vidare länk-nod-nätet Viktnings databas 1 Fråge indelning B Fråge indelning B Fråga 3

Bästa vägen mellan flera punkter med

flera objekt

Fråga 1

Bästa vägen mellan två punkter

Fråga 2

Bästa vägen mellan flera punkter 2

(31)

Så, indata är: 1 Referensdatabas 2 Frågeställning

3 Attribut som rör objektet 4 Punkter i koordinatform

A) Förprocess

Förprocessen delas in i delmomenten selektering, viktning och rensning.

Selekteringen sker genom att man väljer ut det geografiska område som är berört. Alla punkter som ska besökas måste finnas i urvalet, lika så en buffertzon runt alla punkterna så man får med de vägar som är av intresse. Beroende på objektstyp kommer olika vägar att selekteras. Till exempel om objektet är en hög lastbil måste man välja bort alla sträckor som innehåller låga broar eller vägar som ej tål hög belastning.

Med viktning menas att varje länk (delsträcka) och nod ges ett numeriskt värde, ett motstånd. Dessa värden ligger lagrade i en separat databas som är kopplad till viktningsprocessen. Denna viktningsdatabas innehåller attribut med ett värde, ett motstånd, likt en uppslagstabell. Alla attribut som påverkar en sökning

efter den bästa vägen (se 3.3) finns lagrade i databasen. Med andra ord innehåller databasen vad man specificerat att den bästa vägen ska vara.

Med det menas att om den bästa vägen är den snabbaste (med hänsyn till

hastighetsbegränsningar) innehåller databasen endast information om hastighet. Alla värden för de olika delsträckorna och noderna adderas och den totala sträckan mellan två noder får ett givet motstånd.

Sista momentet är att rensa datat från allt oväsentligt. Efter att ha adderat viktning till alla delsträckor är all attribut ointressant förutom själva viktningsvärdena. All annan attribut tas helt enkelt bort så att bara geometrin och viktningsvärdena finns kvar.

Bild 6.2: Förprocessens delmoment. Förprocess Selektering Områdesselektering vägselektering Viktning av länkar Rensning

Skickar bara vidare länk-nod-nätet Viktnings databas 10 7 4 5 6 4 8 5 6 7 4 3 3 2 10 7 4 5 6 4 8 5 6 7 4 3 3 2

Bild 6.3: Denna bild visar händelseförloppet i förprocessen. Selektering: Först selekteras det geografiska

(32)

B) Frågeindelning

I detta moment bearbetas frågeställningen. Beroende på vilken typ av fråga det är kommer den att ta olika väg i flödesschemat (se bilaga 2). Är det 1: bästa vägen mellan två punkter som söks, 2: bästa vägen mellan flera punkter eller är det 3: bästa vägen mellan flera punkter med flera objekt?

Det frågeindelningen gör är att identifiera typen av fråga och skickar frågan vidare med riktning beroende på frågetyp. Fråga 1 skickas till

beräkningsmodulen och fråga 2 och 3 skickas till avståndsberäkningen.

C) Avståndsberäkning

Avståndsberäkningen aktiveras då frågeställningen är av sådan karaktär att den behandlar flera punkter och ett eller flera objekt. Avståndsberäkningen beräknar avstånden mellan alla punkter med hjälp av algoritmen A*. Den tar en punkt och beräknar därifrån avstånden till alla punkter som ska besökas (se bild 6.4). Därefter tar den nästa punkt och gör samma sak. Så fortsätter avståndsberäkningen tills alla punkter blivit behandlade. Men andra ord bygger avståndsberäkningen upp ett virtuellt nätverk över de berörda punkterna där de alla är

sammanknutna. Detta görs för att skapa ett nätverk som inte innehåller några överflödiga sträckor. Ett sådant virtuellt nätverk är behövligt för att beräkna en bästa rutt när flera punkter är berörda.

Om frågan innehåller flera objekt leder det till att det blir flera rutter (en rutt per objekt). Förutom att behöva ett virtuellt nätverk för ruttberäkning behöver man också på ett smidigt sätt dela upp

besökspunkterna mellan de olika objekten. För att kunna dela in en rutt i flera mindre rutter bör man veta avstånden mellan de olika punkterna och objekten.

D) Ruttindelning

Ruttindelningen finns för att ge varje objekt en egen rutt. Varje objekt ska tilldelas en egen rutt som är helt skild från de andra objektens rutter. Här delas punkterna in i rutter beroende på hur de förhåller sig till utgångspunkten. Genom att jämföra resultaten från avståndsberäkningen kan man dela upp

punkterna mellan de olika objekten. De punkter som liggen närmast ett objekt kommer med andra ord att tillfalla detta objekts rutt. Resultatet från ruttindelningen blir flera rutter som skickas vidare till

beräkningsmodulen. Fråge indelning Avstånds beräkning Rutt-indelning Bild 6.4: De fyllda punkterna symboliserar objekt och de tomma är punkterna som ska besökas. Om frågan bara behandlar ett objekt kan de fyllda punkterna ses som ofyllda.

Bild 6.5: Visar hur

punkterna fördelas mellan objekten.

(33)

UT-Data

E) Beräkningsmodul

Det är i själva beräkningsmodulen som algoritmen och utdata från

frågeindelningen och förprocessen möts. Det är här som den ”bästa vägen” beräknas fram med utgångspunkt från frågan. Med utgångspunkt från frågans karaktär hämtar beräkningsmodulen en eller flera algoritmer från algoritmmodulen och beräknar fram ett svar på frågan.

Utdata från beräkningsmodulen är i form rutter, d v s lämpligaste färdväg mellan ett antal punkter.

F) Algoritmmodul

Algoritmmodulen håller reda på vilka algoritmer som ska användas till de olika typerna av beräkningar. De algoritmer som är aktuella är A* och

Kruskals algoritm, men flera algoritmer kan läggas till. A* algoritmen används för två olika beräkningar. Den används i beräkningsmodulen för att lösa frågeställning där man vill ha bästa vägen mellan två punkter och den används i avståndsberäkningen för att beräkna avståndet mellan objekt och punkter. Kruskals algoritm används endast av

beräkningsmodulen då man vill beräkna en rutt där det är flera punkter inblandade.

G) Optimeringsmodul

För att finna den ”bästa” vägen så utförs en optimering av resultatet från beräkningsmodulen. Den försöker finna en bättre lösning på rutten från beräkningsmodulen. I korthet kan man säga att optimeringsmodulen försöker finna genvägar i en skapad rutt. Metoden som används för ruttoptimering görs med Lin & Kernighans förbättringsmetod.

Utdata

Det som erhålls som utdata är i form av en koordinatlista över färdvägen mellan alla berörda punkter. Koordinatlistan innefattar varje vägval som man är tvungen att göra och turordningen som berörda punkter ska besökas. Den ska även kunna ses som en turlista eller en färdbeskrivning.

Beräknings modul

Optimering Algoritm

(34)

7 Diskussioner och Slutsatser

Bakgrunden och syftet med detta examensarbete var att undersöka möjligheterna att bygga en avancerad nätverksmodul som ska vara i form av en fristående komponent som kan användas till olika programvaror och utvecklingsmiljöer.

Denna undersökning till en kommande nätverksmodul inom GIS är endast en överblick på vad man kan studera närmare när man ska bygga en nätverksmodul. Att i detalj beskriva hur denna nätverksmodul ska se ut och hur den kommer att fungera är nästintill omöjligt med hänsyn till tidsbegränsningen på detta examensarbete. Dessutom var målet inte heller att i detalj beskriva nätverkmodulens funktion och utseende utan att inledningsvis undersöka vad som finns på marknaden i dagsläget och ta reda på med vilka databaser och algoritmer man kan skapa en avancerad nätverksmodul som uppfyller våra krav samt att ge en övergriplig beskrivning om hur den skulle kunna se ut.

Vad gäller de uppsatta kraven på attribut finns det många andra attribut som också kan

inkluderas under dessa krav, men vi har valt de mest primära. Om alla tänkbara attribut skulle räknas upp skulle listan kunna bli väldigt lång.

För att tillgodose alla attributkrav så bör flera databaser kombineras.

Själva nätverksproblemet är ett mycket komplex problem. Det finns ingen algoritm som kan lösa den här typen av nätverksproblem exakt i och med att frågeställningarna inkluderar flera punkter och flera objekt. Problemet är ett så kallat NP-komplett problem. Vid byggande av nätverksmodulen är det lämpligt att använda de algoritmerna som rekommenderats i denna rapport, Kruskals, A* och Lin & Kernighan. Med dessa algoritmer och förbättringsmetoder kan man nå ett tillfredsställande mål som vi anser vara fullt tillräckligt.

För att lösa den sista frågeställningen, där flera objekt berörs, finns det säkert andra lösningar som skulle kunna ge ett bättre resultat, d v s att rutterna skulle kunna delas in på ett annat sätt. De sätt som vi har valt att indela rutterna på är ett lätt och smidigt sätt som inte tar lång tid att genomföra. Att utelämna själva ruttindelningen från beräkningsarbetet av bästa rutt både förenklar implementeringen och kortar av beräkningstiden.

I och med att modulen ska vara en fristående komponent så kommer det att vara enkelt att koppla modulen till andra programvaror för att visualisera färdvägen på ett önskvärt sätt. Modulen levererar en koordinatlista innehållande turordningen som de olika punkterna ska besöka och varje vägval mellan dessa punkter, d v s att den levererar en komplett

(35)

8 Referenser

Teracom AB, 98-03-23

URL: http://www.teracom.se/20serv/27multi/27eposao.htm

WM-data AB, 99-05-12, Företagsinformation URL: http://www.wmdata.com/

ESRI Inc. 99-04-12 Technical Fact Sheet On MapObjects URL: http://www.esri.com/software/mapobjects/index.html

ESRI Inc. 98-07-14 Technical Fact Sheet On Arc Network URL: http://www.esri.com/software/arcinfo

ESRI Inc. 99-02-26 Technical Fact Sheet On Network Analyst ULR: http://www.esri.com/software/arcview

ESRI Inc. 99-03-23 Technical Fact Sheet On ArcLogistics Route ULR: http://www.esri.com/software/arclogistics/index.html

Route 66 © 98 Product Information ULR: http://www.route66.nl/

DPS International, Product Information On Route-LogiX Professional URL: http://www.dps-int.com/dps-sveroute.htm

TSP Review of Theory and Current Research

URL: http://www.ececs.uc.edu/~mnoschan/sale.html

Algoritmer 1

1998-05-18

URL: http://www.vadsbogymn.mariestad.se/pers/c-kurs/algoritm.html

Algoritmer 2

Cormen T, Leiserson C, Rivest R Introduction To Algorithms Sedgewick R

Algorithms in MODULA-3 John Wiley & Sons

The Traveling Salesman Problem

Algoritmer 3

(36)

GSD, 98-04-08, Allmän beskrivning Blå Kartans vägar URL: http://www.lm.se/gsd/blavag/levbv.pdf

Vägverket 1, 99-04-16 Utdrag från databaskatalogen Vägverket 2, 99-03-25 Databasbeskrivning

URL: http://www.vv.se/nvdb

Telia InfoMedia, Kravspecifikation GeoTätort version 2.0, 1998-12-09 Susann Nilsson susann.nilsson@infomedia.telia.se

T-Kartor, 07-May-98

URL: http://www.t-kartor.se/database/data.html

Christian Efraimsson (TSP, algiritmbeskrivning) d3chris@mdstud.chalmers.se

Stefan Arnborg, Professor (TSP, algiritmbeskrivning)stefan@nada.kth.se

NADA/TCS - KTH

STG handbok 167, Utgåva 1, GIS-ordboken, SIS Förlag 1996

9 Tack till

Johan Kummeneje johank@dsv.su.se

Lars Engebretsen, Doktorand vid KTH/NADA enge@nada.kth.se

Stefan Arnborg, Professor (TSP, algiritmbeskrivning) NADA/TCS – KTH Staffan Ulfsberg, Doktorand vid KTH/NADA staffanu@nada.kth.se

Anders Forsberg, Sigit anders@sigit.kiruna.se

Lotta Englund, Lantmäteriverket Gävle lotta.englund@lm.se

Vi vill dessutom passa på att tacka övriga anställda på GIS avdelningen på WM-data Försvarsdata för engagemang och vägledning.

(37)

Bilaga 1 Exempelnätverk för algoritmer

Bilden visar ett nätverk av noder och länkar. Cirklarna med bokstäver symboliserar noder (punkter) och strecken mellan cirklarna symboliserar länkar. Siffrorna visar arbetet längs länken, d v s motståndet. Kan vara sträcka, tid, flöde mm.

A B C D E F G H I J 1 22 10 66 2 76 72 4 12 21 7 74 11 33 12

References

Related documents

Om det finns anledning att anta att ett brott har begåtts på vilket fängelse kan följa, får kroppsvisitation göras på den som skäligen man misstänkas för brottet för

Författarna till denna pilotstudie anser därför det angeläget att undersöka distriktssköterskors upplevelse av deras yrkesroll och hur deras kompetens används inom

DP-algoritmer används för optimering (till exempel för att hitta den kortaste vägen mellan två punkter).. En DP-algoritm kommer att undersöka alla möjliga sätt att lösa

uppfattningen var att inspektionen haft en stor och avgörande betydelse för de förändringar som genomfördes, samt lett till ökad medvetenhet hos alla.. Arbetsmiljön

Vi tycker även att det är intressant att se hur man kan jobba och utveckla den interiöra säljmiljön och hur man kan exponera sina varor för att ge kunden en högre köpupplevelse

den här artikeln är som dess titel anger en systematisk kunskapsöversikt av vetenskapliga studier som svarar på frågan huruvida offentligt publicerad uppföljningsinformation

Utöver detta kommer det i uppsatsen redas ut hur BFNAR 2003:4 har påverkat olika intressenter samt vad i årsredovisningen som är relevant att granska för att

Men algoritm kan inte reducera drift eller offset, så därför består tillämpningen av algoritmen av två delar, ett högpassfilter som används för att lösa problemet med drift