%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}
