01657/01658 – Theoretische Informatik

Hier findet Ihr meine Zusammenfassungen und ErlÀuterungen zur theoretischen Informatik (01657 und 01658).

Diese Zusammenfassungen hier habe ich eig. nur fĂŒr mich erstellt und habe sie spĂ€ter einigen Kommilitonen zur VerfĂŒgung gestellt um ihnen etwas Zeit zu sparen, da der Stoff in der dargestellten Form doch eher schwer verdaulich ist. Außerdem gibt es ein Problem mit der SekundĂ€rliteratur, da bestimmte Dinge im Skript einfach anders definiert sind. Sie sind zwar dennoch korrekt, aber auch bestimmten GrĂŒnden besteht im Skript z.B. etwas aus einem 4-Tupel und in der Literatur aus einem 5-Tupel, usw.

Da die Zusammenfassungen den Mitstudenten anscheinend ganz gut beim VerstÀndnis der Materie halfen (wenn ich der positiven Resonanz glauben darf), habe ich beschlossen sie online zu stellen. Vielleicht helfen sie euch auch.

Thema Copyright

Die Fragestellungen und einige Inhalte stammen aus dem Skript der FernUni Hagen, das Copyright liegt also dort. Stellen, die ich aus dem Buch von Dirk W. Hoffmann oder Rolf Socher entnommen habe sind ebenfalls markiert. Ich habe mich bemĂŒht alle Bilder selbst zu erstellen, nur CC–Bilder zu verwenden oder mindestens die Quelle zu nennen. Wenn irgendwo was fehlt oder ich euer Bild verwendet haben sollte, was ihr nicht wollt, bitte ich um eine kurze Mail an mich. Ich entferne es direkt.

Ganz wichtig

Auch wenn ich die Zusammenfassungen nach bestem Wissen und Gewissen angefertigt habe, gibt es sicherlich noch irgendwo den ein oder anderen Fehler. Aber nichts stört den Lernprozess so wie diese. ErklĂ€rungen werden nicht nachvollziehbar wenn man nicht auf das selbe Ergebnis kommt wie der Autor. Sollten euch daher grobe Schnitzer auffallen, bitte sofort per Mail oder in den Kommentaren melden. Danke!

Behaltet aber eines im Hinterkopf:

Die absolute AutoritĂ€t hat nur das Skript! Nur das Skript bereitet euch auf die mĂŒndliche oder schriftliche PrĂŒfung vor!
Da die ErlĂ€uterungen hier aus meinem Kopf stammen und weder vom Prof. oder sonstwem auf Korrektheit geprĂŒft wurden, ist hier alles ohne GewĂ€hr.

Auch sollten die Zusammenfassungen höchstens ergÀnzend zum Skript verwendet werden wenn Ihr mal eine andere Sicht auf die Dinge braucht weil ihr im Skript nicht weiterkommt. Nur das Skript ist wirklich verbindlich!

