2
0
Fork 0
mirror of https://github.com/MartinThoma/LaTeX-examples.git synced 2025-04-26 06:48:04 +02:00

Remove trailing spaces

The commands

find . -type f -name '*.md' -exec sed --in-place 's/[[:space:]]\+$//' {} \+

and

find . -type f -name '*.tex' -exec sed --in-place 's/[[:space:]]\+$//' {} \+

were used to do so.
This commit is contained in:
Martin Thoma 2015-10-14 14:25:34 +02:00
parent c578b25d2f
commit 7740f0147f
538 changed files with 3496 additions and 3496 deletions

View file

@ -22,7 +22,7 @@
\begin{frame}
\frametitle{Algorithmus}
Fast wie für Brücken. Unterschiede:
Fast wie für Brücken. Unterschiede:
\begin{itemize}
\item $L(v)$ hier anders definiert: bei Rückwärtskanten erst nach mindestens einer Baumkante
\item Hier vergleichen wir für alle $v \in V$ $L(v)$ und $N(v)$: \\

View file

@ -12,7 +12,7 @@
% Draw a 7,11 network
% First we draw the vertices
\foreach \pos/\name in {{(0,0)/a}, {(0,2)/b}, {(1,2)/c},
{(1,0)/d}, {(2,1)/e}, {(3,1)/f},
{(1,0)/d}, {(2,1)/e}, {(3,1)/f},
{(4,2)/g}, {(5,2)/h}, {(4,0)/i},
{(5,0)/j}}
\node[vertex] (\name) at \pos {$\name$};

View file

@ -11,18 +11,18 @@
Es existiert ein Eulerkreis\\
$\Leftrightarrow$ Der Graph ist zusammenhängend und jeder Knoten hat geraden Grad
\end{block}
\begin{block}{Im gerichteten Graph}
Es existiert ein Eulerkreis\\
$\Leftrightarrow$ Der Graph ist stark zusammenhängend und für jeden Knoten gilt: Eingangsgrad = Ausgangsgrad
\end{block}
\end{block}
\end{frame}
\begin{frame}{Algorithmus von Fleury}
Das Eulerkreisproblem ist effizient lösbar:
Algorithmus von Fleury $\in {\cal O}(|E|^2) $:
\begin{enumerate}
\item Start bei einem beliebigen Knoten
\item Wähle eine unmarkierte von dem Knoten ausgehende Kante, die wenn möglich im Restgraphen keine Brückenkante ist. Wenn es nur Brückenkanten gibt, dann dann wird die Kante zu dem Knoten genommen, der den höhere Ausgangsgrad hat
@ -34,7 +34,7 @@
%\begin{frame}{Algorithmus von Fleury}{Anwendungsbeispiel}
% Wortmenge: $\{$as, man, meet, nets, set, sum, tea, team$\}$
%
%
% Menge der Anfangs- und Endbuchstaben: $\{$a, m, n, s, t$\}$
% \begin{figure}
% \begin{tikzpicture}[->,scale=1.8, auto,swap]
@ -63,13 +63,13 @@
% Connect vertices with edges and draw weights
\foreach \source/ \dest /\pos in {b/a/,c/a/,a/d/,a/e/,c/b/, d/b/, b/e/, e/c/, g/c/, e/d/, d/f/, f/g/}
\path (\source) edge [\pos] node {} (\dest);
% Start animating the edge selection.
% Start animating the edge selection.
% For convenience we use a background layer to highlight edges
% This way we don't have to worry about the highlighting covering
% weight labels.
% weight labels.
\begin{pgfonlayer}{background}
\foreach \source / \dest / \fr / \pos in {a/a/1/, a/e/2/, e/d/3/, d/b/4/, b/a/5/,
a/d/6/, d/f/7/, f/g/8/, g/c/9/, c/b/10/,
a/d/6/, d/f/7/, f/g/8/, g/c/9/, c/b/10/,
b/e/11/, e/c/12/, c/a/13/}
\path<\fr->[selected edge] (\source.center) edge [\pos] node {} (\dest.center);
\end{pgfonlayer}
@ -98,13 +98,13 @@
% Connect vertices with edges and draw weights
\foreach \source/ \dest /\pos in {b/a/,c/a/,a/d/,a/e/,c/b/, d/b/, b/e/, e/c/, g/c/, e/d/, d/f/, f/g/}
\path (\source) edge [\pos] node {} (\dest);
% Start animating the edge selection.
% Start animating the edge selection.
% For convenience we use a background layer to highlight edges
% This way we don't have to worry about the highlighting covering
% weight labels.
% weight labels.
\begin{pgfonlayer}{background}
\foreach \source / \dest / \fr / \pos in {a/a/1/, a/e/2/, e/d/3/, d/b/4/, b/a/5/,
e/c/6/, c/b/7/, b/e/8/, d/f/9/, f/g/10/,
e/c/6/, c/b/7/, b/e/8/, d/f/9/, f/g/10/,
g/c/11/, c/a/12/, a/d/13/}
\path<\fr->[selected edge] (\source.center) edge [\pos] node {} (\dest.center);
\end{pgfonlayer}
@ -123,10 +123,10 @@
% Connect vertices with edges and draw weights
\foreach \source/ \dest /\pos in {a/b/,b/c/, c/d/, d/e/, a/c/, a/d/, b/d/, c/e/}
\path (\source) edge [\pos] node {} (\dest);
% Start animating the edge selection.
% Start animating the edge selection.
% For convenience we use a background layer to highlight edges
% This way we don't have to worry about the highlighting covering
% weight labels.
% weight labels.
\begin{pgfonlayer}{background}
\foreach \source / \dest / \fr / \pos in {a/a/1/, b/d/2/, d/c/3/, c/e/4/, e/d/5/, d/a/6/,
a/b/7/, b/c/8/, c/a/9/}

