SlideShare une entreprise Scribd logo
1  sur  73
Basisinformationstechnologie I
                                                                Sommersemester 2013
                                               10. April 2013 – Theoretische Informatik




                    Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung
 Jan G. Wieners // jan.wieners@uni-koeln.de
Themenüberblick „Theoretische Informatik“

   Formale Sprachen
   Automaten
     Deterministische endliche Automaten
     (Nichtdeterministische endliche Automaten)
     Anwendung endlicher Automaten
   Grammatiken
   Kellerautomat
   Turingmaschine
   & Co.
Formale Sprachen & Co.
<pre>

Theorie der formalen Sprachen & Automatentheorie
 Möglichkeiten zur formalen Beschreibung und
automatischen Verarbeitung von gedanklichen
Gebilden
  Wörter
  Sätze
  Verfahrensanweisungen

 Hauptziel: Kommunikation zw. Mensch und Computer

   SQL: „SELECT uid, name, pass, mail FROM users
           WHERE uid < 2“
<pre>

Formulierungs-            Kompilierungsschritte

aspekt:
  Gegenstand der
   Theorie der
   formalen Sprachen

Erkennungsaspekt:
  Automatentheorie
    Grundfrage: Kann
     eine bestimmte
     Eingabe für eine
     Weiterverarbeitung
     akzeptiert
     werden, oder
     nicht?
Formale- vs. natürliche Sprachen

Natürliche Sprache = außerordentlich komplex
 Knackpunkt: Viele Äußerungen sind mehrdeutig
   „öffne die Tür mit dem Schlüssel“
  vs.
   „öffne die Tür mit dem Schlüssel“


Formale Sprache = …naja, auch ziemlich komplex
Grammatiken

Grundfrage: Wie erkennen wir, ob ein „Satz“ einer
Programmiersprache wohlgeformt, d.h. korrekt ist?

Lösung: Grammatik  Regelwerk, das
beschreibt, wie syntaktisch korrekte Wörter und
Sätze einer Sprache, z.B. einer
Programmiersprache gebildet werden
Grammatiken

Grammatikbeispiel natürliche Sprache: deutsche
Sprache

 <Satz>                  <Nominalsatz> <Verb>
 <Nominalsatz>           <Artikel><Substantiv>
                          ||
                          <Artikel><Adjektiv><Substantiv>
 <Artikel>          das | die
 <Adjektiv>         große | kleine
 <Substantiv>       Klavier | Katze
 <Verb>             schläft

 Definition:
  Ausdrücke in spitzen Klammern, z.B. <Verb>: Variablen oder
   Nichtterminalsymbole
  Andere Ausdrücke, z.B. „schläft“: Terminalsymbole

                       Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 65 f.
Grammatiken

Grammatikalisch richtig und sinnvoll:
„Die kleine Katze schläft.“

Grammatikalisch falsch
(zwar richtig nach dem vorhergehenden Beispiel, jedoch falsch in der Grammatik des Deutschen) :

„Das große Katze schläft.“

Grammatikalisch richtig, jedoch sinnlos:
„Das große Klavier schläft.“
Formale Sprachen

Formale Sprache
  z.B. Programmiersprache
  auf Basis einer verhältnismäßig kleinen Menge von
   Regeln werden Programme formuliert, die der Rechner
   verstehen kann

Zu klären (natürliche && formale Sprache):
    Alphabet
    Buchstabe
    Wort
    ...
Definitorisches
Alphabet

Definition Alphabet:
  endliche, nichtleere Menge von Zeichen (auch:
   Buchstaben oder Symbole  formale Einheit, die nicht
   weiter definiert wird)
 V oder Σ (Sigma) als Abkürzung für Alphabete
 Übungen:
 Σ Binärcode =   { ??? }
Wort

Definition Wort:
  Wort: Ein Wort (über einem Alphabet Σ) ist eine
   endliche Folge von Zeichen aus Σ.
    Beispiel: Aus den Zeichen „a“, „b“, „c“ lassen sich Wörter wie
     „cba“ oder „aab“ bilden

  Die Länge eines Wortes w = Anzahl der in w
   vorkommenden Zeichen, wird mit |w| bezeichnet
    Beispiel: Ist w = haus, so ist |w| = 4

  Es existiert genau ein Wort über Σ der Länge 0, das
   Leerwort, das wir mit ε (Epsilon) bezeichnen
Alphabet? Wort?

Σ = { Anweisung, Bedingung, if, then, else, begin, end, while }
w = if Bedingung then Anweisung end
|w| = 5

Die Menge aller Wörter, die mit Zeichen aus Σ gebildet
werden können, wird mit Σ* bezeichnet

 Jede beliebige Teilmenge von Σ* wird als formale
Sprache bezeichnet.
Sprache

Die wichtigste Operation für Wörter besteht aus dem Verketten
einzelner Wörter
 Komposita (z.B. Dampfschiffahrt).

Beispiel: Σ = {0, 1}

Die Wörter über Σ sind alle endlichen 0-1-Folgen inklusive des
Leerwortes ε (Epsilon), d.h.:

Σ * = { Epsilon, 0, 1, 00, 01, 10, 11, …}

 Wir bezeichnen Sprachen mit dem Buchstaben      L (Language)
Eine typische Sprache L über Σ ist die Menge aller vorzeichenlosen
Binärzahlen ohne führende Nullen: L = {0, 1, 10, 11}
Zwischenstand

   Formale- vs. natürliche Sprachen
   Grammatik
   Alphabet
   Buchstabe
   Wort

   ToDo  Konzepte: Automaten & Co.
Automaten
Automat?




           ?
Endliche Automaten

Automat = „Gerät, das in Abhängigkeit vom
aktuellen Zustand und von der jeweiligen Aktion /
Eingabe in einen anderen Zustand übergeht“
[Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 15.]
Endliche Automaten

(Endlicher) Automat = „Endliche Automaten umfassen
Zustände und Übergänge zwischen Zuständen, die in
Reaktion auf Eingaben erfolgen. Sie sind beim
Erstellen verschiedener Arten von Software nützlich
[…]“
[Hopfcroft, John et. al.: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. München 2002,
Pearson Studium. S. 43.]
Beispielautomat

            Zustände?
            Übergänge?
            Eingaben?




Bildnachweis:: http://failblog.org/2009/12/09/pepsi-machine-fail/
Endliche Automaten
Endliche Automaten

Beispiel Drehkreuzautomat:
  Verwendet wird das Alphabet
   Σ = { „Chip“, „drehen“}
Endliche Automaten




   Zustände / Zustandsübergänge:
          Verriegelt: Im verriegelten Zustand lassen sich die Arme
           nicht drehen
          Chipeinwurf: Einwurf entriegelt Sperre
          Im entriegelten Zustand: Chipeinwurf wirkungslos
          Im entriegelten Zustand: Werden die Arme gedreht, geht
           der Automat in den Zustand „verriegelt“ zurück


Abb.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 15.
Endliche Automaten

Verwendung in der Informatik: u.a. Prüfung von
Zeichenketten, d.h. Prüfung, ob die Eingabe einer
bestimmten Bedingung genügt

Beispiel:
 <html>
     <head>
           <title>Ein HTML-Dokument</title>
     </head>
     <body>Inhalt des HTML-Dokumentes</boby>
 </html>
