mindmap sortieren und füllen beginnen
This commit is contained in:
parent
4d42b1b677
commit
a077c6aefd
Binary file not shown.
@ -1,48 +1,333 @@
|
||||
\documentclass{article}
|
||||
\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}
|
||||
\usetikzlibrary{mindmap}
|
||||
\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}
|
||||
|
||||
%Tikz global setting
|
||||
\tikzset{
|
||||
topic/.style={
|
||||
text centered,
|
||||
text width=5cm,
|
||||
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=3cm,
|
||||
edge from parent path={(\tikzparentnode.205) |- (\tikzchildnode.west)}
|
||||
},
|
||||
description/.style={
|
||||
grow=down,
|
||||
xshift=-0.5cm,
|
||||
right,
|
||||
text centered,
|
||||
edge from parent path={(\tikzparentnode.200) |- (\tikzchildnode.west)}
|
||||
},
|
||||
level1/.style ={level distance=1cm},
|
||||
level2/.style ={level distance=2cm},
|
||||
level3/.style ={level distance=3cm},
|
||||
level4/.style ={level distance=4cm},
|
||||
level5/.style ={level distance=5cm},
|
||||
level6/.style ={level distance=6cm},
|
||||
level7/.style ={level distance=7cm},
|
||||
level8/.style ={level distance=8cm},
|
||||
level9/.style ={level distance=9cm},
|
||||
level 1/.style={sibling distance=5.5cm},
|
||||
level 1/.append style={level distance=2.5cm},
|
||||
}
|
||||
|
||||
% Turn off header and footer
|
||||
\pagestyle{empty}
|
||||
\begin{document}
|
||||
|
||||
\begin{tikzpicture}[mindmap, grow cyclic, every node/.style=concept, concept color=orange!40,
|
||||
level 1/.append style={level distance=5cm,sibling angle=90},
|
||||
level 2/.append style={level distance=3cm,sibling angle=45}]
|
||||
|
||||
\node{Sprache}
|
||||
child [concept color=blue!30] { node {Chomsky Hierachie}
|
||||
child { node {Typ 0: Allgemein}}
|
||||
child { node {Typ 1: Kontextsensitiv}}
|
||||
child { node {Typ 2: Kontextfrei}}
|
||||
child { node {Typ 3: Regulär}}
|
||||
}
|
||||
child [concept color=yellow!30] { node {Wort}
|
||||
child { node { y Präfix von w, wenn es $z\in\sum^*$ gibt mit $yz=w$}}
|
||||
child { node { y Infix/Faktor von w, wenn es $x,z\in\sum^*$ gibt mit $xyz = w$}}
|
||||
child { node { y Suffix von w, wenn es $x\in\sum^*$ gibt mit $xy=w$}}
|
||||
}
|
||||
child [concept color=teal!40] { node {Beamer Series}
|
||||
}
|
||||
child [concept color=purple!50] { node {TikZ Series}
|
||||
};
|
||||
\begin{tikzpicture}
|
||||
\node[topic]{Automaten, Sprachen \& Komplexität}
|
||||
child{node [subtopic]{Sprache}
|
||||
child [theme, level1] { node {Chomsky Hierachie}
|
||||
child[description, level distance=1cm] { node {Typ 0: Allgemein \\ jede Grammatik ist vom Typ 0}}
|
||||
child[description, level distance=2cm] { 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=3cm] { node {Typ 2: Kontextfrei \\ wenn $l\in V$ und $r\in (V\cup \sum)^*$ gilt}}
|
||||
child[description, level distance=4cm] { node {Typ 3: Regulär \\ wenn $l\in V$ und $r\in \sum V\cup {\epsilon}$ gilt}}
|
||||
}
|
||||
}
|
||||
child{node [subtopic]{Wort}
|
||||
child[description, level distance=1cm] { node { y Präfix von w, wenn es $z\in\sum^*$ gibt mit $yz=w$}}
|
||||
child[description, level distance=2cm] { node { y Infix/Faktor von w, wenn es $x,z\in\sum^*$ gibt mit $xyz = w$}}
|
||||
child[description, level distance=3cm] { node { y Suffix von w, wenn es $x\in\sum^*$ gibt mit $xy=w$}}
|
||||
}
|
||||
child{node [subtopic]{Grammatik}
|
||||
child[theme, level distance=1cm] { node {Symbole}
|
||||
child[description, level distance=1cm] { node {Nicht-Terminale (oder Variablen), aus denen noch weitere Wortbestandteile abgeleitet werden sollen}}
|
||||
child[description, level distance=2cm] { node {Terminale (die "eigentlichen" Symbole)}}
|
||||
}
|
||||
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 ein 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}}
|
||||
}
|
||||
child[theme, level distance=8cm]{ node {Konventionen}
|
||||
child[description, level distance=1cm] { node {Variablen sind Großbuchstaben (Elemente aus V)}}
|
||||
child[description, level distance=2cm] { node {Terminale sind Kleinbuchstaben (Elemente aus $\sum$)}}
|
||||
}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}[mindmap, grow cyclic, every node/.style=concept, concept color=orange!40,
|
||||
level 1/.append style={level distance=5cm,sibling angle=90},
|
||||
level 2/.append style={level distance=3cm,sibling angle=45}]
|
||||
\node{Grammatiken}
|
||||
child [concept color=blue!30] { node {Symbole}
|
||||
child { node {Nicht-Terminale (oder Variablen), aus denen noch weitere Wortbestandteile abgeleitet werden sollen}}
|
||||
child { node {Terminale (die "eigentlichen" Symbole)}}
|
||||
\begin{tikzpicture}[
|
||||
subtopic/.style={
|
||||
yshift=1.5cm,
|
||||
text centered,
|
||||
text width=3cm,
|
||||
rounded corners=2pt,
|
||||
fill=gray!10
|
||||
},
|
||||
level 1/.style={sibling distance=5.5cm},
|
||||
level 1/.append style={level distance=2.5cm},
|
||||
]
|
||||
% Topic
|
||||
\node[topic]{Automaten, Sprachen \& Komplexität}
|
||||
child{node [subtopic] {intuitiv berechenbar}
|
||||
child[theme, level distance=1cm]{node{$\mu$ rekurisv}}
|
||||
child[theme, level distance=2cm]{node{while berechnenbar}}
|
||||
child[theme, level distance=3cm]{node{Turing berechenbar}}
|
||||
child[theme, level distance=4cm]{node{goto berechnenbar}}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
Definition: Sei L eine Sprache. Dann ist $L*=\bigcup_{n\geq 0} L^n$ der Kleene-Abschluss oder die Kleene-Iteration von L. Weiter ist $L+ = \bigcup_{n\geq 0} L^n$
|
||||
|
||||
|
||||
\begin{tikzpicture}
|
||||
\node[topic]{Rechtslineare Sprachen}
|
||||
child{node [subtopic] {endliche Automaten (Maschinen)}
|
||||
child[theme, level distance=1cm]{node{deterministischer endlicher Automat M}
|
||||
child[description, level distance=1cm]{node{5-Tupel $M=(Z, \sum, z_0, \delta, E)$}}
|
||||
child[description, level distance=1cm]{node{$Z$ eine endliche Menge von Zuständen}}
|
||||
child[description, level distance=1cm]{node{$\sum$ das Eingabealphabet (mit $Z\cap\sum = \emptyset$)}}
|
||||
child[description, level distance=1cm]{node{$z_0\in Z$ der Startzustand}}
|
||||
child[description, level distance=1cm]{node{$\delta: Z \times \sum \rightarrow Z$ die Übergangsfunktion}}
|
||||
child[description, level distance=1cm]{node{$E\subseteq Z$ die Menge der Endzustände}}
|
||||
child[description, level distance=1cm]{node{kurz: DFA (deterministic finite automaton)}}
|
||||
child[description, level distance=1cm]{node{von einem DFA akzeptierte Sprache ist: $L(M)={w\in\sum^* | \hat{\delta}(z_0,w)\in E}$}}
|
||||
child[description, level distance=1cm]{node{Eine Sprache $L \supseteq \sum^*$ ist regulär, wenn es einen DFA mit $L(M)=L$ gibt}}
|
||||
%Jede reguläre Sprache ist rechtslinear
|
||||
}
|
||||
child [concept color=yellow!30] { node {4-Tupel $G=(V,\sum, P, S)$}
|
||||
child { node {V ist eine endliche Menge von Nicht-Terminalen oder Variablen (Bsp $V=\{S,B,C\}$)}}
|
||||
child { node {$\sum$ ist ein Alphabet (Menge der Terminale) mit $V\cap \sum= \varnothing$, d.h. kein Zeichen ist gleichzeitig Terminal und Nicht-Terminal (Bsp $\sum=\{a,b,c\}$)}}
|
||||
child { node {$P\subseteq (V\cup \sum)^+ \times (v\cup\sum)^*$ ist eine endliche Menge von Regeln oder Produktionen (Produktionsmenge) (Bsp $P=\{(S,aSBC), (S,aBC), (cC,cc), (aB,ab)\}$)}}
|
||||
child { node {$S\in V$ ist das Startsymbol/ die Startvariable oder das Axiom}}
|
||||
child[theme, level distance=1cm]{node{nicht-deterministischer endlicher Automat M}
|
||||
%Jede von einem NFA akzeptierte Sprache ist regulär
|
||||
child[description, level distance=1cm]{node{kurz NFA}}
|
||||
}
|
||||
%Satz: Wenn $L_1$ und $L_2$ reguläre Sprachen sind, dann ist auch $L_1 \cup L_2$ regulär.
|
||||
%Satz: Wenn $L_1$ und $L_2$ reguläre Sprachen sind, dann ist auch $L_1 \cap L_2$ regulär.
|
||||
%Satz: Wenn $L_1$ und $L_2$ reguläre Sprachen sind, dann ist auch $L_1L_2$ regulär
|
||||
%Satz: Wenn L eine reguläre Sprache ist, dann ist auch $L^+/L^*$ regulär
|
||||
}
|
||||
child{description, level distance}{node{Reguläre Ausdrücke
|
||||
% Definition: Die Menge $Reg(\sum)$ der **regulären Ausdrücke über dem Alphabet $\sum$** ist die kleinste Menge mit folgenden Eigenschaften:
|
||||
% - $\varnothing \in Reg(\sum), \lambda \in Reg(\sum), \sum \subseteq Reg(\sum)$
|
||||
% - Wenn $\alpha, \beta \in Reg(\sum)$, dann auch $(\alpha * \beta), (\alpha + \beta), (\alpha^*)\in Reg(\sum)$
|
||||
%- für $\alpha * \beta$ schreibt man oft $\alpha\beta$
|
||||
% für $\alpha + \beta$ schreibt man auch $\alpha|\beta$
|
||||
|
||||
%Für einen regulären Ausdruck $\alpha \in Reg(\sum)$ ist die Sprache $L(\alpha)\subseteq \sum^*$ induktiv definiert
|
||||
|
||||
%zu jedem regulären Ausdruck $\gamma$ gibt es einen NFA M mit $L(\gamma)=L(M)$
|
||||
%zu jedem DFA M gibt es einen regulären Ausdruck $\gamma$ mit $L(M)=L(\gamma)$
|
||||
}}
|
||||
%- Rechtslineare Grammatiken
|
||||
% - Verbindung zur Chomsky Hierarchie
|
||||
% - erzeugen Sprachen
|
||||
% - nicht geeignet, um zu entscheiden, ob ein gegebenes Wort zur Sprache gehört
|
||||
%- NFA
|
||||
% - erlauben kleine Kompakte Darstellung
|
||||
% - intuitive graphische Notation
|
||||
% - nicht geeignet, um zu entscheiden, ob ein gegebenes Wort zur Sprache gehört
|
||||
%- DFA
|
||||
% - für effiziente Beantwortung der Frage, ob ein Wort zur Sprache gehört
|
||||
% - sind uU exponentiell größer als NFA
|
||||
%- Reguläre Ausdrücke
|
||||
% - erlauben kompakte Darstellung in Textform
|
||||
child{node [subtopic] {Nicht-Reguläre Sprachen}
|
||||
% Für jedes Alphabet $\sum$ existiert eine Sprache L über $\sum$, die von keiner Grammatik G erzeugt wird.
|
||||
child[theme, level distance=2cm]{node{ Pumping Lemma}
|
||||
%Wenn L eine reguläre Sprache ist, 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:
|
||||
%1. $x=uvw$
|
||||
%2. $|uv|\leq n$
|
||||
%3. $|v|\geq 1$
|
||||
%4. $uv^i w\in L$ für alle $i\geq 0$
|
||||
|
||||
%Dieses Lemma spricht nicht über Automaten, sondern nur über die Eigenschaften der Sprache. Es ist geeignet, Aussagen über Nicht-Regularität zu machen. Dabei ist es aber nur eine notwendige Bedingung. Es kann nicht genutzt werden, um die Regularität einer Sprache L zu zeigen.
|
||||
}
|
||||
child[theme, level distance=3cm]{node{ Myhill-Nerode Äquivalenz}
|
||||
%Für eine Sprache $L\subseteq \sum^*$ definieren wir eine binäre Relation $R_L \subseteq \sum^* \times \sum^*$ wie folgt: Für alle $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. Wir schreiben hierfür auch $x R_L y$.
|
||||
% Definition: Für eine Sprache L und ein Wort $x\in \sum^*$ ist $[x]_L=\{y\in\sum^* | x R_L y \}$ die Äquivalenzklasse von x. Ist L klar, so schreiben wir einfacher $[x]$.
|
||||
%Satz von Myhill-Nerode: Sei L eine Sprache. L ist regulär $\leftrightarrow index(R_L)< \infty$ (d.h. nur wenn die Myhill-Nerode-Äquivalenz endliche Klassen hat)
|
||||
}
|
||||
}
|
||||
child{node [subtopic] {Minimalautomat}
|
||||
%Ein DFA M heißt reduziert, wenn es für jeden Zustand $z \in Z$ ein Wort $x_z\in \sum^*$ gibt mit $\hat{\sigma}(l, x_z)=z$
|
||||
}
|
||||
child{node [subtopic] {Entscheidbarkeit}
|
||||
child[theme, level distance=1cm]{node{Wortproblem}}
|
||||
child[theme, level distance=1cm]{node{Leerheitsproblem}}
|
||||
child[theme, level distance=1cm]{node{Endlichkeitsproblem}}
|
||||
child[theme, level distance=1cm]{node{Schnittproblem}}
|
||||
child[theme, level distance=1cm]{node{Inklusionsproblem}}
|
||||
child[theme, level distance=1cm]{node{Äquivalenzproblem}}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\node[topic]{Kontextfreie Sprachen}
|
||||
child{node [subtopic] { Ableitungsbäume}}
|
||||
child{node [subtopic] {Linksableitung}}
|
||||
child{node [subtopic] {Chomsky Normalform}}
|
||||
child{node [subtopic] {Der Cocke-Younger-Kasami- oder CYK-Algorithmus}}
|
||||
child{node [subtopic] {Kellerautomaten}}
|
||||
child{node [subtopic] {die Greibach-Normalform}}
|
||||
child{node [subtopic] {PDAs mit Endzuständen}}
|
||||
child{node [subtopic] {Deterministisch kontextfreie Sprachen}}
|
||||
child{node [subtopic] {das Pumping Lemma für kontextfreie Sprachen}}
|
||||
child{node [subtopic] {das Lemma von Ogden (William Ogden)}}
|
||||
;
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\node[topic]{Berechenbarkeit}
|
||||
child{node [subtopic] {Loop-Berechenbarkeit}}
|
||||
child{node [subtopic] {While Programme}
|
||||
child[theme, level distance=1cm]{node{Gödels Vermutung}}
|
||||
}
|
||||
child{node [subtopic] {GoTo Programme}
|
||||
child[theme, level distance=1cm]{node{Kleenesche Normalform}}
|
||||
}
|
||||
child{node [subtopic] {Turing Berechenbarkeit}}
|
||||
;
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\node[topic]{Entscheidbarkeit}
|
||||
child{node [subtopic] {Halteproble}}
|
||||
child{node [subtopic] {Reduktion}}
|
||||
child{node [subtopic] {Rechnen mit Kodierungen}}
|
||||
child{node [subtopic] {Satz von Rice}}
|
||||
child{node [subtopic] {Semi Entscheidbarkeit}}
|
||||
child{node [subtopic] {Universelle Turing Maschine}}
|
||||
child{node [subtopic] {Totale berechenbare Funktionen}}
|
||||
child{node [subtopic] {Einige unentscheidbare Probleme}}
|
||||
;
|
||||
\end{tikzpicture}
|
||||
|
||||
\begin{tikzpicture}
|
||||
\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=1cm]{node{Deterministische Platzklassen}}
|
||||
child[theme, level distance=1cm]{node{Nichtdeterministische Zeitklassen}}
|
||||
child[theme, level distance=1cm]{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=1cm]{node{3C ist NP-vollständig}}
|
||||
child[theme, level distance=1cm]{node{DHC ist NP-vollständig}}
|
||||
child[theme, level distance=1cm]{node{HC ist NP-vollständig}}
|
||||
child[theme, level distance=1cm]{node{TSP ist NP-vollständige}}
|
||||
};
|
||||
\end{tikzpicture}
|
||||
|
||||
\end{document}
|
||||
|
@ -4,6 +4,108 @@ date: Wintersemester 20/21
|
||||
author: Robert Jeutter
|
||||
---
|
||||
|
||||
- [Einführung](#einführung)
|
||||
- [Grundfrage](#grundfrage)
|
||||
- [Probleme (als Abbildung)](#probleme-als-abbildung)
|
||||
- [(beschränkte) Resourcen](#beschränkte-resourcen)
|
||||
- [Grundbegriffe](#grundbegriffe)
|
||||
- [Chomsky Hierarchie](#chomsky-hierarchie)
|
||||
- [Rechtslineare Sprachen](#rechtslineare-sprachen)
|
||||
- [endliche Automaten (Maschinen)](#endliche-automaten-maschinen)
|
||||
- [Reguläre Ausdrücke](#reguläre-ausdrücke)
|
||||
- [Zusammenfassung](#zusammenfassung)
|
||||
- [Nicht-Reguläre Sprachen](#nicht-reguläre-sprachen)
|
||||
- [Konkrete nicht-reguläre Sprachen](#konkrete-nicht-reguläre-sprachen)
|
||||
- [Pumping Lemma (auswendig lernen!)](#pumping-lemma-auswendig-lernen)
|
||||
- [Myhill-Nerode Äquivalenz](#myhill-nerode-äquivalenz)
|
||||
- [Minimalautomat](#minimalautomat)
|
||||
- [Algorithmus Minimalautomat](#algorithmus-minimalautomat)
|
||||
- [Entscheidbarkeit](#entscheidbarkeit)
|
||||
- [Wortproblem](#wortproblem)
|
||||
- [Leerheitsproblem](#leerheitsproblem)
|
||||
- [Endlichkeitsproblem](#endlichkeitsproblem)
|
||||
- [Schnittproblem](#schnittproblem)
|
||||
- [Inklusionsproblem](#inklusionsproblem)
|
||||
- [Äquivalenzproblem](#äquivalenzproblem)
|
||||
- [Effizientbetrachtung](#effizientbetrachtung)
|
||||
- [Pumping Lemma mit Alphabet aus einem Zeichen](#pumping-lemma-mit-alphabet-aus-einem-zeichen)
|
||||
- [Spielschema oder anderes Schema in Prüfung gefirdert](#spielschema-oder-anderes-schema-in-prüfung-gefirdert)
|
||||
- [Produktbildung von zwei regulären Sprachen. Wenn die erste Sprache als Startzustand da leere Wort enthält, muss man den Startzustand der zweiten Sprache beibehalten?](#produktbildung-von-zwei-regulären-sprachen-wenn-die-erste-sprache-als-startzustand-da-leere-wort-enthält-muss-man-den-startzustand-der-zweiten-sprache-beibehalten)
|
||||
- [Kontextfreie Sprachen](#kontextfreie-sprachen)
|
||||
- [Ableitungsbäume](#ableitungsbäume)
|
||||
- [Linksableitung](#linksableitung)
|
||||
- [kontextfreie Sprachen sind kontext-sensitiv](#kontextfreie-sprachen-sind-kontext-sensitiv)
|
||||
- [Chomsky Normalform](#chomsky-normalform)
|
||||
- [Der Cocke-Younger-Kasami- oder CYK-Algorithmus](#der-cocke-younger-kasami--oder-cyk-algorithmus)
|
||||
- [Kellerautomaten](#kellerautomaten)
|
||||
- [die Greibach-Normalform](#die-greibach-normalform)
|
||||
- [Von Grammatiken zu PDAs](#von-grammatiken-zu-pdas)
|
||||
- [Von PDAs zu Grammatiken](#von-pdas-zu-grammatiken)
|
||||
- [PDAs mit Endzuständen](#pdas-mit-endzuständen)
|
||||
- [Deterministisch kontextfreie Sprachen](#deterministisch-kontextfreie-sprachen)
|
||||
- [Abschlusseigenschaften](#abschlusseigenschaften)
|
||||
- [das Pumping Lemma für kontextfreie Sprachen](#das-pumping-lemma-für-kontextfreie-sprachen)
|
||||
- [das Lemma von Ogden (William Ogden)](#das-lemma-von-ogden-william-ogden)
|
||||
- [Entscheidbarkeit](#entscheidbarkeit-1)
|
||||
- [2. dann zeige $W\supseteq W_{|V|}$](#2-dann-zeige-wsupseteq-w_v)
|
||||
- [Unentscheidbarkeit bei kontextfreien Sprachen](#unentscheidbarkeit-bei-kontextfreien-sprachen)
|
||||
- [Entscheidbarkeit bei deterministisch kontextfreien Sprachen](#entscheidbarkeit-bei-deterministisch-kontextfreien-sprachen)
|
||||
- [Unentscheidbarkeit bei deterministisch kontextfreien Sprachen](#unentscheidbarkeit-bei-deterministisch-kontextfreien-sprachen)
|
||||
- [Zusammenfassung kontextfreie Sprachen](#zusammenfassung-kontextfreie-sprachen)
|
||||
- [Berechenbarkeit](#berechenbarkeit)
|
||||
- [Loop-Berechenbarkeit](#loop-berechenbarkeit)
|
||||
- [(K+) viele Loop-berechenbare Funktionen](#k-viele-loop-berechenbare-funktionen)
|
||||
- [(A+) viele Abschlusseigenschaften](#a-viele-abschlusseigenschaften)
|
||||
- [Primitiv-rekursive Funktionen](#primitiv-rekursive-funktionen)
|
||||
- [Argument K- gegen die Loop Vermutung](#argument-k--gegen-die-loop-vermutung)
|
||||
- [Ackermann Funktion](#ackermann-funktion)
|
||||
- [While Programme](#while-programme)
|
||||
- [Gödels Vermutung](#gödels-vermutung)
|
||||
- [GoTo Programme](#goto-programme)
|
||||
- [Ein kleiner Ausflug - Kleenesche Normalform](#ein-kleiner-ausflug---kleenesche-normalform)
|
||||
- [Turing Berechenbarkeit](#turing-berechenbarkeit)
|
||||
- [Beispiel einer Turingmaschine (intuitiv)](#beispiel-einer-turingmaschine-intuitiv)
|
||||
- [Beispiel Turingmaschine (formal)](#beispiel-turingmaschine-formal)
|
||||
- [Mehrband Tunringmaschine](#mehrband-tunringmaschine)
|
||||
- [Ausflug: Zählermaschine](#ausflug-zählermaschine)
|
||||
- [Entscheidbarkeit](#entscheidbarkeit-2)
|
||||
- [Halteproble](#halteproble)
|
||||
- [Reduktion](#reduktion)
|
||||
- [Rechnen mit Kodierungen](#rechnen-mit-kodierungen)
|
||||
- [Satz von Rice](#satz-von-rice)
|
||||
- [Semi Entscheidbarkeit](#semi-entscheidbarkeit)
|
||||
- [Universelle Turing Maschine](#universelle-turing-maschine)
|
||||
- [Totale berechenbare Funktionen](#totale-berechenbare-funktionen)
|
||||
- [Einige unentscheidbare Probleme](#einige-unentscheidbare-probleme)
|
||||
- [Kontextfreie Sprachen](#kontextfreie-sprachen-1)
|
||||
- [Komplexitätstheorie](#komplexitätstheorie)
|
||||
- [Zusammenfassung Berechenbarkeitstheorie](#zusammenfassung-berechenbarkeitstheorie)
|
||||
- [Die zentrale Frage der Komplexitätstheorie](#die-zentrale-frage-der-komplexitätstheorie)
|
||||
- [Komplexitätsklassen](#komplexitätsklassen)
|
||||
- [Deterministische Zeitklassen](#deterministische-zeitklassen)
|
||||
- [Einige typische Probleme in P](#einige-typische-probleme-in-p)
|
||||
- [Erreichbarkeit](#erreichbarkeit)
|
||||
- [Euler-Kreise](#euler-kreise)
|
||||
- [Deterministische Platzklassen](#deterministische-platzklassen)
|
||||
- [Einige typische Probleme in PSPACE: Erfüllbarkeit](#einige-typische-probleme-in-pspace-erfüllbarkeit)
|
||||
- [Einige typische Probleme in PSPACE: Hamilton-Kreise](#einige-typische-probleme-in-pspace-hamilton-kreise)
|
||||
- [Einige typische Probleme in PSPACE: 3-Färbbarkeit](#einige-typische-probleme-in-pspace-3-färbbarkeit)
|
||||
- [Zusammenfassung: typische Probleme](#zusammenfassung-typische-probleme)
|
||||
- [Nichtdeterministische Turingmaschinen](#nichtdeterministische-turingmaschinen)
|
||||
- [Determinisierbarkeit von NTM](#determinisierbarkeit-von-ntm)
|
||||
- [Nichtdeterministische Zeitklassen](#nichtdeterministische-zeitklassen)
|
||||
- [Nichtdeterministische Platzklassen](#nichtdeterministische-platzklassen)
|
||||
- [Typische Probleme, 2. Versuch](#typische-probleme-2-versuch)
|
||||
- [Polynomialzeit-Reduktionen](#polynomialzeit-reduktionen)
|
||||
- [NP-Vollständigkeit](#np-vollständigkeit)
|
||||
- [Weitere NP-vollständige Probleme](#weitere-np-vollständige-probleme)
|
||||
- [3-SAT ist NP-vollständig](#3-sat-ist-np-vollständig)
|
||||
- [3C ist NP-vollständig](#3c-ist-np-vollständig)
|
||||
- [DHC ist NP-vollständig](#dhc-ist-np-vollständig)
|
||||
- [HC ist NP-vollständig](#hc-ist-np-vollständig)
|
||||
- [TSP ist NP-vollständig](#tsp-ist-np-vollständig)
|
||||
- [Zusammenfassung](#zusammenfassung-1)
|
||||
|
||||
Literaturempfehlung: Theoretische Informatik - kurz gefasst, Uwe Schöning, Spektrum Akademischer Weg
|
||||
|
||||
# Einführung
|
||||
@ -139,7 +241,9 @@ Konventionen:
|
||||
- für $(l,r)\in P$ schreibt man auch $l\rightarrow r$
|
||||
|
||||
> Definition: Sei $G=(V, \sum, P, S)$ eine Grammatik. Eine **Ableitung** ist eine endliche Folge von Wörtern
|
||||
>
|
||||
> Ein **Wort** $w\in (V\cup\sum)^*$ heißt Satzform, wenn es eine Ableitung gibt, deren letztes Wort w ist.
|
||||
>
|
||||
> Die **Sprache** $L(G)={w\in \sum^* | S\Rightarrow_G^* w}$ aller Satzformen aus $\sum^*$ heißt von G erzeugte Sprache.
|
||||
|
||||
Dabei ist $\Rightarrow_G^*$ der reflexive und transitive Abschluss von $\Rightarrow_G$. D.h. die von G erzeugte Sprache L(G) besteht genau aus den Wörtern, die in beliebig vielen Schritten aus S abgeleitet werden können und nur aus Terminalen besteht.
|
||||
@ -154,14 +258,14 @@ Nichtdeterminismus kann verursacht werden durch:
|
||||
- manchmal können Ableitungen in einer Sackgasse enden, d.h. obwohl noch nichtterminale in einer Satzformen vorkommen, ist keine Regel mehr anwendbar.
|
||||
|
||||
## Chomsky Hierarchie
|
||||
. Typ 0 (Chomsky-0): Jede Grammatik ist vom Typ 0 (Semi-Thue-System)
|
||||
- Typ 0 (Chomsky-0): Jede Grammatik ist vom Typ 0 (Semi-Thue-System)
|
||||
- Typ 1: Eine Regel heißt kontext-sensitiv, 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$. Eine Grammatik ist vom Typ 1 (oder kontext-sensitiv) falls
|
||||
- alle Regeln aus P kontext-sensitiv sind
|
||||
- $(S\rightarrow \epsilon)\in P$ die einzige nicht kontext-sensitive Regel in P ist und S auf keiner rechten Seite einer Regel aus P vorkommt
|
||||
- Typ 2: eine Regel $(l\rightarrow r)$ heißt kontext-frei wenn $l\in V$ und $r\in (V\cup \sum)^*$ gilt. Eine Grammatik ist vom Typ 2, falls sie nur kontext-freie Regeln enthält
|
||||
- Typ 3: Eine Regl ist rechtslinear, wenn $l\in V$ und $r\in \sum V\cup {\epsilon}$ gilt. Eine Grammatik ist vom Typ 3 wenn sie nur rechtslineare Regeln enthält
|
||||
|
||||
> Definition: Eine Sprache heißt vom Typ i (4i\in {0,1,2,3}$) falls es eine Typ-i-Grammatik gibt mit $L(G)=L$. Wir bezeichnen mit $L$, die Klasse der Sprache vom Typ i.
|
||||
> Definition: Eine Sprache heißt vom Typ i ($i\in \{0,1,2,3\}$) falls es eine Typ-i-Grammatik gibt mit $L(G)=L$. Wir bezeichnen mit $L$, die Klasse der Sprache vom Typ i.
|
||||
|
||||
Eine Sprache vom Typ i nennt man auch rekursiv aufzählbar (i=0, RE), kontext-sensitiv (i=1, CS), kontext-frei (i=2, CF) oder rechtslinear (i=3, REG).
|
||||
|
||||
@ -435,8 +539,8 @@ Der Index $index(R)$ von R ist die Anzahl der Äquivalenzklassen von R: $index(R
|
||||
(d.h. nur wenn die Myhill-Nerode-Äquivalenz endliche Klassen hat)
|
||||
|
||||
Beweis:
|
||||
- "$Rightarrow$": Sei L regulär -> es gibt DFA M mit $L(M)=L$...
|
||||
- "$Leftarrow$": sei $index(R_L)< \infty$ -> Definiere einen DFA $M_L=(\{[x_1],...,[x_n]\},\sum,[\epsilon],\sigma,\{[w]|w\in L\})$
|
||||
- "$\Rightarrow$": Sei L regulär -> es gibt DFA M mit $L(M)=L$...
|
||||
- "$\Leftarrow$": sei $index(R_L)< \infty$ -> Definiere einen DFA $M_L=(\{[x_1],...,[x_n]\},\sum,[\epsilon],\sigma,\{[w]|w\in L\})$
|
||||
|
||||
|
||||
## Minimalautomat
|
||||
@ -457,7 +561,8 @@ Wenn in einem DFA M aus Startzustand X und Y dieselben Sprachen akzeptiert werde
|
||||
|
||||
> Definition: Sei M ein DFA. Dann ist $M'=(Z_{\equiv},\sum, [z_0],\sigma', E')$ mit
|
||||
> - $\sigma'([z],a)=[\sigma (z,a)]$ für $z\in Z$ und $a\in \sum$ und
|
||||
> - $E'=\{[z]|z\in E\}
|
||||
> - $E'=\{[z]|z\in E\}$
|
||||
>
|
||||
> der Quotient von M bzgl $\equiv$
|
||||
(es wird nicht mehr jeder einzelne Fall betrachtet sondern "ganze Gruppen"; Bsp Sitz->Reihe)
|
||||
|
||||
@ -1985,7 +2090,7 @@ Wir haben gezeigt:
|
||||
|
||||
Die Grenze zwischen „einfachen“ und „schwierigen“ Formeln liegt also zwischen Formeln in KNF mit höchstens zwei bzw. höchstens drei Literalen pro Klausel.
|
||||
|
||||
## 3C ist NP-vollständig
|
||||
### 3C ist NP-vollständig
|
||||
k-Färbbarkeit von Graphen
|
||||
- EINGABE: Ein ungerichteter Graph $G = (V , E )$.
|
||||
- FRAGE: Gibt es Zuordnung von k verschiedenen Farben zu Knoten in V, so dass keine zwei benachbarten Knoten $v_1,v_2$ dieselbe Farbe haben?
|
||||
@ -2012,7 +2117,7 @@ Sei also $\phi$ Formel in KNF, deren Klauseln genau drei Literale enthalten (ggf
|
||||
|
||||
![Dreieckfärbung](Assets/ASK_Dreieckfaerbung4.png)
|
||||
|
||||
## DHC ist NP-vollständig
|
||||
### DHC ist NP-vollständig
|
||||
> DHC - Gerichteter Hamiltonkreis
|
||||
> - EINGABE: ein gerichteter Graph $G = (V , E )$ mit Knotenmenge $V$ und Kantenmenge $E\supseteq V\times V$.
|
||||
> - FRAGE: Besitzt der Graph G einen Hamiltonkreis, d.h. kann man den Graphen so durchlaufen, dass jeder Knoten genau einmal besucht wird?
|
||||
@ -2050,7 +2155,7 @@ Damit gilt für den so definierten Graphen G:
|
||||
- G kann aus $\phi$ in polynomieller Zeit berechnet werden.
|
||||
also: $3-SAT \leq_P DHC$, womit folgt, daß DHC NP-hart und damit NP-vollständig ist.
|
||||
|
||||
## HC ist NP-vollständig
|
||||
### HC ist NP-vollständig
|
||||
Im nächsten Schritt zeigen wir, dass auch das analoge Problem für ungerichtete Graphen NP-vollständig ist.
|
||||
|
||||
> HC - Ungerichteter Hamiltonkreis
|
||||
@ -2065,7 +2170,7 @@ Im nächsten Schritt zeigen wir, dass auch das analoge Problem für ungerichtete
|
||||
- Idee: Ersetze einen Knoten mit ein- und ausgehenden Kanten wie folgt
|
||||
![Hamiltonkreiskanten](Assets/ASK_HamiltonkreisKanten.png)
|
||||
|
||||
## TSP ist NP-vollständig
|
||||
### TSP ist NP-vollständig
|
||||
Wir zeigen nun, daß auch das Travelling-Salesman-Problem NP-vollständig ist.
|
||||
|
||||
> TSP - Travelling Salesman
|
||||
|
Loading…
Reference in New Issue
Block a user