• Keine Ergebnisse gefunden

4 Brückenschlag zur Mathe- matik

N/A
N/A
Protected

Academic year: 2022

Aktie "4 Brückenschlag zur Mathe- matik"

Copied!
119
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

4 Brückenschlag zur Mathe- matik

4.1 Einführung in die Logik

4.1.1 Die Operatoren der Aussagenlogik 4.1.2 Formeln der Aussagenlogik

4.1.3 Arithmetische Vergleichsoperatoren 4.1.4 Anwendungen der Logik in der

Informatik 4.2 Bäume

4.2.1 Definition des Baumes 4.2.2 Binärbäume

4.2.3 Mehrwegbäume 4.3 Endliche Automaten

4.3.1 Grundbegriffe

4.3.2 Nichtdeterministische endliche Automaten

4.3.3 Endliche Automaten mit spontanen Übergängen

(2)

A

B

C

D

E

F

A

B

C

D

E

F

G H

eingefügtes 0-Bit entfernt

0/0

0/0

1/1 0/0

0/0 0/0

0/0

Sender

(Ereignis: zu übermittelndes Bit)

Empfänger

(Ereignis: eintreffendes Bit)

0/0

1/1

1/1

1/1

1/1

1/10

1/1

1/1

1/1

1/1

1/1

1/1

0/0

0/0 0/0

0/0

1/1

0

Begrenzer (Fehler)

Notation: e/a e = Ereignis a = Ausgabe

0/0

(3)

4.1 Einführung in die Logik

Motivation

"Es wird dann beim Auftreten von Streitfragen für zwei Philosophen nicht mehr Aufwand an wissenschaftlichen Gespräch erforderlich sein als für zwei Rechnerfach- leute. Es wird genügen, Schreibzeug zur Hand zu neh- men, sich vor das Rechengerät zu setzen und zueinan- der (wenn es gefällt, in freundschaftlichem Ton) zu sa- gen: Lasst uns rechnen."

Gottfried Wilhelm Leibnitz (1646 - 1716)

(4)

Aussagenlogik

Einleitendes Beispiel

Eine Person XY stellt folgende Behauptungen auf:

1. Wenn ich genug Geld gespart habe, kaufe ich mir ein Auto.

2. Wenn ich nicht genug Geld gespart habe, kaufe ich mir ein Fahrrad.

3. Wenn ich ein Auto kaufe, fahre ich nach Spanien in den Urlaub.

4. Wenn ich ein Fahrrad kaufe, bleibe ich im Urlaub in Mannheim.

5. Ich habe im Vorjahr kein gespartes Geld verbraucht.

6. In diesem Jahr habe ich keine anderen Ausgaben.

7. Es stimmt nicht, daß ich nicht genug Geld gespart habe und weder im Vorjahr gespartes Geld ver-

braucht habe noch in diesem Jahr andere Ausgaben habe.

Frage: Fährt XY nach Spanien?

(5)

Formalisierung des Beispiels

A:='XY hat genug Geld gespart'

B:='XY kauft ein Auto' C:='XY kauft ein Fahrrad'

D:='XY fährt nach Spanien in den Urlaub' E:='XY bleibt im Urlaub in Mannheim'

F:='XY hat im Vorjahr gespartes Geld verbraucht' G:='XY hat in diesem Jahr andere Ausgaben'

1) wenn A, dann B

2) wenn (nicht A), dann C 3) wenn B, dann D

4) wenn C, dann E 5) nicht F

6) nicht G

7) nicht ( (nicht A) und ( nicht (F oder G) ) )

(6)

Logischer Kalkül

Vorgehensweise

Definition von Grundbausteinen (Operanden und Operatoren)

Definition von Regeln zur Bildung von Formeln aus den Grundbausteinen

Ein Kalkül ist syntaktisch und semantisch wohldefiniert.

In einem Kalkül kann man durch "Rechnen" neue For- meln herleiten, die Gleichheit von Formeln beweisen usw.

Beispiele für logische Kalküle

Aussagenlogik

Prädikatenlogik erster Stufe

Prädikatenlogik zweiter Stufe

(7)

Aussagenlogik

Die Aussagenlogik behandelt den Wahrheitswert von Aussagen.

Es ist eine zweiwertige Logik: Aussagen können nur WAHR oder FALSCH sein. Weitere Werte (z.B. "UNZU- TREFFEND", "UNBEKANNT", "MÖGLICH") können

nicht zugewiesen werden.

Übliche Notation der Wahrheitswerte

WAHR 1 L T true

FALSCH 0 0 F false

(8)

4.1.1 Die Operatoren der Aussagenlogik

nicht ¬ nicht A ¬A

und ∧ A und B A ∧ B

oder ∨ A oder B A ∨ B

exor ⊕ A oder B,

aber nicht beide

A ⊕ B

wenn, dann → wenn A, dann B A → B

genau dann, wenn ↔ genau dann A, wenn B A ↔ B

Die Definition der Operatoren geschieht in Form von Wertetabellen für die Wahrheitswerte. Sie legen die Semantik der Operatoren fest.

(9)

Negation ("nicht")

¬ negiert den Wert des Arguments: ¬ 0 = 1; ¬ 1 = 0

A ¬A

0 1

1 0

Schreibweise in Java: !a

(10)

Konjunktion ("und")

A ∧ B ist genau dann wahr, wenn sowohl A als auch B wahr sind

A B A ∧ B

0 0 0

0 1 0

1 0 0

1 1 1

Schreibweise in Java: a && b

(11)

Disjunktion ("oder")

A ∨ B ist genau dann wahr, wenn entweder A oder B oder beide wahr sind

A B A ∨ B

0 0 0

0 1 1

1 0 1

1 1 1

Merke :

Das "oder" ist ein inklusives oder : Entweder A oder B oder beides.

Beispiel

"Amerikanische Autos sind schlecht oder teuer."

(12)

Antivalenz (exklusives Oder, EXOR)

A ⊕ B ist genau dann wahr, wenn entweder A oder B wahr ist, aber nicht beide.

Entweder A oder B, aber nicht beides.

A ⊕ B, A EXOR B

A B A ⊕ B

0 0 0

0 1 1

1 0 1

1 1 0

A ⊕ B ↔ (A ∧¬B)∨(¬ A ∧B)

Schreibweise in Java: a ^ b

Der Tradition der Aussagenlogik folgend werden wir den EXOR-Operator im Folgenden nicht näher behandeln.

(13)

Implikation

A → B ist genau dann wahr, wenn B wahr oder A falsch ist.

A B A → B

0 0 1

0 1 1

1 0 0

1 1 1

Merke:

Wenn die Voraussetzung nicht erfüllt ist, kann die Fol- gerung wahr oder falsch sein, man weiß es nicht.

"Aus einer falschen Voraussetzung kann alles folgen."

(14)

Beispiel für die Implikation

A = "es regnet"

B = "die Straße ist nass"

Wenn es regnet dann ist die Straße nass.

es regnet nicht

die Straße ist nicht nass WAHR es regnet

nicht

die Straße ist nass WAHR

(ein Sprengwagen ist vorbei- gekommen)

es regnet die Straße ist nicht nass FALSCH es regnet die Straße ist nass WAHR

(15)

Äquivalenz ("genau dann, wenn")

A ↔B ist genau dann wahr, wenn A und B denselben Wahrheitswert haben.

A B A ↔ B

0 0 1

0 1 0

1 0 0

1 1 1