Finite State Machine (FSM):
 Zustände und Zustandsübergänge der Spielwelt und der Agenten
Formale Definition:
Deterministischer endlicher Automat
Deterministischer endlicher Automat

Formale Definition DEA:
 Ein deterministischer endlicher Automat […] besteht
 […] aus
     einem Alphabet Σ, das die zulässigen Eingabezeichen
      auflistet,
     einer endlichen Menge Z von Zuständen
     und einer Vorschrift δ (Delta), die die Zustandsübergänge
      beschreibt.


Zusätzlich verfügt ein Automat über einen speziellen
Startzustand sowie einen oder mehrere akzeptierende
Zustände (auch Endezustände genannt).
Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 18.
Deterministischer endlicher Automat

Determinismus:
Die Eigenschaft deterministisch drückt aus, dass
in jeder Situation die Arbeitsweise eindeutig
definiert ist, d.h., entweder gibt es genau einen
Folgezustand, oder der Automat stoppt vorzeitig.
Deterministischer endlicher Automat

Formale Definition DEA, kurz und knackig:
 Ein DEA besteht aus den fünf Komponenten
 („fünf-Tupel“) Z, Σ, δ, z0, E

    Z ist eine endliche Menge von Zuständen
    Σ ist ein Alphabet, das Eingabealphabet
    δ : Z x Σ  Z ist die Übergangsfunktion
    z0 ∈ Z ist der Startzustand
    E ⊆ Z ist die Menge der Endezustände (E ist Teilmenge der
     Menge von Zuständen Z)
Deterministischer endlicher Automat

Beispiel: Automat zur lexikalischen Analyse

Der Automat ALA=(Z, Σ, δ, z0, E) prüft, ob die
Eingabe eine korrekt geschriebene ganze Zahl
ohne führende Nullen darstellt.

Gültige Eingabezeichen:
Σ = {-, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9}




                       Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
Deterministischer endlicher Automat

Übergangsdiagramm:
  Jeder in Z enthaltene Zustand wird durch einen Knoten
   dargestellt
  Für jeden Zustand z0 aus Z und für jedes Eingabesymbol
   a aus Σ sei δ(z0, a)=p
    Das Übergangsdiagramm enthält dann einen Pfeil, der
   von Knoten z0 zu Knoten p führt und mit a beschriftet ist
  Knoten, die akzeptierenden Zuständen
   entsprechen, werden durch eine doppelte Kreislinie
   gekennzeichnet.
   Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
Deterministischer endlicher Automat

Übergangsdiagramm:




Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
Fall I:
  Zu Beginn, d.h. im Startzustand z0, können drei Fälle
  unterschieden werden:
     Ist das erste Eingabezeichen eine 0, so springt der
      Automat in den Zustand z3: (z0, 0)  (z3, ε)
     z3 muss ein akzeptierender Zustand sein, da 0 ein
      gültiges Eingabewort ist.
     Anschließend darf kein weiteres Zeichen mehr
      kommen, weil führende Nullen nicht erlaubt sind.
      Z.B.: (z3, 0)  (z4, ε)

                        Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
Fall II:
     Ist das erste Eingabezeichen nicht 0 und auch nicht
      das Minuszeichen, so springt der Automat in den
      Zustand z2.
      Z.B.: (z0, 3)  (z2, ε)
     Anschließend dürfen beliebig viele Ziffern, jedoch kein
      Vorzeichen kommen.
      Z.B.: (z2, 5)  (z2, ε)
      oder (kein gültiger Endzustand) (z2, -)  (z4, ε)


                        Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
Fall III:
     ???




            Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
Fall III:
     Ist das erste Eingabezeichen das Vorzeichen, so
      springt der Automat in den Zustand z1.
     Folgt nun eine weitere Ziffer ungleich 0, so springt der
      Automat in den Zustand z2.




                         Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
Übung

Beispiel: Eingabe „-153“




Ist das Eingabewort „-153“ eine korrekt geschriebene ganze
Zahl?
Übung

Beispiel: Eingabe „-153“




   Verlauf: (z0, -153)  (z1, 153)  (z2, 53)  (z2, 3)  (z2, ε)
   Fazit: Die Verarbeitung endet im Zustand z2, der ein Endezustand
    ist. Das Eingabewort „-153“ ist folglich eine korrekt geschriebene
    ganze Zahl.
   Die Menge aller Eingabewörter, die vom Automaten A akzeptiert
    werden, wird als die von A akzeptierte Sprache bezeichnet
Deterministischer endlicher Automat

Die Sprache eines deterministischen endlichen
Automaten A wird als L(A) bezeichnet und ist
definiert durch:
L(A) = { w | δ(z0, w) ist in E enthalten }

…das bedeutet: Die Sprache von A ist die Menge der
Zeichenreihen w, die vom Startzustand z0 in einen
akzeptierenden Zustand führen. Wenn L für einen DEA A
L(A) ist, dann bezeichnen wir L als reguläre Sprache.
Übung

Wie reagiert der folgende DEA auf die Eingabe
„111001“? Verarbeitet der Automat die Eingabe?
Zwischenstand II

Automaten
  Deterministische endliche A.
  [Nichtdeterministische A.]



ToDo:
 Grammatiken
 Kellerautomat
 Turingmaschine
Grammatiken
Grammatiken

Grundfrage: Wie erkennen wir, ob ein „Satz“ einer
Programmiersprache wohlgeformt, d.h. korrekt ist?

Lösung: Grammatik  Regelwerk, das beschreibt,
wie syntaktisch korrekte Wörter und Sätze einer
Sprache, z.B. einer Programmiersprache gebildet
werden
Grammatiken

Grammatikbeispiel natürliche Sprache: deutsche
Sprache

 <Satz>                  <Nominalsatz> <Verb>
 <Nominalsatz>           <Artikel><Substantiv>
                          ||
                          <Artikel><Adjektiv><Substantiv>
 <Artikel>          das | die
 <Adjektiv>         große | kleine
 <Substantiv>       Klavier | Katze
 <Verb>             schläft

 Definition:
  Ausdrücke in spitzen Klammern, z.B. <Verb>: Variablen oder
   Nichtterminalsymbole
  Andere Ausdrücke, z.B. „schläft“: Terminalsymbole

                       Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 65 f.
Grammatiken

Definition: Eine Grammatik G ist ein Quadrupel
(d.h. ein System mit 4 charakteristischen Bestandteilen):

                          G = {V, Σ, P, S}

   V bezeichnet eine endliche Menge von Variablen

   Σ ist das Terminalalphabet, d.h. die Menge der Terminalen
    Symbole. Terminale Symbole bilden das Alphabet der
    Sprache, sind nicht weiter zerlegbar (notiert als Kleinbuchstaben)

   P ist eine Menge von Produktionen, d.h. eine endliche Menge von Regeln.
    Beispiel: <Satz>  <Nominalsatz><Verb>

   S ist die Startvariable
Grammatiken

Eine Grammatik ist ein endliches Objekt, kann
jedoch in der Lage sein, eine unendlich große
Sprache zu definieren.

Beispiel:
<Nominalphrase> 
<Nominalphrase><Präpositionalphrase>

„Die Frau sah Hans mit einem Fernglas in dem Park
in dem Park mit einem Fernglas“
Grammatiken

