%https://ics.uci.edu/~eppstein/pubs/Epp-SJC-98.pdf% \documentclass[a4paper,10pt,ngerman]{scrartcl} \usepackage{babel} \usepackage[T1]{fontenc} \usepackage[utf8x]{inputenc} \usepackage[a4paper,margin=2.5cm,footskip=0.5cm]{geometry} \usepackage[section]{placeins} % Die nächsten vier Felder bitte anpassen: \usepackage{lastpage} % Kopf- und Fußzeilen \usepackage{scrlayer-scrpage, lastpage} \setkomafont{pageheadfoot}{\large\textrm} \lohead{\Aufgabe} \rohead{Team-ID: \TeamId} \cfoot*{\thepage{}/\pageref{LastPage}} % Position des Titels \usepackage{titling} \setlength{\droptitle}{-1.0cm} % Für mathematische Befehle und Symbole \usepackage{amsmath} \usepackage{amssymb} % Für Bilder \usepackage{graphicx} % Für Algorithmen \usepackage{algpseudocode} % Für Quelltext \usepackage{listings} \usepackage{color} \definecolor{mygreen}{rgb}{0,0.6,0} \definecolor{mygray}{rgb}{0.5,0.5,0.5} \definecolor{mymauve}{rgb}{0.58,0,0.82} \lstset{ keywordstyle=\color{blue},commentstyle=\color{mygreen}, stringstyle=\color{mymauve},rulecolor=\color{black}, basicstyle=\footnotesize\ttfamily,numberstyle=\tiny\color{mygray}, captionpos=b, % sets the caption-position to bottom keepspaces=true, % keeps spaces in text numbers=left, numbersep=5pt, showspaces=false,showstringspaces=true, showtabs=false, stepnumber=2, tabsize=2, title=\lstname } \lstdefinelanguage{JavaScript}{ % JavaScript ist als einzige Sprache noch nicht vordefiniert keywords={break, case, catch, continue, debugger, default, delete, do, else, finally, for, function, if, in, instanceof, new, return, switch, this, throw, try, typeof, var, void, while, with}, morecomment=[l]{//}, morecomment=[s]{/*}{*/}, morestring=[b]', morestring=[b]", sensitive=true } % Diese beiden Pakete müssen zuletzt geladen werden %\usepackage{hyperref} % Anklickbare Links im Dokument \usepackage{cleveref} % Daten für die Titelseite \title{ K-Shortest-Path \\ Eppsteins Algorithmus} \author{Darian L. Tratar} \date{\LARGE\today} \begin{document} \maketitle \section {Verwendung} \begin{itemize} \item Erf\"ullen zus\"atzlicher Bedingungen, die schwer zu optimieren sind \item L\"osung f\"ur ein NP-Schweres Problem (unterschiedlich markierte Kanten + jede Kante des Weges muss unterschiedlich markiert sein) (siehe Dreyfus und Lawler) \item Evaluieren eines Modells: $k$ als Ma\ss{} \item Vieles mehr (komplizierter) \end{itemize} \section {Laufzeiten} $m$ ist die Anzahl der Kanten und $n$ ist die Anzahl der Knoten \begin{itemize} \item F\"ur ein Paar von Punkten: $O(m + n \log n + k)$ \item F\"ur ein Punkt zu allen andern Punkten: $O(m + n \log n + kn)$ \item Aufstellen des Shortest-Path-Trees: $O( n \log n)$ \item Gleiche Laufzeit f\"ur alle Wege kleiner als eine gegebene Strecke \item Dijkstra implementierung von Fox: $O(m + kn \log n)$ \item Mit negativen Kanten ohne negativen Zyklus: $O(mn)$ oder $O(mn^{1/2}\log N)$ mit $N$ als gr\"o\ss{}ter Absolutbetrag der negativen Kanten \end{itemize} \section {Basics des Algorithmus} \begin{itemize} \item Binary-Heap f\"ur jeden Knoten, der nicht zum shortest-Path-Tree geh\"ort und die von diesem ereicht werden k\"onnen \item Heaps teilen sich gleiche Teile -> Graph mit $O(m + n\log n)$ Knoten \item Verbesserung mit Fredericksons tree decomposition techniques \end{itemize} \end{document}