Entspricht der Gleichheit (=) in der Arithmetik.

Aus A folgt B, und aus B folgt A.

Beispiel

Genau dann, wenn ich verliebt bin, verschenke ich rote Rosen.

ich bin nicht ver- liebt

ich verschenke keine roten Rosen

WAHR ich bin nicht ver-

liebt

ich verschenke roten Rosen FALSCH

(16)

4.1.2 Formeln der Aussagenlogik

Die Konstanten sind 0 und 1. Aussagenvariable ste- hen als Symbole für atomare Aussagen.

Beispiele

A := 'XY hat genug Geld gespart' H := 'Es regnet'

I := 'Ich bin verliebt'

Regeln für die Bildung von Formeln - 0 ist eine Formel

- 1 ist eine Formel

- Jede Aussagenvariable ist eine Formel

- Wenn a eine Formel ist, ist ¬ a eine Formel - Wenn a und b Formeln sind, sind

(a ∧ b) (a ∨ b) (a → b)

(a ↔ b) Formeln

- Wenn a eine Formel ist, ist (a) eine Formel (Klammerung).

(17)

Präzedenzregeln

Man definiert Präzedenzregeln zur Vereinfachung der Schreibweise, wie in der Arithmetik:

¬ bindet am stärksten (höchste Priorität)

∧ hat zweite Priorität

∨ hat dritte Priorität

→ hat vierte Priorität

↔ bindet am schwächsten

Beispiel

¬a ∨ b ∧ c wird interpretiert als (¬a) ∨ (b ∧ c)

(18)

Formale Beschreibung von Beispiel 1

1. Wenn ich genug Geld gespart habe, kaufe ich mir ein Auto.

2. Wenn ich nicht genug Geld gespart habe, kaufe ich mir ein Fahrrad.

3. Wenn ich ein Auto kaufe, fahre ich nach Spanien in den Urlaub.

4. Wenn ich ein Fahrrad kaufe, bleibe ich im Urlaub in Mannheim.

5. Ich habe im Vorjahr kein gespartes Geld verbraucht.

6. In diesem Jahr habe ich keine anderen Ausgaben.

7. Es stimmt nicht, daß ich nicht genug Geld gespart ha- be und weder im Vorjahr gespartes Geld verbraucht habe noch in diesem Jahr andere Ausgaben habe.

1. A → B 2. ¬A → C 3. B → D 4. C → E 5. ¬F

(19)

Berechnung des Wahrheitswerts einer Formel

Aus den Werten der Variablen, den Definitionen der Operatoren und den Präzedenzregeln läßt sich der Wahrheitswert einer Formel berechnen.

Beispiel

Berechnung des Wahrheitswertes von "XY fährt im Ur- laub nach Spanien"

D ↔ 1, d.h. "D ist WAHR" soll gezeigt werden Rechenweg

5. ¬F ↔ 1 damit F ↔ 0

6. ¬G ↔ 1 damit G ↔ 0

7. ¬(¬A ∧ ¬(F ∨ G)) ↔ 1

¬A ∧ ¬(F ∨ G) ↔ 0

¬A ∧ ¬(0 ∨ 0) ↔ 0

¬A ∧ ¬0 ↔ 0

¬A ∧ 1 ↔ 0

¬A ↔ 0 damit A ↔ 1

1. A → B ↔ 1

1 → B damit B ↔ 1

(20)

Rechenregeln der Aussagenlogik (1)

Ziel: Vereinfachung von Formeln bei der Berechnung des Wahrheitswertes

I a ↔¬¬a Idempotenz

II a∧a↔a III a∨a↔a

IV a∧b↔b∧a Kommutativität V a∨b↔b∨a

VI (a∧b)∧c↔a∧(b∧c) Assoziativität VII (a∨b)∨c↔a∨(b∨c)

VIII (a∨b)∧c↔(a∧c)∨(b∧c) Distributivität IX (a∧b)∨c↔(a∨c)∧(b∨c)

X ¬(a∧b)↔¬a∨¬b Regeln von de Morgan XI ¬(a∨b)↔¬a∧¬b

XII a→b↔¬a∨b Implikation XIII (a↔b)↔(a→b)∧(b→a) Äquivalenz XIV (a→b)∧(b→c)→(a→c) Transitivität

(21)

Rechenregeln der Aussagenlogik (2)

XV a∧0↔0 Vereinfachungen

XVI a∧1↔a XVII a∨0↔a XVIII a∨1↔1 XIX a∧¬a↔0 XX a∨¬a↔1 XXI a∧(a∨b)↔a XXII a∨(a∧b)↔a

XXIII (a∧b↔1)↔(a↔1)∧(b↔1)

Der Beweis der Korrektheit dieser Regeln erfolgt durch Wertetabellen.

Da die rechte und die linke Seite äquivalent ist, also für eine beliebige Belegung der Variablen die Äquiva-

lenzaussage stets wahr ist, können diese Gesetze in beliebigen Formeln der Aussagenlogik verwendet wer-

(22)

Vereinfachung des Reisebeispiels durch Umformung (1)

Frage: Ist D wahr?

(A →B) ∧ (¬A →C) ∧ (B →D) ∧

(C →E) ∧ ¬F ∧ ¬G ∧ ¬(¬ A ∧ ¬ (F ∨ G)) ↔ 1 Vereinfachung der Teilformeln (5)∧(6)∧(7)

¬F∧¬G∧¬(¬A∧¬(F∨G)) ↔ 1 de Morgan: ¬F∧¬G∧(¬¬A∨¬¬(F∨G)) ↔ 1 Idempotenz: ¬F∧¬G∧(A∨F∨G) ↔ 1

Distributivität: ¬F∧((A∧¬G)∨(F∧¬G)∨(G∧¬G))↔1

¬F∧((A∧¬G)∨(F∧¬G)∨0) ↔ 1

¬F∧((A∧¬G)∨(F∧¬G)) ↔ 1 Distributivität: (¬F∧A∧¬G)∨(¬F∧F∧¬G) ↔ 1

(¬F∧A∧¬G)∨(0∧¬G) ↔ 1 (¬F∧A∧¬G)∨0 ↔ 1

¬F∧A∧¬G ↔ 1 1∧ A ∧ 1 ↔ 1 A ↔ 1

(23)

Vereinfachung des Reisebeispiels durch Umformung (2)

Einsetzen von 'A wahr' in Teilformel (1):

A → B

Implikation: ¬A ∨ B

A wahr ¬1 ∨ B

0 ∨ B

B

Also: B ist wahr, XY kauft sich ein Auto.

Einsetzen von 'B wahr' in Teilformel (3):

B → D

Implikation: ¬B ∨ D

B wahr ¬1 ∨ D

D

Also: D ist wahr, XY fährt im Urlaub nach Spanien.

Anmerkung: (A ∧(A →B)) →B heißt "Modus ponens".

(24)

Vereinfachung von Ausdrücken (1)

Beispiel 1

(a∨b)∧¬a∧¬b = ((a∨b)∧¬(a∨b))

= 0

Dies ist eine Kontradiktion: Die Formel ist falsch für alle Belegungen von a und b.

Beispiel 2

a∧b∧c∨¬a∨¬b∨¬c = (a∧b∧c)∨¬(a∧b∧c)

= 1

Dies ist eine Tautologie: Wahr für alle Belegungen von a und b.

Anmerkung: Das Gesetz von De Morgan gilt auch für drei oder mehr Variable:

¬a∨¬b∨¬c = ¬a∨¬(b∧c)

= ¬(a∧(b∧c))

= ¬(a∧b∧c)

(25)

Vereinfachung von Ausdrücken (2)

Beispiel 3

a∧b ∨ c∧(¬a∨¬b) = a∧b ∨ c∧¬(a∧b)

= a∧b ∨ ¬(a∧b)∧c

= a∧b ∨ c Beispiel 4

(a∨¬a∧b) ∧ (b∨b∧c) = (a∨b) ∧ (b) (siehe un- ten)

= b

a b (a ∨ ¬a∧b)

0 0 0

0 1 1

1 0 1

1 1 1

Dies ist dieselbe Wahrheitstabelle wie die des "oder"!

(26)

Vereinfachung von Ausdrücken (3)

Beobachtung

Gemäß den Regeln der Aussagenlogik läßt sich die Im- plikation durch die Operatoren ¬ und ∨ ausdrücken:

a→b ↔ ¬a∨b

Ebenso läßt sich die Äquivalenz durch die Operatoren

¬, ∧, ∨ ausdrücken (Übungsaufgabe!)

Wir sehen: Nicht alle Operatoren sind essentiell; die ei- nen lassen sich durch die anderen ausdrücken. Die hier eingeführten Operatoren haben eine natürliche Seman- tik und sind daher gebräuchlich.

(27)

4.1.3 Arithmetische Vergleichsoperatoren

In der Informatik werden häufig Aussagen über Zahlen gemacht. Innerhalb von Zahlen besteht eine lineare Ordnung. Diese läßt sich durch die Zahlengerade ver- anschaulichen.

-6 -5 -4 -3 -2 -1 0 1 2 3 4 5 6 7 8 9 1 0

-1 ,5 1 ,5 2 ,1 4 4 ,7 5

Vergleichsoperatoren für Zahlen

Operator Name des Operators Beispiel

= gleich 1 = 2 liefert den Wert

false

≠ ungleich 1≠2 liefert den Wert true

< kleiner 1< 2 liefert den Wert true

≤ kleiner oder gleich 1≤ 2 liefert den Wert true

(28)

Aussagen über Zahlen

x und y seien Zahlenvariable Atomare Aussagen

5 ≠ 7 5 < 7 7 > 5 -5 > -7 x = 8.3 y = x y = 8.3

Aussagenlogische Formeln

(x > 0) ∧(x < 5) entspricht 0 < x < 5 (x = y) ∧(x > 0)

¬(5 = 7)

(29)

Beispiele für gemischte Ausdrücke

a) X ≠ Y ↔ ¬(X = Y)

≠ ist nicht essentiell

b) X ≠Y ↔ (X < Y) ∨ (X > Y) c) X ≤ Y ↔ (X < Y) ∨ (X = Y)

≤, ≥ sind nicht essentiell

d) X < Y ↔ ¬(X≥Y)

e) (X = Y) ∧ (Y = Z) → X = Z Transitivität für =

f) (X > Y) ∧ (Y > Z) → X > Z Transitivität für >

Merke: In Verbindung mit der Aussagenlogik sind viele arithmetische Vergleichsoperatoren durch eine Kombi- nation von anderen arithmetische Vergleichsoperatoren und logischen Operatoren ersetzbar.

(30)

Semantische Erweiterung von Vergleichsoperatoren (1)

Es ist üblich, die Semantik von Vergleichsoperatoren auch auf andere Objekte auszudehnen, für die eine to- tale Ordnung vorliegt.

Beispiele

a) Zeichen: Kollationsfolge

"a" < "b"

"b" < "y"

Frage: "a" < "A" ?

b) Zeichenfolge: lexikografische Sortierung

"abc" < "bca"

"david" < "goliath"

"gabriela" < "steffi"

Frage: "3M" < "DREIM" ?

"meierbär" < "meier-bär" ?

(31)

Semantische Erweiterung von Vergleichsoperatoren (2)

c) Datum

30.10.89 > 7.2.89 1.1.89 > 31.12.62

Frage: Wie würde man ein Datum unter Verwendung ei- nes Standard-Datentyps einer Programmiersprache

darstellen?

In vielen modernen Softwareprodukten ist eine Datums- arithmetik eingebaut. Beispiel: Tabellenkalkulation.

Man kann dann datum als Datentyp benutzen.

d) benutzerdefinierte Datentypen

dienstag < mittwoch

Frage: sonntag < montag ?

(32)

4.1.4 Anwendungen der Logik in der Informa- tik

1) Schaltwerktheorie: Entwurf digitaler Schaltungen Sei X = (x1,x2,x3,..,xn) ein binärer Eingangsvektor.

Dann ist f(X) = f(x1,x2,...,xn) eine Schaltfunktion, die ei- nen Boole'schen Wert abliefert.

Die Boole'schen Ausdrücke, die f(X) beschreiben, kön- nen direkt auf digitale Elektronik-Bausteine abgebildet werden.

(33)

Beispiel für eine Schaltfunktion (1)

f(x1, x2, x3) soll das Paritätsbit (ungerade Parität) für x1, x2, x3 berechnen. Ungerade Parität bedeutet, dass die Gesamtzahl der 1-Bits inklusive f ungerade sein muss.

P aritä ts - sch a ltw erk x 1

x 2 x 3

f

Am Eingang liegt ein dreistelliger Boole'scher Vektor an.

Der Ausgang f soll genau dann = 1 sein, wenn null oder zwei Eingänge = 1 sind.

f(x1,x2,x3) = (¬x1 ∧ ¬x2 ∧ ¬x3) ∨ (x1 ∧ x2 ∧ ¬x3)

∨ ( x1 ∧ ¬ x2 ∧ x3) ∨(¬x1 ∧ x2 ∧ x3)

(34)

Beispiel für eine Schaltfunktion (2)

Wertetabelle für f(x1, x2, x3)

x1 x2 x3 (¬x1∧¬ x2∧¬ x3) (x1 x2∧¬ x3) (x1∧¬ x2 x3) (¬x1 x2 x3) f 0 0 0

0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

(35)

Expertensysteme, Logik-Programmierung

Das logische Schließen gemäß den Regeln der Aussa- genlogik wird maschinell durchgeführt.

Fundamentale Aussagen heißen Fakten.

Beispiel

F:= 'XY hat im Vorjahr gespartes Geld verbraucht'.

Implikationen heißen Regeln.

Beispiel

R1: 'Wenn XY genug Geld gespart hat, dann kauft er sich ein Auto'

(36)

Expertensystem – Beispiel

Fakten

A: Albert ist männlich.

B: Edward ist männlich.

C: Alice ist weiblich.

D: Victoria ist weiblich.

E: Edward's Eltern sind Victoria und Albert.

F: Alice's Eltern sind Victoria und Albert.

Regel für "Schwester"

(X ist weiblich) ∧ (X hat Mutter M und Vater V)

∧ (Y hat Mutter M und Vater V)

→ X ist Schwester von Y.

Das Expertensystem kann jetzt maschinell zeigen, dass Alice eine Schwester von Edward ist.

(37)

Prolog – Beispiel

male (albert)

male (edward) female (alice) female (victoria)

parents (edward, victoria, albert) parents (alice, victoria, albert)

sister_of (X, Y):-

female (X),

parents (X, M, F), parents (Y, M, F).

?- sister_of (alice, edward).

YES.

?- sister_of (alice, Y).