Eine Grammatik der Form G = {V, Σ, P, S} mit einer
endlichen Menge von Produktionen wird als
Chomsky-Grammatik bezeichnet

Chomsky-Grammatiken lassen sich nach der Form
ihrer Produktionsregeln klassifizieren und bilden die
Chomsky-Hierarchie
Grammatiken

Formale Sprachen: Dienen u.a. der Beschreibung von
Programmiersprachen

Chomsky-Hierarchie (sowohl für natürliche, als auch für formale
Sprachen):
   Chomsky-Typ 0, auch: allgemeine Grammatik.
    Keinerlei Einschränkungen; jede Grammatik ist zunächst vom Typ 0. Linke und
    rechte Seiten der Regeln dürfen beliebige Zeichenfolgen sein, bestehend aus
    Variablen und Terminalzeichen.
   Chomsky-Typ 1, auch: kontextsensitive Grammatik.
    Jede Regel der Grammatik ist so formuliert, dass die Länge nicht abnimmt, d.h.:
    Die rechte Seite einer Regel darf nicht kürzer sein, als die linke Seite der Regel.
   Chomsky-Typ 2, auch: kontextfreie Grammatik.
    Die linke Seite darf nur aus einer Variablen bestehen.
   Chomsky-Typ 3, auch: reguläre Grammatik.
    Analog Typ 2 besteht die linke Seite nur aus einer einzelnen Variablen. Darüber
    hinaus darf die rechte Seite nur eine der folgenden Formen haben:
     Das leere Wort oder nur ein einzelnes Terminalsymbol
     Ein Terminalsymbol, gefolgt von einer Variablen
     Vgl.: Schöning, Uwe: Ideen der Informatik. München 2008, Oldenbourg Wissenschaftsverlag. S. 80 ff.
     Bildnachweis: http://de.wikipedia.org/w/index.php?title=Datei:Chomsky.jpg&filetimestamp=20061014164127
Grammatiken und die Praxis

Wofür der Aufwand?
 Compilierung: Stellt die Eingabe ein zu
  akzeptierendes Programm dar?
Grammatiken und die Praxis

Für jeden Grammatik-Typ der Chomsky-Hierarchie
existiert ein Typ von Automat, der die aus den
Grammatiken resultierenden
Sprachen verarbeiten kann:

  Typ 0 (allgemein)          Turing-Maschine
  Typ 1 (kontextsensitiv)    linear beschränkter
                              Automat
  Typ 2 (kontextfrei)        Kellerautomat
  Typ 3 (regulär)            endlicher Automat
Kellerautomat
Kellerautomat

Intention: Endlichen Automaten fehlt ein Speicher,
der beliebig viele Informationen speichern kann und
nicht – wie DEA – von vornherein, d.h. durch die
Anzahl ihrer Zustände, beschränkt ist.
Lösung: Kellerautomat
Kellerautomat

Zugriffsart auf Daten nach dem Keller-, Stapel- oder
Stack-Prinzip (LIFO, last in first out):
Information, die zuletzt in den Kellerspeicher gelegt
wurde, wird beim nächsten Speicher-Lese und
Speicher-Entnahmevorgang als erstes wieder
ausgelesen.

Informationen, die in dem Kellerspeicher
eingespeichert und ausgelesen werden, sind
Elemente des Kelleralphabets (muss nicht
identisch mit dem Eingabealphabet sein).
Kellerautomat

Verfahrensweise:
Abhängig vom aktuellen Zustand des Automaten
und abhängig vom gelesenen Eingabezeichen und
abhängig vom zuoberst im Keller liegenden
Symbol, geht der Kellerautomat in einen neuen
Zustand über, ersetzt zugleich das oberste
Kellerzeichen durch eine Folge von Kellersymbolen.
Kellerautomat

Formale Definition: Ein nichtdeterministischer
Kellerautomat (mit Endzuständen) ist ein 7-Tupel):
M =(Z, V, U, δ, qM, KM, F)

  Z ist die Zustandsmenge
  V ist das Eingabealphabet
  U ist das Kelleralphabet.
  δ (Delta) ist die Überführungsrelation. Die Elemente aus δ
   heißen Anweisungen.
  qM ist der Startzustand. Der Kellerautomat befindet sich in
   diesem Zustand, bevor ein Zustandsübergang erfolgt ist.
  KM ist das Anfangskellerzeichen. Anfangs enthält der
   Kellerspeicher nur das Startsymbol.
  F ist die Menge der akzeptierenden Zustände oder
   Endzustände.
Turing-Maschine
Turing-Maschine

Anforderung: Entwurf eines allgemeineren Automaten

Auflösung der Beschränkungen des
Kellerspeichers, u.a. dass nur an dem einen Ende des
Speichers ein- und ausgelesen werden kann

 Automat, der wahlfreien Zugang (random access) auf
alle Speicherplätze erlaubt

Formuliert von Alan M. Turing in „On computable
numbers, with an application to the
Entscheidungsproblem“ (1937)
Turing-Maschine




Abb.: Schöning, Uwe: Ideen der Informatik. München 2008, Oldenbourg Wissenschaftsverlag. S. 102.
Turing-Maschine

Turing-Maschine:
  Kellerspeicher ersetzt durch sequenziellen
   Speicher, angeordnet in Form eines Speicherbandes, das
   durch einen beweglichen Schreib-Lese-Kopf gelesen und
   beschrieben werden kann.
  Jedes Feld des Bandes ist in der Lage, ein Zeichen aus dem
   Arbeitsalphabet zu speichern

  Eine Turingmaschine besteht aus einer endlichen
   Steuereinheit, die von einem Band (die Eingabe) liest und
   darauf (Zwischenergebnisse) schreibt. Hierzu dient ein
   Schreib-Lese-Kopf, der auf dem Band schrittweise und
   wahlfrei nach links oder nach rechts bewegt werden kann. Auf
   dem Band kann immer nur dort etwas verändert (und gelesen)
   werden, wo sich der Schreib-Lese-Kopf befindet.
   Vgl.: Schöning, Uwe: Ideen der Informatik. München 2008, Oldenbourg Wissenschaftsverlag. S. 101 f.
Zelluläre Automaten /
Conway‘s Game of Life
Conways Spiel des Lebens

Zelluläre Automaten  Verknüpfung einfacher
Automaten in Netzform:
Conways Spiel des Lebens

Rahmenbedingungen:
  Jeder Automat verfügt über zwei mögliche Zustände:
   Lebendig
   Tot
  Jeder Automat hängt von seinem linken, rechten, oberen
   und unteren Nachbarn ab.
  Die Automaten ändern synchron in einem Taktrhythmus
   ihren Zustand
  Die Zustandsänderung hängt nicht nur vom eigenen
   vorherigen Zustand ab, sondern auch von den Zuständen
   der Nachbarn
  Der Nachfolgezustand hängt davon ab, wie viele seiner
   acht Nachbarn lebendig sind
Conways Spiel des Lebens

Spielregeln:
  Ist der aktuelle Zustand des Automaten „lebendig“ und
   beträgt die Anzahl der lebendigen Nachbarn 2 oder 3, so
   ist der Nachfolgezustand „lebendig“

  Ist der aktuelle Zustand „tot“ und ist die Anzahl der
   lebendigen Nachbarn genau 3, so ist der
   Nachfolgezustand „lebendig“

  In allen anderen Fällen ist der Nachfolgezustand „tot“.
