• Keine Ergebnisse gefunden

Reguläre Sprachen, Abschlusseigenschaften

N/A
N/A
Protected

Academic year: 2022

Aktie "Reguläre Sprachen, Abschlusseigenschaften"

Copied!
39
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Automaten und
 Formale Sprachen


Endliche Automaten und 
 Reguläre sprachen

Ralf Möller

Hamburg Univ. of Technology

(2)

Literatur

2

•  Gottfried Vossen, Kurt-Ulrich Witt:

Grundkurs Theoretische Informatik,

Vieweg Verlag

(3)

Danksagung

•  Kurs basiert auf 


Präsentationsmaterial von

  G. Vossen (Uni Münster), 


K.-U. Witt (Hochschule Bonn-Rhein-Sieg)

  Johannes Köbler (HU Berlin)

  Thomas Ottmann (Uni Freiburg)

  Lenore Blum (CMU)

(4)

Wiederholung: Alphabete

•  Automaten verarbeiten Zeichenfolgen, die aus atomaren Symbolen bestehen.

•  Menge der zugelassenen Zeichen:

Endliches Alphabet Σ . Beispiele:

  Σ = {50, 100, 200} │ Σ │ = 3

  Σ = {a

1

, a

2

, a

3

, …, a

n

} │ Σ │ = n

  Σ = {a, b,…., z} │ Σ │ = 26

  Σ = ∅ │ Σ │ = 0

(5)

Widerholung: Deterministische endliche Automaten

Ein deterministischer endlicher Automat (DFA) ist gegeben durch

•  eine endliche menge S von Zuständen

•  eine endliche Menge Σ von Eingabezeichen

•  einen Anfangszustand s0 ∈ S

•  eine Endzustandsmenge F ⊆ S

•  eine Übergangsfunktion δ : S x Σ → S Kurz: A = (Σ, S, δ, s0, F)

δ kann auch durch einen Zustandsübergangs Graphen oder als Menge von Tripeln (s, a, t) mit δ (s, a) = t gegeben sein

δ ist manchmal nicht total (überall definiert)

(6)

Wiederholung: Erweiterte Übergangsfunktion

Die Zustandsübergangsfunktion δ kann von Zeichen auf Wörter erweitert werden:

δ* : S x Σ * → S definiert durch

  δ*(s, ε) = s für alle s ∈ S

  δ*(s, aw) = δ*(δ(s, a), w) für alle a ∈ Σ, w ∈ Σ*

Für einen endlichen Automaten A = ( Σ , S, δ, s

0

, F) wird die von A akzeptierte Sprache (die Menge aller von A akzeptierten Eingabefolgen) L(A) ⊆ Σ * definiert durch:

L(A) = {w; δ*(s

0

, w) ∈ F}

(7)

Wiederholung: Konfiguration eines

endlichen Automaten

(8)

Widerholung:

Konfigurationsübergänge

Ein Konfigurationsübergang (s, v) ├ (t, w) kann stattfinden, wenn v = aw und δ(s, a) =t ist.

Die Abarbeitung eines Wortes x = x

1

x

2

… x

r

durch einen DFA kann als Folge von

Konfigurationsübergängen beschrieben werden:

(s

0

, x

1

x

2

… x

r

) ├ (s

1

, x

2

… x

r

) ├ … ├ (s

r

, ε ) Mit ├ * wird die transitiv-reflexive Hülle von ├

beschrieben.

(9)

Wiederholung: 


Reguläre Sprachen

•  Für einen DFA A = ( Σ , S, δ, s

0

, F) ist

L(A) = {w ∈ Σ * ; (s

0

, w) ├* (s, ε), s ∈ F}

die von A akzeptierte Sprache.

•  Eine Sprache L ⊆ Σ * heißt regulär, wenn es einen DFA A gibt mit L = L(A).

•  Zwei DFA A und A‘ heißen äquivalent, falls

sie die gleiche Sprache akzeptieren, wenn

also gilt: L(A) = L(A‘).

(10)

Theorie endlicher Automaten

Gibt Antworten auf folgende Fragen:

1.  Wie entwirft man endliche Automaten für bestimmte Aufgaben (Synthese-Aufgabe)?

2.  Wie analysiert man endliche Automaten? D.h. kann man die von endlichen Automaten akzeptierbaren Sprachen auch anders (automatenfrei) beschreiben?

3.  Wie vereinfacht (reduziert, minimiert) man endliche Automaten? D.h. wie eliminiert man evtl. überflüssige Zustände?

Die Synthese endlicher Automaten ist ein kreativer Prozess!

Zur Analyse verwendet man: Reguläre Ausdrücke, Grammatiken, algebraische Hilfsmittel.

Die Reduzierung erfolgt durch Bildung von Äquivalenzklassen.

(11)

Beispiel einer Syntheseaufgabe

Finde einen DFA für

L3b = {w ∈ {a, b}* ; w = w1…wn, wi ∈ {a, b}, w3i ≠ a, 1 ≤ 3i ≤ n, n ≥ 0}

•  Dreiergruppe von Zeichen, deren letztes ein b ist, muss erkannt werden:

•  Beliebig viele Dreiergruppen derselben Art sind als Präfixe erlaubt:

•  Auch sämtliche Präfixe sollen erkannt werden:

(12)

Vollständige Automaten

•  Bisher musste die Funktion δ eines DFA nicht total sein.

•  Ein DFA A = (Σ, S, δ, s0, F) heißt vollständig, wenn dom(δ) = S x Σ

•  Jeder DFA A = (Σ, S, δ, s0, F) kann durch Hinzunahme eines Zustands tot vervollständigt werden:

•  Wenn δ(s, a) nicht definiert ist, ergänze δ(s, a) = tot Beispiel:

(13)

Anwendung von DFA 
 zur Suche in Texten

Verschiedene Szenarien:

Dynamische Texte

– Texteditoren

– Symbolmanipulatoren – Statische Texte

Literaturdatenbanken

– Bibliothekssysteme

(14)

Problemdefinition: 


Mustersuche in Texten

Gegeben:

Text t1t2t3 … tn ∈ Σn

Muster p1p2 … pm ∈ Σm

Gesucht: Ein oder alle Vorkommen des Musters im Text, d.h.

Verschiebungen i mit 0 ≤ i ≤ n-m und p1 = ti+1

p2 = ti+2

……..

pm = ti+m

Text: t1 t2 t3 ti+1… ti+m Muster: p1 ……pm

(15)

Naives Verfahren

Für jede mögliche Verschiebung i mit 0 ≤ i ≤ n-m prüfe maximal m Zeichenpaare. Bei Mismatch beginne mit neuer Verschiebung!

Aufwandsabschätzung: 


Text: t1 t2 t3 ti+1 … ti+j ….ti+m ……

Muster: p1 …. pj ……pm

(16)

Automatenbasiertes Verfahren

Konstruiere zum Muster P = p1p2 … pm einen DFA AP, der den Text T = t1t2t3 … tn einmal v.l.n.r. liest und in einem

Endzustand ist, immer dann, wenn er das Ende eines Vorkommens von P in T erkannt hat.

Beobachtung: Das Lesen und Verarbeiten eines Zeichens Verursacht nur konstanten Aufwand!

Alfred V. Aho und

Margaret J. Corasick 1975

(17)
(18)
(19)
(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
(29)
(30)

Übung

Sei P = abba, ein DFA, der jedes Vorkommen von P in einem

beliebigen Text aus Σ* = {a, b}* entdeckt, kann so konstruiert werden:

s

0

s

a

s

ab

s

abb

s

abba

(31)

Weitere Anwendungen

•  fgrep

•  Bioinformatik: String Matching

•  Intrusion detection: Find certain patterns in sequences of   TCP

packaged

•  Firewall: Apache modsecurity


HTTP traffic analysis

(32)

Operationen für Formale Sprachen

Sei Σ ein fest gewähltes, endliches Alphabet. 


Für Sprachen A, B ⊆ Σ* definiert man:

Vereinigung: A ∪ B = {w; w ∈ A oder w ∈ B}

Durchschnitt: A ∩ B = {w; w ∈ A und w ∈ B}

Verkettung: A • B = {xy; x ∈ A und y ∈ B}

Iteration A* = {x1…xk; k ≥ 0 und xi ∈ A für alle i mit 1 ≤ i ≤ k}

(33)

Reguläre Sprachen

Die Klasse der von endlichen Automaten

akzeptierbaren Sprachen heißt auch Klasse der regulären Sprachen, m.a.W:

Eine Sprache L ⊆ Σ * heißt regulär, wenn es einen

endlichen Automaten (einen DFA) A gibt mit L = L (A).

Satz: Die Klasse der regulären Sprachen ist

abgeschlossen gegenüber Vereinigung,

Durchschnitt und Komplement.

(34)

UNION THEOREM

Given two languages, L

1

and L

2

, define the union of L

1

and L

2

as

L

1

L

2

= { w | w L

1

or w L

2

}

Theorem: The union of two regular

languages is also a regular language

(35)

Theorem: The union of two regular languages is also a regular language Proof: Let

M

1

= (Q

1

, Σ, δ

1

, q

0

, F

1

) be finite automaton for L

1

and

M

2

= (Q

2

, Σ, δ

2

, q

0

, F

2

) be finite automaton for L

2

We want to construct a finite automaton

M = (Q, Σ, δ , q

0

, F) that recognizes L = L

1

L

2

1 2

(36)

Idea: Run both M

1

and M

2

at the same time!

Q = pairs of states, one from M

1

and one from M

2

= { (q

1

, q

2

) | q

1

Q

1

and q

2

Q

2

}

= Q

1

× Q

2

q

0

= (q

1 0

, q

2 0

)‏

F = { (q

1

, q

2

) | q

1

F

1

or q

2

F

2

}

δ ( (q

1

,q

2

), σ ) = ( δ

1

(q

1

, σ ), δ

2

(q

2

, σ ))

(37)

Theorem: The union of two regular languages is also a regular language

q

0

q

1

0 0

1 1

1 1

0

(38)

q

0

,p

0

q

1

,p

0

1 1

q

0

,p

1

q

1

,p

1

1 1

0 0 0 0

(39)

Intersection THEOREM

Given two languages, L

1

and L

2

, define the intersection of L

1

and L

2

as

L

1

L

2

= { w | w L

1

and w L

2

} Theorem: The intersection of two

regular languages is also a regular

language

Referenzen

ÄHNLICHE DOKUMENTE

Folgerungen aus dem Satz von Kleene Korollar 2.3.2 die Klasse der regul¨ aren Sprachen ist abgeschlossen unter allen Booleschen Operationen sowie Konkatenation und Stern

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,

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

Auÿerdem können Grammatiken auch für die Analyse (Erkennung) formaler Sprachen und endliche Automaten für ihre Erzeugung genutzt werden... Formale Sprachen Reguläre Ausdrücke

Übung Reguläre Sprachen, Fachhochschule Regensburg Professor Dr.. rechtsseitigen Ableitungen