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

Kantenzug-Defnition verbessert; Definition einer Schleife hinzugefügt; RectangleFreeColoring; Hierholzer-Algorithmus; Nicht-Eindeutigkeit von Eulerkreisen

This commit is contained in:
Martin Thoma 2013-06-13 20:59:55 +02:00
parent 896fb9601e
commit c66e19636b
10 changed files with 260 additions and 29 deletions

View file

@ -212,6 +212,66 @@ Gebe $G_n$ formal an.
\end{frame}
\begin{frame}{{\sc RectangleFreeColoring}}
\begin{block}{{\sc RectangleFreeColoring}}
Gegeben ist $n, m \in \mathbb{N}_{\geq 1}$ und ein
ungerichteter Graph $G = (E, K)$ mit
\[E = \Set{e_{x,y} | 1 \leq x \leq n} \land 1 \leq y \leq m\]
und
\[K = \Set{k=\Set{e_{x,y}, e_{x',y'}} \in E \times E : |x-x'| + |y-y'| = 1} \]
Färbe die Ecken von $G$ min einer minimalen Anzahl von Farben so, dass gilt:
\[\forall e_{x,y}, e_{x',y'} \in E: \neg(c(e_{x,y}) = c(e_{x',y'}) = c(e_{x',y}) = c(e_{x,y'}))\]
\end{block}
\end{frame}
\begin{frame}{{\sc RectangleFreeColoring}}
$4 \times 4$ - Instanz:\\
\vspace{1cm}
\begin{tikzpicture}
\newcommand{\n}{4}
\newcommand{\m}{4}
\foreach \x in {1, ..., \n}{
\foreach \y in {1, ..., \m}{
\node[vertex] (n-\x-\y) at (\x,\y) {};
}
}
\foreach \x in {1, ..., \n}{
\foreach \y in {1, ..., \m}{
\ifthenelse{\x<\n}{\draw (\x,\y) -- (\x+1,\y);}{}
}
}
\foreach \y in {1, ..., \m}{
\foreach \x in {1, ..., \n}{
\ifthenelse{\y<\m}{\draw (\x,\y) -- (\x,\y+1);}{}
}
}
\node[vertex,blue] (n-1-1) at (1,1) {};
\node[vertex,blue] (n-2-1) at (2,1) {};
\node[vertex,blue] (n-3-1) at (3,1) {};
\node[vertex,red] (n-4-1) at (4,1) {};
\node[vertex,blue] (n-1-1) at (1,2) {};
\node[vertex,red] (n-2-1) at (2,2) {};
\node[vertex,red] (n-3-1) at (3,2) {};
\node[vertex,blue] (n-4-1) at (4,2) {};
\node[vertex,red] (n-1-1) at (1,3) {};
\node[vertex,blue] (n-2-1) at (2,3) {};
\node[vertex,red] (n-3-1) at (3,3) {};
\node[vertex,blue] (n-4-1) at (4,3) {};
\node[vertex,red] (n-1-1) at (1,4) {};
\node[vertex,red] (n-2-1) at (2,4) {};
\node[vertex,blue] (n-3-1) at (3,4) {};
\node[vertex,blue] (n-4-1) at (4,4) {};
\end{tikzpicture}
\end{frame}
\subsection{Bildquellen}
\begin{frame}{Bildquellen}
\begin{itemize}

View file

@ -18,10 +18,6 @@
\setcounter{tocdepth}{2}
}
%\AtBeginSection[]{
% \InsertToC[sections={\thesection}] % shows only subsubsections of one subsection
%}
\section{Grundlagen}
\input{Grundlagen}

View file