Update nach der mĂŒndlichen PrĂŒfung
Nach der PrĂŒfung habe ich beschlossen ein kurzes Statement online zu stellen, dass euch beim Lesen immer an eine Kleinigkeit erinnert: dass das Skript ist die einzige, gĂŒltige und verbindliche Quelle fĂŒr Einsendeaufgaben, die schriftliche oder mĂŒndliche PrĂŒfung ist. Und das ist jetzt nicht einfach so dahingesagt.
Die Mathematik ist eine exakte Wissenschaft, wo es keinen Raum fĂŒr Interpretationen gibt. Sie besitzt eine eigene Terminologie und ist prĂ€zise, d.h. es gibt keinerlei FĂŒllwörter. Jedes Wort ist ein InformationstrĂ€ger!
Wenn in der Definition z.B. steht, dass „Eine Funktion \(u_\varphi\) ist berechenbar…„, dann ist die Aussage „Es gibt eine Funktion \(u_\varphi\)…“ schlicht falsch. Dass Ihr aber im Detail erklĂ€ren könnt, was \(u_\varphi\) macht nĂŒtzt euch ab hier nicht mehr viel, die gegebene Antwort war nicht richtig und 0 Punkte wert.
Wenn eine Funktion z.B. partiell definiert ist, schadet es nicht zu wissen, warum. Dazu solltet ihr aber vorher wissen, dass die partiell definiert ist und es in der Antwort auch sagen! Besagt die Definition „\(f_n\) ist eine partielle Funktion…„, so ist eine Antwort mit „\(f_n\) ist eine Funktion…“ falsch und ihr kommt noch nicht einmal dazu, zu erlĂ€utern was sie tut warum sie partiell ist. Selbst wenn Ihr es wisst.
Auch wenn der Kern der Funktion nicht ihre PartialitĂ€t ist, sondern sie uns eine kalte Fusion ermöglicht, der Beweis fĂŒr das Higgs-Teilchen ist oder uns alle NP-Probleme deterministisch in polynomieller Zeit löst und ihr das alles im Detail erklĂ€ren könnt: „\(f_n\) ist eine Funktion…“ ist eine falsche Antwort.
Nur das VerstĂ€ndnis wie etwas funktioniert reicht also nicht aus! Es gibt bestimmte Dinge, die man sich einfach exakt merken und auf Knopfdruck parat haben muss. Dazu gehören die vielen SĂ€tze und Theoreme im Skript. Ich empfehle euch daher diese in jedem Fall prĂ€zise wiedergeben zu können. Vielleicht nicht alle, aber die wichtigsten. Erst anschließend spielen Details (wie ist die Beweisidee, warum genau nur partiell, was ist das \(u\) in \(u_\varphi\), …) eine Rolle.
Wie gesagt: Wenn die Antwort ungenau und damit falsch war, kommt Ihr nicht einmal so weit um zeigen zu können, dass ihr den Rest verstanden habt.
Deswegen mein Rat: Lest nur das Skript. Kommt Ihr beim VerstÀndnis nicht weiter, besorgt euch eine andere Perspektive. Hier oder in SekundÀrliteratur (sofern möglich, siehe oben). Dann schwenkt wieder zum Skript, vollzieht evtl. den Beweis nach oder verinnerlicht euch min. die Beweisidee und merkt euch die zum Thema wichtigen SÀtze und Theoreme exakt so wie sie stehen. Selbst wenn es auswendig lernen bedeutet.
Viel Erfolg bei dem Kurs!

PS: Ihr merkt aus den obigen Zeilen, dass ich mit der PrĂŒfung nicht so ganz zufrieden war. Ich habe bestanden. Aber nicht so gut, wie ich das gerne hĂ€tte und wie das dem Aufwand, den ich betrieben habe entsprechen wĂŒrde.

Das lag aber nicht am Prof., sondern einfach an der Tatsache, dass ich mich habe von dem Gedanken leiten lassen, das VerstĂ€ndnis der Materie und der ZusammenhĂ€nge wĂŒrde ausreichen. Denn darum ginge es ja letztendlich: etwas zu verstehen. Die genauen Definitionen seien etwas, was man zur Not wĂŒrde nachschlagen können. Das ist leider nicht richtig. Bestimmte Dinge mĂŒssen einfach „sitzen“ und exakt formuliert werden können.

HÀtte ich das vorher gewusst, hÀtte ich mich anders vorbereitet. Mehr im Stil von BGB als im Stil von Software Engineering.

Das hat aber nichts mit dem Prof. oder der PrĂŒfung zu tun. Diese ist fair, der Prof. sehr nett und die Benotung wohlwollend. Macht euch also darĂŒber keine Gedanken. Lernt aber nicht nur fĂŒr das VerstĂ€ndnis der Materie, sondern lernt auch, euch mathematisch prĂ€zise genug auszudrĂŒcken um die wichtigen Definitionen ohne FĂŒllwörter oder Ungenauigkeiten benennen zu können.