(38)

4.2 Bäume

4.2.1 Definition des Baumes

Ein Baum besteht aus einer nichtleeren Menge von Knoten und einer Menge von Kanten. Jede Kante ver- bindet genau zwei Knoten.

Die Knoten (nodes) enthalten Datenelemente.

Die Kanten (edges) beschreiben Beziehungen zwischen den Datenelementen.

Die hierarchisch höchste Ebene hat genau einen Kno- ten, die Wurzel des Baumes (root).

Die Knoten auf der hierarchisch tiefsten Ebene heißen Blätter des Baumes (leaves).

Ein Pfad ist eine Liste von unterschiedlichen Knoten, in der aufeinanderfolgende Knoten durch Kanten verbun- den sind.

Zwischen der Wurzel des Baumes und jedem ande-

(39)

Weitere Baum-Terminologie

Jeder Knoten (außer der Wurzel) hat genau einen El- ternknoten (Vaterknoten).

Die mit ihm verbundenen Knoten sind seine Kinder oder Söhne.

Ein Knoten, der keine Söhne hat, heißt Blattknoten.

Jeder Knoten ist die Wurzel eines Unterbaumes.

Ein Baum heißt vom Rang d, wenn jeder Knoten au- ßer den Blattknoten maximal d Söhne hat.

Jedem Knoten kann ein Ebene zugeordnet werden.

Die Ebene ist definiert als die Anzahl der Knoten auf dem Pfad zur Wurzel.

Die Höhe eines Baumes ist Anzahl der Ebenen.

Die Pfadlänge eines Baumes ist die Summe aller Pfadlängen von einem Knoten zur Wurzel.

Ein vollständiger Baum ist ein Baum, bei dem alle Ebenen bis auf die unterste vollständig besetzt sind.

Anmerkung

In der Literatur findet sich auch eine abweichende Defi- nition von Rang: Ein Baum heißt vom Rang d, wenn je-

(40)

Definition 2 des Baumes (rekursiv)

(1) Der aus einem einzigen Knoten bestehende Baum ist ein Baum des Ranges d für beliebiges d.

(2) Sind t1,...., td beliebige Bäume des Ranges d, so er- hält man einen (weiteren) Baum des Ranges d, indem man die Wurzeln von t1,...., td zu Söhnen einer neuge- schaffenen Wurzel w macht. ti (1 ≤ i ≤ d) heißt i-ter Teil- baum des neuen Baumes.

w

t t t

1 2 d

(41)

Beispiel für einen allgemeinen Baum

E

A R E

T

P L E

M S

A

(42)

Programmtechnische Darstellung von Bäumen

Problem: Jeder Knoten kann eine andere Anzahl von Kindern haben, maximal d. Deshalb können die Refe- renzen (Zeiger) auf die Kinder nicht effizient im Eltern- knoten gespeichert werden.

Lösung 1: Parent-link-Darstellung

In jedem Knoten wird nur der Zeiger auf seinen Eltern- knoten gespeichert.

Ist in der Regel nur sinnvoll, wenn der Baum nur von unten nach oben durchlaufen werden soll.

Lösung 2: Listendarstellung der Kinder

Jeder Knoten hat zwei Zeiger:

einen zu seinem ganz linken Kind, falls es ein sol- ches gibt

einen zu seinem rechten Bruder oder zum Eltern- knoten, falls er keinen rechten Bruder hat

(43)

4.2.2 Binärbäume

Definition

Ein Baum heißt Binärbaum genau dann, wenn er vom Rang 2 ist, d.h. wenn jeder Elternknoten maximal zwei Söhne hat.

Anmerkung

Im Gegensatz zu allgemeinen Bäumen sind Binärbäume maschinenintern leicht darzustellen: Es werden pro

Knoten zwei Referenzen (Zeiger) fest eingerichtet.

(44)

Ordnungen von Bäumen

Eine Ordnung ist eine Abbildung eines Baumes auf eine lineare Struktur ("Plattklopfen des Baumes").

• Man bildet eine eindeutigen Knotenfolge derart, dass jeder Knoten genau einmal darin vorkommt.

• Man unterscheidet drei wichtige Ordnungen:

Preorder

Inorder

Postorder

Die “order“ gibt an, an welcher Stelle die Wurzel im Be- zug zum linken und rechten Unterbaum vorkommen soll.

Die Definition der “order“ ist rekursiv.

Gelegentlich wird auch die "level order" als vierte Ord- nung genannt, bei der die einzelnen Ebenen des Bau- mes von oben nach unten, von links nach rechts traver- siert werden.

(45)

Preorder

Regel: 1. Wurzel

2. Linker Unterbaum 3. Rechter Unterbaum

1

2 5

3 4

(46)

Inorder

Regel: 1. Linker Unterbaum

2. Wurzel

3. Rechter Unterbaum

1

2 5

3

4 A

C E

B D

(47)

Postorder

Regel: 1. Linker Unterbaum

2. Rechter Unterbaum 3. Wurzel

1

5

2

3 4

A

C E

B D

(48)

Level – Order

Regel: 1. Alle Knoten einer Ebene werden von links nach rechts besucht.

2. Alle Ebenen werden von oben nach unten behandelt.

1

5

2 3

4

A

C E

B D

(49)

Binärbaum, Beispiel 1: Operatorbaum

5 * (((9+8) * (4*6))+7)

5

7

4 6

9 8

+ +

*

*

*

Der Operatorbaum dient zur maschineninternen Dar- stellung von arithmetischen Ausdrücken. Eine Abarbei- tung des Baumes in Postorder berechnet den Wert des

(50)

Binärbaum, Beispiel 2: Suchbaum

Zwei alphabetisch sortierte Binärbäume

Jochen

Franz Karin

Jochen

Franz Karin

Bernd Jim Sepp

Maria a)

b)

(51)

Binärbäume als Suchbäume

Idee

Verwendung einer Datenstruktur, in der das Suchen, Einfügen und Löschen eines beliebigen Datensatzes relativ schnell geht (schneller als mit größenordnungs- mäßig N Zugriffen).

Lösung

Binärbaum als Suchbaum Ordnungsregel

Wert

Jeder Knoten im Baum entspricht einem Datensatz.

(52)

Algorithmus Suche-im-Binärbaum

Suche im Binärbaum nach einem Knoten, dessen Schlüssel gleich dem Suchschlüssel ist.

Beginne mit der Wurzel

Falls Suchschlüssel < Schlüssel des aktuellen Knotens:

Suche im linken Teilbaum weiter Falls Suchschlüssel = Schlüssel des

aktuellen Knotens:

fertig

Falls Suchschlüssel > Schlüssel des aktuellen Knotens:

Suche im rechten Teilbaum weiter

(53)

Einfügen eines neuen Knotens in einen binären Suchbaum

Suche den Schlüssel des neuen Knotens (erfolglos) im Baum. Das bestimmt die Einfügestelle, d.h. den werdenden Vater.

Setze den Zeiger des werdenden Vaters auf den neu- en Knoten. Dieser wird stets ein neues Blatt sein.

(54)

Löschen im Binärbaum:

leichte Fälle, schwere Fälle

Leicht: Löschen von L, A. Schwer: Löschen von E

E

A

C

R H

N P M

L

A

C

R H

N P M

L

(55)

Löschen eines Knotens in einem binären Suchbaum (1)

• Knoten hat keine Kinder ⇒ entferne ihn

