1 \documentclass[a4paper,
12pt
]{article
}
2 \usepackage[swedish
]{babel
}
3 \usepackage[utf8
]{inputenc}
8 % Include pdf with multiple pages ex \includepdf[pages=-, nup=2x2]{filename.pdf}
9 \usepackage[final
]{pdfpages
}
10 % Place figures where they should be
15 \def\preTitle{Laboration
2}
16 \def\kurs{Artificiell Intelligens med inriktning mot kognition och
19 \def\namn{Anton Johansson
}
20 \def\mail{dit06ajn@cs.umu.se
}
21 \def\namnett{Victor Zamanian
}
22 \def\mailett{dit06vzy@cs.umu.se
}
24 \def\handledareEtt{Dennis Olsson, denniso@cs.umu.se
}
25 \def\inst{datavetenskap
}
26 \def\dokumentTyp{Laborationsrapport
}
32 \begin{tabular
}{@
{}p
{\textwidth}@
{}}
33 UMEÅ UNIVERSITET
\hfill \today \\
34 Institutionen för
\inst \\
41 \huge{\textbf{\kurs}} \\
50 \large{\textbf{Handledare
}}\\
51 \mbox{\large{\handledareEtt}}
57 \lhead{\namn,
\mail \\
\namnett,
\mailett}
67 \pagenumbering{arabic
}
70 Labbspecifikation finns att läsa på:\\
71 \verb!http://www.cs.umu.se/kurser/
5DV063/HT08/lab2.html!
73 \section{Användarhandledning
}
74 Programmet körs från dit06***/ait/lab2, där *** är antingen ''ajn''
75 eller ''vzy'', genom att ange följande kommando:
78 java -cp lib/jdom.jar:bin/prod SearchInterface MySearcher <sökväg till karta> <metod>
[startnod
[slutnod
]]
81 Om varken startnod eller slutnod anges efterfrågas de av
82 programmet. Om en (
1) nod anges som parameter antas den vara startnod
83 och då efterfrågas bara slutnod av programmet. Annars, om både
84 startnod och slutnod anges körs vald metod (algoritm) för att hitta
87 \section{Metod- och Algoritmbeskrivning
}
89 \subsection{\verb!public void setMap (File mapFile)!
}
90 Denna metod läser in en karta i form av en XML-fil och representerar
91 den i en graf. Implementationen av grafen är en modifierad version av
92 Graph.java som vi använde i kursen Datastrukturer och Algoritmer.
94 När XML-filen lästs in och tolkats som ett DOM-dokument skaffas alla
95 noder fram ur detta och sparas i grafen som objekt av typen
96 \verb!GraphNode!. Dessa objekt innehåller x- och y-koordinater för
97 noden och ett ''ID'' vilket är namnet på platsen på kartan som noden
98 representerar. Sedan gås alla noder igenom ännu en gång för att lägga
99 till vägar och hastighetsbegränsningar mellan dem. Metoden skriver
100 även ut felmeddelanden om filen
1) inte hittas,
2) inte kan läsas av
101 någon annan anledning,
3) om det är något fel på innehållet i filen
102 och vilket felet är, och
4) om någon av koordinaterna för någon nod
103 inte kan tolkas som ett heltal. Programmet avslutas om något av
104 ovanstående fel uppstår.
106 \section{Begränsningar
}
107 \section{Reflektioner
}
108 \section{Testkörningar
}
110 * Angående att vi måste loopa igenom alla noder två gånger:
111 Detta beror på att det inte går att lägga till en väg mellan en
112 nod och en nod som inte ännu existerar i minnet. Detta skulle
113 kanske kunnat lösas genom att man faktiskt skapar den nod som inte
114 finns och lägger till information om nodens position när man
115 kommer till de noderna senare när man kommer till den noden i
116 DOM-dokumentet. Metoder hade då behövt skrivas för att sätta
117 koordinaternas värden för en nod. Vi valde att gå igenom noderna
118 två gånger i stället därför att det kändes lättast då vi skrev
124 \pagenumbering{roman
}