Ich weiß, dass genau dies ein Problem bei einem Fernstudium ist. Denn das höchste der GefĂŒhle ist, dass man gelegentlich mit den Mitstudenten skyped oder sich auch mal in der Lerngruppe trifft. Das reicht aber leider nicht, denn i.d.R. ist der Mitstudent auch nicht so tief in der Materie drin, dass er Ungenauigkeiten direkt erkennt und euch darauf hinweist. Man spricht darĂŒber, erklĂ€rt es einander und gut ist’s. Das ist aber nicht genug.

Daher nehmt auch, selbst wenn ihr meint alles verstanden zu haben, die Gelegenheit wahr an den Studientagen oder den Mentoriaten teilzunehmen, bearbeitet die Einsendeaufgaben so gut es halt geht und schreibt die Leistungsnachweise. Nutzt jede Gelegenheit um euch in Genauigkeit zu ĂŒben. Es geht hier schließlich um Mathematik und nicht um Politik 😉


Zusammenfassungen theoretische Informatik A (01657)


Kurseinheit 1

Die erste Kurseinheit der theoretischen Informatik A beginnt mit Flussdiagrammen, Einzelschritt-, Schrittzahl- und Gesamtschrittfunktionen und ihrer Semantik. Anschließend geht es von Maschinen ĂŒber Registermaschinen mit nur drei Grundoperationen zu verallgemeinerten Registermaschinen mit komplexeren Möglichkeiten.

Diese nutzen wir um zu beweisen, dass Zahlenfunktionen berechenbar sind und weisen das anhand einiger Beispiele auch mittels vollstĂ€ndiger Induktion ĂŒber die Einzelschrittfunktion nach.

TIA: Flussdiagramme, Registermaschinen und berechenbare Zahlenfunktionen (Lernziele KE1)

  • Angabe und ErlĂ€uterung der Definition des Flussdiagramms
  • Angabe und ErlĂ€uterung der Semantik des Flussdiagramms
  • Angabe und ErlĂ€uterung der Definition und Semantik einer Maschine
  • Angabe und ErlĂ€uterung der Definition einer Registermaschine
  • Angabe und ErlĂ€uterung der Definition einer verallgemeinerten Registermaschine
  • Angabe der Definition einer berechenbaren Zahlenfunktion
  • Zeigen, dass eine Funktion berechenbar ist

 

Kurseinheit 2

In der zweiten Kurseinheit gibt es zwar nur drei Lernziele und das Skript ist im Umfang her ziemlich dĂŒnn, aber es werden tatsĂ€chlich essentielle Dinge angesprochen. FĂŒr mein Empfinden auch etwas zu schnell abgehandelt. In SekundĂ€rliteratur widmen die Autoren diesen Themen eigene Kapitel.

Die behandelten Themen sind: die Cantorsche Tupelfunktion (auch Paarungsfunktion genannt), sowie einige Eigenschaften berechenbarer Zahlenfunktionen und die damit zusammenhÀngende primitive- und \(\mu\)-Rekursion, die uns die \(LOOP\)-und \(WHILE\)-Berechenbarkeit mathematisch abbilden.

TIA: Berechenbare Zahlenfunktionen (Lernziele KE2)

  • Angabe und ErlĂ€uterung der Definition und der Eigenschaften der Cantorschen Tupelfunktion
  • ErlĂ€uterung der Abschlusseigenschaften berechenbarer Zahlenfunktionen
  • Definition der WHILE-Programme, ErlĂ€uterung ihrer Semantik und Angabe des Zusammenhangs zu berechenbaren Funktionen

 

Kurseinheit 3

Das Thema dieser Kurseinheit sind Turingmaschinen. Einband-, Mehrbandmaschinen und wie sie ineinander ĂŒberfĂŒhrt werden können.

In diesem Kontext treffen wir auch die Hilfssymbole  zur Simulation der Kopfpositionen von Mehrbandmaschinen und wie wir sie eliminieren um das Arbeitsalphabet (Bandalphabet) nicht unnötig aufblĂ€hen zu mĂŒssen.

Weiterhin beweisen wir hier die Berechenbarkeit einfacher Wortfunktionen mittels vollstĂ€ndiger Induktion ĂŒber die Turingmaschinen nach.

