• Keine Ergebnisse gefunden

Theoretische Informatik Automaten und formale Sprachen

N/A
N/A
Protected

Academic year: 2022

Aktie "Theoretische Informatik Automaten und formale Sprachen"

Copied!
244
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Theoretische Informatik Automaten und formale Sprachen

Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakultät IMN Gustav-Freytag-Str. 42a, 04277 Leipzig

Zimmer Z 411 (Zuse-Bau)

http://www.imn.htwk-leipzig.de/~schwarz sibylle.schwarz@htwk-leipzig.de

Wintersemester 2015/16

(2)

Einordnung der Theoretischen Informatik

Informatik Lehre von derDarstellung undVerarbeitungvon InformationdurchAlgorithmen

Teilgebiete der Informatik:

theoretisch I Sprachen zur Formulierung von Information und Algorithmen,

I Möglichkeiten und Grenzen der maschinellen Berechenbarkeit,

I Grundlagen für technische und praktische (und angewandte) Informatik

technisch I maschinelle Darstellung von Information

I Mittel zur Ausführung von Algorithmen

(Rechnerarchitektur, Hardware-Entwurf, Netzwerk, . . . ) praktisch Entwurf und Implementierung von Algorithmen

(Betriebssysteme, Compilerbau, SE, . . . ) angewandt Anwendung von Algorithmen

(Text- und Bildverarbeitung, Datenbanken, KI, Medizin-, Bio-, Wirtschafts-, Medieninformatik, . . . )

(3)

Anwendungen der theoretischen Informatik

Formale Sprachen

I Repräsentation von Problemen in maschinenlesbarer Form (Mensch-Maschine-Kommunikation, Modellierung)

I Ausdrucksstärke und Flexibilität von Programmiersprachen

I Übersetzung von Programmiersprachen (z.B. in ausführbaren Code) Maschinenmodelle(Automaten)

I Möglichkeiten und Grenzen verschiedener Modelle zur Ausführung von Algorithmen

Berechenbarkeitstheorie(hier Ausblick, mehr dazu im Mastermodul)

I Welche Probleme sind überhaupt algorithmisch (mit Hilfe verschiedener Maschinenmodelle) lösbar?

Auch negative Antworten sind sehr hilfreich (sparen Aufwand für ungeeignete Lösungsansätze)

Komplexitätstheorie(hier Ausblick, mehr dazu im Mastermodul)

I Welche Probleme sind mit beschränkten Ressourcen (z.B. Zeit, Speicherplatz) lösbar?

I Für welche Probleme können schnelle Algorithmen existieren?

(4)

Prinzipien der theoretischen Informatik

ältester Zweig der Informatik (lange vor dem ersten Computer) Mathematische Prinzipien:

I Abstraktion

I ermöglicht verallgemeinerte Aussagen und breit einsetzbare Verfahren,

I Ergebnisse und Verfahren oft nicht sofort praktisch anwendbar, müssen auf spezielle Situationen angepasst werden.

I Beweisbarkeit

I erfordert präzise Modellierung des Problems

I Nachweis der Korrektheit von Hard- und Software (Tests können dies nicht !)

Wissen aus der theoretischen Informatik

I veraltet über viele Jahre kaum

I Grundlage für Verständnis von (schnelllebigem) Spezialwissen, z.B. konkrete Programmiersprachen, Domain-spezifische Sprachen, Transformationen

(5)

Aus der Modulbeschreibung

3010 Theoretische Informatik: Automaten und formale Sprachen Arbeitsaufwand: Präsenzzeit 60 h (= 2 h V+2 h Ü je Woche)

Vor- und Nachbereitungszeit 90 h (≈6 h je Woche) Voraussetzungen: anwendungsbereite Kenntnisse auf den Gebieten

Modellierung, Logik, Algorithmen und Datenstrukturen, Aufwandsabschätzungen

Lernziele: Die Studierenden sind in der Lage, wichtige Klassen formaler Sprachen als Grundlage von Programmier- und Beschreibungssprachen einzuordnen und kennen die wesentlichen Eigenschaften der Sprachklassen.

Sie kennen die entsprechenden abstrakten

Maschinenmodelle und Algorithmen und können sie zur Darstellung und Lösung praktischer

Aufgabenstellungen einsetzen.

Die Studierenden wissen, dass nicht jedes formal darstellbare Problem algorithmisch lösbar ist.

(6)

Inhalt der Lehrveranstaltung

I Formale Sprachen

I Wiederholung: Alphabet, Wort, Sprache, Operationen darauf

I reguläre Ausdrücke

I Wiederholung: Wortersetzung

I Grammatiken, Chomsky-Hierarchie

I Maschinenmodelle

I Endliche Automaten

I Kellerautomaten

I Turing-Maschinen

I Berechenbarkeit (Ausblick auf Master-Modul)

I berechenbare Funktionen

I Berechnungsmodelle

I These von Church

I algorithmische Entscheidbarkeit / Unentscheidbarkeit

I Komplexität (Ausblick auf Master-Modul)

I Komplexitätsmaße

I Komplexitätsklassen P, NP, PSPACE jeweils mit vielen Beispielen

(7)

Literatur

I Uwe Schöning:

Theoretische Informatik - kurzgefasst (Spektrum 2001)

I John E. Hopcroft, Jeffrey D. Ullman:

Einführung in die Automatentheorie, Formale Sprachen und Komplexitätstheorie (Addison-Wesley 1990)

I Dirk W. Hoffmann:

Theoretische Informatik (Hanser 2009)

I Rolf Socher:

Theoretische Grundlagen der Informatik (Hanser 2008)

I Ulrich Hedtstück:

Einführung in die Theoretische Informatik (Oldenbourg 2007)

I Gottfried Vossen, Kurt-Ulrich Witt:

Grundkurs Theoretische Informatik (Vieweg 2006)