@ -27,7 +27,9 @@ Ein Graph heißt \textbf{eulersch}, wenn er einen eulerschen Kreis enthält.
\end{frame}
\begin{frame}{Hamiltonkreis}
ACHTUNG, VERWECHSLUNGSGEFAHR:
\begin{alertblock}{Achtung}
Verwechslungsgefahr: Hamiltonkreis $\neq$ Eulerkreis
\end{alertblock}
\begin{block}{Hamiltonkreis}
Sei $G$ ein Graph und $A$ ein Kreis in $G$.
@ -122,6 +124,23 @@ $A$ heißt \textbf{eulerscher Kreis} $:\Leftrightarrow \forall_{k \in K}: k \in
\foreach \from/\to in {a/b,b/c,c/d,d/a,b/e,e/d}
\draw[line width=2pt] (\from) -- (\to);
\draw[line width=2pt] (b) to[bend right] (d);
\node<2->[vertex,lime] (d) at (0,2) {};
\node<3->[vertex,red] (a) at (0,0) {};
\node<4->[vertex,red] (b) at (2,0) {};
\node<5->[vertex,red] (c) at (2,2) {};
\node<6->[vertex,lime] (d) at (0,2) {};
\node<7->[vertex,red] (e) at (1,1) {};
\node<8->[vertex,red] (b) at (2,0) {};
\begin{pgfonlayer}{background}
\path<3->[selected edge,black!50] (d.center) edge node {} (a.center);
\path<4->[selected edge,black!50] (a.center) edge node {} (b.center);
\path<5->[selected edge,black!50] (b.center) edge node {} (c.center);
\path<6->[selected edge,black!50] (c.center) edge node {} (d.center);
\path<7->[selected edge,black!50] (d.center) edge node {} (e.center);
\path<8->[selected edge,black!50] (e.center) edge node {} (b.center);
\path<9->[selected edge,black!50] (b.center) to[bend right] (d.center);
\end{pgfonlayer}
\end{tikzpicture}
}
\end{center}
@ -164,7 +183,7 @@ ist $G$ eulersch.
\pause
$m=1$: Es gibt keinen Graphen in dem jede Ecke geraden Grad hat. \cmark\\
\pause
$m=2$: Nur ein Graph möglich. Dieser ist eulersch. \cmark\\ % Anzeichnen
$m=2$: Nur ein Graph möglich. Dieser ist eulersch. \cmark\\
\pause
\underline{I.V.:} Sei $m \in \mathbb{N}_0$ beliebig, aber fest und
@ -203,6 +222,75 @@ $\Rightarrow$ $C_1, \dots, C_n$ können in $C$ \enquote{eingehängt} werden\\
$\Rightarrow G$ ist eulersch\pause $\Rightarrow $ Beh.
\end{frame}
\begin{frame}{Wie findet man Eulerkreise?}
\begin{algorithm}[H]
\begin{algorithmic}
\Require $G = (E, K)$ ein eulerscher Graph.
\\
\State $C \gets$ leerer Kreis
\Repeat
\State $C_\text{tmp} \gets \text{ein beliebiger Kreis}$ \Comment{vgl. Aufgabe 5}
\State $C \gets C $ vereinigt mit $C_\text{tmp}$
\State Entferne Kanten in $C_\text{tmp}$ aus $G$
\State Entferne isolierte Ecken
\Until{$C$ ist Eulerkreis}
\\
\State \textbf{Ergebnis:} Eulerkreis $C$
\end{algorithmic}
\caption{Algorithmus von Hierholzer}
\label{alg:Hierholzer}
\end{algorithm}
\end{frame}
\begin{frame}{Sind Eulerkreise eindeutig?}
\begin{center}
\large Sind Eulerkreise bis auf Rotation und Symmetrie eindeutig?
\end{center}
\end{frame}
\tikzstyle{markedCircle}=[blue,line width=1pt,rotate=90,decorate,decoration={snake, segment length=2mm, amplitude=0.4mm},->]
\tikzstyle{markedCircle2}=[red,line width=1pt,rotate=90,decorate,decoration={snake, segment length=3mm, amplitude=0.4mm},->]
\begin{frame}{Sind Eulerkreise eindeutig?}
\begin{tikzpicture}[scale=1.9]
\node[vertex,label=$a_1$] (a1) at (1,2) {};
\node[vertex,label=$b_1$] (b1) at (3,2) {};
\node[vertex,label=$c_1$] (c1) at (2,1) {};
\node[vertex,label=$b_2$] (b2) at (0,2) {};
\node[vertex,label=$c_2$] (c2) at (1,3) {};
\node[vertex,label=$c_3$] (c3) at (3,3) {};
\node[vertex,label=$a_3$] (a3) at (4,2) {};
\draw (a1) -- (b1) -- (c1) -- (a1) -- cycle;
\draw (a1) -- (b2) -- (c2) -- (a1) -- cycle;
\draw (b1) -- (c3) -- (a3) -- (b1) -- cycle;
\node<2->[vertex, red] (a1) at (1,2) {};
\draw<2->[color=blue, markedCircle,->] (a1.center) -- (b2.center);
\draw<3->[color=blue, markedCircle] (b2.center) -- (c2.center);
\draw<4->[color=blue, markedCircle] (c2.center) -- (a1.center);
\draw<5->[color=blue, markedCircle] (a1.center) -- (b1.center);
\draw<6->[color=blue, markedCircle] (b1.center) -- (c3.center);
\draw<7->[color=blue, markedCircle] (c3.center) -- (a3.center);
\draw<8->[color=blue, markedCircle] (a3.center) -- (b1.center);
\draw<9->[color=blue, markedCircle] (b1.center) -- (c1.center);
\draw<10->[color=blue, markedCircle] (c1.center) -- (a1.center);
\draw<11->[markedCircle2] (a1) -- (b2.center);
\draw<12->[markedCircle2] (b2.center) -- (c2.center);
\draw<13->[markedCircle2] (c2.center) -- (a1.center);
\draw<14->[markedCircle2] (a1.center) -- (b1.center);
\draw<15->[markedCircle2] (b1.center) -- (a3.center);
\draw<16->[markedCircle2] (a3.center) -- (c3.center);
\draw<17->[markedCircle2] (c3.center) -- (b1.center);
\draw<18->[markedCircle2] (b1.center) -- (c1.center);
\draw<19->[markedCircle2] (c1.center) -- (a1.center);
\end{tikzpicture}
$\Rightarrow$ Eulerkreise sind im Allgemeinen nicht eindeutig
\end{frame}
\begin{frame}{Offene eulersche Linie}
\begin{block}{Offene eulersche Linie}
Sei $G$ ein Graph und $A$ ein Weg, der kein Kreis ist.

