426 lines
20 KiB
TeX
426 lines
20 KiB
TeX
\documentclass[a4paper]{article}
|
|
\usepackage[ngerman]{babel}
|
|
\usepackage{multicol}
|
|
\usepackage{calc}
|
|
\usepackage{ifthen}
|
|
\usepackage[landscape,left=1cm,top=1cm,right=1cm,nohead,nofoot]{geometry}
|
|
\usepackage{amsmath,amsthm,amsfonts,amssymb}
|
|
\usepackage{color,graphicx,overpic}
|
|
\usepackage{listings}
|
|
\usepackage[compact]{titlesec} %less space for headers
|
|
\usepackage{mdwlist} %less space for lists
|
|
\usepackage[utf8]{inputenc}
|
|
\usepackage{tikz}
|
|
\usepackage{pdflscape}
|
|
\usepackage{verbatim}
|
|
\usetikzlibrary{mindmap, arrows,shapes,positioning,shadows,trees}
|
|
\tikzstyle{every node}=[draw=black,thin,anchor=west, minimum height=2em]
|
|
\usepackage[hidelinks,pdfencoding=auto]{hyperref}
|
|
|
|
\pdfinfo{
|
|
/Title (Automaten, Sprachen \& Komplexität - Cheatsheet)
|
|
/Creator (TeX)
|
|
/Producer (pdfTeX 1.40.0)
|
|
/Author (Robert Jeutter)
|
|
/Subject ()
|
|
}
|
|
% Information boxes
|
|
\newcommand*{\info}[4][16.3]{
|
|
\node [ annotation, #3, scale=0.65, text width = #1em, inner sep = 2mm ] at (#2) {
|
|
\list{$\bullet$}{\topsep=0pt\itemsep=0pt\parsep=0pt
|
|
\parskip=0pt\labelwidth=8pt\leftmargin=8pt
|
|
\itemindent=0pt\labelsep=2pt}
|
|
#4
|
|
\endlist
|
|
};
|
|
}
|
|
|
|
% This sets page margins to .5 inch if using letter paper, and to 1cm
|
|
% if using A4 paper. (This probably isn't strictly necessary.)
|
|
% If using another size paper, use default 1cm margins.
|
|
\ifthenelse{\lengthtest { \paperwidth = 11in}}
|
|
{ \geometry{top=.5in,left=.5in,right=.5in,bottom=.5in} }
|
|
{\ifthenelse{ \lengthtest{ \paperwidth = 297mm}}
|
|
{\geometry{top=1cm,left=1cm,right=1cm,bottom=1cm} }
|
|
{\geometry{top=1cm,left=1cm,right=1cm,bottom=1cm} }
|
|
}
|
|
|
|
% Redefine section commands to use less space
|
|
\makeatletter
|
|
\renewcommand{\section}{\@startsection{section}{1}{0mm}%
|
|
{-1ex plus -.5ex minus -.2ex}%
|
|
{0.5ex plus .2ex}%x
|
|
{\normalfont\large\bfseries}}
|
|
\renewcommand{\subsection}{\@startsection{subsection}{2}{0mm}%
|
|
{-1explus -.5ex minus -.2ex}%
|
|
{0.5ex plus .2ex}%
|
|
{\normalfont\normalsize\bfseries}}
|
|
\renewcommand{\subsubsection}{\@startsection{subsubsection}{3}{0mm}%
|
|
{-1ex plus -.5ex minus -.2ex}%
|
|
{1ex plus .2ex}%
|
|
{\normalfont\small\bfseries}}
|
|
\makeatother
|
|
|
|
% Define BibTeX command
|
|
\def\BibTeX{{\rm B\kern-.05em{\sc i\kern-.025em b}\kern-.08em
|
|
T\kern-.1667em\lower.7ex\hbox{E}\kern-.125emX}}
|
|
|
|
% Don't print section numbers
|
|
\setcounter{secnumdepth}{0}
|
|
|
|
\setlength{\parindent}{0pt}
|
|
\setlength{\parskip}{0pt plus 0.5ex}
|
|
% compress space
|
|
\setlength\abovedisplayskip{0pt}
|
|
\setlength{\parskip}{0pt}
|
|
\setlength{\parsep}{0pt}
|
|
\setlength{\topskip}{0pt}
|
|
\setlength{\topsep}{0pt}
|
|
\setlength{\partopsep}{0pt}
|
|
\linespread{0.5}
|
|
\titlespacing{\section}{0pt}{*0}{*0}
|
|
\titlespacing{\subsection}{0pt}{*0}{*0}
|
|
\titlespacing{\subsubsection}{0pt}{*0}{*0}
|
|
|
|
%My Environments
|
|
\newtheorem{example}[section]{Example}
|
|
|
|
% Turn off header and footer
|
|
\pagestyle{empty}
|
|
\begin{document}
|
|
|
|
\begin{tikzpicture}[
|
|
topic/.style={
|
|
text centered,
|
|
text width=6cm,
|
|
level distance=1mm,
|
|
sibling distance=5mm,
|
|
rounded corners=2pt
|
|
},
|
|
subtopic/.style={
|
|
yshift=1.5cm,
|
|
text centered,
|
|
text width=3cm,
|
|
rounded corners=2pt,
|
|
fill=gray!10
|
|
},
|
|
theme/.style={
|
|
grow=down,
|
|
xshift=-0.6cm,
|
|
text centered,
|
|
text width=5cm,
|
|
edge from parent path={(\tikzparentnode.205) |- (\tikzchildnode.west)}
|
|
},
|
|
description/.style={
|
|
grow=down,
|
|
xshift=-2cm,
|
|
text width=7cm,
|
|
right,
|
|
text centered,
|
|
edge from parent path={(\tikzparentnode.189) |- (\tikzchildnode.west)}
|
|
},
|
|
level 1/.style={sibling distance=9cm},
|
|
level 1/.append style={level distance=2.5cm},
|
|
]
|
|
%topic
|
|
\node[topic]{Grundbegriffe}
|
|
child{node [subtopic]{Wort}
|
|
child[theme, level distance=1cm] { node { Präfix}
|
|
child[description, level distance=1cm]{node {wenn es $z\in\sum^*$ gibt mit $yz=w$}}
|
|
}
|
|
child[theme, level distance=3cm] { node { Infix/Faktor }
|
|
child[description, level distance=1cm]{node {wenn es $x,z\in\sum^*$ gibt mit $xyz = w$}}
|
|
}
|
|
child[theme, level distance=5cm] { node { Suffix}
|
|
child[description, level distance=1cm]{node {wenn es $x\in\sum^*$ gibt mit $xy=w$}}
|
|
}
|
|
}
|
|
child{node [subtopic]{Sprache}
|
|
child [theme, level distance=1cm] { node {Chomsky Hierachie}
|
|
child[description, level distance=1cm] { node {Typ 0: Allgemein \\ jede Grammatik ist vom Typ 0}}
|
|
child[description, level distance=2.5cm] { node {Typ 1: Kontextsensitiv \\ wenn es Wörter $u,v,w\in(V\cup\sum)^*,|v|>0$ und ein Nichtterminal $A\in V$ gibt mit $l=uAw$ und $r=uvw$}}
|
|
child[description, level distance=4cm] { node {Typ 2: Kontextfrei \\ wenn $l\in V$ und $r\in (V\cup \sum)^*$ gilt}}
|
|
child[description, level distance=5.2cm] { node {Typ 3: Regulär \\ wenn $l\in V$ und $r\in \sum V\cup {\epsilon}$ gilt}}
|
|
}
|
|
child[theme, level distance=7.4cm]{node {Kleene Abschluss $L*=\bigcup_{n\geq 0} L^n$}
|
|
%child[description, level distance=1cm]{node{$L*=\bigcup_{n\geq 0} L^n$}}
|
|
}
|
|
}
|
|
child{node [subtopic]{Grammatik}
|
|
child[theme, level distance=1cm] { node {Symbole}
|
|
child[description, level distance=1cm] { node {Nicht-Terminale, Großbuchstaben, Elemente aus V}}
|
|
child[description, level distance=2cm] { node {Terminale, Kleinbuchstaben, Elemente aus $\sum$}}
|
|
}
|
|
child[theme, level distance=4cm]{ node {4-Tupel $G=(V,\sum, P, S)$}
|
|
child[description, level distance=1cm] { node {V ist eine endliche Menge von Nicht-Terminalen oder Variablen}}
|
|
child[description, level distance=2cm] { node {$\sum$ ist Alphabet (Menge der Terminale)}}
|
|
child[description, level distance=3cm] { node {$P$ ist eine endliche Menge von Regeln oder Produktionen}}
|
|
child[description, level distance=4cm] { node {$S\in V$ ist das Startsymbol oder das Axiom}}
|
|
}
|
|
};
|
|
\end{tikzpicture}
|
|
|
|
\begin{tikzpicture}[
|
|
topic/.style={
|
|
text centered,
|
|
text width=6cm,
|
|
level distance=1mm,
|
|
sibling distance=5mm,
|
|
rounded corners=2pt
|
|
},
|
|
subtopic/.style={
|
|
yshift=1.5cm,
|
|
text centered,
|
|
text width=3cm,
|
|
rounded corners=2pt,
|
|
fill=gray!10
|
|
},
|
|
theme/.style={
|
|
grow=down,
|
|
xshift=-0.6cm,
|
|
text centered,
|
|
text width=5cm,
|
|
edge from parent path={(\tikzparentnode.205) |- (\tikzchildnode.west)}
|
|
},
|
|
description/.style={
|
|
grow=down,
|
|
xshift=-2cm,
|
|
text width=5cm,
|
|
right,
|
|
text centered,
|
|
edge from parent path={(\tikzparentnode.189) |- (\tikzchildnode.west)}
|
|
},
|
|
level 1/.style={sibling distance=7cm},
|
|
level 1/.append style={level distance=2.5cm},
|
|
]
|
|
% Topic
|
|
\node[topic]{intuitiv (loop) berechenbar}
|
|
child{node [subtopic]{$\mu$ rekurisv}
|
|
child[theme, level distance=1cm]{node{Definition}
|
|
child[description, level distance=1cm]{node{$\mu f:\mathbb{N}^k\rightarrow\mathbb{N}$ definiert durch }}
|
|
child[description, level distance=2cm]{node{$\mu f(n_1,...,n_k)= min\{m| f(m,n_1,...,n_k)=0$ und }}
|
|
child[description, level distance=3cm]{node{$\forall x< m: f(x,n_1,...,n_k) \text{ definiert } \}$.}}
|
|
}
|
|
}
|
|
child{node [subtopic]{while berechnenbar}
|
|
child[theme, level distance=1cm]{node{Definition}
|
|
child[description, level distance=1.2cm]{node{$x_i=c; x_i=x_j+c; x_i=x_j-c$ mit $c\in\{0,1\}$ und $i,j\geq 1$ (Wertzuweisung) oder }}
|
|
child[description, level distance=2.5cm]{node{$P_1;P_2$, wobei $P_1$ und $P_2$ bereits While Programme sind oder }}
|
|
child[description, level distance=4cm]{node{while $x_i\not = 0$ do P end, wobei P ein While Programm ist und $i\geq 1$. }}
|
|
}
|
|
child[theme, level distance=6.5cm]{node {Gödel Vermutung}}
|
|
}
|
|
child{node [subtopic]{goto berechnenbar}
|
|
child[theme, level distance=1cm]{node{endliche nichtleere File $P=A_1;A_2;...;A_m$ von Anweisungen $A_i$ der Form}
|
|
child[description, level distance=1.5cm]{node{$x_i=c, x_i=x_j+c, x_i=x_j-c$ mit $c\in\{0,1\}$ und $i,j\geq 1$}}
|
|
child[description, level distance=3cm]{node{goto l mit $0\leq l\leq m$ (unbedingter Sprung)}}
|
|
child[description, level distance=4.5cm]{node{if $x_i=0$ then l mit $i\geq 1$ und $0\leq l \leq m$ (bedingter Sprung)}}
|
|
}
|
|
}
|
|
child{node [subtopic]{Turing berechenbar}
|
|
child[theme, level distance=1cm]{node{Berechnung}
|
|
child[description, level distance=1cm]{node{Eingabe $x$ ist anfänglicher Bandinhalt}}
|
|
child[description, level distance=2.2cm]{node{Ausgabe $f(x)$ ist Bandinhalt (ohne Blanks am Rand)beim Erreichen eines Endzustands}}
|
|
child[description, level distance=3.6cm]{node{Hält die TM für die gegebene Eingabe nicht an, ist $f(x)$ an dieser Stelle undefiniert.}}
|
|
}
|
|
child[theme, level distance=5.8cm]{node{Church-Turing-These}
|
|
child[description, level distance=1.2cm]{node{Alle im intuitiven Sinne berechenbaren Funktionen können mit Turingmaschinen berechnet werden.}}
|
|
}
|
|
};
|
|
\end{tikzpicture}
|
|
|
|
|
|
\begin{tikzpicture}[
|
|
topic/.style={
|
|
text centered,
|
|
text width=6cm,
|
|
level distance=1mm,
|
|
sibling distance=5mm,
|
|
rounded corners=2pt
|
|
},
|
|
subtopic/.style={
|
|
yshift=1.5cm,
|
|
text centered,
|
|
text width=5cm,
|
|
rounded corners=2pt,
|
|
fill=gray!10
|
|
},
|
|
theme/.style={
|
|
grow=down,
|
|
xshift=-1.6cm,
|
|
text centered,
|
|
text width=5cm,
|
|
edge from parent path={(\tikzparentnode.192) |- (\tikzchildnode.west)}
|
|
},
|
|
description/.style={
|
|
grow=down,
|
|
xshift=-2cm,
|
|
text width=5.3cm,
|
|
right,
|
|
text centered,
|
|
edge from parent path={(\tikzparentnode.189) |- (\tikzchildnode.west)}
|
|
},
|
|
level 1/.style={sibling distance=7cm},
|
|
level 1/.append style={level distance=2.5cm},
|
|
]
|
|
\node[topic]{Rechtslineare Sprachen}
|
|
child{node [subtopic] {endliche Automaten (Maschinen)}
|
|
child[theme, level distance=1cm]{node{DFA $M$}
|
|
child[description, level distance=1.2cm]{node{von einem DFA akzeptierte Sprache ist: $L(M)={w\in\sum^* | \hat{\delta}(z_0,w)\in E}$}}
|
|
child[description, level distance=2.6cm]{node{Eine Sprache $L \supseteq \sum^*$ ist regulär, wenn es einen DFA mit $L(M)=L$ gibt}}
|
|
}
|
|
child[theme, level distance=4.8cm]{node{NFA $M$}
|
|
child[description, level distance=1cm]{node {Jede von einem NFA akzeptierte Sprache ist regulär}}
|
|
}
|
|
child[theme, level distance=7cm]{node{Satz}
|
|
child[description, level distance=1cm]{node {Wenn $L_1$ und $L_2$ reguläre Sprachen sind, dann ist auch}}
|
|
child[description, level distance=2cm]{node { $L_1 \cup L_2$ regulär}}
|
|
child[description, level distance=3cm]{node {$L_1 \cap L_2$ regulär}}
|
|
child[description, level distance=4cm]{node {$L_1L_2$ regulär}}
|
|
child[description, level distance=5cm]{node {$L_1^+/L_1^*$ regulär}}
|
|
}
|
|
child[theme, level distance=13cm]{node{ Jede reguläre Sprache ist rechtslinear}}
|
|
}
|
|
child{node [subtopic] {Reguläre Ausdrücke}
|
|
child[theme, level distance=1cm]{node {Definition}
|
|
child[description, level distance=1.4cm]{node {Die Menge $Reg(\sum)$ der regulären Ausdrücke über dem Alphabet $\sum$ ist die kleinste Menge mit folgenden Eigenschaften:}}
|
|
child[description, level distance=2.9cm]{node {$\varnothing \in Reg(\sum), \lambda \in Reg(\sum), \sum \subseteq Reg(\sum)$}}
|
|
child[description, level distance=4cm]{node {Wenn $\alpha, \beta \in Reg(\sum)$, dann auch $(\alpha * \beta), (\alpha + \beta), (\alpha^*)\in Reg(\sum)$}}
|
|
child[description, level distance=5cm]{node {für $\alpha * \beta$ schreibt man oft $\alpha\beta$}}
|
|
child[description, level distance=6cm]{node {für $\alpha + \beta$ schreibt man auch $\alpha|\beta$}}
|
|
}
|
|
child[theme, level distance=8.5cm]{node {Für einen regulären Ausdruck $\alpha \in Reg(\sum)$ ist die Sprache $L(\alpha)\subseteq \sum^*$ induktiv definiert}
|
|
child[description, level distance=1.5cm]{node {zu jedem regulären Ausdruck $\gamma$ gibt es einen NFA M mit $L(\gamma)=L(M)$}}
|
|
child[description, level distance=3cm]{node {zu jedem DFA M gibt es einen regulären Ausdruck $\gamma$ mit $L(M)=L(\gamma)$}}
|
|
}
|
|
}
|
|
child{node [subtopic] {Nicht-Reguläre Sprachen}
|
|
child[theme, level distance=1cm]{node{ Pumping Lemma}
|
|
child[description, level distance=1.5cm]{node {L sei reguläre Sprache, dann gibt es $n\leq 1$ derart, dass für alle $x\in L$ mit $|x|\geq n$ gilt: es gibt Wörter $u,v,w \in \sum^*$ mit}}
|
|
child[description, level distance=3cm]{node {$x=uvw$, $|uv|\leq n$, $|v|\geq 1$}}
|
|
child[description, level distance=4cm]{node {$uv^i w\in L$ für alle $i\geq 0$}}
|
|
child[description, level distance=5cm]{node {geeignet um Aussagen über Nicht-Regularität zu machen}}
|
|
}
|
|
child[theme, level distance=7cm]{node{ Myhill-Nerode Äquivalenz}
|
|
child[description, level distance=1cm]{node {binäre Relation $R_L \subseteq \sum^* \times \sum^*$}}
|
|
child[description, level distance=2.3cm]{node {$\forall x,y\in \sum^*$ setze $(x,y)\in R_L$ genau dann, wenn $\forall z \in \sum^* :(xy\in L \leftrightarrow yz \in L)$ gilt. $x R_L y$}}
|
|
child[description, level distance=4cm]{node {Für Sprache L und Wort $x\in \sum^*$ ist $[x]_L=\{y\in\sum^* | x R_L y \}$ die Äquivalenzklasse von x}}
|
|
child[description, level distance=5.5cm]{node {Satz: L ist regulär $\leftrightarrow index(R_L)< \infty$}}
|
|
}
|
|
}
|
|
child{node [subtopic] {Entscheidbarkeit}
|
|
child[theme, level distance=1cm]{node{Wortproblem}
|
|
child[description, level distance=1cm]{node {Gilt $w\in L$ für eine gegebene reguläre Sprache L und $w\in\sum^*$?}}
|
|
}
|
|
child[theme, level distance=3cm]{node{Leerheitsproblem}
|
|
child[description, level distance=1cm]{node {Gilt $L=\varnothing$ für eine gegebene reguläre Sprache L?}}
|
|
}
|
|
child[theme, level distance=5cm]{node{Endlichkeitsproblem}
|
|
child[description, level distance=1cm]{node {Ist eine gegebene reguläre Sprache L endlich?}}
|
|
}
|
|
child[theme, level distance=7cm]{node{Schnittproblem}
|
|
child[description, level distance=1cm]{node {Gilt $L_1\cap L_2=\varnothing$ für gegebene reguläre $L_1,L_2$?}}
|
|
}
|
|
child[theme, level distance=9cm]{node{Inklusionsproblem}
|
|
child[description, level distance=1cm]{node {Gilt $L_1 \subseteq L_2$ für gegebene reguläre $L_1,L_2$?}}
|
|
}
|
|
child[theme, level distance=11cm]{node{Äquivalenzproblem}
|
|
child[description, level distance=1cm]{node {Gilt $L_1=L_2$ für gegebene reguläre $L_1,L_2$?}}
|
|
}
|
|
};
|
|
\end{tikzpicture}
|
|
|
|
\begin{tikzpicture}[
|
|
topic/.style={
|
|
text centered,
|
|
text width=6cm,
|
|
level distance=1mm,
|
|
sibling distance=5mm,
|
|
rounded corners=2pt
|
|
},
|
|
subtopic/.style={
|
|
yshift=1.5cm,
|
|
text centered,
|
|
text width=3.5cm,
|
|
rounded corners=2pt,
|
|
fill=gray!10
|
|
},
|
|
theme/.style={
|
|
grow=down,
|
|
xshift=-1.6cm,
|
|
text centered,
|
|
text width=4cm,
|
|
edge from parent path={(\tikzparentnode.192) |- (\tikzchildnode.west)}
|
|
},
|
|
description/.style={
|
|
grow=down,
|
|
xshift=-2cm,
|
|
text width=3.5cm,
|
|
right,
|
|
text centered,
|
|
edge from parent path={(\tikzparentnode.189) |- (\tikzchildnode.west)}
|
|
},
|
|
level 1/.style={sibling distance=4.5cm},
|
|
level 1/.append style={level distance=2.5cm},
|
|
]
|
|
\node[topic]{Komplexitätstheorie}
|
|
child{node [subtopic] {Berechenbarkeitstheorie}}
|
|
child{node [subtopic] {Frage der Komplexitätstheorie}}
|
|
child{node [subtopic] {Komplexitätsklassen}
|
|
child[theme, level distance=1cm]{node{Deterministische Zeitklassen}}
|
|
child[theme, level distance=2cm]{node{Deterministische Platzklassen}}
|
|
child[theme, level distance=3cm]{node{Nichtdeterministische Zeitklassen}}
|
|
child[theme, level distance=4cm]{node{Nichtdeterministische Platzklassen}}
|
|
}
|
|
child{node [subtopic] {Polynomialzeit-Reduktionen}}
|
|
child{node [subtopic] {NP-Vollständigkeit}}
|
|
child{node [subtopic] {Weitere NP-vollständige Probleme}
|
|
child[theme, level distance=1cm]{node{3-SAT ist NP-vollständig}}
|
|
child[theme, level distance=2cm]{node{3C ist NP-vollständig}}
|
|
child[theme, level distance=3cm]{node{DHC ist NP-vollständig}}
|
|
child[theme, level distance=4cm]{node{HC ist NP-vollständig}}
|
|
child[theme, level distance=5cm]{node{TSP ist NP-vollständige}}
|
|
};
|
|
\end{tikzpicture}
|
|
|
|
\begin{multicols*}{3}
|
|
\paragraph{deterministischer endlicher Automat M}
|
|
\begin{itemize*}
|
|
\item 5-Tupel $M=(Z, \sum, z_0, \delta, E)$
|
|
\item $Z$ eine endliche Menge von Zuständen
|
|
\item $\sum$ das Eingabealphabet (mit $Z\cap\sum = \emptyset$)
|
|
\item $z_0\in Z$ der Startzustand
|
|
\item $\delta: Z \times \sum \rightarrow Z$ die Übergangsfunktion
|
|
\item $E\subseteq Z$ die Menge der Endzustände
|
|
\item kurz: DFA (deterministic finite automaton)
|
|
\end{itemize*}
|
|
|
|
\section{Turingmaschine}
|
|
Definition: Eine Turingmaschine (TM) ist ein 7-Tupel $M=(Z,\sum, \Phi, \delta, z_o, \Box, E)$, wobei
|
|
\begin{itemize*}
|
|
\item $\sum$ das Eingabealphabet
|
|
\item $\Phi$ mit $\Phi\supseteq\sum$ und $\Phi\cap Z\not= 0$ das Arbeits- oder Bandalphabet,
|
|
\item $z_0\in Z$ der Startzustand,
|
|
\item $\delta:Z\times\Phi\rightarrow(Z\times\Phi\times\{L,N,R\})$ die Überführungsfunktion
|
|
\item $\Box\in\Phi/\sum$ das Leerzeichen oder Blank und
|
|
\item $E\subseteq Z$ die Menge der Endzustände ist
|
|
\end{itemize*}
|
|
|
|
|
|
\section{Linksableitung}
|
|
\section{CYK-Algorithmus}
|
|
\section{Kellerautomaten}
|
|
\section{die Greibach-Normalform}
|
|
\section{das Lemma von Ogden (William Ogden)}
|
|
\section{Halteproblem}
|
|
\section{Reduktion}
|
|
\section{Satz von Rice}
|
|
\section{Semi Entscheidbarkeit}
|
|
\section{Universelle Turing Maschine}
|
|
\section{Totale berechenbare Funktionen}
|
|
\section{Einige unentscheidbare Probleme}
|
|
|
|
\end{multicols*}
|
|
|
|
\end{document}
|