I Alexander Asteroth, Christel Baier:

Theoretische Informatik. Eine Einführung in Berechenbarkeit, Komplexität und formale Sprachen (Pearson 2002)

I Renate Winter:

Theoretische Informatik (Oldenbourg 2002)

(8)

Lehrveranstaltungen

Folien, Übungsserien, aktuelle Informationen unter www.imn.htwk-leipzig.de/~schwarz/lehre/ws15/ti

Vorlesung jeden Freitag (2 h / Woche)

Selbststudium (Hausaufgaben): (6 h / Woche) schriftliche Übungsserien (ca. zu jeder Vorlesung)

Besprechung in der nächsten Übung Autotool je Freitag bis Donnerstag

Übung (2 Gruppen) jeden Dienstag: (2 h / Woche) alle Folien, Aufgaben, Lösungen mitbringen !

I Besprechung der Übungsserien (Vorrechnen),

I Fragen zum aktuellen Vorlesungsinhalt

(9)

Prüfung

Prüfungsvorleistungen:

I ≥ 50% aller Punkte für Autotool-Pflichtaufgaben und

I ≥ 3 Vorrechen-Punkte (Übungen) Prüfung: Klausur 90 min

Aufgabentypen ähnlich Übungsaufgaben

(Hilfsmittel: beidseiting handbeschriebenes A4-Blatt)

(10)

Formale Sprachen

Syntax natürlicher Sprachen:

I Rechtschreibung: korrekte Wörter

I Grammatik: Aufbau korrekter Sätze Definition von Programmiersprachen:

Syntax Form der Sprachelemente

Semantik Bedeutung der Sprachelemente und -strukturen Pragmatik Regeln zur zweckmäßigen Anwendung

Syntax von Programmiersprachen:

I Schlüsselwörter, Bezeichner, Darstellung von Zahlen, . . .

I Programmstrukturen:

Form der Ausdrücke, Anweisungen, Deklarationen, . . .

(11)

Formale Sprachen: Beispiele

Programmiersprachen:

while (b != 0) { if (a > b) a = a - b; else b = b - a; } Regeln für korrekte Syntax (EBNF):

Statement ::= ... | IfStmt | WhileStmt | ... ; WhileStmt ::= "while" "(" Expr ")" Statement;

IfStmt ::= "if" "(" Expr ")" Statement ( "else" Statement )?;

Expr ::= ...

Domain-spezifische Sprachen , z.B. Autotool-Lösungen zu AL-Modell listToFM[(x,True),(y,False),(z,False)]

Regeln für korrekte Syntax (EBNF):

belegung ::= "listToFM" "[" var-wert-paare "]"

var-wert-ps ::= "" | var-wert-paar | var-wert-paar "," var-wert-ps var-wert-paar ::= "(" var-name, wert ")"

wert ::= "True" | "False"

var-name ::= ...

Graphische Sprachen , z.B.

(12)

Maschinenmodell: endlicher Automat

Beschreibung des dynamischen Verhaltens von Systemen

Modellierung von Abläufen (Zustandsübergangssysteme)

Beispiele:

I Bedienoperationen an Geräten oder Software

I Schaltfolgen von Ampelanlagen

I Steuerung von Produktionsanlagen

I Ablauf von (Geschäfts-)Prozessen

(13)

Beispiel: (Pool-)Einlass mit Karte

Automat definiert durch

I Zustände: gesperrt, frei

I Startzustand: gesperrt

I Aktionen (Eingabesymbole): Karte (anlegen), Durchgehen, Timeout

I Zustandsübergänge(gesperrt, Karte) →frei (frei, Karte) →frei

(frei, Durchgehen)→ gesperrt (frei, Timeout)→ gesperrt

definiert mögliche (erlaubte) Folgen von Aktionen

Diese Folgen lassen sich durchreguläre Ausdrücke darstellen:

(Karte Karte( Durchgehen + Timeout ))

(14)

Anwendung bei der Übersetzung von Programmen

Übersetzung von Quell- in Zielsprache (z.B. C, Java in Maschinen- oder Byte-Code)

meist in zwei Phasen über eine (gemeinsame) Abstraktion:

Quellcode

↓ Analyse-Phase (Front-End) Zwischendarstellung

(oft Baumstruktur)

↓ Synthese-Phase (Back-End) Code in Zielsprache

(15)

Analyse-Phase

Quellcode Scanner Folge von Token Parser Syntaxbaum

lexikalische Analyse (Scanner)

lineare Analyse des Quelltextes, Aufteilung in Einheiten (Token)

z.B. Schlüsselwörter, Bezeichner, Zahlen reguläre Sprachen, endliche Automaten Syntaxnalyse (Parser)

hierarchische Struktur des Quelltextes z.B. Ausdrücke, Verzweigungen, Schleifen kontextfreie Sprachen, Kellerautomaten semantische Analyse Annotationen im Syntaxbaum,

z.B. Typprüfungen

(16)

Einsatz ähnlicher Transformations- und Analyse-Methoden

I Compiler für Programmiersprachen (z. B. Java → Bytecode)

I Interpreter für Programmiersprachen (z. B. Java-Bytecode)

