• 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!
238
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Theoretische Informatik: Automaten und formale Sprachen

Prof. Dr. Sibylle Schwarz HTWK Leipzig, Fakult¨at 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 2017/18

(2)

Einordnung der Theoretischen Informatik

Informatik Lehre von derDarstellung undVerarbeitungvon InformationdurchAlgorithmen

Teilgebiete der Informatik:

theoretisch I Sprachen zur Formulierung von Information und Algorithmen,

I oglichkeiten und Grenzen der maschinellen Berechenbarkeit,

I Grundlagen f¨ur technische und praktische (und angewandte) Informatik

technisch I maschinelle Darstellung von Information

I Mittel zur Ausf¨uhrung 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)

Teilgebiete der theoretischen Informatik

Formale Sprachen

I Repr¨asentation von Informationen und Aufgaben in

maschinenlesbarer Form (Mensch-Maschine-Kommunikation)

I Ausdrucksst¨arke und Flexibilit¨at von Programmiersprachen

I Ubersetzung von Programmiersprachen (z.B. in ausf¨¨ uhrbaren Code) Maschinenmodelle(Automaten)

I oglichkeiten und Grenzen verschiedener Modelle zur (maschinellen) Ausf¨uhrung von Algorithmen

Berechenbarkeitstheorie(hier Ausblick, mehr dazu im Mastermodul)

I Welche Aufgaben sind ¨uberhaupt algorithmisch (mit Hilfe verschiedener Maschinenmodelle) l¨osbar?

Auch negative Antworten sind sehr hilfreich (sparen Aufwand f¨ur ungeeignete L¨osungsans¨atze)

Komplexit¨atstheorie(hier Ausblick, mehr dazu im Mastermodul)

I Welche Aufgaben sind mit beschr¨ankten Ressourcen (z.B. Zeit, Speicherplatz) l¨osbar?

I ur welche Aufgaben k¨onnen schnelle Algorithmen existieren?

(4)

Prinzipien der theoretischen Informatik

¨altester Zweig der Informatik (lange vor dem ersten Computer) Mathematische Prinzipien:

I Abstraktion

I erm¨oglicht verallgemeinerte Aussagen und breit einsetzbare Verfahren,

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

I Beweisbarkeit

I erfordert pr¨azise Modellierung der Aufgabe

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

Wissen aus der theoretischen Informatik

I veraltet ¨uber viele Jahre kaum

I Grundlage f¨ur Verst¨andnis von (schnelllebigem) Spezialwissen, z.B. konkrete Programmiersprachen, Domain-spezifische Sprachen, Transformationen verschiedener Darstellungen

(5)

Aus der Modulbeschreibung

3010 Theoretische Informatik: Automaten und formale Sprachen Arbeitsaufwand: Pr¨asenzzeit 60 h (= 2 h V + 2 h ¨U je Woche)

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

Modellierung, Logik, Algorithmen und Datenstrukturen, Aufwandsabsch¨atzungen

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¨onnen sie zur Darstellung und L¨osung praktischer

Aufgabenstellungen einsetzen.

Die Studierenden wissen, dass nicht jedes formal darstellbare Problem algorithmisch l¨osbar ist.

(6)

Inhalt der Lehrveranstaltung

I Formale Sprachen

I Wiederholung: Alphabet, Wort, Sprache, Operationen darauf

I regul¨are Ausdr¨ucke

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¨at (Ausblick auf Master-Modul) jeweils mit vielen Beispielen

(7)

Literatur

I Uwe Sch¨oning:

Theoretische Informatik - kurzgefasst (Spektrum 2001)

I John E. Hopcroft, Jeffrey D. Ullman:

Einf¨uhrung in die Automatentheorie, Formale Sprachen und Komplexit¨atstheorie (Addison-Wesley 1990)

I Dirk W. Hoffmann:

Theoretische Informatik (Hanser 2009)

I Rolf Socher:

Theoretische Grundlagen der Informatik (Hanser 2008)

I Ulrich Hedtst¨uck:

Einf¨uhrung 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¨uhrung in Berechenbarkeit, Komplexit¨at und formale Sprachen (Pearson 2002)

I Renate Winter:

Theoretische Informatik (Oldenbourg 2002)

(8)

Lehrveranstaltungen

Folien, ¨Ubungsserien, aktuelle Informationen unter