View file

@ -3,7 +3,7 @@
\begin{frame}{Färbung von Graphen}{Graph coloring}
\begin{block}{Problem COLOR}
Gegeben sei ein Graph $G = (V, E)$ und ein Parameter $K \in \mathbb{N}$.
Frage: Gibt es eine Knotenfärbung von $G$ mit höchstens $K$ Farben,
Frage: Gibt es eine Knotenfärbung von $G$ mit höchstens $K$ Farben,
so dass je zwei adjazente Knoten verschiedene Farben besitzen?
\end{block}
\begin{itemize}

View file

@ -175,12 +175,12 @@
}
\begin{document}
\title{Graphentheorie II}
\author{Tobias Sturm, Martin Thoma, Max Wagner, Thomas Krings}
\date{\today}
\title{Graphentheorie II}
\author{Tobias Sturm, Martin Thoma, Max Wagner, Thomas Krings}
\date{\today}
\subject{Graphentheorie-Referat fur ICPC}
\frame{\titlepage}
\frame{\titlepage}
\frame{
\frametitle{Inhaltsverzeichnis}

View file

@ -3,7 +3,7 @@
\begin{frame}{Hamiltonkreisproblem}{Hamiltonian path}
\begin{block}{Erklärung}
Ein Hamiltonkreis ist ein Kreis in einem Graphen, in dem jeder Knoten genau einmal benutzt wird.\\
Das Hamiltonkreisproblem ist NP-vollständig.
\end{block}
\end{frame}
@ -17,7 +17,7 @@
\end{itemize}
\end{block}
\begin{block}{Bedingungen}
Bei Graphen G mit $n \geq 3$ Knoten
Bei Graphen G mit $n \geq 3$ Knoten
\begin{itemize}
\item G hat Minimalgrad $\frac{n}{2} \Rightarrow$ $\exists $ Hamiltonkreis
\item G ist vollständig $\Rightarrow \exists$ Hamiltonkreis
@ -31,7 +31,7 @@
Eine Menge von Wörtern
\end{block}
\begin{block}{Gesucht}
Aneinanderreihung von Wörtern, sodass jeweils Anfangs- und Endbuchstaben gleich sind
Aneinanderreihung von Wörtern, sodass jeweils Anfangs- und Endbuchstaben gleich sind
(auch im Ringschluss).
\end{block}
\end{frame}
@ -39,13 +39,13 @@
\begin{frame}{Hamilton- und Eulerkreisproblem}{Anwendungsbeispiel}
Wortmenge: $\{$as, man, meet, nets, set, sum, tea, team$\}$
Menge der Anfangs- und Endbuchstaben: $\{$a, m, n, s, t$\}$
\begin{figure}
\begin{tikzpicture}[->,scale=1.3, auto,swap]
% First we draw the vertices
\foreach \pos/\name in {{(1,0)/nets}, {(3,0)/set}, {(5,0)/tea},
{(0,2)/man}, {(6,2)/team}, {(1,4)/as},
{(0,2)/man}, {(6,2)/team}, {(1,4)/as},
{(3,4)/sum}, {(5,4)/meet}}
\node[vertex] (\name) at \pos {$\name$};
% Connect vertices with edges and draw weights
@ -53,10 +53,10 @@
tea/as/, man/nets/, team/man/, team/meet/, as/set/,
as/sum/, sum/meet/, sum/man/, meet/team/bend left, meet/tea/}
\path (\source) edge [\pos] node {} (\dest);
% Start animating the edge selection.
% Start animating the edge selection.
% For convenience we use a background layer to highlight edges
% This way we don't have to worry about the highlighting covering
% weight labels.
% weight labels.
\begin{pgfonlayer}{background}
\foreach \source / \dest / \fr / \pos in { as/as/1/, as/sum/2/, sum/man/3/, man/nets/4/,
nets/set/5/, set/team/6/, team/meet/7/, meet/tea/8/, tea/as/9/}
@ -70,7 +70,7 @@
\begin{frame}{Hamilton- und Eulerkreisproblem}{Anwendungsbeispiel}
Wortmenge: $\{$as, man, meet, nets, set, sum, tea, team$\}$
Menge der Anfangs- und Endbuchstaben: $\{$a, m, n, s, t$\}$
\begin{figure}
\begin{tikzpicture}[->,scale=1.8, auto,swap]
@ -86,10 +86,10 @@
t/a/tea/bend left, t/m/team/bend left, n/s/nets/bend right}
%\path (\source) edge [\pos] node {\foo} (\dest);
\Edge[label=\foo,style={\pos}](\source)(\dest);
% Start animating the edge selection.
% Start animating the edge selection.
% For convenience we use a background layer to highlight edges
% This way we don't have to worry about the highlighting covering
% weight labels.
% weight labels.
\begin{pgfonlayer}{background}
\foreach \source / \dest / \fr / \pos in {s/s/1/, s/t/2/, t/m/3/bend left, m/n/4/bend right, n/s/5/bend right,
s/m/6/bend right, m/t/7/bend left, t/a/8/bend left, a/s/9/}