View file

@ -3,7 +3,7 @@
\begin{block}{Vollständiger Graph}
Sei $G = (E, K)$ ein Graph.
$G$ heißt \textbf{vollständig} $:\Leftrightarrow K = E \times E \setminus \Set{e \in E: \Set{e, e}}$
$G$ heißt \textbf{vollständig} $:\Leftrightarrow K = E \times E \setminus \Set{\Set{e, e} | e \in E}$
\end{block}
Ein vollständiger Graph mit $n$ Ecken wird als $K_n$ bezeichnet.

View file

@ -53,11 +53,15 @@ seine \textbf{Länge}.
\begin{frame}{Geschlossener Kantenzug}
\begin{block}{Geschlossener Kantenzug}
Sei $G = (E, K)$ ein Graph und $A = (e_0, e_1, \dots, e_s)$ ein Kantenzug.
Sei $G = (E, K)$ ein Graph und $A = (k_1, k_2, \dots, k_s)$ ein Kantenzug
mit $k_1 = \Set{e_0, e_1}$ und $k_s = \Set{e_{s-1}, e_s}$.
A heißt \textbf{geschlossen} $:\Leftrightarrow e_s = e_0$ .
A heißt \textbf{geschlossen} $:\Leftrightarrow e_0 = e_s$ .
\end{block}
Ein Kantenzug wird durch den Tupel $(e_0, \dots, e_s) \in E^{s+1}$
charakterisiert.
\begin{gallery}
\galleryimage{walks/walk-1}
\galleryimage{walks/walk-2}