www.imn.htwk-leipzig.de/~schwarz/lehre/ws17/ti

Vorlesung (2 h / Woche)

Selbststudium (Hausaufgaben): (6 h / Woche) schriftliche Ubungsserien (ca. zu jeder Vorlesung)¨

Besprechung in der folgenden ¨Ubung Autotool jeweils nach der Vorlesung

(ca. eine Woche Bearbeitungszeit)

Ubung¨ (2 Gruppen) (2 h / Woche)

alle Folien, Aufgaben, L¨osungen mitbringen !

I Besprechung der ¨Ubungsserien (Vorrechnen),

I Fragen zum aktuellen Vorlesungsinhalt

(9)

Pr¨ ufung

Pr¨ufungsvorleistungen:

I ≥ 50% aller Punkte f¨ur Autotool-Pflichtaufgaben und

I ≥ 3 Vorrechen-Punkte ( ¨Ubungen) Pr¨ufung: Klausur 90 min

Aufgabentypen ¨ahnlich ¨Ubungsaufgaben

(Hilfsmittel: beidseiting handbeschriebenes A4-Blatt)

(10)

Formale Sprachen

Syntax nat¨urlicher Sprachen:

I Rechtschreibung: korrekte W¨orter

I Grammatik: Aufbau korrekter S¨atze Definition von Programmiersprachen:

Syntax Form der Sprachelemente

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

Syntax von Programmiersprachen:

I Schl¨usselw¨orter, Bezeichner, Darstellung von Zahlen, . . .

I Programmstrukturen:

Form der Ausdr¨ucke, Anweisungen, Deklarationen, . . .

(11)

Formale Sprachen: Beispiele

Programmiersprachen (Java):

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

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

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

Expr ::= ...

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

Regeln f¨ur korrekte Syntax (EBNF):

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

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.

1.--2.

3.

Music engraving by LilyPond 2.18.2—www.lilypond.org 11

(12)

Maschinenmodell: endlicher Automat

Beschreibung des dynamischen Verhaltens von Systemen

Modellierung von Abl¨aufen (Zustands¨ubergangssysteme)

Beispiele:

I Bedienoperationen an Ger¨aten oder Software

I Schaltfolgen von Ampelanlagen

I Steuerung von Produktionsanlagen

I Ablauf von (Gesch¨afts-)Prozessen

(13)

Beispiel: (Pool-)Einlass mit Karte

Automat definiert durch

I Zust¨ande: gesperrt, frei

I Startzustand: gesperrt

I Aktionen (Eingabesymbole):

Karte (anlegen), Durchgehen, Timeout

I Zustands¨uberg¨ange: (gesperrt, Karte) → frei (frei, Karte) →frei

(frei, Durchgehen)→ gesperrt (frei, Timeout) → gesperrt definiert m¨ogliche (erlaubte) Folgen von Aktionen

Diese Folgen lassen sich durchregul¨are Ausdr¨uckedarstellen:

( Karte Karte( Durchgehen + Timeout ))

(14)

Anwendung bei der ¨ Ubersetzung von Programmen

Ubersetzung von Quell- in Zielsprache¨

(z.B. C, Java in Maschinen- oder Byte-Code)

meist in zwei Phasen ¨uber 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¨usselw¨orter, Bezeichner, Zahlen regul¨are Sprachen, endliche Automaten Syntaxnalyse (Parser)

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

z.B. Typpr¨ufungen

(16)

Einsatz ¨ ahnlicher Transformations- und Analyse-Methoden

I Compiler f¨ur Programmiersprachen (z. B. Java → Bytecode)

I Interpreter f¨ur Programmiersprachen (z. B. Java-Bytecode)