Conways Spiel des Lebens

Demo:




 Quelle: http://www.onderstekop.nl/coding/p4_Game_of_Life_Animated_GIF_Generator
Lindenmayer-System / L-System

Rekursive Kombination von basalen
Produktionsregeln generiert Komplexität
Wolfram: A new kind of science

Stephen Wolfram (*1959)
   Mathematica (1988+)
   Suchmaschine „Wolfram“ (2009+)
   „A New Kind of Science“ (2002)
…

   Berechenbarkeit
   Entscheidbarkeit
   Komplexität
     O-Notation – Komplexitätsklassen:


         Klasse                 Ordnung
         Konstant               O (1)
         Logarithmisch          O (log n)
         Linear                 O (n)
         n-log-n                O (n log n)
         Quadratisch            O (n²)
         polynomiell            O (nk) für k >= 1
         exponentiell           O (nd) für d > 1
/
Hausaufgaben

Ich wünsche einen angenehmen Start ins
Sommersemester!

Contenu connexe

Tendances

Esoterische Programmiersprachen
Esoterische ProgrammiersprachenEsoterische Programmiersprachen
Esoterische Programmiersprachen
guestad8342
 
Esoterische Programmiersprachen nummer 2
Esoterische Programmiersprachen nummer 2Esoterische Programmiersprachen nummer 2
Esoterische Programmiersprachen nummer 2
guestad8342
 

Tendances (6)

Esoterische Programmiersprachen
Esoterische ProgrammiersprachenEsoterische Programmiersprachen
Esoterische Programmiersprachen
 
Esoterische Programmiersprachen nummer 2
Esoterische Programmiersprachen nummer 2Esoterische Programmiersprachen nummer 2
Esoterische Programmiersprachen nummer 2
 
Reguläre Ausdrucke (PCRE)
Reguläre Ausdrucke (PCRE)Reguläre Ausdrucke (PCRE)
Reguläre Ausdrucke (PCRE)
 
GE_: mein perl_curse
GE_: mein perl_curseGE_: mein perl_curse
GE_: mein perl_curse
 
Verbesserte Termextraktion auf Basis von Wörterbuchdaten
Verbesserte Termextraktion auf Basis von WörterbuchdatenVerbesserte Termextraktion auf Basis von Wörterbuchdaten
Verbesserte Termextraktion auf Basis von Wörterbuchdaten
 
Einführung in RegEx
Einführung in RegExEinführung in RegEx
Einführung in RegEx
 

En vedette

Publikum für webfriend neu
Publikum für webfriend neuPublikum für webfriend neu
Publikum für webfriend neu
Stadtmusikant
 
Cap4
Cap4Cap4
Cap4
CJAO
 
ZOOREA F3 FOR RUBBER
ZOOREA F3 FOR RUBBERZOOREA F3 FOR RUBBER
ZOOREA F3 FOR RUBBER
Sitto Vietnam
 

En vedette (15)

Andalsnes
AndalsnesAndalsnes
Andalsnes
 
COMECIO DE LOS DOMIMINGOS
COMECIO DE LOS DOMIMINGOSCOMECIO DE LOS DOMIMINGOS
COMECIO DE LOS DOMIMINGOS
 
Nuestra Jotaza mx 09
Nuestra Jotaza mx 09Nuestra Jotaza mx 09
Nuestra Jotaza mx 09
 
Studentische Crossmedia-Analyse: ITU World Triathlon Hamburg
Studentische Crossmedia-Analyse: ITU World Triathlon HamburgStudentische Crossmedia-Analyse: ITU World Triathlon Hamburg
Studentische Crossmedia-Analyse: ITU World Triathlon Hamburg
 
Publikum für webfriend neu
Publikum für webfriend neuPublikum für webfriend neu
Publikum für webfriend neu
 
Cap4
Cap4Cap4
Cap4
 
Bestech spa Gurgaon
Bestech spa GurgaonBestech spa Gurgaon
Bestech spa Gurgaon
 
ZOOREA F3 FOR RUBBER
ZOOREA F3 FOR RUBBERZOOREA F3 FOR RUBBER
ZOOREA F3 FOR RUBBER
 
Studienpräsentation Medientage 2010 Bulletproof Media
Studienpräsentation Medientage 2010 Bulletproof MediaStudienpräsentation Medientage 2010 Bulletproof Media
Studienpräsentation Medientage 2010 Bulletproof Media
 
Norwegentagebuch
NorwegentagebuchNorwegentagebuch
Norwegentagebuch
 
La encrucijada de las tendencias
La encrucijada de las tendenciasLa encrucijada de las tendencias
La encrucijada de las tendencias
 
Content Marketing in der Hotellerie
Content Marketing in der HotellerieContent Marketing in der Hotellerie
Content Marketing in der Hotellerie
 
C Wam Abend
C Wam AbendC Wam Abend
C Wam Abend
 
SoSe 2013 | Programmierpropädeutikum - 00_Kick-off
SoSe 2013 | Programmierpropädeutikum - 00_Kick-offSoSe 2013 | Programmierpropädeutikum - 00_Kick-off
SoSe 2013 | Programmierpropädeutikum - 00_Kick-off
 
Photosenfolie 0
Photosenfolie 0Photosenfolie 0
Photosenfolie 0
 

Plus de Institute for Digital Humanities, University of Cologne

Plus de Institute for Digital Humanities, University of Cologne (20)

Künstliche Intelligenz und visuelle Erzählungen: Comicanalyse | 17.04.2019 | ...
Künstliche Intelligenz und visuelle Erzählungen: Comicanalyse | 17.04.2019 | ...Künstliche Intelligenz und visuelle Erzählungen: Comicanalyse | 17.04.2019 | ...
Künstliche Intelligenz und visuelle Erzählungen: Comicanalyse | 17.04.2019 | ...
 
Augmented City –Street Art, Embodiment, Cultural Heritage & AR | 03.04.2019 |...
Augmented City –Street Art, Embodiment, Cultural Heritage & AR | 03.04.2019 |...Augmented City –Street Art, Embodiment, Cultural Heritage & AR | 03.04.2019 |...
Augmented City –Street Art, Embodiment, Cultural Heritage & AR | 03.04.2019 |...
 
Künstliche Intelligenz und visuelle Erzählungen: Comicanalyse | 03.04.2019 | ...
Künstliche Intelligenz und visuelle Erzählungen: Comicanalyse | 03.04.2019 | ...Künstliche Intelligenz und visuelle Erzählungen: Comicanalyse | 03.04.2019 | ...
Künstliche Intelligenz und visuelle Erzählungen: Comicanalyse | 03.04.2019 | ...
 
Transformation mittelhochdeutscher Erfahrungswelten – vom Text zum Computerga...
Transformation mittelhochdeutscher Erfahrungswelten – vom Text zum Computerga...Transformation mittelhochdeutscher Erfahrungswelten – vom Text zum Computerga...
Transformation mittelhochdeutscher Erfahrungswelten – vom Text zum Computerga...
 