View file

@ -2,11 +2,11 @@
\subsection{Algorithmus von Kruskal}
\begin{frame}{Algorithmus von Kruskal}{Kruskal's algorithm}
$E$: Menge der ausgewählten Kanten, $S$: Menge der erreichbaren Knoten.\vspace{10pt}\pause
So lange, bis alle Knoten erreichbar sind:
Wähle Kante mit geringstem Gewicht
Wenn durch ausgewählte Kante ein Knoten erreichbar ist, der davor nicht in $S$ war, füge diese Kante zu $E$ und Knoten zu $E$ hinzu.
\end{frame}
@ -25,12 +25,12 @@
f/d/6,f/e/8,
g/e/9,g/f/11}
\path[edge] (\source) -- node[weight] {$\weight$} (\dest);
% Start animating the vertex and edge selection.
% Start animating the vertex and edge selection.
\foreach \vertex / \fr in {d/1,a/1,e/2,c/2,f/3,b/4,g/10}
\path<\fr-> node[selected vertex] at (\vertex) {$\vertex$};
% For convenience we use a background layer to highlight edges
% This way we don't have to worry about the highlighting covering
% weight labels.
% weight labels.
\begin{pgfonlayer}{background}
\pause
\foreach \source / \dest / \fr in {a/d/1,c/e/2,d/f/3,a/b/4,b/e/6,e/g/10}
@ -63,9 +63,9 @@ end while
\begin{frame}{Algorithmus von Kruskal}{Kruskal's algorithm}
Erfunden von:
1956: Joseph Kruskal
\begin{figure}
\includegraphics[scale=0.6]{Material/kruskal.jpg}
\caption{Kruskal}

View file

@ -4,5 +4,5 @@
\item Minimum Spanning Trees: Introduction to Algorithms. Second Edition. Thomas H. Cormen. S. 561 - 579.
\item Hamiltonian-cycle problem: Introduction to Algorithms. Second Edition. Thomas H. Cormen. S. 1008 - 1013.
\item Euler tour: Introduction to Algorithms. Second Edition. Thomas H. Cormen. S. 966.
\end{itemize}
\end{itemize}
\end{frame}

View file

@ -22,14 +22,14 @@ Minimale Spannbäume sind Teilgraphen, sodass ...
\begin{frame}{Definition}
Sei $G = (V, E) $ mit Kostenfunktion $w: E \rightarrow \mathbb{R}$
\vspace{10 mm}
$MST = (V, T)$ ist Spannbaum von G, wenn
\begin{itemize}
\item $T \subseteq E$ bzw.
\item $ \forall u, v \in V: \exists$ Pfad von $u$ nach $v$
\item $W(T) := \displaystyle\sum\limits_{(u, v) \in T} w(u, v)$ minimal ist.
\end{itemize}
\end{frame}
\begin{frame}{Eindeutigkeit von Spannbäumen}{Ambiguity of minimal spanning trees}

View file

@ -9,7 +9,7 @@
$S$ ist Menge aller erreichten Knoten, $E$ ist Menge der ausgewählten Kanten.\pause
Starte bei einem beliebigen Knoten: füge zu $S$ hinzu.
\begin{enumerate}
\item wähle Kante am \emph{Rand} von $S$ mit dem geringsten Gewicht und füge zu $E$ hinzu. \pause
@ -41,12 +41,12 @@
f/d/6,f/e/8,
g/e/9,g/f/11}
\path[edge] (\source) -- node[weight] {$\weight$} (\dest);
% Start animating the vertex and edge selection.
% Start animating the vertex and edge selection.
\foreach \vertex / \fr in {d/1,a/2,f/3,b/4,e/5,c/6,g/7}
\path<\fr-> node[selected vertex] at (\vertex) {$\vertex$};
% For convenience we use a background layer to highlight edges
% This way we don't have to worry about the highlighting covering
% weight labels.
% weight labels.
\begin{pgfonlayer}{background}
\pause
\foreach \source / \dest in {d/a,d/f,a/b,b/e,e/c,e/g}
@ -68,7 +68,7 @@
\item 1957: Robert C. Prim
\item 1959 wiederentdeckt von Edsger Dijkstra
\end{itemize}
\begin{figure}
\centering
\mbox{\subfigure{\includegraphics[width=0.6in]{Material/jarnik_vojtech.jpg}}\quad
@ -81,5 +81,5 @@
\item Jarník algorithm
\item PrimJarník algorithm
\end{itemize}
\end{frame}

View file

@ -1,6 +1,6 @@
\begin{frame}{Quellen}
Quelltext dieser Präsentation auf \href{https://github.com/MartinThoma/ICPC-Referat}{GitHub}
\textbf{Bilder}
\begin{itemize}
\item Jarnik Vojtech:\url{http://inserv.math.muni.cz/biografie/obrazky/jarnik_vojtech.jpg}
@ -8,7 +8,7 @@
\item Kruskal: \url{http://www.cs.umd.edu/~kruskal/kruskal.gif}
\item Tarjan: \url{http://commons.wikimedia.org/wiki/File:Bob_Tarjan.jpg}
\end{itemize}
\textbf{Tkiz Source}
\begin{itemize}
\item Prim: \url{http://www.texample.net/tikz/examples/prims-algorithm/}

View file

@ -15,12 +15,12 @@ nutzt Tiefensuche im Graphen
\tikzstyle StackBox=[style=help lines,color=blue!50,fill=white]
\tikzstyle{abstract}=[rectangle, draw=black,
fill=orange!40,
\tikzstyle{abstract}=[rectangle, draw=black,
fill=orange!40,
text centered, anchor=center, text=white, text width=0.4cm, text height=0.4cm]
\tikzstyle{textstyle}=[rectangle, draw=white,
\tikzstyle{textstyle}=[rectangle, draw=white,
fill=white, anchor=base west, text=black, text width=3cm, text height=0.4cm]
\tikzstyle{textstyleMini}=[rectangle, draw=white,
\tikzstyle{textstyleMini}=[rectangle, draw=white,
fill=white, anchor=center, text=black, text width=0.5cm, text height=0.4cm]
\begin{frame}
@ -54,10 +54,10 @@ nutzt Tiefensuche im Graphen
\Call{tarjan}{successor}
\EndIf
\State $node.lowlink \gets$ \Call{min}{$node.lowlink, successor.lowlink$}
\EndFor
\EndFor
\boxto<1->{a}\If{$node.lowlink == node.index$}
\Repeat
\Repeat
\State $successor \gets stack.pop()$
\Until{$successor == node$}
\EndIf\tikzmark{a}
@ -68,7 +68,7 @@ nutzt Tiefensuche im Graphen
% To insert the annotation
\begin{tikzpicture}[remember picture,overlay]
\coordinate (a) at ($(a)+(8.5,3)$); % <= adjust this parameter to move the position of the annotation
\coordinate (a) at ($(a)+(8.5,3)$); % <= adjust this parameter to move the position of the annotation
\node[rectangle,draw, gray,text width=3cm,align=left,right] at (a) {SCC wurde gefunden, ggf. ausgeben};
\end{tikzpicture}
\end{frame}
@ -81,7 +81,7 @@ nutzt Tiefensuche im Graphen
% Draw the vertices
\foreach \pos/\name in {{(0,0)/a}, {(0,2)/b}, {(1,2)/c},
{(1,0)/d}, {(2,1)/e}, {(3,1)/f},
{(1,0)/d}, {(2,1)/e}, {(3,1)/f},
{(4,2)/g}, {(5,2)/h}, {(4,0)/i},
{(5,0)/j}}
\node[vertex] (\name) at \pos {$\name$};
@ -94,15 +94,15 @@ nutzt Tiefensuche im Graphen
g/h/, h/j/, j/i/, i/g/}
\path (\source) edge [\pos] node {} (\dest);
% Start animating the vertex and edge selection.
% Start animating the vertex and edge selection.
\foreach \vertex / \fr / \lowlink / \index in {a/1/0/0,b/2/1/1,c/3/2/2,d/4/0/3,e/5/2/4,f/6/5/5,g/7/6/6,h/8/7/7,j/9/8/8,i/10/5/9} {
\path<\fr-> node[selected vertex] at (\vertex) {$\vertex_{\lowlink, \index}$};
\path<\fr-> node[textstyleMini] at (RecDepth) {$\index$};
}
% Start animating the edge selection.
% Start animating the edge selection.
% For convenience we use a background layer to highlight edges
% This way we don't have to worry about the highlighting covering
% weight labels.
% weight labels.
\begin{pgfonlayer}{background}
\path<4->[ignored edge] (d.center) edge [] node {} (a.center);
\path<5->[ignored edge] (e.center) edge [] node {} (c.center);
@ -112,7 +112,7 @@ nutzt Tiefensuche im Graphen
\path<\fr->[selected edge] (\source.center) edge [\pos] node {} (\dest.center);
\end{pgfonlayer}
% go back in recursion
% Start animating.
% Start animating.
\foreach \vertex / \fr / \lowlink / \index in {j/11/5/8,h/12/5/7,g/13/5/6,f/14/5/5} {
\path<\fr-> node[selected vertex] at (\vertex) {$\vertex_{\lowlink, \index}$};
\path<\fr-> node[textstyleMini] at (RecDepth) {$\index$};
@ -122,7 +122,7 @@ nutzt Tiefensuche im Graphen
\path<15->[color=blue,fill=green!20] (4.2,1) circle (1.6cm);
\end{pgfonlayer}
% go back in recursion
% Start animating.
% Start animating.
\foreach \vertex / \fr / \lowlink / \index in {e/16/2/4,c/17/0/3,b/18/0/1,a/19/0/0} {
\path<\fr-> node[selected vertex] at (\vertex) {$\vertex_{\lowlink, \index}$};
\path<\fr-> node[textstyleMini] at (RecDepth) {$\index$};

View file

@ -1,7 +1,7 @@
\subsection{Zusammenhang von Graphen: Was ist das?}
\begin{frame}{Zusammenhang von Graphen}{Connectivity}
\begin{block}{Streng zusammenhängender Graph}
Ein streng zusammenhängender Graph ist ein gerichteter Graph,
Ein streng zusammenhängender Graph ist ein gerichteter Graph,
in dem jeder Knoten von jedem erreichbar ist.
\end{block}
\begin{figure}
@ -23,7 +23,7 @@
\begin{frame}{Zusammenhang von Graphen}{Connectivity}
\begin{block}{Zusammenhangskomponente}
Eine Zusammenhangskomponente ist ein maximaler Subgraph S
Eine Zusammenhangskomponente ist ein maximaler Subgraph S
eines gerichteten Graphen, wobei S streng zusammenhängend ist.
% Muss dieser Subgraph maximal sein?
\end{block}

View file

@ -13,7 +13,7 @@
% Draw a 7,11 network
% First we draw the vertices
\foreach \pos/\name in {{(0,0)/a}, {(0,2)/b}, {(1,2)/c},
{(1,0)/d}, {(2,1)/e}, {(3,1)/f},
{(1,0)/d}, {(2,1)/e}, {(3,1)/f},
{(4,2)/g}, {(5,2)/h}, {(4,0)/i},
{(5,0)/j}}
\node[vertex] (\name) at \pos {$\name$};