View file

@ -0,0 +1,8 @@
SOURCE = euler-nicht-eindeutig
make:
pdflatex -shell-escape $(SOURCE).tex -output-format=pdf # shellescape wird fürs logo benötigt
make clean
clean:
rm -rf $(TARGET) *.class *.html *.log *.aux *.out *.glo *.glg *.gls *.ist *.xdy *.1 *.toc *.snm *.nav *.vrb *.fls *.fdb_latexmk *.pyg

View file

@ -0,0 +1,57 @@
\documentclass[hyperref={pdfpagelabels=false},usepdftitle=false]{beamer}
\usepackage{../../templates/myStyle}
\begin{document}
\title{\titleText}
\subtitle{}
\author{\tutor}
\date{2. Juli 2013}
\subject{Diskrete Mathematik}
\tikzstyle{vertex}=[draw,circle,fill,minimum size=10pt,inner sep=0pt]
\tikzstyle{edge}=[red, very thick]
\tikzstyle{markedCircle}=[blue,line width=1pt,rotate=90,decorate,decoration={snake, segment length=2mm, amplitude=0.4mm},->]
\tikzstyle{markedCircle2}=[red,line width=1pt,rotate=90,decorate,decoration={snake, segment length=3mm, amplitude=0.4mm},->]
\pgfdeclarelayer{background}
\pgfsetlayers{background,main}
\begin{frame}{Sind Eulerkreise eindeutig?}
\begin{tikzpicture}[scale=1.9]
\node[vertex,label=$a_1$] (a1) at (1,2) {};
\node[vertex,label=$b_1$] (b1) at (3,2) {};
\node[vertex,label=$c_1$] (c1) at (2,1) {};
\node[vertex,label=$b_2$] (b2) at (0,2) {};
\node[vertex,label=$c_2$] (c2) at (1,3) {};
\node[vertex,label=$c_3$] (c3) at (3,3) {};
\node[vertex,label=$a_3$] (a3) at (4,2) {};
\draw (a1) -- (b1) -- (c1) -- (a1) -- cycle;
\draw (a1) -- (b2) -- (c2) -- (a1) -- cycle;
\draw (b1) -- (c3) -- (a3) -- (b1) -- cycle;
\node<2->[vertex, red] (a1) at (1,2) {};
\draw<2->[color=blue, markedCircle,->] (a1.center) -- (b2.center);
\draw<3->[color=blue, markedCircle] (b2.center) -- (c2.center);
\draw<4->[color=blue, markedCircle] (c2.center) -- (a1.center);
\draw<5->[color=blue, markedCircle] (a1.center) -- (b1.center);
\draw<6->[color=blue, markedCircle] (b1.center) -- (c3.center);
\draw<7->[color=blue, markedCircle] (c3.center) -- (a3.center);
\draw<8->[color=blue, markedCircle] (a3.center) -- (b1.center);
\draw<9->[color=blue, markedCircle] (b1.center) -- (c1.center);
\draw<10->[color=blue, markedCircle] (c1.center) -- (a1.center);
\draw<11->[markedCircle2] (a1) -- (b2.center);
\draw<12->[markedCircle2] (b2.center) -- (c2.center);
\draw<13->[markedCircle2] (c2.center) -- (a1.center);
\draw<14->[markedCircle2] (a1.center) -- (b1.center);
\draw<15->[markedCircle2] (b1.center) -- (a3.center);
\draw<16->[markedCircle2] (a3.center) -- (c3.center);
\draw<17->[markedCircle2] (c3.center) -- (b1.center);
\draw<18->[markedCircle2] (b1.center) -- (c1.center);
\draw<19->[markedCircle2] (c1.center) -- (a1.center);
\end{tikzpicture}
\end{frame}
\end{document}