Transformation mittelhochdeutscher Erfahrungswelten – vom Text zum Computerga...
Transformation mittelhochdeutscher Erfahrungswelten – vom Text zum Computerga...Transformation mittelhochdeutscher Erfahrungswelten – vom Text zum Computerga...
Transformation mittelhochdeutscher Erfahrungswelten – vom Text zum Computerga...
 
Bit sosem 2016-wieners-sitzung-13_ki-in-games
Bit sosem 2016-wieners-sitzung-13_ki-in-gamesBit sosem 2016-wieners-sitzung-13_ki-in-games
Bit sosem 2016-wieners-sitzung-13_ki-in-games
 
Bit sosem 2016-wieners-sitzung-12_bild-iv-computer-vision
Bit sosem 2016-wieners-sitzung-12_bild-iv-computer-visionBit sosem 2016-wieners-sitzung-12_bild-iv-computer-vision
Bit sosem 2016-wieners-sitzung-12_bild-iv-computer-vision
 
Bit sosem 2016-wieners-sitzung-11_bild-iii-filter
Bit sosem 2016-wieners-sitzung-11_bild-iii-filterBit sosem 2016-wieners-sitzung-11_bild-iii-filter
Bit sosem 2016-wieners-sitzung-11_bild-iii-filter
 
Bit sosem 2016-wieners-sitzung-10_bild-ii-punktoperationen
Bit sosem 2016-wieners-sitzung-10_bild-ii-punktoperationenBit sosem 2016-wieners-sitzung-10_bild-ii-punktoperationen
Bit sosem 2016-wieners-sitzung-10_bild-ii-punktoperationen
 
Bit sosem 2016-wieners-sitzung-09_bild-i-kompression
Bit sosem 2016-wieners-sitzung-09_bild-i-kompressionBit sosem 2016-wieners-sitzung-09_bild-i-kompression
Bit sosem 2016-wieners-sitzung-09_bild-i-kompression
 
Bit sosem 2016-wieners-sitzung-08_semantic-web
Bit sosem 2016-wieners-sitzung-08_semantic-webBit sosem 2016-wieners-sitzung-08_semantic-web
Bit sosem 2016-wieners-sitzung-08_semantic-web
 
Bit sosem 2016-wieners-sitzung-07_rechnerkommunikation-ii
Bit sosem 2016-wieners-sitzung-07_rechnerkommunikation-iiBit sosem 2016-wieners-sitzung-07_rechnerkommunikation-ii
Bit sosem 2016-wieners-sitzung-07_rechnerkommunikation-ii
 
Bit sosem 2016-wieners-sitzung-06_rechnerkommunikation
Bit sosem 2016-wieners-sitzung-06_rechnerkommunikationBit sosem 2016-wieners-sitzung-06_rechnerkommunikation
Bit sosem 2016-wieners-sitzung-06_rechnerkommunikation
 
Bit sosem 2016-wieners-sitzung-05_zellulaere-automaten-conway
Bit sosem 2016-wieners-sitzung-05_zellulaere-automaten-conwayBit sosem 2016-wieners-sitzung-05_zellulaere-automaten-conway
Bit sosem 2016-wieners-sitzung-05_zellulaere-automaten-conway
 
Bit sosem 2016-wieners-sitzung-03_algorithmen
Bit sosem 2016-wieners-sitzung-03_algorithmenBit sosem 2016-wieners-sitzung-03_algorithmen
Bit sosem 2016-wieners-sitzung-03_algorithmen
 
Bit sosem 2016-wieners-sitzung-02_datenstrukturen
Bit sosem 2016-wieners-sitzung-02_datenstrukturenBit sosem 2016-wieners-sitzung-02_datenstrukturen
Bit sosem 2016-wieners-sitzung-02_datenstrukturen
 
Bit sosem 2016-wieners-sitzung-01_auffrischung
Bit sosem 2016-wieners-sitzung-01_auffrischungBit sosem 2016-wieners-sitzung-01_auffrischung
Bit sosem 2016-wieners-sitzung-01_auffrischung
 
Bit sosem 2016-wieners-sitzung-00_themenueberblick
Bit sosem 2016-wieners-sitzung-00_themenueberblickBit sosem 2016-wieners-sitzung-00_themenueberblick
Bit sosem 2016-wieners-sitzung-00_themenueberblick
 
Bit wisem 2015-wieners-sitzung-13_Zusammenfassung II
Bit wisem 2015-wieners-sitzung-13_Zusammenfassung IIBit wisem 2015-wieners-sitzung-13_Zusammenfassung II
Bit wisem 2015-wieners-sitzung-13_Zusammenfassung II
 
Bit wisem 2015-wieners-sitzung-12_Zusammenfassung I
Bit wisem 2015-wieners-sitzung-12_Zusammenfassung IBit wisem 2015-wieners-sitzung-12_Zusammenfassung I
Bit wisem 2015-wieners-sitzung-12_Zusammenfassung I
 

Dernier

Dernier (6)

Wirtschaftsingenieurwesen an der Universität Duisburg-Essen
Wirtschaftsingenieurwesen an der Universität Duisburg-EssenWirtschaftsingenieurwesen an der Universität Duisburg-Essen
Wirtschaftsingenieurwesen an der Universität Duisburg-Essen
 
Religion_Unterrichtsstunde zum Kölner Dom.pdf
Religion_Unterrichtsstunde zum Kölner Dom.pdfReligion_Unterrichtsstunde zum Kölner Dom.pdf
Religion_Unterrichtsstunde zum Kölner Dom.pdf
 
Angewandte Philosophie an der Universität Duisburg-Essen.
Angewandte Philosophie an der Universität Duisburg-Essen.Angewandte Philosophie an der Universität Duisburg-Essen.
Angewandte Philosophie an der Universität Duisburg-Essen.
 
Chemie (B.Sc.) und Water Science (B.Sc.) uni DUE
Chemie (B.Sc.) und Water Science (B.Sc.) uni DUEChemie (B.Sc.) und Water Science (B.Sc.) uni DUE
Chemie (B.Sc.) und Water Science (B.Sc.) uni DUE
 
Angewandte Kognitions- und Medienwissenschaft an der Universität Duisburg_Essen
Angewandte Kognitions- und Medienwissenschaft an der Universität Duisburg_EssenAngewandte Kognitions- und Medienwissenschaft an der Universität Duisburg_Essen
Angewandte Kognitions- und Medienwissenschaft an der Universität Duisburg_Essen
 
Betriebswirtschaftslehre (B.Sc.) an der Universität Duisburg Essen
Betriebswirtschaftslehre (B.Sc.) an der Universität Duisburg EssenBetriebswirtschaftslehre (B.Sc.) an der Universität Duisburg Essen
Betriebswirtschaftslehre (B.Sc.) an der Universität Duisburg Essen
 

