diff --git a/presentations/Diskrete-Mathematik/LaTeX/Graphentheorie-I.pdf b/presentations/Diskrete-Mathematik/LaTeX/Graphentheorie-I.pdf index 90a68cc..f22223b 100644 Binary files a/presentations/Diskrete-Mathematik/LaTeX/Graphentheorie-I.pdf and b/presentations/Diskrete-Mathematik/LaTeX/Graphentheorie-I.pdf differ diff --git a/presentations/Diskrete-Mathematik/LaTeX/Grundlagen.tex b/presentations/Diskrete-Mathematik/LaTeX/Grundlagen.tex index ef9470d..171657b 100644 --- a/presentations/Diskrete-Mathematik/LaTeX/Grundlagen.tex +++ b/presentations/Diskrete-Mathematik/LaTeX/Grundlagen.tex @@ -31,6 +31,7 @@ Kantenmenge bezeichnet. \framedgraphic{Modellierung, Flüsse, Netzwerke}{../images/Unit_disk_graph.png} \framedgraphic{Karten}{../images/map.png} \framedgraphic{Good Will Hunting}{../images/good-will-hunting.jpg} +\framedgraphic{Graham's Number}{../images/hypercube.png} \begin{frame}{Isomorphe Graphen} \begin{center} diff --git a/presentations/Diskrete-Mathematik/Plan/Makefile b/presentations/Diskrete-Mathematik/Plan/Makefile deleted file mode 100644 index 70c6810..0000000 --- a/presentations/Diskrete-Mathematik/Plan/Makefile +++ /dev/null @@ -1,7 +0,0 @@ -SOURCE = Plan -make: - pdflatex $(SOURCE).tex -output-format=pdf - make clean - -clean: - rm -rf $(TARGET) *.class *.html *.log *.aux *.out diff --git a/presentations/Diskrete-Mathematik/Plan/Plan.tex b/presentations/Diskrete-Mathematik/Plan/Plan.tex deleted file mode 100644 index aa97a71..0000000 --- a/presentations/Diskrete-Mathematik/Plan/Plan.tex +++ /dev/null @@ -1,121 +0,0 @@ -\documentclass[a4paper,9pt]{scrartcl} -\usepackage{amssymb, amsmath} % needed for math -\usepackage[utf8]{inputenc} % this is needed for umlauts -\usepackage[ngerman]{babel} % this is needed for umlauts -\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf -\usepackage[margin=2.5cm]{geometry} %layout -\usepackage{hyperref} % links im text -\usepackage{color} -\usepackage{framed} -\usepackage{enumerate} % for advanced numbering of lists -\clubpenalty = 10000 % Schusterjungen verhindern -\widowpenalty = 10000 % Hurenkinder verhindern - -\hypersetup{ - pdfauthor = {Martin Thoma}, - pdfkeywords = {Diskrete Mathematik}, - pdftitle = {Vortrag Graphentheorie I: Tafelbild + Text} -} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Custom definition style, by % -% http://mathoverflow.net/questions/46583/what-is-a-satisfactory-way-to-format-definitions-in-latex/58164#58164 -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\makeatletter -\newdimen\errorsize \errorsize=0.2pt -% Frame with a label at top -\newcommand\LabFrame[2]{% - \fboxrule=\FrameRule - \fboxsep=-\errorsize - \textcolor{FrameColor}{% - \fbox{% - \vbox{\nobreak - \advance\FrameSep\errorsize - \begingroup - \advance\baselineskip\FrameSep - \hrule height \baselineskip - \nobreak - \vskip-\baselineskip - \endgroup - \vskip 0.5\FrameSep - \hbox{\hskip\FrameSep \strut - \textcolor{TitleColor}{\textbf{#1}}}% - \nobreak \nointerlineskip - \vskip 1.3\FrameSep - \hbox{\hskip\FrameSep - {\normalcolor#2}% - \hskip\FrameSep}% - \vskip\FrameSep - }}% -}} -\definecolor{FrameColor}{rgb}{0.25,0.25,1.0} -\definecolor{TitleColor}{rgb}{1.0,1.0,1.0} - -\newenvironment{contlabelframe}[2][\Frame@Lab\ (cont.)]{% - % Optional continuation label defaults to the first label plus - \def\Frame@Lab{#2}% - \def\FrameCommand{\LabFrame{#2}}% - \def\FirstFrameCommand{\LabFrame{#2}}% - \def\MidFrameCommand{\LabFrame{#1}}% - \def\LastFrameCommand{\LabFrame{#1}}% - \MakeFramed{\advance\hsize-\width \FrameRestore} -}{\endMakeFramed} -\newcounter{definition} -\newenvironment{definition}[1]{% - \par - \refstepcounter{definition}% - \begin{contlabelframe}{Definition \thedefinition:\quad #1} - \noindent\ignorespaces} -{\end{contlabelframe}} -\makeatother -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% Begin document % -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\begin{document} -\section{Königsberger Brückenproblem} -\subsection{Beweis des Satzes von Euler} -Tafelbild: - -Sie $G = (E, K)$ ein eulerscher Graph, $K$ ein Eulerkreis durch $G$ und -$e \in E$ eine beliebige Kante. -Dann geht $K$ durch $e$. Nun sei $a$ die Anzahl, wie häufig $K$ durch $e$ geht. -Offensichtlich geht der Kreis sowohl in den Knoten hinein, als auch hinaus. -$\Rightarrow e$ hat mindestens den Knotengrad $2a$. Es kann keine weitere -Kante geben, da jeder Eulerkreis zu $G$ alle Kanten von $G$ beinhaltet. -$\Rightarrow e$ hat den Knotengrad $2a \Rightarrow$ Jede Ecke von $G$ hat geraden -Grad. $\blacksquare$ - -\subsection{Rückrichtung} -Hat jede Ecke in einem zusammenhängendem Graphen $G$ geraden Grad, so ist $G$ eulerisch. - -Beweis durch Induktion über die Anzahl $m$ der Kanten. - -\textbf{I.A.}: -\begin{itemize} - \item $m=0 \rightarrow$ trivial - \item $m = 1$: nicht möglich - \item $m = 2$: Da $G$ zusammenhängend ist, können in diesem Fall nur zwei -Ecken zweifach miteinander verbunden sein $\Rightarrow$ auch eulersch -\end{itemize} - -\textbf{I.V.}: Sei $m \in \mathbb{N}_{\geq 2}$ die Anzahl der Kanten eines -Graphs $G$ und jeder zusammenhängende Graph mit weniger als $m$ Kanten und -ausschließlich Knoten geraden Grades sei eulerisch. - -\textbf{I.S.} - -Jeder Knoten hat mindestens Grad 2 (zusammenhängend + gerader Grad) -$\Rightarrow$ es gibt einen Kreis in $G$. TODO - -Sei nun $C$ ein Kreis in $G$ mit maximaler Länge. - -Annahme: $C$ ist kein Eulerkreis - -Wir entfernen alle Kanten in $C$ aus $G$ und nennen das Ergebnis $G^*$. -Dann hat jeder Zusammenhängende Teilgraph in $G^*$ nur Knoten geraden Grades -und hat daher einen Eulerkreis. Dieser Eulerkreis hat keine Kante, die in $C$ -enthalten ist und könnte deshalb zu $C$ hinzugefügt werden, wodurch $C$ Länger -werden würde $\Rightarrow$ Widerspruch $\Rightarrow C$ ist ein Eulerkreis -$\Rightarrow G$ ist eulersch $\blacksquare$ - -\end{document} diff --git a/presentations/Diskrete-Mathematik/images/hypercube.png b/presentations/Diskrete-Mathematik/images/hypercube.png new file mode 100644 index 0000000..2f6e0f3 Binary files /dev/null and b/presentations/Diskrete-Mathematik/images/hypercube.png differ diff --git a/source-code/Pseudocode/Vertex-coloring/Makefile b/source-code/Pseudocode/Vertex-coloring/Makefile new file mode 100644 index 0000000..cabf018 --- /dev/null +++ b/source-code/Pseudocode/Vertex-coloring/Makefile @@ -0,0 +1,36 @@ +SOURCE = Vertex-coloring-brute-force +DELAY = 80 +DENSITY = 300 +WIDTH = 512 + +make: + pdflatex $(SOURCE).tex -output-format=pdf + pdflatex $(SOURCE).tex -output-format=pdf + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot + +gif: + pdfcrop $(SOURCE).pdf + convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif + make clean + +png: + make + make svg + inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png + +transparentGif: + convert $(SOURCE).pdf -transparent white result.gif + make clean + +svg: + make + #inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg + pdf2svg $(SOURCE).pdf $(SOURCE).svg + # Necessary, as pdf2svg does not always create valid svgs: + inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg + rsvg-convert -a -w $(WIDTH) -f svg $(SOURCE).svg -o $(SOURCE)2.svg + inkscape $(SOURCE)2.svg --export-plain-svg=$(SOURCE).svg + rm $(SOURCE)2.svg diff --git a/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-brute-force.png b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-brute-force.png new file mode 100644 index 0000000..9fee5f9 Binary files /dev/null and b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-brute-force.png differ diff --git a/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-brute-force.tex b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-brute-force.tex new file mode 100644 index 0000000..8dcee43 --- /dev/null +++ b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-brute-force.tex @@ -0,0 +1,38 @@ +\documentclass{article} +\usepackage[pdftex,active,tightpage]{preview} +\setlength\PreviewBorder{2mm} + +\usepackage[utf8]{inputenc} % this is needed for umlauts +\usepackage[ngerman]{babel} % this is needed for umlauts +\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf +\usepackage{amssymb,amsmath,amsfonts} % nice math rendering +\usepackage{braket} % needed for \Set +\usepackage{algorithm,algpseudocode} +\renewcommand{\thealgorithm}{3} %disable numbers for algorithm + +\begin{document} +\begin{preview} + \begin{algorithm}[H] + \begin{algorithmic} + \Require $G = (V, E)$ an undirected graph + \State $n \gets |V|$ + \State Give all vertices an index $1 \leq i \leq n$ that defines an order + \For{$i \in 1, \dots, n$} + \State $v_i$.color $\gets 0$ + \EndFor + \\ + \If{$n==1$} + \State \Return + \Else + \For{$maxColors \in 2, \dots, n$} + \While{$G$ is not properly colored and not all vertices have color $(maxColors-1)$} + \State $(v_1 v_2 \dots v_n) \gets (v_1 v_2 \dots v_n) + 1$ \Comment{count up in base $maxColor$} + \EndWhile + \EndFor + \EndIf + \end{algorithmic} + \caption{Find a vertex coloring for $G$ with brute force} + \label{alg:vertexColoring} + \end{algorithm} +\end{preview} +\end{document} diff --git a/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-first-wrong.tex b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-first-wrong.tex new file mode 100644 index 0000000..ab065ab --- /dev/null +++ b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-first-wrong.tex @@ -0,0 +1,36 @@ +\documentclass{article} +\usepackage[pdftex,active,tightpage]{preview} +\setlength\PreviewBorder{2mm} + +\usepackage[utf8]{inputenc} % this is needed for umlauts +\usepackage[ngerman]{babel} % this is needed for umlauts +\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf +\usepackage{amssymb,amsmath,amsfonts} % nice math rendering +\usepackage{braket} % needed for \Set +\usepackage{algorithm,algpseudocode} + +\begin{document} +\begin{preview} + \begin{algorithm}[H] + \begin{algorithmic} + \Require $G = (V, E)$ an undirected graph + \State $n \gets |V|$ + \State Give all vertices an index $1 \leq i \leq n$ that defines an order + + \For{$i \in 1, \dots, n$} + \State $v_i$.color $\gets 1$ + \EndFor + \\ + \For{$i \in 1, \dots, n$} + \For{$j \in i+1, \dots, n$} + \If{$\Set{v_i, v_j} \in E \land v_i.\text{color} = v_j.\text{color}$} + \State $v_j.color \gets v_j.color + 1$ + \EndIf + \EndFor + \EndFor + \end{algorithmic} + \caption{Find a vertex coloring for $G$} + \label{alg:vertexColoring} + \end{algorithm} +\end{preview} +\end{document} diff --git a/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-second-wrong.tex b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-second-wrong.tex new file mode 100644 index 0000000..0335e29 --- /dev/null +++ b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-second-wrong.tex @@ -0,0 +1,39 @@ +\documentclass{article} +\usepackage[pdftex,active,tightpage]{preview} +\setlength\PreviewBorder{2mm} + +\usepackage[utf8]{inputenc} % this is needed for umlauts +\usepackage[ngerman]{babel} % this is needed for umlauts +\usepackage[T1]{fontenc} % this is needed for correct output of umlauts in pdf +\usepackage{amssymb,amsmath,amsfonts} % nice math rendering +\usepackage{braket} % needed for \Set +\usepackage{algorithm,algpseudocode} +\renewcommand{\thealgorithm}{2} %disable numbers for algorithm + +\begin{document} +\begin{preview} + \begin{algorithm}[H] + \begin{algorithmic} + \Require $G = (V, E)$ an undirected graph + \State $n \gets |V|$ + \State Give all vertices an index $1 \leq i \leq n$ that defines an order + + \For{$i \in 1, \dots, n$} + \State $v_i$.color $\gets 1$ + \EndFor + \\ + \For{$i \in 1, \dots, n$} + \State $possible \gets \Set{1, \dots, n}$ + \For{$j \in i+1, \dots, n$} + \If{$\Set{v_i, v_j} \in E$} + \State $possible \gets possible \setminus \Set{v_j.\text{color}}$ + \EndIf + \EndFor + \State $v_i$.color $\gets \min(possible)$ + \EndFor + \end{algorithmic} + \caption{Find a vertex coloring for $G$} + \label{alg:vertexColoring} + \end{algorithm} +\end{preview} +\end{document} diff --git a/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-wrong-algorithm-2.png b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-wrong-algorithm-2.png new file mode 100644 index 0000000..13be244 Binary files /dev/null and b/source-code/Pseudocode/Vertex-coloring/Vertex-coloring-wrong-algorithm-2.png differ diff --git a/tikz/graph-triangles/graph-triangles.tex b/tikz/graph-triangles/graph-triangles.tex index 8382c06..9111aba 100644 --- a/tikz/graph-triangles/graph-triangles.tex +++ b/tikz/graph-triangles/graph-triangles.tex @@ -1,16 +1,12 @@ -\documentclass{article} -\usepackage[pdftex,active,tightpage]{preview} -\setlength\PreviewBorder{2mm} - +\documentclass[varwidth=true, border=2pt]{standalone} \usepackage{ifthen} \usepackage{tikz} \usetikzlibrary{calc} + +\begin{document} \tikzstyle{vertex}=[draw,red,fill=red,circle, minimum size=10pt,inner sep=0pt] \tikzstyle{edge}=[red, very thick] - -\begin{document} -\begin{preview} \begin{tikzpicture} \newcommand{\n}{10} \foreach \y in {0, ..., \n}{ @@ -28,5 +24,4 @@ minimum size=10pt,inner sep=0pt] } } \end{tikzpicture} -\end{preview} \end{document} diff --git a/tikz/graph-v6-e8/Makefile b/tikz/graph-v6-e8/Makefile new file mode 100644 index 0000000..a5d940f --- /dev/null +++ b/tikz/graph-v6-e8/Makefile @@ -0,0 +1,35 @@ +SOURCE = graph-v6-e8 +DELAY = 80 +DENSITY = 300 +WIDTH = 512 + +make: + pdflatex $(SOURCE).tex -output-format=pdf + make clean + +clean: + rm -rf $(TARGET) *.class *.html *.log *.aux *.data *.gnuplot + +gif: + pdfcrop $(SOURCE).pdf + convert -verbose -delay $(DELAY) -loop 0 -density $(DENSITY) $(SOURCE)-crop.pdf $(SOURCE).gif + make clean + +png: + make + make svg + inkscape $(SOURCE).svg -w $(WIDTH) --export-png=$(SOURCE).png + +transparentGif: + convert $(SOURCE).pdf -transparent white result.gif + make clean + +svg: + make + #inkscape $(SOURCE).pdf --export-plain-svg=$(SOURCE).svg + pdf2svg $(SOURCE).pdf $(SOURCE).svg + # Necessary, as pdf2svg does not always create valid svgs: + inkscape $(SOURCE).svg --export-plain-svg=$(SOURCE).svg + rsvg-convert -a -w $(WIDTH) -f svg $(SOURCE).svg -o $(SOURCE)2.svg + inkscape $(SOURCE)2.svg --export-plain-svg=$(SOURCE).svg + rm $(SOURCE)2.svg diff --git a/tikz/graph-v6-e8/README.md b/tikz/graph-v6-e8/README.md new file mode 100644 index 0000000..1e32683 --- /dev/null +++ b/tikz/graph-v6-e8/README.md @@ -0,0 +1,3 @@ +Compiled example +---------------- +![Example](graph-v6-e8.png) diff --git a/tikz/graph-v6-e8/graph-v6-e8.png b/tikz/graph-v6-e8/graph-v6-e8.png new file mode 100644 index 0000000..6e4a415 Binary files /dev/null and b/tikz/graph-v6-e8/graph-v6-e8.png differ diff --git a/tikz/graph-v6-e8/graph-v6-e8.tex b/tikz/graph-v6-e8/graph-v6-e8.tex new file mode 100644 index 0000000..cb9fae8 --- /dev/null +++ b/tikz/graph-v6-e8/graph-v6-e8.tex @@ -0,0 +1,21 @@ +\documentclass[varwidth=true, border=2pt]{standalone} +\usepackage{ifthen} +\usepackage{tikz} +\usetikzlibrary{calc} + +\begin{document} +\tikzstyle{vertex}=[draw,black,fill=blue,circle,minimum size=10pt,inner sep=0pt] +\tikzstyle{edge}=[very thick] +\begin{tikzpicture} + \node (a)[vertex,fill=lime] at (1,0) {}; + \node (b)[vertex,fill=red] at (0,1) {}; + \node (c)[vertex,fill=lime] at (1,2) {}; + \node (d)[vertex,fill=blue] at (2,2) {}; + \node (e)[vertex,fill=red] at (3,1) {}; + \node (f)[vertex,fill=blue] at (2,0) {}; + + \draw[edge] (a) -- (b) -- (c) -- (d) -- (e) -- (f) -- (a) -- cycle; + \draw[edge] (b) -- (f); + \draw[edge] (b) -- (d); +\end{tikzpicture} +\end{document}