I Übersetzung von Daten zwischen verschiedenen Formaten z. B. LilyPond (http://www.lilypond.org) übersetzt

\repeat volta 3 { c’ e’ g’ e’ | }

\alternative { { c’2 g’ | } { g’1 | } }

u. A. in

I Verarbeitung von Domain-spezifischen Sprachen

I Textformatierung

I Dokumentbeschreibungssprachen

I kontextabhängige Hilfe in Entwicklungsumgebungen

I statische Analyse zur Fehlersuche in Programmen

I graphische Editoren (z.B. für UML-Diagramme) mit automatischer Programmgenerierung

(17)

Berechenbarkeit / Entscheidbarkeit

Halteproblem:

Kann ein (Test-)programmU existieren, welches fürjedes beliebige (Dienst-)ProgrammP (Eingabe als Quelltext) entscheidet, obP nach endlich vielen Schritten anhält?

Nein

Folgerungen:

I Alle Versuche, ein solches Programm zu schreiben, müssen fehlschlagen.

I Suche nach Verfahren, die für einemöglichst große Teilmenge aller (Dienst-)Programme P entscheiden, obP nach endlich vielen Schritten anhält, ist sinnvoller.

I Entwickler von P (Dienstleister) muss nachweisen, dass sein Programm P nach endlich vielen Schritten anhält

(18)

Komplexität

Beispiel Primzahltest

Problem: Ist eine gegebene Zahln eine Primzahl?

Instanzdes Problems: Ist 12347 eine Primzahl?

lösbar durch den Algorithmus:

1. Für alle i ∈ {2, . . . ,n}:

Test: Istn durch i teilbar?

I ja: Ende mit Ausgabenistnicht prim.

I nein: weiter (mit Test füri+1) 2. Ausgabe: n istprim.

Test ist für große Zahlen aufwendig. Geht es besser?

I Was bedeutet aufwendigundbesser?

I Wie aufwendig ist eine Berechnung?

I Wie aufwendig ist die Lösung eines Problemes?

(19)

Wiederholung: Alphabet, Wort, Sprache

Für jede MengeAheißt An =A× · · · ×A

| {z }

n

={w1· · ·wn| ∀i :wi ∈A}

Menge allerWörter der Länge n überA

(n-Tupel, Vektoren, Folgen, Listen, Zeichenketten) A =S

{n∈N}An Menge allerWörterüber A (endliche Folgen, Listen, Zeichenketten)

A0 ={ε} mitleerem Wort ε

Alphabet (endliche) MengeAvon Symbolen

Wort endliche Folge von Symbolen w =w1· · ·wn mit

∀i ∈ {1, . . . ,n}:wi ∈A

Länge eines Wortes |w|=Anzahl der Symbole inw Anzahl der Vorkommen eines Symboles in einem Wort

|w|a=Anzahl der ain w (für a∈A) Sprache Menge von WörternL⊆A

(20)

Beispiele

I Alphabet A={0,1}

Wörter ∈A={0,1}: Menge aller Binärwörter Sprachen ⊆A, z.B.

I {w ∈ {0,1}|w16=0}Menge aller Binärzahlen ohne führende Nullen

I {w ∈ {0,1}|w16=0w|w|−1=w|w|=0}

Menge aller Binärdarstellungen durch 4 teilbarer Zahlen ohne führende Nullen

I Alphabet A={a,b}

Wörter ∈A={a,b}: Menge aller Wörter, die höchstens die Buchstaben aund b enthalten Sprachen ⊆A, z.B.

I

I {a,b}

I {a}={ε,a,aa,aaa, . . .}

I {w ∈ {a,b}|w1=aw|w|=a}= {a,aa,aaa,aba,aaaa,abaa,aaba,abba, . . .}

(21)

Beispiele für Sprachen

I Menge aller englischen Wörter L1⊂ {a, . . . ,z}

I Menge aller deutschen WörterL2⊂ {a, . . . ,z,ß,ä,ö,ü}

I Menge aller möglichen DNAL3⊆ {A,T,G,C}

I Menge aller natürlichen Zahlen in Dezimaldarstellung L4⊆ {0, . . . ,9} (evtl. mit führenden Nullen)

I Menge aller natürlichen Zahlen in Binärdarstellung (Bitfolgen beliebiger Länge)L5⊆ {0,1}

I Menge aller aussagenlogischen Formeln in AL({p,q,r}) L6⊆ {p,q,r,t,f,¬,∨,∧,→,↔,(,)},

I Menge aller arithmetischen Ausdrücke überZ(ohne Variablen) L7⊂ {0, . . . ,9,+,·,−,/,(,)},

I Menge aller deutschen Sätze L8(L2∪ {.,,,!,?,(,),−}) Wie lassen sich unendliche Sprachenendlichdarstellen?

(Voraussetzung für maschinelle Verarbeitung) verschiedene Darstellungen später in dieser LV

(22)

Darstellung von Wörtern

extensional durch Angabe derSymbole in ihrerReihenfolge Beispiele:u =321,

v =abababababa,

w =w1· · ·w4 mitw1 =w2 =w3 =a,w4 =b intensional durch Angabe einerEigenschaft, die für jeden Indexi

das i-te Symbol eindeutig bestimmt.

Beispiele:

u ∈ {0, . . . ,4}3 mit∀i ∈ {1, . . . ,3}:ui =4−i, v ∈ {a,b}11mit∀i ∈ {1, . . . ,11}:vi =

a fallsi ∈2N+1 b sonst

w ∈ {a,b}4 mitw4 =b∧ ∀i ∈ {1, . . . ,3}:wi =a

(23)

Darstellung von Sprachen

extensional durch Angabe derElemente

(nur Beschreibung endlicher Sprachen möglich) Beispiele:{ε,a,aa,aaa},{b,ba,baa,baaa}, {a,b,aa,bb,aaa,bbb}

intensional durch Angabe einerEigenschaft, die genau alle Wörter der Sprache haben.

(auch Beschreibung unendlicher Sprachen möglich) Beispiele:{w ∈ {a}| |w| ≤3},

{w ∈ {a,b}∗ |w1 =b∧ ∀i ≥2:wi =a}, {w ∈ {a,b}∗ | ∀i ≥2:wi =w1}

später in dieser LV noch mehr Formalismen zur endlichen Beschreibung von eingeschränkten Sprachklassen

(reguläre Ausdrücke, Grammatiken, Automaten, . . . )

(24)

Operationen auf Wörtern

Operationen auf Wörternu,v ∈A: Verkettung ◦:A×A →A, wobei

∀u ∈A ∀v ∈A ∀i ∈ {1, . . . ,|u|+|v|}: (u◦v)i =

ui fallsi ≤ |u|

vi−|u| sonst Beispiel:anne◦marie=annemarie assoziativ, nicht kommutativ,εist neutral Damit ist (A,◦, ε) ein Monoid.

Spiegelung R :A→A, wobei

∀u ∈A ∀i ∈ {1, . . . ,|u|}:uiR =u|u|+1−i

Beispiel:marieR =eiram,annaR =anna u∈A heißt Palindromgdw. uR =u Fakt

I Für jedes Wort u ∈A gilt uRR

=u.

I Für je zwei beliebige Wörter u,v ∈A gilt(u◦v)R =vR ◦uR.

(25)

Anwendung: Java-Standardbibliothek

Rotieren einer Liste injava.util.Collections:

x0, . . . ,xmid−1

| {z }

u

,xmid, . . . ,xsize

| {z }

v

durchvu= (uRvR)R

private static void rotate2(List<?> list, int distance) { int size = list.size();

if (size == 0) return;

int mid = -distance % size;

if (mid < 0) mid += size;

if (mid == 0) return;

reverse(list.subList(0, mid));

reverse(list.subList(mid, size));

reverse(list);

}

(26)

Relationen auf Wörtern

Präfixv(Anfangswort):

∀uA ∀v A: ((uvv) (∃w A(uw =v)))

z.B.tomvtomate (mitw =ate) Postfix(Suffix):

∀uA ∀v A: (uPostfix vonv (∃wA(wu=v))) z.B.enten ist Postfix vonstudenten(mitw=stud)

Infix(Faktor, zusammenhängendes Teilwort):

∀uA∀v A: (uInfix vonv (∃w A ∃w0A: (wuw0=v))) z.B.omaist Infix vontomate (mitw =t undw0=te)

(27)

Mehr Relationen auf Wörtern

Ordnungen bei gegebener Reihenfolge< auf dem AlphabetA:

lexikographisch Ordnung aufA:

∀u,v ∈A :u ≤lexv gdw.

1. u vv oder

2. ∃w ∈A ∃a,b ∈A:a<b∧wavu∧wbvv quasi-lexikographische Ordnung aufA:

∀u,v ∈A :u ≤qlexv gdw.

1. |u| ≤ |v|oder 2. |u|=|v| ∧u ≤lexv Beispiele: fürA={a,b} mita<b

I ab vaba,ab ≤lexaba,ab ≤qlex aba

I abab6vabba, aber abab≤lexabbaund abab≤qlexabba,

I aaa≤lexab, aber aaa6≤qlexab

I ab 6≤lexaaba, aber ab≤qlex aaba

(28)

Sprachen als Mengen

SprachenLA sindMengenvon Wörtern

Eigenschaften: leer, endlich, abzählbar, überabzählbar Mengenrelationen auf Sprachen:

LL0 gdw. ∀w A:w Lw L0 gilt L=L0 gdw. ∀w A:w Lw L0 gilt Mengenoperationen auf Sprachen:

LL0 = {w |w Lw L0} LL0 = {w |w Lw L0} L\L0 = {w |w Lw 6∈L0}

L∆L0 = (L\L0)(L0\L)

Komplement einer SpracheLA:L=A\L Beispiel:

L= [

n∈3N

An L= [

n∈{3i+1|i∈N}

An [

n∈{3i+2|i∈N}

An

(29)

Weitere Operationen auf Sprachen

Verkettung◦ von Sprachen:

L1◦L2={u◦v |u ∈L1∧v ∈L2} Beispiel:

L1 = {111,1,10} L2 ={00,0}

L1◦L2 = {111,1,10} ◦ {00,0}

= {1110,11100,10,100,1000}

SpiegelungLR ={wR |w ∈L}

Beispiel:L= {a,ab,aba,abab}

LR ={a,ba,aba,baba}

(30)

Iterierte Verkettung

I für SprachenLA

L0={ε} ∀nN: Ln+1=LnL=L◦ · · · ◦L

| {z }

n+1−mal

L= [

n∈N

Ln L+= [

n∈N\{0}

Ln

I für WörteruA: un = u· · ·u

| {z }

n−mal

A, u={u}={un|nN} A u+ = u\ {ε}={u}+={un|nN\ {0}} A Beispiele:

(101)3 = 101101101 und 1013=10111 a = {ai |iN}={ε,a,aa,aaa, . . .}

(ab) = {(ab)i|iN}={ε,ab,abab,ababab, . . .}

(31)

Reguläre Ausdrücke – Syntax

Die MengeRegExp(A) allerregulären Ausdrücke über einem AlphabetAist (induktiv) definiert durch:

IA ∅ ∈RegExp(A), ε∈RegExp(A)und

für jedes Symbol a∈Agilta∈RegExp(A) IS für alle E ∈RegExp(A) undF ∈RegExp(A) gilt

(E+F),EF,(E) ∈RegExp(A).

Beispiele:ε+a,ε+∅,(a+∅),ε+ ((ab)a) dieselbe Definition kürzer:RegExp(A) =Term(ΣF,∅) für die Signatur

ΣF ={(∅,0),(ε,0),(,1),(+,2),(·,2)} ∪ {(a,0)|a∈A}

(Baumdarstellung)

(32)

Beispiele

(ohne überflüssige Klammern)

I Für A={0,1,2,3,4,5,6,7,8,9} gilt

0+(1+2+3+4+5+6+7+8+9)(0+1+2+3+4+5+6+7+8+9)

RegExp(A)

I Für A={0,1} gilt

I (1+ε)+ (10)RegExp(A)

I (0+11)+ ((0+ (1))0)RegExp(A) Oft werden

A

E+ = EE En = E· · ·E

| {z }

n−mal

En∗ =

E· · ·E

| {z }

n−mal

fürn∈Nals Kurzbezeichnungen verwendet.

(33)

Reguläre Ausdrücke – Semantik

Jeder reguläre AusdruckERegExp(A)repräsentiert eine Sprache L(E)A.

L(∅) = L(ε) = {ε}

∀aA: L(a) = {a}

∀E,FRegExp(A) : L(E+F) = L(E)L(F)

∀E,FRegExp(A) : L(EF) = L(E)L(F)

∀E,FRegExp(A) : L(E) = (L(E))

Eine SpracheLA heißt genau dannregulär, wenn ein regulärer AusdruckE RegExp(A)mitL=L(E)existiert.

Beispiel: Die MengeLaller Dezimaldarstellungen natürlicher Zahlen ist regulär wegenL=L(0+ (1+2+· · ·+9)(0+1+· · ·+9))

(34)

Beispiele

FürA={a,b} gilt

L(ab) = {a,ab,abb,abbb,abbbb, . . .}={abi |i ∈N} L((ab)) = {ε,ab,abab,ababab, . . .}={(ab)i |i ∈N} L((a+b)) = {a,b}

L(ab) = {u◦v |u ∈a∧v∈b} L((ab)) = {a,b}

L((a+b)aba) = {u◦aba|u ∈A}

Reguläre Ausdrücke ermöglichen eineendliche Darstellung unendlicherSprachen.

(35)

Äquivalenz regulärer Ausdrücke

Zwei reguläre AusdrückeE,F ∈RegExp(A) heißen genau dann äquivalent, wenn L(E) =L(F) gilt.

Beispiele:

I (a+b),(a+b) und a(ba) sind äquivalent

I ab und(ab) sind nicht äquivalent

I (11+0+110+011) und(11+0) sind . . .

Fakt

Die Äquivalenz regulärer Ausdrücke ist eine Äquivalenzrelation.

(36)

Was bisher geschah

Alphabet, Wort, Sprache Wörterw A

I Operationen: Spiegelung R, Verkettung

I Palindrome

I Relationen: Präfix, Infix, Postfix,

lexikographische, quasi-lexikographische Ordnung SprachenLA (L2(A))

I Relationen: Mengenrelationen⊆,=

I Operationen: Mengenoperationen∪,∩, ,\ Verkettung◦, iterierte Verkettung, Spiegelung R Reguläre Ausdrücke

I endliche Darstellung evtl. unendlicher Sprachen

I Syntax: RegExp(A) =Term(ΣF,∅)(Baumstruktur) für ΣF ={(∅,0),(ε,0),(,1),(·,2),(+,2)} ∪ {(a,0)|aA}

I Semantik des regulären Ausdrucks ERegExp(A):

SpracheL(E)A

(37)

Interessante Fragen für Sprachen

I Ist ein gegebenes Wort w in der SpracheLenthalten?

(heißt oft Wortproblem)

I Enthält die SpracheLnur endlich viele Wörter?

I Gilt L1L2 für zwei gegebene SprachenL1undL2?

I Gilt L1=L2 für zwei gegebene SprachenL1undL2? Fragen zur Regularität:

I Lässt sich die SpracheLdurch einen regulären Ausdruck definieren?

(Gilt ∃E RegExp(A) :L=L(E)?)

I Woran erkennt man, ob sich eine Sprache durch einen regulären Ausdruck definieren lässt?

I Gilt L(E) = für einen gegebenen regulären AusdruckE?

I Gilt L(E) =A für einen gegebenen regulären AusdruckE?

I Ist ein gegebenes Wort w in der durch den regulären AusdruckE definierten SpracheL(E)enthalten?

Alle Antworten sind für endliche Sprachen einfach, aber für unendliche Sprachen meist schwierig.

(38)

Wortersetzungssysteme

AlphabetA

Wortersetzungsregel (l,r)∈A×A (geschrieben l →r) Wortersetzungssystem endliche Menge von Wortersetzungsregeln

Beispiele:

I Regel ba→ab,

I Wortersetzungssystem S ={a→ab,ba→c,abc →ε}

(39)

Anwendung von Wortersetzungsregeln

Eine Regell →r ist auf ein Wortw ∈A anwendbar, fallsl ein Infix von w ist.

Beispiel: Regelma→εist

I auf tomate anwendbar, u =to,v =te,

I auf am,motte undmeta nicht anwendbar.

EineAnwendungder Regel l →r auf ein Wort w =u◦l◦v ∈ergibt das Wort u◦r◦v.

(Ersetzung des Teilwortesl durchr)

Beispiel:ab→a angewendet aufbaababa=u◦l◦v

I mitu =ba und v=abaergibt baaaba

I mitu =baab undv =a ergibtbaabaa

(40)

Ableitungsschritt

Ableitungsschritt(u,(l →r),p,v)im Wortersetzungssystem S mit

I Ausgangswortu,

I auf u anwendbare Regel l →r aus S,

I Position p ∈ {1, . . . ,|u|} im Wortu, an der das Teilwort l beginnt

I v ist das nach Anwendung der Regell →r an Positionp auf u entstandene Wort.

Beispiel:

S ={ab→ba,a→b},u=aba mögliche Ableitungsschritte inS (aba,(ab→ba),1,baa)

(aba,(a→b),3,abb) (aba,(a→b),1,bba)

(41)

Ein-Schritt-Ableitungsrelation

Jedes WortersetzungssystemS ⊆A×A definiert eine Relation

S ⊆A×A, wobei genau dann

u→S v gilt, wenn ein Ableitungsschritt(u,(l →r),p,v) mit (l →r)∈S existiert.

Beispiel: FürS ={ab→ba,a→b} gilt

I aba→S baa wegen(aba,(ab→ba),1,bba)

I aba→S bbawegen(aba,(a→b),1,bba)

I aba→S abb wegen(aba,(a→b),3,abb)

I aba6→S bbb

(42)

Wiederholung: Hüllen binärer Relationen

RIM heißtreflexive HüllevonRM2 (mit IdentitätIM ={(x,x)|x M})

RR−1 heißtsymmetrische HüllevonRM2 (mit inverser RelationR−1={(y,x)|(x,y)R})

Wiederholung: Verkettungder RelationenRM2 undS M2 RS ={(x,z)M2| ∃y M: (x,y)R(y,z)S}

Iterierte Verkettung vonRM2mit sich selbst:

R0 = IM Rn+1 = RnR

R+ = [

n∈N\{0}

RnM2 transitive Hülle

R = [

n∈N

RnM2 reflexiv-transitive Hülle

(43)

Ableitungen

Eine Folge von Ableitungsschritten

(u,(l1r1),p1,u2),(u2,(l2r2),p2,u3),· · ·,(un−1,(ln−1rn−1,pn−1,v) im Wortersetzungssystem S heißtAbleitungvon u nachv in S.

Beispiel:S ={ab →ba,a→b},u =aba Folge von Ableitungsschritten

(aba,(abba),1,baa),(baa,(ab),3,bab),(bab,(ab),2,bbb) abaab→ba−→ baaa→b−→baba→b−→bbb

Längeder Ableitung = Anzahl der Ableitungsschritte

In jedem SystemS existiert für jedes u∈A die leere Ableitung (der Länge 0) vonu nachu.

(44)

Beispiele

S1={||| → |}mitu =|||||||und v=||||

Was wird hier „berechnet“?

Anderes Wortersetzungssystem mit derselben Wirkung?

S2={11→1,00→1,01→0,10→0}und u =1101001 Wirkung verschiedener Ableitungreihenfolgen?

S3={c →aca,c →bcb,c →a,c →b,c →ε} undu =c Menge aller inS3 ableitbaren Wörter, die keinc enthalten?

(45)

Ersetzungsrelation

Jedes WortersetzungssystemS ⊆(A×A) definiert die Ersetzungsrelation→S ⊆(A×A), wobei genau dann u→S v gilt, wenn eine Ableitung vonu nach v existiert.

Beispiel:S ={a→aa},

I für jedesn ≥1 giltba →S b a· · ·a

| {z }

n

wegenba→S baa→S baaa→S · · · →S b a· · ·a

| {z }

n I b →S b, aber für kein Wort w 6=b giltb →S w (→S ist die reflexive transitive Hülle von →S)

(46)

Modellierungsbeispiel: lineares Solitaire

Startkonfiguration : nSpielsteine aufnbenachbarten Spielfeldern.

Spielzug : Springe mit einem Stein übereinen benachbartenStein auf das nächstefreieFeld und entferne den

übersprungenen Stein.

Spielende , wenn kein Zug mehr möglich ist.

Modellierung als Wortersetzungssystem:

I Konfiguration:w ∈ {◦,•} (• - Stein,- leer,2- Rand)

I Startkonfiguration:2n2

I zulässige Spielzüge:◦ • • → • ◦ ◦,• • ◦ → ◦ ◦ •,2• •222, . . . Fragen:

I Welche Konfigurationen / Endkonfigurationen sind von der Startkonfiguration erreichbar?

I Wieviele Züge sind mindestens / höchstens notwendig, um eine Endkonfiguration zu erreichen?

Jedes Paar (Wortersetzungssystem, Anfangskonfiguration) definiert die Menge (Sprache) aller erreichbaren Konfigurationen.

(47)

Sprachen aus Wortersetzungssystemen

Jedes Paar (WortersetzungssystemS, Anfangswort w) über einem AlphabetAdefiniert die Sprache

L(S,w)={v ∈A|w →S v}

(alle Wörterv, die vonw durch eine Ableitung inS erreicht werden)

B:S ={c →aca,c →bcb,c →ε},w =c

L(S,w) ={w ◦c ◦wR} (Menge aller Palindrome über{a,b,c}, die höchstens an der mittleren Position einc enthalten)

Jedes Paar (WortersetzungssystemS, MengeM von Wörtern) über einem AlphabetAdefiniert die Sprache

L(S,M)= [

w∈L

L(S,w)

(alle Wörterv, die von irgendeinemw ∈M durch eine Ableitung in S erreicht werden)

(48)

Ausdrucksstärke von Wortersetzungssystemen

Wortersetzungssysteme

I ermöglichen eineendliche Darstellung unendlicher Sprachen.

(als Erzeugungsvorschrift für alle Wörter der Sprache) Beispiele: L({ε→aaa}, ε) ={a3n|n∈N}= (aaa) L({2→020,2→121},2) ={w2wR |w ∈ {0,1}}

I können zur Modellierung von Zuständen und Übergängen dazwischen verwendet werden

z.B. Spiele, Ausführung von Programmen, Programmverifikation

Beispiel: Lineares Solitaire

I können Berechnungensimulieren

(Bestimmung von erreichbaren Wörtern ohne Nachfolger) Beispiel: ε∈L({||| → |},||||||)

(49)

Wortproblem für durch Wortersetzungssysteme definierte Sprachen

Ist ein gegebenes Wortw in der Sprache L(S,u) enthalten?

alternative Formulierung: Giltu →S w? Ableitungsrelation→S als

(unendlicher) gerichteter GraphGS = (V,E)mit Knoten:V =A

Kanten:E ={(u,v)|u →S v}

u→S w gilt genau dann, wenn in GS ein Pfad vonu nachw existiert.

Beispiel: (Tafel)S ={ab→ba},

abab→S baba, aberabab6→S abaa,abab6→S aabb

(50)

Sprachen aus Wortersetzungssystemen

Lösung des Wortproblems und anderer Fragen zu Sprachen ist für endliche Sprachen einfach, für unendliche Sprachen oft nicht.

Darstellung der Sprache durch ein Wortersetzungssystem kann helfen.

Lösung des Wortproblemw ∈L(S,u)durch Standardverfahren:

Suche eines Pfades vonu nachw im Ableitungsgraphen des WortersetzungssystemsS

Problem:

I Pfadsuche ist Standardverfahren für endliche Graphen.

I Ableitungsgraphen von Wortersetzungssystemen sind meist unendlich.

Standardverfahren anwendbar, wenn Suche in einem endlichen Teilgraphen genügt

(51)

Nichtverlängernde Wortersetzungssysteme

Ein WortersetzungssystemS heißt genau dannnichtverlängernd, wenn für jede Regel(l →r)∈S gilt:|l| ≥ |r|.

Wortproblem(L,w):

Eingabe : SpracheL⊆A, Wortw ∈A Frage: Gilt w ∈L?

Ausgabe ja oder nein

Beispiel:S ={ab →ba,ac →a},u=abcac,v =aacb Satz

Es gibt einen Algorithmus, welcher für für jedes nichtverlängernde WortersetzungssystemS ⊆A×A und beliebige Wörteru,w ∈A das Wortproblem(L(S,u),w)in endlicher Zeit korrekt löst.

Idee:

Suche im endlichen Teilgraphen aller Wörterv ∈A mit|v| ≤ |u|

(52)

Nichtverkürzende Wortersetzungssysteme

Ein WortersetzungssystemS heißt genau dannnichtverkürzend, wenn für jede Regel(l →r)∈S gilt:|l| ≤ |r|.

Beispiel:S ={a→ba,b→a},u =ba,w =aaba,w0 =abab

Satz

Es gibt einen Algorithmus, welcher für für jedes nichtverkürzende WortersetzungssystemS ⊆A×A und beliebige Wörteru,w ∈A das Wortproblem(L(S,u),w)in endlicher Zeit korrekt löst.

Idee: Suche im endlichen Teilgraphen aller Wörterv ∈A mit

|u| ≤ |v| ≤ |w|

(53)

Wortersetzungssysteme mit verlängernden und verkürzenden Regeln

Beispiel:

S =

















c → baaca, c → aacba, c → bbcabb, aca → d, bcb → d, ada → d, bdb → d

















Für WortersetzungssystemeS mit verlängernden und verkürzenden Regeln existiert im AllgemeinenkeinAlgorithmus, der für beliebige Wörteru,w ∈A feststellt, obu →s w gilt.

(54)

Was bisher geschah

I Alphabet, Wort, Sprache

I Operationen und Relationen auf Wörtern und Sprachen

I interessante Fragen für Sprachen und Wörter Reguläre Ausdrücke

I Syntax, Semantik

I endliche Darstellung evtl. unendlicher Sprachen WortersetzungssystemePA×A

I Wortersetzungssregellr mitl,r A

I Ableitung inP: endliche Folge von Ersetzungsschritten

I Ausdrucksstärke:

I Darstellung von (evtl. unendlichen) Sprachen

I Modellierung von Zustandsübergängen

I Ausführen von Berechnungen

(55)

Wiederholung Wortersetzungssysteme

I A={s,w},

R ={ww →s,ss→s,ws →w,sw →w} (nichtverlängernd)

Istww aus wsww ableitbar? (Giltwsww →R ww?) L(R,wsww) ={wsww,www,wss,sw,ws,w}

I A={b,r,w},

S ={wr →rw,br →rb,bw →wb}

(nichtverlängernd und nichtverkürzend) Istwbbr ausbrwb ableitbar?

L(S,brwb) ={brwb,rbwb,rwbb}

I A={a,b,c},T ={a→ba,b→cc}

(nichtverkürzend)

Istaabbcc ausa ableitbar?

L(T,a) =L((b+cc)a)

(56)

Ableitbare Wörter über Teilalphabet

Beispiele:A={a,b,c},

S =









c → aca, c → bcb, c → ε, c → a, c → b









L(S,c) ={u◦d ◦uR |u ∈ {a,b}∧d ∈ {a,b,c, ε}}

Menge aller Wörter inL(S,c)∩ {a,b}: Palindrome über{a,b}

c istHilfssymbolzur Erzeugung der Palindrome

(57)

Natürliche Sprache

WortersetzungssystemS enthält die Regeln:

Satz Subjekt Prädikat. Subjekt mArtikel mSubstantiv Subjekt wArtikel wSubstantiv

mArtikel Der

wArtikel Die

mSubstantiv Hund wSubstantiv Sonne Prädikat bellt Prädikat scheint

AlphabetA={Der,Die,Hund,Sonne,scheint,bellt,.}∪

{Satz,Subjekt, Prädikat, wArtikel, mArtikel, wSubstantiv, mSubstantiv}

Ableitbare Wörter inL(S,Satz)ohne Hilfssymbole aus der Menge{Satz, Subjekt, Prädikat, mArtikel, wArtikel, mSubstantiv, wSubstantiv}:

Menge korrekter deutscher Sätze (dieser einfachen Form mit ausschließlich den WortenDer,Die,Hund,Sonne,scheint,bellt).

(58)

Aussagenlogische Formeln

WortersetzungssystemS enthält die Regeln Formel Variable

Formel Konstante Formel (¬Formel ) Formel ( FormelFormel ) Formel ( FormelFormel ) Variable p

Variable q Konstante t Konstante f

AlphabetA={t,f,p,q,¬,∨,∧,(,)} ∪ {Formel,Variable, Konstante}

FormelS (FormelFormel)2S (Formelf)S ((p(¬q))f) Wörter inL(S,Formel)∩ {t,f,p,q,¬,∨,∧,(,)} :

Menge AL({p,q})aller aussagenlogischen Formeln mit Aussagenvariablen aus der Menge{p,q}

(59)

Aussagenlogische DNF

WortersetzungssystemS enthält die Regeln

DNF MintermDNF

DNF Minterm

Minterm LiteralMinterm Minterm Literal

Literal ¬Variable Literal Variable Variable p Variable q

Alphabet A= {p,q,¬,∨,∧}

∪{ DNF, Minterm, Literal,Variable}

DNFS MintermDNF3S pDNFS pq∧ ¬p∨ ¬q Wörter inL(S,Formel)∩ {t,f,p,q,¬,∨,∧,(,)} :

Menge AL({p,q})aller disjunktiven Normalformen mit Aussagenvariablen aus der Menge{p,q}

(60)

Dezimaldarstellung natürlicher Zahlen

WortersetzungssystemS enthält die Regeln

Zahl → 0

Zahl → 1Ziffernfolge ...

Zahl → 9Ziffernfolge Ziffernfolge → 0Ziffernfolge

...

Ziffernfolge → 9Ziffernfolge Ziffernfolge → ε

Alphabet{0, . . . ,9} ∪ {Zahl, Ziffernfolge}

Zahl→S 3Ziffernfolge→S 32Ziffernfolge→S 327Ziffernfolge→S 327

Wörter inL(S,Zahl )∩ {0, . . . ,9} :

Menge aller Dezimaldarstellungen natürlicher Zahlen

(61)

Programmiersprachen

Java-Syntax (Ausschnitt) in Backus-Naur Form (BNF) (John Backus, Peter Naur)

a→r1|r2|. . .|rn statt mehrerer Regeln a→r1, . . . ,a→rn ::=statt→ (in ASCII darstellbar)

Hilfssymbole markiert durch<und>

(62)

Definition Grammatik

Grammatik G = (N,T,P,S) mit Nichtterminalsymbole endliche Menge N

(Hilfssymbole)

Terminalsymbole endliche Menge T (Alphabet der Sprache)

Wortersetzungssystem P ⊆(N∪T)+×(N∪T) (Produktionen) Startsymbol S ∈N

Beispiel:G = (N,T,P,S) mit N = {S}, T = {0,1}, P =

S → 0S1 S → ε

(63)

Grammatiken: Beispiele

I G = (N,T,P,E) mitN={E,F,G},T ={(,),a,+,·}und

P =













E → G, E → E +G, G → F, G → G ·F, F → a, F → (E)













I G = (N,T,P,S) mitN={S,A,B,C},T ={a,b,c}

P =

















S → aSBC, S → aBC, CB → BC, aB → ab, bB → bb, bC → bc, cC → cc

















(64)

Ableitungen in Grammatiken

Ableitung in GrammatikG = (N,T,P,S):

Ableitung im ErsetzungssystemP mit StartwortS Beispiel:G = (N,T,P,S) mit

N = {S,A,B}

T = {0,1}

P =





S → 0SA S → 0A A → 1 B → A





(65)

Durch Grammatiken definierte Sprachen

GrammatikG = (N,T,P,S) definiert die Sprache L(G)={w ∈T|S →P w}=L(P,S)∩T Beispiel:G = (N,T,P,S) mit

N = {S,Z} T = {0,1}

P =









S → 1Z, S → 0, Z → 0Z, Z → 1Z, Z → ε









 definiert die SpracheL(G) =. . .

(66)

Äquivalenz von Grammatiken

Zwei GrammatikenG1 undG2 heißen genau dann äquivalent, wenn L(G1) =L(G2) gilt.

Beispiel:G1= (N1,{0,1},P1,S)mitN1 ={S,A,B} und

P1=





S → 0SA S → 0A A → 1 B → A





 undG2 = (N2,{0,1},P2,S0) mitN2 ={S0} und

P2=

S0 →0S01,S0 →01 sind äquivalent wegenL(G1) =L(G2) =. . .

Äquivalenz von Grammatiken ist eine Äquivalenzrelation. (ÜA)

(67)

Grammatiken mit ε-Regeln

ε-Regel : Grammatik-Regel der Form l →ε

Beispiele:

I G1 = ({A,B},{0,1},P1,A) mit P1={A→1B0,B →1B0,B →ε}

äquivalent zuG2 = ({A},{0,1},P2,A) mit P2={A→1A0,A→10}

(ohne ε-Regel)

I G = ({A},{0,1},P,A) mitP ={A→1A0,A→ε}

nicht äquivalent zu einer Grammatik ohneε-Regel

Referenzen

ÄHNLICHE DOKUMENTE

1) Geben Sie f¨ ur jedes der W¨ orter a, c und abc jeweils ein weiteres Wort an, das zu dem jeweiligen Wort ¨ aquivalent ist. Geben Sie außerdem ein Wort an, dass zu keinem der..

Put your solutions in the letterbox labeled Automaten und formale Sprachen adjacent to room lf , or hand them in through the online moodle -platform. If you hand in online,

Bitte werfen Sie Ihre Abgabe in den mit Automaten und formale Sprachen beschrifteten Briefkasten neben Raum lf , oder geben Sie sie online ab ¨ uber die moodle-Plattform.. Wenn

Put your solutions in the letterbox labeled Automaten und formale Sprachen adjacent to room lf , or hand them in through the online moodle -platform. If you hand in online,

Put your solutions in the letterbox labeled Automaten und formale Sprachen adjacent to room lf , or hand them in through the online moodle -platform. If you hand in online,

Bitte werfen Sie Ihre Abgabe in den mit Automaten und formale Sprachen beschrifteten Briefkasten neben Raum lf , oder geben Sie sie online ab ¨ uber die moodle -Plattform. Wenn

Put your solutions in the letterbox labeled Automaten und formale Sprachen adja- cent to room lf , or hand them in through the online moodle -platform. If you hand in online,

zeigt (formal durch Induktion ¨ uber die regul¨ aren Ausdr¨ ucke), dass alle regul¨ aren Spra- chen von endlichen Automaten erkannt werden.. Korollar 2.2.16 Jede regul¨ are Sprache