TIA: Turingmaschinen, Bandmaschinen und berechenbare Wortfunktionen (Lernziele KE3)

  • ErlĂ€uterung der Definition einer Turingmaschine
  • Nachweis der Berechenbarkeit einfacher Wortfunktionen
  • ErlĂ€uterung der Definition einer Bandmaschine
  • ErlĂ€uterung der Grundidee des Beweises Turing-berechenbar = Band-berechenbar
  • ErlĂ€uterung der Grundidee des Beweises, dass man bei Bandmaschinen ohne Hilfssymbole auskommt

 

Kurseinheit 4

Diese Kurseinheit ist etwas dicker als die anderen. Bzw. sollte sie sein, da doch einige essentielle Themen wie \(WHILE\)– und \(LOOP\)-Berechenbarkeit angesprochen werden. Leider sind die entsprechenden Kapitel im Skript nur knapp gehalten, wĂ€hrend sie in anderer Literatur ein paar Seiten mehr umfassen.

Behandelte Themen sind die folgenden: Standardnummerierung und die dadurch induzierte Beziehung zwischen Zahlen und Wortfunktionen, \(LOOP\)-Berechenbarkeit und damit die primitiv-rekursiven Funktionen, die \(WHILE\)-Berechenbarkeit und die \(mu\)-rekursiven Funktionen, Churchsche These und erste ErwÀhnung der Beweisverfahren mittels Diagonalisierung (Cantor).

TIA: Berechenbarkeit (Kernziele KE4)

  • Angabe und ErlĂ€uterung der Definition einer Standardnummerierung von \(\Sigma^{*}\)
  • Formulierung und ErlĂ€uterung der Beziehung zwischen Zahlen- und Wortfunktionen
  • Definition der primitiv-rekursiven Funktionen
  • Beweis, dass bestimmte Funktionen primitiv-rekursiv sind
  • Definition der \(\mu\)-rekursiven Funktionen
  • ErlĂ€uterung der Churchschen These
  • Beweis der Existenz von nicht-berechenbaren Funktionen durch Diagonalisierung

 

Kurseinheit 5

Auch wenn die Kurseinheit mit 30 Seiten doch recht dĂŒnn ist, habe ich es irgendwie geschafft daraus ebenfalls 30 Seiten zu machen. Puh!

Die doch nicht so einfach (fĂŒr mich zumindest) erschließbaren Themen waren die Standardnummerierung \(\varphi\) der einstelligen, evtl. partiellen, berechenbaren Funktionen \(P^{(1)}\), die StandarskomplexitĂ€t \(\Phi\),  das utm-, smn- und das \(\Phi\)-Theorem inkl. einiger lustiger SĂ€tze wie dem Äquivalenzsatz von Rogers oder dem Rekursionssatz inkl. Anwendungsbereichen in der Selbstreproduktion.

Alles in Allem eine sehr gelungene Kurseinheit, die (fĂŒr mich) bis jetzt durchaus die Niveauspitze darstellt. Oder ich hatte zu wenig Kaffee.

TIA: Standardnummerierung \(\varphi\), StandardkomplexitĂ€t \(\Phi\) und das \(\Phi\)-Theorem (Lernziele KE5, 1/3)

  • ErlĂ€uterung der Definition der Standardnummerierung \(\varphi\) von \(P^{(1)}\)
  • ErlĂ€uterung des \(\Phi\)-Theorems
  • Beweis der Berechenbarkeit von \(h:\mathbb{N}^3\rightarrow\mathbb{N}\) (als Vorarbeit zum utm-Theorem)

Exkurs: utm-Theorem und Zusammenhang zu Programmiersprachen

  • Zusammenhang zwischen \(\varphi\), dem utm-Theorem und Programmiersprachen

TIA: utm-Theorem (Lernziele KE5, 2/3)

  • Anwendung und ErlĂ€uterung des utm-Theorems

