[FoSAP] Minimierungsalgorithmus

[FoSAP] Formale Systeme, Automaten, Prozesse
[BuK] Berechenbarkeit und Komplexität
[MaLo] Mathematische Logik

Minimierungsalgorithmus

Beitragvon jaxxo » 26.07.07 17:15

Hallo zusammen,

ich habe ein paar Fragen zum Minimierungsalgorithmus.
Beim table filling markiere ich ja zunächst die Zustandspaare, die EINEN Endzustand beinhalten.

Was bedeutet in Definition 6.4.18:
WHILE es existiert ein unmarkiertes Paar (q,q') es existiert ein a element Sigma (also ein Terminal), sodass (Übergangsfunktion(q, a), Übergangsfunktion(q',a)) markiert ist DO wähle ein solches Paar und markiere es.

Da stehe ich etwas auf dem schlauch. bedeutet die definition, dass wenn die einzelnen Elemente eines unmarkierten paares beide mit der selben transition auf ein markiertes paar führen, wird dieses paar auch markiert?
aus der tabelle wird dann der minimalautomat zusammen gesetzt, in dem die unmarkierten paare zusammen gesetzt werden.
nun versteh ich aber die lösung von 8.1 nicht. denn dort ist 1,2; 1,4; 2,4 und 3,5 unmarkiert, der minimale automat in meiner lösung besteht aber nur aus 1,2; 3,5 und 4.

vielen dank für eure hilfe.
jaxxo
 
Beiträge: 32
Registriert: 14.11.06 00:05

Beitragvon jaxxo » 28.07.07 11:37

ich verstehe ja, wenn euch die frage zu banal erscheint. würde mich trotzdem über eine antwort freuen. blick da einfach nicht zu 100% durch.
jaxxo
 
Beiträge: 32
Registriert: 14.11.06 00:05

Re: Minimierungsalgorithmus

Beitragvon dnjansen » 28.07.07 12:23

jaxxo hat geschrieben:Was bedeutet in Definition 6.4.18:
WHILE es existiert ein unmarkiertes Paar (q,q') es existiert ein a element Sigma (also ein Terminal), sodass (Übergangsfunktion(q, a), Übergangsfunktion(q',a)) markiert ist DO wähle ein solches Paar und markiere es.

Da stehe ich etwas auf dem schlauch. bedeutet die definition, dass wenn die einzelnen Elemente eines unmarkierten paares beide mit der selben transition auf ein markiertes paar führen, wird dieses paar auch markiert?

Richtig.

Die Idee hinter dem Markierungsalgorithmus ist: wenn es eine Zeichenkette a_1...a_n gibt, so dass man von q mit dieser Eingabe zu einem Endzustand kommt, aber von q' nicht (oder umgekehrt), dann muss (q,q') markiert werden.

Um das einfacher zu machen, markieren wir je nach Länge der Zeichenkette, also in der Reihenfolge n=0, n=1, ...

Für n=0 gibt es nur eine Zeichenkette: die leere. Von q kommt man mit der leeren Zeichenkette nur zu q, ebenso von q' nur zu q'. Wenn also q ein Endzustand ist, aber q' nicht, muss (q,q') markiert werden.

