mindmap sortieren und füllen beginnen

This commit is contained in:
WieErWill 2021-02-15 13:48:08 +01:00
parent 4d42b1b677
commit a077c6aefd
3 changed files with 433 additions and 43 deletions

View File

@ -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[utf8]{inputenc}
\usepackage{tikz} \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} \pagestyle{empty}
\begin{document} \begin{document}
\begin{tikzpicture}[mindmap, grow cyclic, every node/.style=concept, concept color=orange!40, \begin{tikzpicture}
level 1/.append style={level distance=5cm,sibling angle=90}, \node[topic]{Automaten, Sprachen \& Komplexität}
level 2/.append style={level distance=3cm,sibling angle=45}] child{node [subtopic]{Sprache}
child [theme, level1] { node {Chomsky Hierachie}
\node{Sprache} child[description, level distance=1cm] { node {Typ 0: Allgemein \\ jede Grammatik ist vom Typ 0}}
child [concept color=blue!30] { node {Chomsky Hierachie} 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 { node {Typ 0: Allgemein}} child[description, level distance=3cm] { node {Typ 2: Kontextfrei \\ wenn $l\in V$ und $r\in (V\cup \sum)^*$ gilt}}
child { node {Typ 1: Kontextsensitiv}} child[description, level distance=4cm] { node {Typ 3: Regulär \\ wenn $l\in V$ und $r\in \sum V\cup {\epsilon}$ gilt}}
child { node {Typ 2: Kontextfrei}} }
child { node {Typ 3: Regulär}} }
} child{node [subtopic]{Wort}
child [concept color=yellow!30] { node {Wort} child[description, level distance=1cm] { node { y Präfix von w, wenn es $z\in\sum^*$ gibt mit $yz=w$}}
child { 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 { 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 { y Suffix von w, wenn es $x\in\sum^*$ gibt mit $xy=w$}} }
} child{node [subtopic]{Grammatik}
child [concept color=teal!40] { node {Beamer Series} 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 [concept color=purple!50] { node {TikZ Series} 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} \end{tikzpicture}
\begin{tikzpicture}[mindmap, grow cyclic, every node/.style=concept, concept color=orange!40, \begin{tikzpicture}[
level 1/.append style={level distance=5cm,sibling angle=90}, subtopic/.style={
level 2/.append style={level distance=3cm,sibling angle=45}] yshift=1.5cm,
\node{Grammatiken} text centered,
child [concept color=blue!30] { node {Symbole} text width=3cm,
child { node {Nicht-Terminale (oder Variablen), aus denen noch weitere Wortbestandteile abgeleitet werden sollen}} rounded corners=2pt,
child { node {Terminale (die "eigentlichen" Symbole)}} 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[theme, level distance=1cm]{node{nicht-deterministischer endlicher Automat M}
child { node {V ist eine endliche Menge von Nicht-Terminalen oder Variablen (Bsp $V=\{S,B,C\}$)}} %Jede von einem NFA akzeptierte Sprache ist regulär
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[description, level distance=1cm]{node{kurz NFA}}
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}} %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} \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} \end{document}

View File

@ -4,6 +4,108 @@ date: Wintersemester 20/21
author: Robert Jeutter 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 Literaturempfehlung: Theoretische Informatik - kurz gefasst, Uwe Schöning, Spektrum Akademischer Weg
# Einführung # Einführung
@ -139,7 +241,9 @@ Konventionen:
- für $(l,r)\in P$ schreibt man auch $l\rightarrow r$ - 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 > 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. > 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. > 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. 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. - manchmal können Ableitungen in einer Sackgasse enden, d.h. obwohl noch nichtterminale in einer Satzformen vorkommen, ist keine Regel mehr anwendbar.
## Chomsky Hierarchie ## 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 - 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 - 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 - $(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 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 - 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). 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) (d.h. nur wenn die Myhill-Nerode-Äquivalenz endliche Klassen hat)
Beweis: Beweis:
- "$Rightarrow$": Sei L regulär -> es gibt DFA M mit $L(M)=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\})$ - "$\Leftarrow$": sei $index(R_L)< \infty$ -> Definiere einen DFA $M_L=(\{[x_1],...,[x_n]\},\sum,[\epsilon],\sigma,\{[w]|w\in L\})$
## Minimalautomat ## 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 > 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 > - $\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$ > der Quotient von M bzgl $\equiv$
(es wird nicht mehr jeder einzelne Fall betrachtet sondern "ganze Gruppen"; Bsp Sitz->Reihe) (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. 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 k-Färbbarkeit von Graphen
- EINGABE: Ein ungerichteter Graph $G = (V , E )$. - 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? - 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) ![Dreieckfärbung](Assets/ASK_Dreieckfaerbung4.png)
## DHC ist NP-vollständig ### DHC ist NP-vollständig
> DHC - Gerichteter Hamiltonkreis > DHC - Gerichteter Hamiltonkreis
> - EINGABE: ein gerichteter Graph $G = (V , E )$ mit Knotenmenge $V$ und Kantenmenge $E\supseteq V\times V$. > - 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? > - 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. - 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. 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. Im nächsten Schritt zeigen wir, dass auch das analoge Problem für ungerichtete Graphen NP-vollständig ist.
> HC - Ungerichteter Hamiltonkreis > 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 - Idee: Ersetze einen Knoten mit ein- und ausgehenden Kanten wie folgt
![Hamiltonkreiskanten](Assets/ASK_HamiltonkreisKanten.png) ![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. Wir zeigen nun, daß auch das Travelling-Salesman-Problem NP-vollständig ist.
> TSP - Travelling Salesman > TSP - Travelling Salesman