TIA: smn-Theorem, Äquivalenzsatz von Rogers und Rekursionssatz (Lernziele KE5, 3/3)

  • ErklĂ€rung und Anwendung des smn-Theorems
  • ErlĂ€uterung des Äquivalenzsatzes fĂŒr Nummerierungen/Programmiersprachen (Rogers)
  • Formulieren des Rekursionssatzes

 

Kurseinheit 6

Und als ich dachte, dass mehr als drei BeitrÀge zu einer Kurseinheit nicht gehen, kam Kurseinheit 6. Mit insg. 26 Seiten ist das wahrscheinlich der lÀngste Beitrag zu einer Kurseinheit.

Die Themenvielfalt ist hier aber auch so groß, dass jedes Thema einen eigenen Kurs wert wĂ€re: Rekursive und rekursiv aufzĂ€hlbare Mengen und ihre Eigenschaften, Nachweis dieser Eigenschaften und Zusammenhang zwischen diesen, Bild- und Projektionssatz, Halte- und Selbstanwendbarkeitsproblem, erste Übungen der Reduktion, der wichtige Satz von Rice, das Äquivalenz- und Korrektheitsproblem und der Gödel’sche UnvollstĂ€ndigkeitssatz.

Nach dieser KE bin ich wirklich ĂŒberzeugt, dass beide Teile des Kurses eig. mindestens eigene 10 ECTS verdient hĂ€tten.

TIA: Rekursive und rekursiv-aufzÀhlbare Mengen (Lernziele KE6, 1/4)

  • Definition rekursiver und rekursiv aufzĂ€hlbarer Mengen von Zahlen und Wörtern
  • Abschlusseigenschaften rekursiver und rekursiv aufzĂ€hlbarer Mengen
  • Nachweis der RekursivitĂ€t/Entscheidbarkeit von Mengen
  • Nachweis der rekursiven AufzĂ€hlbarkeit/Semi-entscheidbarkeit von Mengen
  • ErlĂ€uterung des Zusammenhangs zwischen rekursiven und rekursiv-aufzĂ€hlbaren Mengen

TIA: Bild- und Projektionssatz (Lernziele KE6 2/4)

  • Charakterisierung der r.a. Mengen durch Bild- und Projektionssatz

TIA: Halte- Äquivalenz- und Korrektheitsproblem, Reduzierbarkeit, Satz von Rice (Lernziele KE6, 3/4)

  • Halte- und Selbstanwendbarkeitsproblem
  • ErklĂ€rung der Reduzierbarkeit und Methode der Reduktion
  • Satz von Rice
  • Äquivalenz- und Korrektheitsproblem
  • Gödel’scher UnvollstĂ€ndigkeitssatz

TIA: Gödel’scher UnvollstĂ€ndigkeitssatz (Lernziele KE6, 4/4)

  • Detailbetrachtung: Gödel’scher UnvollstĂ€ndigkeitssatz, Peano und Beweissysteme

 

Kurseinheit 7

Das ist nun die letzte Kurseinheit des ersten teils der theoretischen Informatik.

Alle Berechenbarkeitskonzepte, die wir vorher hatten, haben wir nur auf den natĂŒrlichen Zahlen (Registermaschinen) und Worten ĂŒber einem Alphabet (durch Turingmaschinen) definiert. Was wir vergessen haben, waren die reellen Zahlen. Auf diese lassen sich die behandelten Konzepte nicht einfach so ĂŒbertragen. Da bedarf es schon etwas mehr Anstrengung.

TIA: Berechenbarkeit auf anderen Mengen (Lernziele KE7, 1/2)

  • Definition der Berechenbarkeitskonzepte, welche durch eien Nummerierung auf einer Menge \(M\)induziert werden: \(\nu\)-rekursiv, \(\nu\)-r.a, \((\nu,{\nu}^{‚})\)-berechenbar
  • Nachweis der \(\nu\)-RekursivitĂ€t und \((\nu,{\nu}^{‚})\)-Berechenbarkeit