I Ubersetzung von Daten zwischen verschiedenen Formaten¨ z. B. LilyPond (http://www.lilypond.org) ¨ubersetzt

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

\alternative { { c’2 g’ | } { g’1 | } } u. A. in

1.--2.

3.

Music engraving by LilyPond 2.18.2—www.lilypond.org I Verarbeitung von Domain-spezifischen Sprachen

I Textformatierung

I Dokumentbeschreibungssprachen

I kontextabh¨angige Hilfe in Entwicklungsumgebungen

I statische Analyse zur Fehlersuche in Programmen

I graphische Editoren (z.B. f¨ur UML-Diagramme) mit automatischer Programmgenerierung

16

(17)

Berechenbarkeit / Entscheidbarkeit

Halteproblem:

Kann ein (Test-)programmU existieren, welches f¨ur jedes beliebige (Dienst-)ProgrammP (Eingabe als Quelltext) entscheidet, obP nach endlich vielen Schritten anh¨alt?

Antwort (Herleitung sp¨ater):Nein Folgerungen:

I Alle Versuche, ein solches Programm zu schreiben, m¨ussen fehlschlagen.

I Sinnvoll ist jedoch die Suche nach Verfahren, die f¨ur eine m¨oglichst große Teilmenge aller (Dienst-)ProgrammeP entscheiden, obP nach endlich vielen Schritten anh¨alt.

I Entwickler von P (Dienstleister) muss nachweisen, dass sein Programm P nach endlich vielen Schritten anh¨alt.

(18)

Komplexit¨ at

Beispiel Primzahltest

Aufgabe: Ist eine gegebene Zahl n eine Primzahl?

Instanzder Aufgabe: Ist 12347 eine Primzahl?

l¨osbar durch den Algorithmus:

1. F¨ur allei ∈ {2, . . . ,n}:

Test: Ist n durch i teilbar?

I ja: Ende mit Ausgabenistnicht prim.

I nein: weiter (mit Test f¨uri+ 1) 2. Ausgabe: n ist prim.

Dieser Test ist f¨ur große Zahlen aufwendig. Geht es besser?

I Was bedeutet aufwendig undbesser?

I Wie aufwendig ist eine Berechnung?

I Wie aufwendig ist die L¨osung einer Aufgabe?

(19)

Wiederholung: Alphabet, Wort, Sprache

F¨ur jede MengeAheißt An =A× · · · ×A

| {z }

n

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

Menge aller W¨orter der L¨angen ¨uber A

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

{n∈N}An Menge aller W¨orter¨uber A (endliche Folgen, Listen, Zeichenketten)

A0 ={ε} mit leerem Wortε

Alphabet (endliche) MengeAvon Symbolen

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

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

L¨ange eines Wortes |w|= Anzahl der Symbole inw Anzahl der Vorkommen eines Symboles in einem Wort

|w|a= Anzahl dera in w (f¨ur a∈A) Sprache Menge von W¨orternL⊆A

(20)

Beispiele

I Alphabet A={0,1}

W¨orter ∈A={0,1}: Menge aller Bin¨arw¨orter Sprachen ⊆A, z.B.

I {w ∈ {0,1}|w16= 0}Menge aller Bin¨arzahlen ohne f¨uhrende Nullen

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

Menge aller Bin¨ardarstellungen durch 4 teilbarer Zahlen ohne f¨uhrende Nullen

I Alphabet A={a,b}

W¨orter ∈A={a,b}: Menge aller W¨orter, die h¨ochstens 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¨ ur Sprachen

I Menge aller englischen W¨orterL1⊂ {a, . . . ,z}

I Menge aller deutschen W¨orterL2⊂ {a, . . . ,z,ß,¨a,¨o,¨u}

I Menge aller m¨oglichen DNAL3⊆ {A,T,G,C}

I Menge aller nat¨urlichen Zahlen in Dezimaldarstellung L4⊆ {0, . . . ,9} (evtl. mit f¨uhrenden Nullen)

I Menge aller nat¨urlichen Zahlen in Bin¨ardarstellung (Bitfolgen beliebiger L¨ange)L5⊆ {0,1}

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

I Menge aller arithmetischen Ausdr¨ucke ¨uberZ(ohne Variablen) L7⊂ {0, . . . ,9,+,·,−,/,(,)},

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

(Voraussetzung f¨ur maschinelle Verarbeitung) verschiedene Darstellungen sp¨ater in dieser LV

(22)

Darstellung von W¨ ortern

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¨ur jeden Indexi

dasi-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 falls i ∈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¨oglich) Beispiele:{ε,a,aa,aaa},{b,ba,baa,baaa}, {a,b,aa,bb,aaa,bbb}

intensional durch Angabe einerEigenschaft, die genau alle W¨orter der Sprache haben.

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

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

sp¨ater in dieser LV noch mehr Formalismen zur endlichen Beschreibung von eingeschr¨ankten Sprachklassen

