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
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}
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.]
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
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.
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.
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)
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
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