TIA: Berechenbarkeit auf anderen Mengen (Lernziele KE7, 2/2)

  • ErklĂ€rung der Reduzierbarkeit und Äquivalenz von Nummerierungen
  • Konstruktion einer reellen Zahl \(x\) einer Funktion \(\nu:\mathbb{N} \rightarrow \mathbb{R}\), die nicht im Bild von \(\nu\) liegt
  • Definition berechenbarer Funktionen \(f \subseteq {({\Sigma}^{\omega})}^k \rightarrow{\Sigma}^{\omega}\)
  • Definition der Cauchy-Darstellung der reellen Zahlen
  • Zeigen, dass z.B. \(x \mapsto x+5\) \((\rho,\rho)\)-berechenbar ist

 


Zusammenfassungen theoretische Informatik B (01658)


Kurseinheit 1

Die erste Kurseinheit der theoretischen Informatik B startet direkt mit der Frage nach den KomplexitĂ€tsmaßen in Bezug auf Turingmaschinen: die wichtigsten Ressourcen sind Band und  Zeit. Diese werden in dieser Kurseinheit erstmals definiert und anschließend weiter ausgebaut, ZusammenhĂ€nge hergestellt und die BandreduktionssĂ€tze angesprochen.

Maschinenmodelle und KomplexitÀtsklassen (Lernziele KE1)

  • Definition der KomplexitĂ€tsmaße Zeit und Band fĂŒr Turing-Maschinen
  • Definition der KomplxitĂ€tsklassen
  • Zusammenhang zwischen Band- und ZeitkomplexitĂ€t
  • Darstellung der Aussage der BandreduktionssĂ€tze und Beweisidee

 

Kurseinheit 2

Bei dieser Kurseinheit kĂŒmmern wir uns um die Separation von KomplexitĂ€tsklassen bei Zeit und Band und wenden diese an um zu zeigen, dass Funktionen in unterschiedlichen KomplexitĂ€tsklassen sind. Mittels HierarchiesĂ€tzen können wir auch eine Hierarchie auf diesen KomplexitĂ€tsklassen bilden.

Separations- und HierarchiesÀtze (Lernziele KE2)

  • Verstehen des Verfahrens von Separations- und HierarchiesĂ€tzen

  • Voraussetzung fĂŒr Separations- und HierarchiesĂ€tze benennen und begrĂŒnden
  • Anwendung der SĂ€tze zum Beweis von Separationen und echten Inklusionen
  • Definition von band- und zeitkonstruierbaren Funktionen
  • Beschreibung des Beweises von \(ZEIT(n) \subset{ZEIT(n \cdot log n)}\) (fehlt leider)
  • Beweis der Beziehungen zwischen den Klassen P, LOGSPACE, PSPACE

Exkurs/Vorschau: P-NP-Problem und das Problem des Handlungsreisenden

  • Kleine Vorschau auf die kommenden Kurseinheiten und detaillierte Besprechung des TSP sowie des P-NP-Problems

 

Kurseinheit 3

In KE3 geht es um die nichtdeterministische KomplexitĂ€t, Kontrollturingmaschinen und nichtdeterministische Turingmaschinen, die ÜberfĂŒhrung der beiden Modelle ineinander innerhalb der gleichen Band- und Zeitschranken, erste ErlĂ€uterung der polynomiellen Reduktion und der NP-VollstĂ€ndigkeit von Mengen.

Alles in allem eine gelungene und wichtige Kurseinheit.

TIB: Nichtdeterministische KomplexitÀt (Lernziele KE3)

  • ErklĂ€rung der Modelle der KTM und der NTM
  • Äquivalenz der Modelle begrĂŒnden
  • Definition nichtdeterministischer KomplixitĂ€tsmaße und -klassen
  • Zusammenhang zwischen deterministischen und nichtdeterministischen KomplexitĂ€tsklassen
  • Definition von \({}\leq_{pol}{}\)
  • ErklĂ€rung der VollstĂ€ndigkeit

 

Kurseinheit 4