(regul¨are Ausdr¨ucke, Grammatiken, Automaten, . . . )

(24)

Operationen auf W¨ ortern

Operationen auf W¨ortern u,v ∈A: Verkettung ◦:A×A →A, wobei

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

ui falls i ≤ |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 Palindrom gdw. uR =u Fakt

I F¨ur jedes Wort u∈A gilt uRR

=u.

I F¨ur je zwei beliebige W¨orter 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)

Wiederholung: Relationen zwischen W¨ ortern

Pr¨afixvA×A:

∀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¨angendes Teilwort):

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

Pr¨afix-, Postfix- und Infixrelation sindHalbordnungen (aber keine totalen Ordnungen).

(27)

Mehr Relationen auf W¨ ortern

Jede totale Ordnung<auf dem Alphabet Adefiniert totale Ordnungen aufA:

lexikographische Ordnung auf A (≤lex ⊆A×A):

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

1. u vv oder

2. ∃w ∈A ∃a,b ∈A:a<b∧wavu∧wbvv quasi-lexikographische Ordnung auf A (≤qlex ⊆A×A):

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

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

I ab vaba,ab ≤lexaba,ab ≤qlexaba

I abab6vabba, aberabab≤lexabba undabab≤qlexabba,

I aaa≤lexab, aberaaa6≤qlexab

I ab 6≤lexaaba, aberab ≤qlexaaba

(28)

Wiederholung: Sprachen als Mengen

SprachenLA sindMengenvon W¨ortern

Eigenschaften: leer, endlich, abz¨ahlbar, ¨uberabz¨ahlbar 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 ur SprachenLA

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

| {z }

n+1−mal