• Knoten hat nur ein Kind ⇒ ersetze ihn durch sein Kind

• Knoten hat zwei Kinder, von denen eines selbst keine Kinder hat

⇒ ersetze ihn durch dieses Kind

• Knoten hat zwei Kinder, die selbst beide ebenfalls Kinder haben

⇒ ersetze ihn durch den Knoten mit dem nächst höhe- ren Schlüssel aus dem rechten Teilbaum. Dazu muss in der Regel der rechte Teilbaum umorganisiert wer- den.

(56)

Beispiele zur Gestalt von Binärbäumen (1)

Schlüsselmenge: SORTING 1. Vollständiger Binärbaum

O I

G N R T

S

Mittlere Anzahl von Vergleichen: 17/7 = 2,428 im Mit- tel

2. Ein natürlich gewachsener Binärbaum

S

T R

O I

G N

1x 1 Vergleich

2x 2 Vergleiche 19/7 = 2,714 im Mittel 2x 3 Vergleiche

(57)

Beispiele zur Gestalt von Binärbäumen (2)

3. Der ungünstigste Fall

G

I

N

O R

S

T

1x 1 Vergleich 1x 2 Vergleiche 1x 3 Vergleiche 1x 4 Vergleiche 1x 5 Vergleiche 1x 6 Vergleiche 1x 7 Vergleiche

(58)

"Gute" und "schlechte" Binärbäume

Für jeden Knoten im Baum ist die Anzahl der Verglei- che, die zum Finden benötigt wird, gleich seinem Ab- stand von der Wurzel. Die Summe dieser Abstände über alle Knoten heißt die innere Pfadlänge des Bau- mes.

Die mittlere Pfadlänge in einem Baum ergibt sich aus (innere Pfadlänge)/N. Sie kann rekursiv berechnet wer- den als

C1=1 für einen Baum mit einem Knoten

CN=N+Ν1 (C )

k 1

1 -

k N k

N

C

+

(59)

Herleitung der mittleren Pfadlänge

Der betrachtete Baum aus N Knoten besteht aus der Wurzel, deren Schlüssel zuerst eingefügt wurde und der k-größte des Baumes ist, sowie dem linken und dem rechten Unterbaum der Wurzel, die k-1 bzw. N-k Knoten haben:

W

k -1

K noten

N -k K no ten

Die Wurzel fügt zu jeder anderen Pfadlänge 1 hinzu, für N-1 Restknoten also N-1. Bei zufällig eingefügten

Schlüsseln ist die Wahrscheinlichkeit für jedes k gleich 1/N. Dazu kommt noch ein einziger Vergleich, falls die Wurzel selbst gesucht wird.

(60)

Mittlere Suchpfadlänge im vollständigen Binärbaum

Ein vollständiger Binärbaum der Höhe h hat N = 2h-1 Knoten. Die mittlere Suchpfadlänge ist wieder die innere Pfadlänge dividiert durch N. Es kommen im Baum vor:

1x 1 Vergleich 2x 2 Vergleiche 4x 3 Vergleiche

8x 4 Vergleiche usw.

Insgesamt ist die mittlere Pfadlänge also:

CNmin = 1 Ν i=0

h-1(i+1)*2i ; mit N = 2h-1:

= 1

2 - 1h [(h-1) * 2h + 1]

Wegen h = log2 (N+1) ist also

CNmin =

1 2

1

h * [(h-1) (2h-1)+h]

= log2 (N+1)+ log (N + 1)2

Ν - 1

CNmin ist also in der Größenordnung von log2(N)

(61)

Vergleich "natürlicher" Binärbaum und vollständiger Binärbaum

Die mittlere Suchpfadlänge im vollständigen Binärbaum ist um ca. 38% kürzer als im zufällig gewachsenen Bi- närbaum.

"Entartete" Binärbäume können noch wesentlich längere Suchpfade haben. Es sind dann bis zu größenord-

nungsmäßig N Vergleiche erforderlich.

Problem 1

Es ist nicht immer N = 2i-1, daher kann nicht immer ein vollständiger Binärbaum aufgebaut werden.

Problem 2

Eine vollständige Balancierung des Baumes erfordert erheblichen Aufwand bei Änderungsoperationen.

Man definiert daher spezielle Varianten von Binärbäu- men, die einen guten Kompromiss zwischen effizientem

(62)

4.2.3 Mehrwegbäume

Motivation

Die Länge eines Suchpfades im Baum ist proportional zur Höhe. Verwendet man statt Binärbäumen Mehr- wegbäume, also Bäume von Rang m > 2, so ist die Hö- he bei gleicher Knotenzahl N geringer und damit die Länge der Suchpfade kürzer. Dies ist bei der Speiche- rung auf externen Speichern (Magnetplatten) besonders wichtig, da so die Anzahl der Plattenzugriffe minimiert werden kann.

Beispiel

Ein Binärbaum für 1000 Knoten hat 10 Ebenen, ein Baum vom Rang 10 für 1000 Knoten hat 4 Ebenen.

(63)

Suchbaum vom Rang 10

In jedem Knoten des Suchbaumes speichert man eine Liste der Form <z1,s1,z2,s2, ... sm-1,zm> , wobei die zi Zei- ger (Verweise) sind und die si Suchschlüssel. Wie beim Binärbaum verweisen die linken Zeiger jeweils auf klei- nere Werte, die rechten Zeiger auf größere Werte.

Im folgenden werden wir stets annehmen, dass alle ge- speicherten Schlüssel voneinander verschieden sind (es gibt keine Duplikate).

Beispiel

Suchbaum vom Rang 10. Jeder Knoten speichert 9 Schlüssel und 10 Zeiger.

(64)

B-Bäume

Definition

Ein B-Baum der Ordnung m ist ein Baum mit folgenden Eigenschaften:

8. Alle Blätter haben die gleiche Tiefe.

9. Jeder Knoten mit i Söhnen hat i-1 Schlüssel.

10. Jeder Knoten mit Ausnahme der Wurzel und der Blätter hat wenigstens m/2 Söhne.

11. Die Wurzel hat wenigstens 2 Söhne.

12. Jeder Knoten hat höchstens m Söhne.

(65)

Anzahl der Schlüssel in einem B-Baum (1)

Um die Anzahl der in einem B-Baum mit gegebener Hö- he h gespeicherten Schlüssel abzuschätzen, genügt es also, die Anzahl seiner Blätter abzuschätzen.

Ein B-Baum der Ordnung m mit gegebener Höhe h hat die minimale Blattzahl, wenn seine Wurzel nur 2 und jeder andere innere Knoten nur m/2 Söhne hat. Daher ist die minimale Blattzahl

Nmin = 2 ⋅ m2h-1.

Die Blattzahl wird maximal, wenn jeder innere Knoten die maximal mögliche Anzahl m von Söhnen hat. Daher ist die maximale Blattzahl

Nmax = mh.

Ist umgekehrt ein B-Baum mit N Schlüsseln gegeben, so hat er (N+1) Blätter, was man durch Induktion zeigen kann. Hat der Baum die Höhe h, so muss gelten:

Nmin = 2 ⋅ m2h-1 ≤ ( N+1) ≤ mh = Nmax

(66)

Anzahl der Schlüssel in einem B-Baum (2)

Für die Höhe h ergibt sich:

h ≤ 1+logm

2





 + 2

1

N und h ≥ logm(N+1).

Wir haben also wieder die für balancierte Bäume typi- sche Eigenschaft, dass die Höhe eines B-Baumes log- arithmisch in der Anzahl der gespeicherten Schlüssel beschränkt ist. Da die Ordnung m eines B-Baumes in der Praxis etwa bei 100 bis 200 liegt, sind B-Bäume be- sonders niedrig. Ist etwa m = 199, so haben B-Bäume mit bis zu 1999999 Schlüsseln höchstens die Höhe 4.

(67)

B-Bäume und externe Speicher

Besonders häufig werden B-Bäume zur Organisation von großen Datenmengen auf externen Speichern ein- gesetzt, typischerweise auf Magnetplatten. Die Schlüs- sel im Baum entsprechen Datenfeldern der Anwendung, zum Beispiel dem Namensfeld eines Datensatzes “Per- sonalstammsatz“.

Ein Knoten im Baum entspricht einer Seite auf der Platte ( = Block fester Größe; Einheit des Transfers im Da-

teisystem; typischerweise 512 Byte bis 4 Mbyte). Jeder Zugriff auf einen Knoten des Baumes entspricht also ei- nem Ein-Ausgabe-Vorgang auf der Magnetplatte.

(68)

Suche in einem B-Baum

Der Algorithmus zur Suche eines Schlüssels in einem B- Baum ergibt sich durch sinngemäße Erweiterung des Suchalgorithmus für Binärbäume.

Die Suche innerhalb eines Knotens im B-Baum kann sequentiell erfolgen, aber auch durch binäre Suche, da die Schlüsselfelder sortiert sind und in der Regel feste Länge haben. Im Vergleich zu den Kosten eines Plat- tenzugriffs sind diese internen Suchkosten vernachläs- sigbar.

(69)

Einfügen in einen B-Baum

1. Suche im Baum nach dem neu einzufügenden Schlüssel. Die Suche endet erfolglos bei einem Blattknoten.

2. Falls der Knoten noch nicht die maximale Anzahl von m-1 Schlüsseln hat, füge den neuen Schlüssel ein.

3. Falls der Knoten bereits voll ist, zerteile ihn in zwei Knoten und ziehe den Teilerschlüssel in den Vater des aktuellen Knotens hoch. Die beiden entstande- nen Teilknoten haben je (m-1)/2 Schlüssel. Füge den neuen Schlüssel dann an der richtigen Stelle ein.

4. Falls der Teilerschlüssel in den Vater hochgezogen wurde, mache weiter mit Schritt 2 für diesen Vater (rekursiv).

(70)

Löschen aus einem B-Baum

Zum Entfernen eines Schlüssels aus einem B-Baum der Ordnung m geht man umgekehrt vor. Man sucht den Schlüssel im Baum, entfernt ihn und verschmilzt gege- benenfalls einen Knoten mit einem Bruder, wenn er

nach Entfernen eines Schlüssels "unterläuft", also weni- ger als m/2-1 Schlüssel enthält.

Ein Unterlauf der Wurzel, die ja nur einen Schlüssel ge- speichert haben muss, bedeutet natürlich, dass die

Wurzel keinen Schlüssel mehr speichert und nur noch einen einzigen Sohn hat. Man kann dann die Wurzel entfernen und den einzigen Sohn zur neuen Wurzel machen. Der Baum ist um eine Ebene niedriger gewor- den.

(71)

B-Baum-Beispiel

Gegeben sei ein B-Baum des Ranges 3 wie folgt:

19 43

16 26 40 60

7 15 18 20 30 36 42 50 58 62 65

69

. . .

D

E

G H I

M N O P Q R S

(72)

Einfügen von Schlüsseln in den B-Baum (1)

Einfügen des Schlüssels 22 20

O O

22

+22 20

Einfügen des Schlüssels 41

42

Q Q

42

+41 41

Einfügen der Schlüssels 59

60

50 58 I

R

S

+ 59 b

58

50 I

R

S b

59 60

R

(73)

Einfügen von Schlüsseln in den B-Baum (2)

Einfügen des Schlüssels 57

50

R R

57

+57 50

R

57 +54

50 50

R

57 R

+ 54 in den Vater f

58 I

R S

60

R

+ 54 54 60 + 58 in den

Vater b I

I

R R R S

19 E

43 + 58 19 58 + 43 in den

Vater a E

E

(74)

Einfügen von Schlüsseln in den B-Baum (3)

69 + 43 43

D D

E F E F

69

E

Übungsaufgabe

Fügen Sie weiterhin die Schlüssel 33, 75, 124, 122 und 123 in den B-Baum ein!

(75)

Löschen von Schlüsseln aus dem B-Baum (1)

Algorithmus Lösche-Schlüssel

Schlüssel suchen

Ist es ein Blattknoten?

Finde den kleinsten Schlüssel im Teilbaum, auf den der Zeiger rechts vom

Schlüssel verweist

Vertausche diesen Schlüssel mit dem zu löschenden Schlüssel, dieser wandert in das Blatt

Hat der Blattknoten noch genügend Schlüssel?

Lösche den Schlüssel aus dem Blattknoten

ja nein

ja

nein

Fertig

(76)

Löschen von Schlüsseln aus dem B-Baum (2)

. . .

Fortsetzung von vorheriger Seite

Ist der Knoten leer?

Verschmelze Nachbarknoten und rotiere die Schlüssel

Hat der linke oder rechte Bruder hinreichend wenig Schlüssel zum Verschmelzen

mit diesem Blattknoten?

Verschmelze die Brüder zu einem Blattknoten

Verschiebe den kleinsten Schlüssel vom Bruder in den Vater und einen anderen Schlüssel vom Vater in diesen Blattknoten

Fertig

ja nein

nein

nein

ja

Fertig

(77)

Lösch-Beispiel (1)

Anmerkung: Es wurden inzwischen auch die Schlüssel der Übungsaufgabe eingefügt.

43

19 58

69

. . .

D

E E

33

26 54 60

16 40

57 59 62 65

7 15 18 20 30 36 41 42

M N O P P Q R R S

22 50

R

G H H I I

(78)

Lösch-Beispiel (2)

Löschen des Schlüssels 65

S

65 - 65

62 62

S Löschen des Schlüssels 7

M

15 - 7

7 15

M

Löschen des Schlüssels 40

40 H

- 40 41

36 H

36 42 P

41 Q

42

P Q

(79)

Lösch-Beispiel (3)

Löschen des Schlüssels 16

19 E

26 16

18 20 30

N O P

15 M

G H

33

22

e'

- 16 33

E

26 19

18 20 30

O P

15 M

GH H

22

e'

(80)

B-Bäume, Komplexität der Operationen

Ein B-Baum der Ordnung m mit N Schlüsseln hat maxi- mal die Höhe log m

2



(N+1). Also gilt:

Die Suche berührt je einen Knoten pro Ebene, im schlimmsten Fall also log m

2



(N+1) Knoten.

Das Einfügen muß maximal pro Ebene ein Splitting durchführen; zur Suche kommen also im schlimmsten Fall nochmals größenordnungsmäßig log m

2



(N+1) Split- Operationen hinzu.

Das Löschen muß zusätzlich zur Suche maximal in der Größenordnung von log m

2



(N+1) Verschmelzungen durchführen.

Fazit

Alle Operationen im B-Baum erfordern größenord- nungsmäßig log m

2



(N+1) Operationen!

(81)

Speicherplatzausnutzung von B-Bäumen (1)

Erwartungswerte für die in einem Knoten gespeicherte Schlüsselzahl eines B-Baumes vom Rang m und somit für die Speicherplatzausnutzung kann man analytisch berechnen. Es ergibt sich, dass man (unabhängig von m) eine Speicherplatzausnutzung von ln2 = 69% er- warten kann, wenn man eine zufällig gewählte Folge von N Schlüsseln in den anfangs leeren B-Baum des Ranges m einfügt; die Knoten des entstehenden B- Baumes sind also nur zu gut 2/3 gefüllt.

Fügt man Schlüssel in auf- oder absteigend sortierter Reihenfolge in den anfangs leeren B-Baum ein, entste- hen B-Bäume mit besonders schlechter Speicher-

platzausnutzung. Die Knoten sind (in allen Fällen, in de- nenN = 2⋅m2



h ist) minimal gefüllt, d.h. die Wurzel hat nur ei- nen und jeder andere innere Knoten nur m2-1 Schlüssel.

(82)

Speicherplatzausnutzung von B-Bäumen (2)

Es gibt verschiedene Vorschläge in der Literatur, diese schlechte Speicherplatzausnutzung von B-Bäumen zu vermeiden. Man kann zunächst die unmittelbaren oder gar alle Brüder eines überlaufenden Knotens daraufhin untersuchen, ob man ihnen nicht Schlüssel abgeben kann, bevor man den Knoten teilt und den mittleren Schlüssel und damit eventuell auch das Überlaufpro- blem auf das nächsthöhere Niveau verschiebt.

Andere Vorschläge zielen darauf ab, für eine Folge be- reits sortierter Schlüssel B-Bäume nicht durch wieder- holtes Einfügen in den anfangs leeren Baum zu erzeu- gen, sondern möglichst optimale Anfangsstrukturen zu erzeugen in der Hoffnung, dass nachfolgende Einfügun- gen oder Entfernungen von Schlüsseln den Baum höch- stens allmählich, d.h. für eine sehr große Zahl solcher Operationen, stärker vom Optimum abweichen lassen.

(83)

4.3 Endliche Automaten

Ein endlicher Automat ist ein mathematisches Modell eines Systems mit Ein- und Ausgaben. Ein solches Sy- stem befindet sich immer in einem aus einer endlichen Anzahl möglicher interner Zustände.

Beispiele

Ein Register mit n Binärstellen befindet sich in einem von 2n möglichen Zuständen.

Ein Zigarettenautomat merkt sich die bisher einge- worfene Geldsumme als internen Zustand.

Lexikalische Analysatoren von Compilern kann man als endliche Automaten modellieren.

Auch ein Computer ist ein endlicher Automat. Aller- dings ist hier das Modell wegen der großen Anzahl möglicher interner Zustände nicht besonders hilfreich.

(84)

4.3.1 Grundbegriffe

Ein endlicher Automat ist ein Fünftupel )

, , , ,

(Z E z0 F

A = δ mit

Z = Menge der Zustände

E = Menge der Eingabezeichen Z

E Z × →

δ : Übergangsfunktion Z

z0 Anfangszustand Z

F Menge der Endzustände.

Da die Zustandsübergangsfunktion δ ein Paar (z,a) auf genau einen Folgezustand abbildet, sprechen wir auch von einem deterministischen endlichen Automaten, abgekürzt DEA.

(85)

Diagrammdarstellung

In der Regel veranschaulicht man endliche Automaten in Form von Diagrammen. Kreise stellen die Zustände dar, Pfeile zwischen den Kreisen repräsentieren die

Übergänge (Transitionen). Jeder Übergang wird mit dem Eingabezeichen beschriftet, das ihn auslöst.

(86)

Beispiel 1: Zustandsdiagramm für einen endlichen Automaten

Der Startzustand ist markiert. Der Doppelkreis bezeich- net den Endzustand.

Man überlege: Welche speziellen Folgen von Nullen

(87)

Zustandstabellen

Statt durch Graphen können Automaten auch durch Zu- standstabellen beschrieben werden.

Wir betrachten wieder den Automaten aus Beispiel 1:

) ,

, ,

(Z E z0,F

M = δ

{

z0,z1,z2,z3

}

Z =

{ }

0,1

=

E

{ }

z0

F =

Eingabe Ausgangs-

zustand 0 1

z0 z2 z1

z1 z3 z0

z2 z0 z3

z3 z1 z2

(88)

Erweiterung für Zeichenketten

Häufig möchte man Automaten aufschreiben, die nicht nur einzelne Zeichen, sondern ganze Zeichenketten als Eingabe akzeptieren. Man erweitert dazu die Über-

gangsfunktion für Zeichenketten wie folgt:

Z E

Z × '→

δ

: , E' = Menge der Eingabe-Zeichenketten z

z, ) = (

ε

δ

, ε = leere Zeichenkette

) ), , ( ( )

,

( z wa δ δ z w a

δ

=

, w Zeichenkette (rekursive Definition) In Zukunft schreiben wir auch für Zeichenketten nur noch δ statt δ

.

Wir sagen: Ein Zeichenkette

s

wird vom Automaten ak- zeptiert, wenn δ(z0,s)∈F , wenn also

s

einen Pfad von Transitionen beschreibt, der mit dem Startzustand z0

beginnt und in einem Endzustand des Automaten endet.

(89)

Endliche Automaten und Sprachen

Eine (formale) Sprache L ist eine Menge von zulässigen Zeichenketten. Die von einem Automaten M akzeptierte Sprache ist dann

} )

, (

|' {

)

(M x E z0 x F

L = ∈ δ ∈ .

(90)

4.3.2 Nichtdeterministische endliche Automa- ten

Wenn wir in der Zustandsübergangsfunktion δ vorse- hen, dass für ein Eingabesymbol a mehr als ein Folge- zustand möglich ist, so sprechen wir von einem nicht- deterministischen endlichen Automaten (NEA).

δ ist dann eine Abbildung auf Mengen von Zuständen.

Bei einer Eingabe von a wird zufällig einer der mögli- chen Folgezustände ausgewählt.

Formal ist ein NEA ein Quintupel

(

Z,E,δ,z0,F

)

, das ge- nauso wie beim DEA definiert ist, nur gilt nun für δ:

E z

Z 2

: × →

δ

2Z ist die Potenzmenge, also die Menge aller Teilmen- gen von Z. δ ist jetzt eine Abbildung von Z x A auf 2Z. Das heißt, ein Eingabezeichen kann zu keinem, einem oder mehreren Folgezuständen des Automaten führen.

Wir werden sehen, dass zu jedem NEA ein DEA exi- stiert, der die gleiche Sprache akzeptiert. Natürlich ist auch jeder DEA ein NEA.

(91)

Beispiel 2: ein nichtdeterministischer endlicher Automat (NEA)

Eine Folge von Eigabezeichen wird akzeptiert, wenn es irgendeinen Pfad vom Startzustand zu einem Endzu- stand gibt, dessen Transitionsfolge der Zeichenkette

(92)

Zustandstabelle zum NEA aus Beispiel 2

Eingaben Ausgangs-

Zustand 0 1

z0

{

z0, z3

} {

z0, z1

}

z1

{ }

z2

z2

{ }

z2

{ }

z2

z3

{ }

z4z4

{ }

z4

{ }

z4

Erweiterung von δ für Zeichenketten als Eingabe Eine Zeichenkette s = a1a2a3...an wird vom NEA (analog zum DEA) akzeptiert, wenn es irgendeine Transitions- folge vom Startzustand z0 aus gibt, die in einem Endzu- stand aus F endet.

( ) { }

z ε = z

δ ,

{

| ( , ): ( , )

}

) ,

(z wa p r δ z w p δ r a

δ = ∃ ∈ ∈

In Zukunft schreiben wir auch hier δ statt δ .

(93)

Die Äquivalenz von NEA und DEA

Um die Äquivalenz von NEA und DEA zu zeigen, kon- struieren wir zu einem beliebigen NEA einen DEA, der die gleiche Sprache akzeptiert.

Sei M =

(

Z,E,δ,z0,F

)

ein NEA. Wir definieren dann ei- nen DEA wie folgt:

Z′= 2z (die Potenzmenge von Z) E

E′ =

{

}

′ = z z Z z F F

Z', die Zustandsmenge des äquivalenten DEA, ist die Menge aller Teilmengen des NEA; wir repräsentieren al- so jede mögliche Teilmenge von Zuständen des NEA durch einen eigenen Zustand im DEA. Die Elemente aus Z' bezeichnen wir mit

[

z1z2z3...zi

]

, z1,z2,...ziZ .

[ ]

0

0 z

z′ =

[ ]

(

z1...zi ,a

)

=

[

p1,..., pi

]

δ′ im DEA genau dann, wenn

{ }

(

z1,...,zi ,a

) {

= p1,..., pi

}

δ im NEA

Gemäß Konstruktion ergibt sich dabei auch:

(

zow

)

F

′ ,

δ im DEA genau dann, wenn

(94)

Beispiel 3: Äquivalenz von NEA und DEA

Man konstruiere zu dem folgenden NEA den zugehöri- gen DEA:

(95)

4.3.3 Endliche Automaten mit spontanen Übergängen

Bei der Programmentwicklung ist der Einsatz wieder- verwendbarer Komponenten eine wichtige Strategie.

Man kann viel Arbeit sparen, wenn man ein Programm aus bereits vorhandenen Unterprogrammen (Modulen) zusammensetzt.

Auch endliche Automaten kann man zu größeren, kom- plizierteren kombinieren. Diesen Zusammenbau kann man dadurch vereinfachen, daß man erlaubt, daß ein NEA auch ohne Eingabe seinen Zustand wechselt.

Um dies zu ermöglichen, definieren wir die Zu-

standsübergangsfunktion δ auch für die leere Zeichen- kette ε. Das bedeutet, dass der Automat spontane

Übergänge ausführen kann.

Eine Zeichenkette wird akzeptiert, wenn es ausgehend vom Startzustand einen Pfad zu einem Endzustand gibt, der auch mit

ε

markierte Kanten enthalten kann.

(96)

Beispiel 4: Endlicher Automat mit ε -Übergängen

z0 z1

0 1 2

ε

z2 ε

Der Automat akzeptiert die Sprache, deren Worte aus (möglicherweise leeren) Folgen von Nullen, gefolgt von (möglicherweise leeren) Folgen von Einsen, gefolgt von (möglicherweise leeren) Folgen von Zweien bestehen.

(97)

Definition NEA mit ε -Übergängen

Ein NEA mit ε-Übergängen ist ein Quintupel

(

Z,E,δ,z0,F

)

,

dessen Komponenten wie üblich definiert sind, außer dass δ eine Abbildung von Z ×

(

E

{ }

ε

)

nach 2z ist.

( )

z,a

δ besteht aus den Zuständen z, für die eine mit a markierte Transition von z existiert, wobei a aus E

{ }

ε

ist.

Zustandstabelle für Beispiel 4

Eingabe Ausgangs-

zustand 0 1 2 ε

z0

{ }

z0 ∅ ∅

{ }

z1

z1

{ }

z1

{ }

z2

z2 ∅ ∅

{ }

z2

(98)

Die ε -Hülle

Definition

Die

ε

-Hülle eines Zustands z (ε-closure ) ist die Menge aller Folgezustände von z, die ausschließlich durch ε-Übergänge erreicht werden können.

In Beispiel 4 ist die ε-Hülle von z0 die Menge

{

z0,z1,z2

}

. z0 ist in dieser Menge, da der Pfad von z0 nach z0 keine Kanten besitzt und damit trivialerweise unsere Bedin- gung erfüllt.

z1 ist enthalten, weil der Pfad (z0,z1) nur ε-Übergänge enthält.

z2 ist enthalten, weil (z0, z1, z2) nur mit ε markierte Kanten enthält.

(99)

Die Berechnung der ε -Hülle

Wir geben einen rekursiven Algorithmus zur Berech- nung der

ε

-Hülle an. Sei m eine Zustandsmenge. Dann berechnen wir

ε

-Hülle(m) wie folgt:

Algorithmus

ε

-Hülle(m)

Falls m ==

dann Ergebnismenge = sonst

Wähle ein zm

Berechne m1 =

{

z| z=δ(z,ε)

}

Ergebnismenge = Ergebnismenge

m1

ε-Hülle(m1\m)

ε-Hülle(m\{z})

(100)

Beispiel zur Berechung der ε -Hülle

1 2

ε

1 3

4 5

ε ε

ε

ε

ε-Hülle({1}) = {1,2,4,5}

(101)

Die Äquivalenz von NEA mit und ohne ε -Übergänge

Die ε-Übergänge sind für die Kombination von NEAs zwar hilfreich, sie erhöhen aber nicht die prinzipiellen Fähigkeiten dieser Automaten. Um dies zu beweisen, zeigt man, dass man zu jedem NEA mit ε-Übergängen einen Automaten ohne ε-Übergänge konstruieren kann, der die gleiche Sprache akzeptiert.

Auf die Details der Konstruktion des NEA ohne ε-Über- gänge und den Äquivalenzbeweis sei hier verzichtet.

Referenzen

ÄHNLICHE DOKUMENTE

Möglich ist die Reduktion bei der Temperatur des elektrischen Ofens, aber bei dieser Temperatur verbindet sich überschüs—.. siger Kohlenstoff mit dem Metall zu einem Karbid der

gibt eine kristallinische Masse, die, da sie sich sehr langsam bildet, viel härter ist als die von gewöhnlichem Gips ge- lieferte.. Der natürliche Anhydrit nimmt kein

In dieser Aufgabe betrachten wir eine spezielle Erweiterung der bereits bekannten Schr¨ odingergleichung, bei der der Hamiltonoperator zus¨ atzlich eine Matrixstruktur und

Die gerade Linie wird dann gleichsam als Telegraphenbureau dienen, auf dem man alle geometrischen Zust¨ande in der Ebene erfahren und neue Combinationen in ihr

Ein monopolistischer Anbieter erreicht bei einer Absatzmenge von 25 ME einen Preis von 297.50 GE/ME. Bei Stillstand der Produktion betragen die Gesamtkosten 400 GE und die

Klausur zur Analysis (24-AN) 2. Dann besitzt ϕ genau einen Fixpunkt, d.h. Entscheiden Sie, ob die folgenden Aussagen wahr oder falsch sind.. Also nimmt f auf der Menge Minimum

Wieviele Aufkleber ben¨ otigen Sie damit durchschnittlich f¨ ur zwei Bilder im Album. • In ihrem Heft befinden sich bereits m

In dem Originalartikel Systems of Conservation Laws wird eine andere Voraussetzung angegeben.. Lesen Sie den entspre- chenden Teil des Artikels und geben Sie die dort