Nachdem wir in der letzten Kurseinheit die \(NP\)-KomplexitĂ€t hatte, kommen wir hier zu \(NP\)-vollstĂ€ndigen Problemen: \(2D\)-Domino (Kachelproblem) und \(SAT\) bilden die Grundpfeiler. Wir zeigen die VollstĂ€ndigkeitsbeweise und polynomielle Reduktionen dieser Probleme, geben ein paar weitere \(NP\)-vollstĂ€ndige Probleme an (\(CLIQUE\) wird detailliert besprochen) und zeigen, warum \(GAP\) vollstĂ€ndig fĂŒr \(NLOGSPACE\) ist.

TIB: Nichtdeterministische Probleme (Lernziele KE4 1/2)

  • Wie ist die Idee des VollstĂ€ndigkeitsbeweises zu \(2D\)-Domino?
  • Wie beweist man die VollstĂ€ndigkeit einer Menge?

TIB: Nichtdeterministische Probleme (Lernziele KE4 2/2)

  • Wie ist der VollstĂ€ndigkeitsbeweis zu \(SAT\)?
  • Wie fĂŒhrt man eine einfache, polynomielle Reduktion \({}\leq_{pol}\)  aus?
  • Angabe einiger NP-vollstĂ€ndigen Probleme, Details zu \(CLIQUE\)
  • Warum ist \(GAP\) vollstĂ€ndig fĂŒr \(NLOGSPACE\)?

 

Kurseinheit 5

Mit dieser Kurseinheit beginnt das große Thema Grammatiken/Sprache, welches uns bis KE7 begleiten wird.

ÜberabzĂ€hlbarkeit, Noam Chomsky, Regeln der Typ-0/Typ-1/Typ-2/Typ-3-Grammatiken, die Beziehung zwischen semi-entscheidbaren/rekursiv-aufzĂ€hlbaren Wortmengen, Beziehungen zwischen Grammatik und Turingmaschine, die Inklusionsbeziehung  zwischen den Sprachklassen, die Beziehung zwischen regulĂ€ren Mengen und rechtslinearen Grammatiken, regulĂ€re AusdrĂŒcke, die Transformation von Grammatiken in die rechtslineare Normalform (inkl. Beispiel) sind die Stichworte in dieser Kurseinheit.

TIB: Grammatiken und regulÀre Sprachen (Lernziele KE5 1/1)

  • Was ist eine Grammatik \(G\), wie definiert man die Sprache \(L(G)\)?
  • Welche Sprachklasse wird durch Grammatiken definiert?
  • Was sind Typ-1-, Typ-2-, Typ-3-Grammatiken?
  • Wie definiert man  regulĂ€ren Mengen?
  • Welche Sprache wird durch einen regulĂ€ren Ausdruck definiert?
  • Was ist eine rechtslineare Grammatik?
  • Wie zeigt man, dass die regulĂ€re Sprache von rechtslinearen Grammatiken erzeugt wird?
  • Wie transformiert man eine rechtslineare Grammatik in eine rechtslineare Normalform?

 

Kurseinheit 6

Mittels endlichen Automaten werden hier die regulĂ€ren Sprachen erkannt. Ebenfalls definieren wir hier nichtdeterministische Automaten, VollstĂ€ndigkeit, ÜberfĂŒhrungsfunktionen, transitive HĂŒllen usw. und zeigen diese Definitionen auch an einem Beispiel und stellen mit diesem Automaten fest ob ein Wort in einer Sprache ist oder nicht. Auch konstruieren wir zu einem nichtdeterminierten Automaten einen determinierten, der die selbe Sprache erkennt (was bei Kellerautomaten nicht funktioniert, aber dazu in KE7 mehr).

Wir setzen im nĂ€chsten Beitrag regulĂ€re AusdrĂŒcke in Beziehung mit endlichen Automaten anhand eines Beispiels. Auch betrachten wir die Abgeschlossenheit der regulĂ€ren Sprachen mit bestimmten Operationen und die Beweisidee anhand konkreter Beispiele um dann mit dem Pumping Lemma fĂŒr regulĂ€re Sprachen und den Entscheidungsproblemen den Beitrag abzuschließen.