L= [

n∈N

Ln L+= [

n∈N\{0}

Ln

I ur W¨orteruA: 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¨ are Ausdr¨ ucke – Syntax

Die MengeRegExp(A) allerregul¨aren Ausdr¨ucke¨uber einem AlphabetAist (induktiv) definiert durch:

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

f¨ur jedes Symbol a∈Agilt a∈RegExp(A) IS f¨ur alle E ∈RegExp(A) und F ∈RegExp(A) gilt

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

Beispiele:ε+a,ε+∅, (a+∅),ε+ ((ab)a) dieselbe Definition k¨urzer:RegExp(A) = Term(ΣF,∅) f¨ur die Signatur

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

(Baumdarstellung)

(32)

Beispiele

(ohne ¨uberfl¨ussige Klammern)

I F¨urA={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¨urA={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¨urn∈Nals Kurzbezeichnungen verwendet.

(33)

Regul¨ are Ausdr¨ ucke – Semantik

Jeder regul¨are AusdruckE RegExp(A) repr¨asentiert 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¨ar, wenn ein regul¨arer AusdruckE RegExp(A) mitL=L(E) existiert.

Beispiel: Die MengeLaller Dezimaldarstellungen nat¨urlicher Zahlen ist regul¨ar wegenL=L(0 + (1 + 2 +· · ·+ 9)(0 + 1 +· · ·+ 9))

(34)

Beispiele

F¨urA={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¨are Ausdr¨ucke erm¨oglichen eineendliche Darstellung unendlicherSprachen.

(35)

Aquivalenz regul¨ ¨ arer Ausdr¨ ucke

Zwei regul¨are Ausdr¨uckeE,F ∈RegExp(A) heißen genau dann

¨aquivalent, wenn L(E) =L(F) gilt.

Beispiele:

I (a+b), (a+b) unda(ba) sind ¨aquivalent

I ab und (ab) sind nicht ¨aquivalent

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

Fakt

Die ¨Aquivalenz regul¨arer Ausdr¨ucke ist eine ¨Aquivalenzrelation.

(36)

Was bisher geschah (Wiederholung)

orterw A

I Operationen: Spiegelung R, Verkettung

I Palindrome

I Relationen: Pr¨afix, Infix, Postfix,

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

I Relationen: Mengenrelationen⊆,=

I Operationen: Mengenoperationen∪,∩, ,\ Verkettung◦, iterierte Verkettung, Spiegelung R Regul¨are Ausdr¨ucke

I endliche Darstellung auch unendlicher Sprachen

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

I Semantik des regul¨aren AusdrucksE RegExp(A):

SpracheL(E)A

(37)

Interessante Fragen f¨ ur Sprachen

I Ist ein gegebenes Wortw in der SpracheLenthalten?

(heißt oft Wortproblem)

I Enth¨alt die SpracheLnur endlich viele W¨orter?

I Gilt L1L2ur zwei gegebene SprachenL1 undL2?

I Gilt L1=L2ur zwei gegebene SprachenL1 undL2? Fragen zur Regularit¨at:

I asst sich die Sprache Ldurch einen regul¨aren Ausdruck definieren?

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

I Woran erkennt man, ob sich eine Sprache durch einen regul¨aren Ausdruck definieren l¨asst?

I Gilt L(E) = ur einen gegebenen regul¨aren AusdruckE?

I Gilt L(E) =A ur einen gegebenen regul¨aren AusdruckE?

I Ist ein gegebenes Wortw in der durch den regul¨aren AusdruckE definierten SpracheL(E) enthalten?

Alle Antworten sind f¨ur endliche Sprachen einfach, aber f¨ur 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 vonw ist.

Beispiel: Regelma→εist

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

I auf am,motte und metanicht anwendbar.

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

(Ersetzung des Teilwortesl durchr)

Beispiel:ab →aangewendet aufbaababa=u◦l◦v

I mit u=ba und v =aba ergibt baaaba

I mit u=baab und v =aergibt baabaa

(40)

Ableitungsschritt

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

I Ausgangswortu,

I auf u anwendbare Regell →r ausS,

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¨ogliche 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¨urS ={ab→ba,a→b} gilt

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

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

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

I aba6→S bbb

(42)

Ableitungen

Eine Folge von Ableitungsschritten

(u,(l1r1),p1,u2),(u2,(l2r2),p2,u3),· · ·,(un−1,(ln−1rn−1,pn−1,v) im WortersetzungssystemS heißt Ableitung von u nach v 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¨ange der Ableitung = Anzahl der Ableitungsschritte

In jedem SystemS existiert f¨ur jedes u ∈A dieleere Ableitung (der L¨ange 0) vonu nachu.

(43)

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 →ε} und u=c Menge aller inS3 ausc ableitbaren W¨orter, die kein c enthalten?

(44)

Wiederholung: H¨ ullen bin¨ arer Relationen

RIM heißtreflexive H¨ullevonRM2 (mit Identit¨atIM ={(x,x)|x M})

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

Wiederholung: Verkettungder RelationenRM2und SM2 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¨ulle

R = [

n∈N

RnM2 reflexiv-transitive H¨ulle

(45)

Ersetzungsrelation

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

Beispiel:S ={a→aa},

I f¨ur jedes n≥1 giltba→S b a· · ·a

| {z }

n

wegen ba→S baa→S baaa→S · · · →S b a· · ·a

| {z }

n I b →S b, aber f¨ur kein Wortw 6=b giltb→S w (→S ist die reflexive transitive H¨ulle von→S)

(46)

Modellierungsbeispiel: lineares Solitaire

Startkonfiguration : nSpielsteine aufnbenachbarten Spielfeldern.

Spielzug : Springe mit einem Stein ¨ubereinen benachbartenStein auf das n¨achstefreieFeld und entferne den

¨ubersprungenen Stein.

Spielende , wenn kein Zug mehr m¨oglich ist.

Modellierung als Wortersetzungssystem:

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

I Startkonfiguration:2n2

I zul¨assige Spielz¨uge:◦ • • → • ◦ ◦,• • ◦ → ◦ ◦ •,2• •222, . . . Fragen:

I Welche Konfigurationen / Endkonfigurationen sind von der Startkonfiguration erreichbar?

I Wieviele Z¨uge sind mindestens / h¨ochstens 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) ¨uber einem AlphabetAdefiniert die Sprache

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

(alle W¨orterv, die von w durch eine Ableitung in S erreicht werden)

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

L(S,w) ={w ◦c ◦wR} (Menge aller Palindrome ¨uber {a,b,c}, die h¨ochstens an der mittleren Position einc enthalten)

Jedes Paar (WortersetzungssystemS, Menge M von W¨ortern)

¨uber einem AlphabetAdefiniert die Sprache L(S,M)= [

w∈M

L(S,w)

(alle W¨orterv, die von irgendeinemw ∈M durch eine Ableitung inS erreicht werden)

(48)

Ausdrucksst¨ arke von Wortersetzungssystemen

Wortersetzungssysteme

I erm¨oglichen eine endliche Darstellung unendlicher Sprachen.

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

I k¨onnen zur Modellierung von Zust¨anden und ¨Uberg¨angen dazwischen verwendet werden

z.B. Spiele, Ausf¨uhrung von Programmen, Programmverifikation

Beispiel: Lineares Solitaire

I k¨onnen Berechnungensimulieren

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

(49)

Wortproblem f¨ ur 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¨osung des Wortproblems und anderer Fragen zu Sprachen ist f¨ur endliche Sprachen einfach, f¨ur unendliche Sprachen oft nicht.

Darstellung der Sprache durch ein Wortersetzungssystem kann helfen.

L¨osung des Wortproblem w ∈L(S,u) durch Standardverfahren:

Suche eines Pfades vonu nach w im Ableitungsgraphen des WortersetzungssystemsS

Problem:

I Pfadsuche ist Standardverfahren f¨ur endliche Graphen.

I Ableitungsgraphen von Wortersetzungssystemen sind meist unendlich.

Standardverfahren ist in Spezialf¨allen anwendbar, wenn Suche in einem endlichen Teilgraphen gen¨ugt

(51)

Nichtverl¨ angernde Wortersetzungssysteme

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

Wortproblem (L,w):

Eingabe : SpracheL⊆A, Wort w ∈A Frage: Giltw ∈L?

Ausgabe ja oder nein

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

Es gibt einen Algorithmus, welcher f¨ur f¨ur jedes nichtverl¨angernde Wortersetzungssystem S⊆A×A und beliebige W¨orter

u,w ∈A das Wortproblem(L(S,u),w)in endlicher Zeit korrekt l¨ost.

Idee:

Suche im endlichen Teilgraphen aller W¨orterv ∈A mit|v| ≤ |u|

(52)

Nichtverk¨ urzende Wortersetzungssysteme

Ein WortersetzungssystemS heißt genau dannnichtverk¨urzend, wenn f¨ur 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¨ur f¨ur jedes nichtverk¨urzende Wortersetzungssystem S⊆A×A und beliebige W¨orter

u,w ∈A das Wortproblem(L(S,u),w)in endlicher Zeit korrekt l¨ost.

Idee:

Suche im endlichen Teilgraphen aller W¨orterv ∈A mit

|u| ≤ |v| ≤ |w|

(53)

Wortersetzungssysteme mit

verl¨ angernden und verk¨ urzenden Regeln

Beispiel:

S =

















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

















 Giltc →S d?

F¨ur WortersetzungssystemeS mit verl¨angernden und verk¨urzenden Regeln existiert im Allgemeinenkein Algorithmus, der f¨ur beliebige W¨orteru,w ∈A feststellt, ob u→s w gilt.

(54)

Was bisher geschah

I Alphabet, Wort, Sprache

I Operationen und Relationen auf W¨ortern und Sprachen

I interessante Fragen f¨ur Sprachen und W¨orter Regul¨are Ausdr¨ucke

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¨arke:

I Darstellung von (evtl. unendlichen) Sprachen

I Modellierung von Zustands¨uberg¨angen

I Ausf¨uhren von Berechnungen

(55)

Wiederholung Wortersetzungssysteme

I A={s,w},

R ={ww →s,ss→s,ws →w,sw →w} (nichtverl¨angernd)

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

I A={b,r,w},

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

(nichtverl¨angernd und nichtverk¨urzend) Istwbbr ausbrwb ableitbar?

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

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

(nichtverk¨urzend)

Istaabbcc ausaableitbar?

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

(56)

Wiederholung: abz¨ ahlbare Mengen

(Mathematik 1. Semester)

Eine MengeM heißt genau dann abz¨ahlbar, wenn sie h¨ochstens so m¨achtig wieN ist.

(also eine surjektive Funktionf :N→M existiert)

Mit demersten Diagonalverfahren von Cantorl¨asst sich z.B.

zeigen:

I Zund Q sind abz¨ahlbar.

I F¨ur jedes endliche AlphabetAist die Menge A aller W¨orter

¨uber Aabz¨ahlbar.

I F¨ur jedes endliche AlphabetAist jede SpracheL⊆A abz¨ahlbar.

Mengen, die nicht abz¨ahlbar sind, heißen ¨uberabz¨ahlbar.

(57)

Beispiele ¨ uberabz¨ ahlbarer Mengen

Mit demzweiten Diagonalverfahren von Cantorasst sich zeigen:

R ist ¨uberabz¨ahlbar (m¨achtiger alsN).

(Es gibt ¨uberabz¨ahlbar viele reelle Zahlen.) [0,1] Rist ¨uberabz¨ahlbar.

(Intervall [0,1] enth¨alt ¨uberabz¨ahlbar viele reelle Zahlen.) 2N (Menge aller Mengen nat¨urlicher Zahlen) ist m¨achtiger als

N.

( ¨Uberabz¨ahlbarkeit der Menge 2N)

Es gibt ¨uberabz¨ahlbar viele Mengen nat¨urlicher Zahlen.

2{0,1} Menge aller SprachenL⊆ {0,1} ist m¨achtiger als {0,1}.

(Es gibt ¨uberabz¨ahlbar viele Sprachen ¨uber dem Alphabet {0,1}.)

2(A) ist f¨ur beliebiges endliches AlphabetAachtiger alsA (F¨ur jedes nichtleere endliche AlphabetAist die Menge aller Sprachen ¨uberA¨uberabz¨ahlbar. )

(58)

Ist jede Sprache regul¨ ar ?

Existiert f¨ur jedes endliche AlphabetAzu jeder SpracheLA ein regul¨arer AusdruckE mitL=L(E)?

Nein(Gegenbeispiel mit Nachweis sp¨ater) Begr¨undung:

1. WievieleSprachenLA gibt es? (M¨achtigkeit von 2(A))

¨uberabz¨ahlbarviele

2. Wievieleregul¨are Ausdr¨ucke¨uber dem endlichen AlphabetAgibt es?

abz¨ahlbarviele, weil

I AlphabetA0 =A∪ {∅,ε,+,,(,),}endlich

I Menge (A0) aller W¨orter ¨uberA0 abz¨ahlbar

I jeder regul¨are Ausdruck ¨uberAist ein Wort aus (A0) (endliche Beschreibung)

I Menge aller regul¨aren Ausdr¨ucke ¨uberAist Teilmenge der abz¨ahlbaren Menge (A0), also selbst abz¨ahlbar

Damit existieren sogar sehr viel mehr (¨uberabz¨ahlbar viele) nicht regul¨are Sprachen.

(59)

L¨ asst sich jede Sprache durch ein Wortersetzungssystem erzeugen?

Existiert f¨ur jedes endliche AlphabetAzu jeder SpracheLA ein Paar (S,u) aus WortersetzungssystemS und Wort uA mitL=L(S,u)?

Nein(Gegenbeispiel sp¨ater) Begr¨undung:

1. WievieleSprachenLA gibt es? (M¨achtigkeit von 2(A))

¨uberabz¨ahlbarviele

2. Wieviele Paare (Wortersetzungssysteme, Startwort) ¨uber dem endlichen AlphabetAgibt es?

abz¨ahlbarviele, weil

I AlphabetA0 =A∪ {(,),,,{,},→,ε} endlich

I Menge (A0) aller W¨orter ¨uberA0 abz¨ahlbar

I jedes Paar (Wortersetzungssystem, Wort) ¨uberA ist ein Wort aus (A0) (endliche Beschreibung)

I Menge aller Paare (Wortersetzungssystem, Wort) ¨uberAist Teilmenge der abz¨ahlbaren Menge (A0), also selbst abz¨ahlbar Also existieren ¨uberabz¨ahlbar viele Sprachen, die nicht durch

Wortersetzungssysteme erzeugt werden k¨onnen.

(60)

Ableitbare W¨ orter ¨ uber 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¨orter in L(S,c)∩ {a,b}: alle Palindrome in{a,b}

c istHilfssymbolzur Erzeugung der Palindrome

Referenzen

ÄHNLICHE DOKUMENTE

Wir werden in diesem Abschnitt zuerst zeigen, dass f¨ur die im vorangegangenen Abschnitt eingef¨uhrten Typen von Grammatiken jeweils Normalformen existieren, d.h. Grammati- ken

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,