SoSe 2013 | Basisinformationstechnologie II - 01_Theoretische Informatik

  • 1. Basisinformationstechnologie I Sommersemester 2013 10. April 2013 – Theoretische Informatik Universität zu Köln. Historisch-Kulturwissenschaftliche Informationsverarbeitung Jan G. Wieners // jan.wieners@uni-koeln.de
  • 2. Themenüberblick „Theoretische Informatik“  Formale Sprachen  Automaten  Deterministische endliche Automaten  (Nichtdeterministische endliche Automaten)  Anwendung endlicher Automaten  Grammatiken  Kellerautomat  Turingmaschine  & Co.
  • 4. <pre> Theorie der formalen Sprachen & Automatentheorie  Möglichkeiten zur formalen Beschreibung und automatischen Verarbeitung von gedanklichen Gebilden  Wörter  Sätze  Verfahrensanweisungen Hauptziel: Kommunikation zw. Mensch und Computer SQL: „SELECT uid, name, pass, mail FROM users WHERE uid < 2“
  • 5. <pre> Formulierungs- Kompilierungsschritte aspekt:  Gegenstand der Theorie der formalen Sprachen Erkennungsaspekt:  Automatentheorie  Grundfrage: Kann eine bestimmte Eingabe für eine Weiterverarbeitung akzeptiert werden, oder nicht?
  • 6.
  • 7.
  • 8. Formale- vs. natürliche Sprachen Natürliche Sprache = außerordentlich komplex Knackpunkt: Viele Äußerungen sind mehrdeutig  „öffne die Tür mit dem Schlüssel“ vs.  „öffne die Tür mit dem Schlüssel“ Formale Sprache = …naja, auch ziemlich komplex
  • 9. Grammatiken Grundfrage: Wie erkennen wir, ob ein „Satz“ einer Programmiersprache wohlgeformt, d.h. korrekt ist? Lösung: Grammatik  Regelwerk, das beschreibt, wie syntaktisch korrekte Wörter und Sätze einer Sprache, z.B. einer Programmiersprache gebildet werden
  • 10. Grammatiken Grammatikbeispiel natürliche Sprache: deutsche Sprache <Satz>  <Nominalsatz> <Verb> <Nominalsatz>  <Artikel><Substantiv> || <Artikel><Adjektiv><Substantiv> <Artikel>  das | die <Adjektiv>  große | kleine <Substantiv>  Klavier | Katze <Verb>  schläft Definition:  Ausdrücke in spitzen Klammern, z.B. <Verb>: Variablen oder Nichtterminalsymbole  Andere Ausdrücke, z.B. „schläft“: Terminalsymbole Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 65 f.
  • 11. Grammatiken Grammatikalisch richtig und sinnvoll: „Die kleine Katze schläft.“ Grammatikalisch falsch (zwar richtig nach dem vorhergehenden Beispiel, jedoch falsch in der Grammatik des Deutschen) : „Das große Katze schläft.“ Grammatikalisch richtig, jedoch sinnlos: „Das große Klavier schläft.“
  • 12. Formale Sprachen Formale Sprache  z.B. Programmiersprache  auf Basis einer verhältnismäßig kleinen Menge von Regeln werden Programme formuliert, die der Rechner verstehen kann Zu klären (natürliche && formale Sprache):  Alphabet  Buchstabe  Wort  ...
  • 14. Alphabet Definition Alphabet:  endliche, nichtleere Menge von Zeichen (auch: Buchstaben oder Symbole  formale Einheit, die nicht weiter definiert wird) V oder Σ (Sigma) als Abkürzung für Alphabete Übungen: Σ Binärcode = { ??? }
  • 15. Wort Definition Wort:  Wort: Ein Wort (über einem Alphabet Σ) ist eine endliche Folge von Zeichen aus Σ.  Beispiel: Aus den Zeichen „a“, „b“, „c“ lassen sich Wörter wie „cba“ oder „aab“ bilden  Die Länge eines Wortes w = Anzahl der in w vorkommenden Zeichen, wird mit |w| bezeichnet  Beispiel: Ist w = haus, so ist |w| = 4  Es existiert genau ein Wort über Σ der Länge 0, das Leerwort, das wir mit ε (Epsilon) bezeichnen
  • 16. Alphabet? Wort? Σ = { Anweisung, Bedingung, if, then, else, begin, end, while } w = if Bedingung then Anweisung end |w| = 5 Die Menge aller Wörter, die mit Zeichen aus Σ gebildet werden können, wird mit Σ* bezeichnet  Jede beliebige Teilmenge von Σ* wird als formale Sprache bezeichnet.
  • 17. Sprache Die wichtigste Operation für Wörter besteht aus dem Verketten einzelner Wörter  Komposita (z.B. Dampfschiffahrt). Beispiel: Σ = {0, 1} Die Wörter über Σ sind alle endlichen 0-1-Folgen inklusive des Leerwortes ε (Epsilon), d.h.: Σ * = { Epsilon, 0, 1, 00, 01, 10, 11, …}  Wir bezeichnen Sprachen mit dem Buchstaben L (Language) Eine typische Sprache L über Σ ist die Menge aller vorzeichenlosen Binärzahlen ohne führende Nullen: L = {0, 1, 10, 11}
  • 18. Zwischenstand  Formale- vs. natürliche Sprachen  Grammatik  Alphabet  Buchstabe  Wort  ToDo  Konzepte: Automaten & Co.
  • 20. Automat? ?
  • 21. Endliche Automaten Automat = „Gerät, das in Abhängigkeit vom aktuellen Zustand und von der jeweiligen Aktion / Eingabe in einen anderen Zustand übergeht“ [Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 15.]
  • 22. Endliche Automaten (Endlicher) Automat = „Endliche Automaten umfassen Zustände und Übergänge zwischen Zuständen, die in Reaktion auf Eingaben erfolgen. Sie sind beim Erstellen verschiedener Arten von Software nützlich […]“ [Hopfcroft, John et. al.: Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie. München 2002, Pearson Studium. S. 43.]
  • 23. Beispielautomat  Zustände?  Übergänge?  Eingaben? Bildnachweis:: http://failblog.org/2009/12/09/pepsi-machine-fail/
  • 25. Endliche Automaten Beispiel Drehkreuzautomat:  Verwendet wird das Alphabet Σ = { „Chip“, „drehen“}
  • 26. Endliche Automaten Zustände / Zustandsübergänge:  Verriegelt: Im verriegelten Zustand lassen sich die Arme nicht drehen  Chipeinwurf: Einwurf entriegelt Sperre  Im entriegelten Zustand: Chipeinwurf wirkungslos  Im entriegelten Zustand: Werden die Arme gedreht, geht der Automat in den Zustand „verriegelt“ zurück Abb.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 15.
  • 27. Endliche Automaten Verwendung in der Informatik: u.a. Prüfung von Zeichenketten, d.h. Prüfung, ob die Eingabe einer bestimmten Bedingung genügt Beispiel: <html> <head> <title>Ein HTML-Dokument</title> </head> <body>Inhalt des HTML-Dokumentes</boby> </html>
  • 28. Finite State Machine (FSM):  Zustände und Zustandsübergänge der Spielwelt und der Agenten
  • 29.
  • 31. Deterministischer endlicher Automat Formale Definition DEA: Ein deterministischer endlicher Automat […] besteht […] aus  einem Alphabet Σ, das die zulässigen Eingabezeichen auflistet,  einer endlichen Menge Z von Zuständen  und einer Vorschrift δ (Delta), die die Zustandsübergänge beschreibt. Zusätzlich verfügt ein Automat über einen speziellen Startzustand sowie einen oder mehrere akzeptierende Zustände (auch Endezustände genannt). Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 18.
  • 32. Deterministischer endlicher Automat Determinismus: Die Eigenschaft deterministisch drückt aus, dass in jeder Situation die Arbeitsweise eindeutig definiert ist, d.h., entweder gibt es genau einen Folgezustand, oder der Automat stoppt vorzeitig.
  • 33. Deterministischer endlicher Automat Formale Definition DEA, kurz und knackig: Ein DEA besteht aus den fünf Komponenten („fünf-Tupel“) Z, Σ, δ, z0, E  Z ist eine endliche Menge von Zuständen  Σ ist ein Alphabet, das Eingabealphabet  δ : Z x Σ  Z ist die Übergangsfunktion  z0 ∈ Z ist der Startzustand  E ⊆ Z ist die Menge der Endezustände (E ist Teilmenge der Menge von Zuständen Z)
  • 34. Deterministischer endlicher Automat Beispiel: Automat zur lexikalischen Analyse Der Automat ALA=(Z, Σ, δ, z0, E) prüft, ob die Eingabe eine korrekt geschriebene ganze Zahl ohne führende Nullen darstellt. Gültige Eingabezeichen: Σ = {-, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9} Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
  • 35. Deterministischer endlicher Automat Übergangsdiagramm:  Jeder in Z enthaltene Zustand wird durch einen Knoten dargestellt  Für jeden Zustand z0 aus Z und für jedes Eingabesymbol a aus Σ sei δ(z0, a)=p  Das Übergangsdiagramm enthält dann einen Pfeil, der von Knoten z0 zu Knoten p führt und mit a beschriftet ist  Knoten, die akzeptierenden Zuständen entsprechen, werden durch eine doppelte Kreislinie gekennzeichnet. Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
  • 36. Deterministischer endlicher Automat Übergangsdiagramm: Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
  • 37. Fall I: Zu Beginn, d.h. im Startzustand z0, können drei Fälle unterschieden werden:  Ist das erste Eingabezeichen eine 0, so springt der Automat in den Zustand z3: (z0, 0)  (z3, ε)  z3 muss ein akzeptierender Zustand sein, da 0 ein gültiges Eingabewort ist.  Anschließend darf kein weiteres Zeichen mehr kommen, weil führende Nullen nicht erlaubt sind. Z.B.: (z3, 0)  (z4, ε) Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
  • 38. Fall II:  Ist das erste Eingabezeichen nicht 0 und auch nicht das Minuszeichen, so springt der Automat in den Zustand z2. Z.B.: (z0, 3)  (z2, ε)  Anschließend dürfen beliebig viele Ziffern, jedoch kein Vorzeichen kommen. Z.B.: (z2, 5)  (z2, ε) oder (kein gültiger Endzustand) (z2, -)  (z4, ε) Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
  • 39. Fall III:  ??? Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
  • 40. Fall III:  Ist das erste Eingabezeichen das Vorzeichen, so springt der Automat in den Zustand z1.  Folgt nun eine weitere Ziffer ungleich 0, so springt der Automat in den Zustand z2. Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 19 f.
  • 41. Übung Beispiel: Eingabe „-153“ Ist das Eingabewort „-153“ eine korrekt geschriebene ganze Zahl?
  • 42. Übung Beispiel: Eingabe „-153“  Verlauf: (z0, -153)  (z1, 153)  (z2, 53)  (z2, 3)  (z2, ε)  Fazit: Die Verarbeitung endet im Zustand z2, der ein Endezustand ist. Das Eingabewort „-153“ ist folglich eine korrekt geschriebene ganze Zahl.  Die Menge aller Eingabewörter, die vom Automaten A akzeptiert werden, wird als die von A akzeptierte Sprache bezeichnet
  • 43. Deterministischer endlicher Automat Die Sprache eines deterministischen endlichen Automaten A wird als L(A) bezeichnet und ist definiert durch: L(A) = { w | δ(z0, w) ist in E enthalten } …das bedeutet: Die Sprache von A ist die Menge der Zeichenreihen w, die vom Startzustand z0 in einen akzeptierenden Zustand führen. Wenn L für einen DEA A L(A) ist, dann bezeichnen wir L als reguläre Sprache.
  • 44. Übung Wie reagiert der folgende DEA auf die Eingabe „111001“? Verarbeitet der Automat die Eingabe?
  • 45. Zwischenstand II Automaten  Deterministische endliche A.  [Nichtdeterministische A.] ToDo:  Grammatiken  Kellerautomat  Turingmaschine
  • 47. Grammatiken Grundfrage: Wie erkennen wir, ob ein „Satz“ einer Programmiersprache wohlgeformt, d.h. korrekt ist? Lösung: Grammatik  Regelwerk, das beschreibt, wie syntaktisch korrekte Wörter und Sätze einer Sprache, z.B. einer Programmiersprache gebildet werden
  • 48. Grammatiken Grammatikbeispiel natürliche Sprache: deutsche Sprache <Satz>  <Nominalsatz> <Verb> <Nominalsatz>  <Artikel><Substantiv> || <Artikel><Adjektiv><Substantiv> <Artikel>  das | die <Adjektiv>  große | kleine <Substantiv>  Klavier | Katze <Verb>  schläft Definition:  Ausdrücke in spitzen Klammern, z.B. <Verb>: Variablen oder Nichtterminalsymbole  Andere Ausdrücke, z.B. „schläft“: Terminalsymbole Vgl.: Socher, Rolf: Theoretische Grundlagen der Informatik. München 2008, Carl Hanser Verlag. S. 65 f.
  • 49. Grammatiken Definition: Eine Grammatik G ist ein Quadrupel (d.h. ein System mit 4 charakteristischen Bestandteilen): G = {V, Σ, P, S}  V bezeichnet eine endliche Menge von Variablen  Σ ist das Terminalalphabet, d.h. die Menge der Terminalen Symbole. Terminale Symbole bilden das Alphabet der Sprache, sind nicht weiter zerlegbar (notiert als Kleinbuchstaben)  P ist eine Menge von Produktionen, d.h. eine endliche Menge von Regeln. Beispiel: <Satz>  <Nominalsatz><Verb>  S ist die Startvariable
  • 50. Grammatiken Eine Grammatik ist ein endliches Objekt, kann jedoch in der Lage sein, eine unendlich große Sprache zu definieren. Beispiel: <Nominalphrase>  <Nominalphrase><Präpositionalphrase> „Die Frau sah Hans mit einem Fernglas in dem Park in dem Park mit einem Fernglas“
  • 51. Grammatiken Eine Grammatik der Form G = {V, Σ, P, S} mit einer endlichen Menge von Produktionen wird als Chomsky-Grammatik bezeichnet Chomsky-Grammatiken lassen sich nach der Form ihrer Produktionsregeln klassifizieren und bilden die Chomsky-Hierarchie
  • 52. Grammatiken Formale Sprachen: Dienen u.a. der Beschreibung von Programmiersprachen Chomsky-Hierarchie (sowohl für natürliche, als auch für formale Sprachen):  Chomsky-Typ 0, auch: allgemeine Grammatik. Keinerlei Einschränkungen; jede Grammatik ist zunächst vom Typ 0. Linke und rechte Seiten der Regeln dürfen beliebige Zeichenfolgen sein, bestehend aus Variablen und Terminalzeichen.  Chomsky-Typ 1, auch: kontextsensitive Grammatik. Jede Regel der Grammatik ist so formuliert, dass die Länge nicht abnimmt, d.h.: Die rechte Seite einer Regel darf nicht kürzer sein, als die linke Seite der Regel.  Chomsky-Typ 2, auch: kontextfreie Grammatik. Die linke Seite darf nur aus einer Variablen bestehen.  Chomsky-Typ 3, auch: reguläre Grammatik. Analog Typ 2 besteht die linke Seite nur aus einer einzelnen Variablen. Darüber hinaus darf die rechte Seite nur eine der folgenden Formen haben:  Das leere Wort oder nur ein einzelnes Terminalsymbol  Ein Terminalsymbol, gefolgt von einer Variablen Vgl.: Schöning, Uwe: Ideen der Informatik. München 2008, Oldenbourg Wissenschaftsverlag. S. 80 ff. Bildnachweis: http://de.wikipedia.org/w/index.php?title=Datei:Chomsky.jpg&filetimestamp=20061014164127
  • 53. Grammatiken und die Praxis Wofür der Aufwand?  Compilierung: Stellt die Eingabe ein zu akzeptierendes Programm dar?
  • 54. Grammatiken und die Praxis Für jeden Grammatik-Typ der Chomsky-Hierarchie existiert ein Typ von Automat, der die aus den Grammatiken resultierenden Sprachen verarbeiten kann:  Typ 0 (allgemein)  Turing-Maschine  Typ 1 (kontextsensitiv)  linear beschränkter Automat  Typ 2 (kontextfrei)  Kellerautomat  Typ 3 (regulär)  endlicher Automat
  • 56. Kellerautomat Intention: Endlichen Automaten fehlt ein Speicher, der beliebig viele Informationen speichern kann und nicht – wie DEA – von vornherein, d.h. durch die Anzahl ihrer Zustände, beschränkt ist. Lösung: Kellerautomat
  • 57. Kellerautomat Zugriffsart auf Daten nach dem Keller-, Stapel- oder Stack-Prinzip (LIFO, last in first out): Information, die zuletzt in den Kellerspeicher gelegt wurde, wird beim nächsten Speicher-Lese und Speicher-Entnahmevorgang als erstes wieder ausgelesen. Informationen, die in dem Kellerspeicher eingespeichert und ausgelesen werden, sind Elemente des Kelleralphabets (muss nicht identisch mit dem Eingabealphabet sein).
  • 58. Kellerautomat Verfahrensweise: Abhängig vom aktuellen Zustand des Automaten und abhängig vom gelesenen Eingabezeichen und abhängig vom zuoberst im Keller liegenden Symbol, geht der Kellerautomat in einen neuen Zustand über, ersetzt zugleich das oberste Kellerzeichen durch eine Folge von Kellersymbolen.
  • 59. Kellerautomat Formale Definition: Ein nichtdeterministischer Kellerautomat (mit Endzuständen) ist ein 7-Tupel): M =(Z, V, U, δ, qM, KM, F)  Z ist die Zustandsmenge  V ist das Eingabealphabet  U ist das Kelleralphabet.  δ (Delta) ist die Überführungsrelation. Die Elemente aus δ heißen Anweisungen.  qM ist der Startzustand. Der Kellerautomat befindet sich in diesem Zustand, bevor ein Zustandsübergang erfolgt ist.  KM ist das Anfangskellerzeichen. Anfangs enthält der Kellerspeicher nur das Startsymbol.  F ist die Menge der akzeptierenden Zustände oder Endzustände.
  • 61. Turing-Maschine Anforderung: Entwurf eines allgemeineren Automaten Auflösung der Beschränkungen des Kellerspeichers, u.a. dass nur an dem einen Ende des Speichers ein- und ausgelesen werden kann  Automat, der wahlfreien Zugang (random access) auf alle Speicherplätze erlaubt Formuliert von Alan M. Turing in „On computable numbers, with an application to the Entscheidungsproblem“ (1937)
  • 62. Turing-Maschine Abb.: Schöning, Uwe: Ideen der Informatik. München 2008, Oldenbourg Wissenschaftsverlag. S. 102.
  • 63. Turing-Maschine Turing-Maschine:  Kellerspeicher ersetzt durch sequenziellen Speicher, angeordnet in Form eines Speicherbandes, das durch einen beweglichen Schreib-Lese-Kopf gelesen und beschrieben werden kann.  Jedes Feld des Bandes ist in der Lage, ein Zeichen aus dem Arbeitsalphabet zu speichern  Eine Turingmaschine besteht aus einer endlichen Steuereinheit, die von einem Band (die Eingabe) liest und darauf (Zwischenergebnisse) schreibt. Hierzu dient ein Schreib-Lese-Kopf, der auf dem Band schrittweise und wahlfrei nach links oder nach rechts bewegt werden kann. Auf dem Band kann immer nur dort etwas verändert (und gelesen) werden, wo sich der Schreib-Lese-Kopf befindet. Vgl.: Schöning, Uwe: Ideen der Informatik. München 2008, Oldenbourg Wissenschaftsverlag. S. 101 f.
  • 65. Conways Spiel des Lebens Zelluläre Automaten  Verknüpfung einfacher Automaten in Netzform:
  • 66. Conways Spiel des Lebens Rahmenbedingungen:  Jeder Automat verfügt über zwei mögliche Zustände:  Lebendig  Tot  Jeder Automat hängt von seinem linken, rechten, oberen und unteren Nachbarn ab.  Die Automaten ändern synchron in einem Taktrhythmus ihren Zustand  Die Zustandsänderung hängt nicht nur vom eigenen vorherigen Zustand ab, sondern auch von den Zuständen der Nachbarn  Der Nachfolgezustand hängt davon ab, wie viele seiner acht Nachbarn lebendig sind
  • 67. Conways Spiel des Lebens Spielregeln:  Ist der aktuelle Zustand des Automaten „lebendig“ und beträgt die Anzahl der lebendigen Nachbarn 2 oder 3, so ist der Nachfolgezustand „lebendig“  Ist der aktuelle Zustand „tot“ und ist die Anzahl der lebendigen Nachbarn genau 3, so ist der Nachfolgezustand „lebendig“  In allen anderen Fällen ist der Nachfolgezustand „tot“.
  • 68. Conways Spiel des Lebens Demo: Quelle: http://www.onderstekop.nl/coding/p4_Game_of_Life_Animated_GIF_Generator
  • 69. Lindenmayer-System / L-System Rekursive Kombination von basalen Produktionsregeln generiert Komplexität
  • 70. Wolfram: A new kind of science Stephen Wolfram (*1959)   Mathematica (1988+)   Suchmaschine „Wolfram“ (2009+)   „A New Kind of Science“ (2002)
  • 71. …  Berechenbarkeit  Entscheidbarkeit  Komplexität  O-Notation – Komplexitätsklassen: Klasse Ordnung Konstant O (1) Logarithmisch O (log n) Linear O (n) n-log-n O (n log n) Quadratisch O (n²) polynomiell O (nk) für k >= 1 exponentiell O (nd) für d > 1
  • 72. /
  • 73. Hausaufgaben Ich wünsche einen angenehmen Start ins Sommersemester!