Dann versuchen wir es mit Zeichenketten der Länge n=1. Da gibt es für jedes a \in \Sigma eine. Wenn es also ein a gibt, so dass man von q mit a zu einem Endzustand (z. B. r) kommt, aber von q' nicht (z. B. nur zu r'), muss man (q,q') markieren. Jetzt verwenden wir die alten Markierungen: wenn (r,r') schon markiert ist, wissen wir, dass nur einer der beiden ein Endzustand ist, und darum markieren wir auch (q,q').

Für Zeichenketten der Länge n=2 (z. B. ab) betrachten wir erst mal das erste Zeichen, also a. Wenn man mit a von q zu s kommt und von q' zu s', dann verwenden wir wieder die alten Markierungen: wenn (s,s') schon markiert ist, dann wissen wir, dass man mit irgendeiner Zeichenkette der Länge n-1=1 von s zu einem Endzustand kommt und von s' nicht (oder umgekehrt). Daraus folgt, dass man von q mit einer Zeichenkette der Länge 2 zu einem Endzustand kommt und von q' nicht (oder umgekehrt), und darum markieren wir (q,q').

Und so weiter. Hoffentlich hilft diese lange Erklärung...

aus der tabelle wird dann der minimalautomat zusammen gesetzt, in dem die unmarkierten paare zusammen gesetzt werden.
nun versteh ich aber die lösung von 8.1 nicht. denn dort ist 1,2; 1,4; 2,4 und 3,5 unmarkiert, der minimale automat in meiner lösung besteht aber nur aus 1,2; 3,5 und 4.

Welche Lösung haben Sie gefunden? Die Tabelle, die Sie nennen, ist die Tabelle, nachdem man den Fall n=0 abgeschlossen hat. Sie müssen noch n=1 behandeln. (Bei 8.1 reicht das auch schon: Bei n=2 kommen keine neuen Markierungen mehr hinzu.)
Benutzeravatar
dnjansen
 
Beiträge: 38
Registriert: 04.05.07 09:07
Wohnort: Nijmegen

Beitragvon jaxxo » 28.07.07 12:35

Lieber Herr Jansen,

zunächst vielen dank für Ihre Mühe. Ich werde mir Ihr ausführliche Erklärung anschauen.

Zu Ihrer Frage:

Welche Lösung haben Sie gefunden? Die Tabelle, die Sie nennen, ist die Tabelle, nachdem man den Fall n=0 abgeschlossen hat. Sie müssen noch n=1 behandeln. (Bei 8.1 reicht das auch schon: Bei n=2 kommen keine neuen Markierungen mehr hinzu.)


Meine Lösung, die ich aus der Übung abgeschrieben habe, beinhaltet nur die folgende Tabelle:

Code: Alles auswählen
2|      |
------------
3| x   |  x
---------------------
4 | a,b| a,b| x  |
--------------------
5 |  x  |  x |     |x
---------------------
      1 |   2 | 3  | 4


und der automat mit dem startzustand {1,2}, Endzustand {3,5} und Zustand {4}

edit: leider werden die leerzeichen entfernt, hoffe SIe können die Tabelle entschlüsseln.
edit (martin): hab das ganze in nen Code-Block gesetzt, damit die Einrückung stimmt.
jaxxo
 
Beiträge: 32
Registriert: 14.11.06 00:05

Beitragvon dnjansen » 31.07.07 23:30

In der Tabelle, die Jaxxo präsentiert, sind auch (1,4) und (2,4) markiert. Die "x" stehen für Markierungen im ersten Durchlauf (n=0); die "a" und "b" für Markierungen in späteren Durchläufen (hier n=1), wobei die Buchstaben angeben, mit welchem Buchstaben man von Zustand 1 zu einem Endzustand kommt und von Zustand 4 nicht (oder umgekehrt), usw.
Benutzeravatar
dnjansen
 
Beiträge: 38
Registriert: 04.05.07 09:07
Wohnort: Nijmegen

Beitragvon CrazyPumuckl » 02.08.07 16:20

Ich verstehe die Lösung der aufgabe 4 aus der ATFS Testklausur 2006 nicht ganz:

in der Tabelle bleiben 4 Felder unmarkiert. Der Automat hat aber nur 2 Zustände. Wieso sind das nicht vier?
\frac{0}{0}
Benutzeravatar
CrazyPumuckl
 
Beiträge: 557
Registriert: 17.11.06 11:31

Beitragvon Martin » 02.08.07 16:22

CrazyPumuckl hat geschrieben:in der Tabelle bleiben 4 Felder unmarkiert. Der Automat hat aber nur 2 Zustände. Wieso sind das nicht vier?


Du schreibst dir alle unmarkierten Paare als Tupel auf und versuchst, die in maximale Mengen paarweise unmarkierter Zustände zusammenzufassen.
Martin
10100111001
 
Beiträge: 1932
Registriert: 09.09.05 17:47
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: BWL

Beitragvon fw » 02.08.07 16:24

CrazyPumuckl hat geschrieben:Wieso sind das nicht vier?

Nach Tabelle sind 0+2, 0+3 und 2+3 äquivalent (werden also zum ersten Zustand), ausserdem sind 1+4 äquivalent (zweiter Zustand). Es sind im ursprünglichen Automaten nur diese fünf Zustände die hier alle schon in irgendeinem "zusammengefassten Zustand" vorkommen, was willst du also sonst noch für Zustände haben?
Benutzeravatar
fw
 
Beiträge: 1356
Registriert: 17.05.06 19:37
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: Mathe

Beitragvon CrazyPumuckl » 02.08.07 16:30

jo, habe gerade noch mal im buch nachgeschaut. auf den satz hier kommt es also an "bilde max. mengen paarw. unmarkierter zustände"

wie geht das genau? wenn ich jetzt folgendes habe:

(0,2) (0,3) (2,3) (4,1)

fange mal links an. (0,2) steht zunächst für sich. dann betrachte ich (0,3). die 0 kommt schon in (0,2) vor, also fasse (0,2) und (0,3) zu (0,2,3) zusammen. betrachte jetzt (2,3). sowohl 2 als auch 3 kommen bereits in (0,2,3) vor, also schmeiß (2,3) auch mit rein. betrachte jetzt (4,1). diese Zahlen kommen in (0,2,3) nicht vor, also bleibt (4,1) für sich allein. Geht das so?!
\frac{0}{0}
Benutzeravatar
CrazyPumuckl
 
Beiträge: 557
Registriert: 17.11.06 11:31

Beitragvon dnjansen » 02.08.07 16:45

Was CrazyPumuckl schreibt, sieht gut aus. Ich würde nur noch zwischen Zustandspaaren (q0,q2), (q0,q3) usw. und Zustandsmengen {q0,q2}, {q0,q2,q3} usw. unterscheiden.
Kontrollmöglichkeit: Wenn es bei diesem Suchen von Mengen mit äquivalenten Zuständen zu Widersprüchen kommt (z. B. (q0,q2) und (q2,q3) sind äquivalent, aber nicht (q2,q3) ), dann hat man irgendwo im Erzeugen der Tabelle einen Fehler gemacht.
Benutzeravatar
dnjansen
 
Beiträge: 38
Registriert: 04.05.07 09:07
Wohnort: Nijmegen

Beitragvon kalle » 02.08.07 18:43

dnjansen hat geschrieben:(z. B. (q0,q2) und (q2,q3) sind äquivalent, aber nicht (q2,q3) )

Sie meinen wohl "..., aber nicht (q0,q3)", oder?
kalle
 
Beiträge: 12
Registriert: 22.03.07 15:56

Beitragvon dnjansen » 02.08.07 22:58

kalle hat geschrieben:
dnjansen hat geschrieben:(z. B. (q0,q2) und (q2,q3) sind äquivalent, aber nicht (q2,q3) )

Sie meinen wohl "..., aber nicht (q0,q3)", oder?
Richtig, ich hab mich vertippt.
Benutzeravatar
dnjansen
 
Beiträge: 38
Registriert: 04.05.07 09:07
Wohnort: Nijmegen

Beitragvon jaxxo » 03.08.07 10:34

so wie CrazyPumuckl mache ich es auch immer.

aber wie genau ist die Definition für äquivalente Zustände?
jaxxo
 
Beiträge: 32
Registriert: 14.11.06 00:05

Beitragvon Pillenfresser » 03.08.07 10:36

Zwei Zustände sind äquivalent, wenn von beiden Zuständen aus die gleichen Wörter akzeptiert werden. Und was anderes überprüft der Algorithmus ja nicht.
I don't care, I'm still free. You can't take the sky from me.
Benutzeravatar
Pillenfresser
Moderator
 
Beiträge: 983
Registriert: 16.09.05 18:46
Studiengang: Informatik (Dipl.)
Studiert seit: WS 06/07
Anwendungsfach: Psycho

Beitragvon Miss*Sunflower » 05.08.07 14:51

Ic hahbe das gerade noch nich ganz verstanden: (Übung 8)

im ersten Durchlauf markiere ich doch (1,3)(2,5)(3,4)(4,5) oder...wieso ist in der Tabelle von Jaxxo (3,2) und (5,1) als Markierung für den 1. Durchlauf (n=0) angegeben?
"Esst mehr Gemüse!"
Benutzeravatar
Miss*Sunflower
 
Beiträge: 1645
Registriert: 11.09.05 17:04
Wohnort: Aachen
Studiengang: Informatik (Dipl.)
Studiert seit: fertig
Anwendungsfach: Psycho

Nächste

Zurück zu Theoretische Informatik