Der letzte Punkt fĂŒhrt uns zu AbleitungsbĂ€umen kontextfreier Grammatiken mit einem grafischen Beispiel, der Eindeutigkeit von Grammatiken (wichtig!) und als kleinen Exkrus: zu SyntaxbĂ€umen.

TIB: Endliche Automaten und kontextfreie Grammatiken (Lernziele KE6 1/3)

  • Wie definiert man die von einem endlichen Automaten erkannte Sprache?
  • Wie kann man zu einem nichtdeterminierten endlichen Automaten einen determinierten konstruieren, der dieselbe Sprache erkennt?

TIB: Endliche Automaten und kontextfreie Grammatiken (Lernziele KE6 2/3)

  • Wie konstruiert man zu einem endlichen Automaten \(A\) einen regulĂ€ren Ausdruck \(\alpha\) mit \(L(A)=L(\alpha)\)?
  • Wie zeigt man, dass die regulĂ€ren Sprache unter den in Satz 8.4.1 genannten Operationen abgeschlossen sind (Beweisidee)?
  • Welche „Probleme“ sind fĂŒr regulĂ€re Sprachen entscheidbar?
  • Wie lautet das Pumping-Lemma fĂŒr regulĂ€re Sprachen? Wie kann man es verwenden um nachzuweisen, dass eine Sprache nicht regulĂ€r ist?

TIB: Endliche Automaten und kontextfreie Grammatiken (Lernziele KE6 3/3)

  • Was sind AbleitungsbĂ€ume kontextfreier Grammatiken?
  • Wann ist eine kontextfreie Grammatik bzw. Sprache eindeutig?

 

Kurseinheit 7

In dieser Kurseinheit dreht sich alles um Kellerautomaten. ZunĂ€chst kĂŒmmern wir uns um die Chomsky-Normalform und wie man sie erzeugt. Anschließend wird das Pumping-Lemma fĂŒr kontextfreie Sprachen erklĂ€rt und an zwei detaillierten Beispielen (positiv und negativ) angewandt.

Im letzten Beitrag widmen wir uns dann um determinierte Kellerautomaten und die (Unter-)Sprachklasse, die von ihnen erkannt wird. Anhand eines Beispiels wird gezeigt, dass die Klasse der deterministisch kontextfreien Sprachen nicht abgeschlossen ist gegen Vereinigung und die Vereinigung zweier deterministisch kontextfreier Sprachen nur eine kontextfreie Sprache erzeugt. Diese Sprache wird dann in eine Grammatik und dann in einen nichtdeterministischen Kellerautomaten ĂŒbersetzt. Zuletzt geht es dann um die Abschlusseigenschaften dieser Sprachklasse und die Entscheidungsprobleme in diesen.

TIB: Kontextfreie Sprachen und Kellerautomaten (Lernziele KE7 1/3)

  • Wann ist eine Grammatik in Chomsky-Normalform und wie konstruiert man eine solche aus einer beliebigen kontextfreien Grammatik?
  • Was besagt das Pumping-Lemma fĂŒr kontextfreie Sprachen und wie wendet man es an?

TIB: Kontextfreie Sprachen und Kellerautomaten (Lernziele KE7 2/3)

  • Wie sind Kellerautomaten und die von ihnen akzeptierte Sprache definiert?
  • Wie zeigt man, dass Kellerautomaten genau die kontextfreien Sprachen erkennen?

TIB: Kontextfreie Sprachen und Kellerautomaten (Lernziele KE7 3/3)

  • Was sind determinierte Kellerautomaten?
  • Ist jede kontextfreie Sprache deterministisch? Mit BegrĂŒndung!
  • Sind die kontextfreien bzw. deterministisch kontextfreien Sprachen abgeschlossen unter Vereinigung, Durchschnitt, Komplement und Schnitt mit regulĂ€ren Mengen?
  • Welche der folgenden Probleme sind fĂŒr kontextfreie Grammatiken entscheidbar/unentscheidbar?

Alle BeitrÀge in der Kategorie theoretische Informatik

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert