www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Englisch
  Status Grammatik
  Status Lektüre
  Status Korrekturlesen
  Status Übersetzung
  Status Sonstiges (Englisch)

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Neuerdings beta neu
 Forum...
 vorwissen...
 vorkurse...
 Werkzeuge...
 Nachhilfevermittlung beta...
 Online-Spiele beta
 Suchen
 Verein...
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Formale Sprachen" - Umwandlung von NFA in DFA
Umwandlung von NFA in DFA < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Umwandlung von NFA in DFA: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:49 Fr 11.09.2009
Autor: nahpets87

Hallo,

Ich lese momentan im Buch "Theoretische Informatik kurzgefasst" wie man einen NFA in einen DFA umwandeln kann.

Es ist dort wiefolgt erklärt:

Gegeben ist ein NFA:

1.) Die neuen Zustände des DFA sind die Potenzmenge der alten Zustände
2.) Startzustand des DFA ist der neue Zustand, der die Vereinigung der alten Startzustände ist.
3.) Eingabealphabet bleint natürlich gleich
4.) Endzustände: Die neuen Endzustände sind alle neuen Zustände, die einen alten Endzustand enthalten.

Das ist soweit alles klar. Was mir jetzt aber noch fehlt ist wie die neuen Zustandsübergänge zustande kommen!

Laut Buch, Vorlesung und Internet geht es so:

[mm] \delta'(Z', [/mm] a) = [mm] \bigcup_{z\ in Z'} [/mm] = [mm] \delta''(Z', [/mm] a), Z' [mm] \in [/mm] Z

Kann mir bitte jemand erklären wie man nun vorgeht?

Ich habe hier eine beispielaufgabenstellung, falls ihr diese braucht um euch hineinversetzen könnt.

Ich habe einen NFA, der folgende Zustände hat:

Z0, Z1, Z2

Die Übergänge sind:

[mm] \delta(Z0, [/mm] 0) = Z0
[mm] \delta(Z0, [/mm] 1) = Z0
[mm] \delta(Z0, [/mm] 0) = Z1
[mm] \delta(Z1, [/mm] 0) = Z2


Die neuen Zustände sind klar:

Z' = [mm] \mathcal{P}(Z) [/mm] = {Z0, Z1, Z2, Z0Z1, Z0Z2, Z1Z2, Z0Z1Z2, [mm] \emptyset} [/mm]

Doch: Wie komm ich jetzt darauf wie diese vielen neuen Zustände korrekt verknüpft werden müssen?

Ich verstehe die obige mathematische Notation darüber wie [mm] \delta' [/mm] zustande kommen soll nicht. Aber kann es sein, dass ich die neuen Zustandsübergänge selbst finden muss?

Vielen Dank.

        
Bezug
Umwandlung von NFA in DFA: Antwort
Status: (Antwort) fertig Status 
Datum: 21:11 Fr 11.09.2009
Autor: felixf

Hallo!

> Ich lese momentan im Buch "Theoretische Informatik
> kurzgefasst" wie man einen NFA in einen DFA umwandeln
> kann.
>  
> Es ist dort wiefolgt erklärt:
>  
> Gegeben ist ein NFA:
>  
> 1.) Die neuen Zustände des DFA sind die Potenzmenge der
> alten Zustände
>  2.) Startzustand des DFA ist der neue Zustand, der die
> Vereinigung der alten Startzustände ist.

Du meinst: die Menge, die genau alle Startzustaende enthaelt.

>  3.) Eingabealphabet bleint natürlich gleich
>  4.) Endzustände: Die neuen Endzustände sind alle neuen
> Zustände, die einen alten Endzustand enthalten.

Genau. Der Zustand des DFAs sagt sozusagen, welche Zustaende der NFA in genau diesem Mment alle annehmen koennte.

> Das ist soweit alles klar. Was mir jetzt aber noch fehlt
> ist wie die neuen Zustandsübergänge zustande kommen!
>  
> Laut Buch, Vorlesung und Internet geht es so:
>  
> [mm]\delta'(Z',[/mm] a) = [mm]\bigcup_{z\in Z'}[/mm] = [mm]\delta''(Z',[/mm] a), Z'
> [mm]\in[/mm] Z

Das zweite Gleichheitszeichen soll da weg, oder? Und [mm] $\delta'' [/mm] = [mm] \delta$? [/mm] Und $Z$ ist die Potenzmenge der Zustaende des NFAs?

> Kann mir bitte jemand erklären wie man nun vorgeht?

Nun, genau so wie das da steht.

> Ich habe hier eine beispielaufgabenstellung, falls ihr
> diese braucht um euch hineinversetzen könnt.
>  
> Ich habe einen NFA, der folgende Zustände hat:
>  
> Z0, Z1, Z2
>  
> Die Übergänge sind:
>  
> [mm]\delta(Z0,[/mm] 0) = Z0
>  [mm]\delta(Z0,[/mm] 1) = Z0
>  [mm]\delta(Z0,[/mm] 0) = Z1
>  [mm]\delta(Z1,[/mm] 0) = Z2

Du meinst eher

> [mm]\delta(Z0, 0) = \{ Z0 \}[/mm]
>  [mm]\delta(Z0, 1) = \{ Z0 \}[/mm]
>  [mm]\delta(Z0, 0) = \{Z1 \}[/mm]
>  [mm]\delta(Z1, 0) = \{Z2 \}[/mm]

(Andernfalls hast du oben Mengenklammern vergessen bei der Vereinigung!)

> Die neuen Zustände sind klar:
>  
> Z' = [mm]\mathcal{P}(Z)[/mm]Eingabefehler: "{" und "}" müssen immer paarweise auftreten, es wurde aber ein Teil ohne Entsprechung gefunden (siehe rote Markierung)

= {Z0, Z1, Z2, Z0Z1, Z0Z2, Z1Z2,

> Z0Z1Z2, [mm]\emptyset}[/mm]

Ja.

> Doch: Wie komm ich jetzt darauf wie diese vielen neuen
> Zustände korrekt verknüpft werden müssen?

Nehmen wir z.B. den Zustand $Z0Z1 = [mm] \{ Z0, Z1 \}$ [/mm] und die Eingabe $0$.

Dann ist [mm] $\delta'(Z0Z1, [/mm] 0) = [mm] \delta(Z0, [/mm] 0) [mm] \cup \delta(Z1, [/mm] 0) = [mm] \{ Z0 \} \cup \{ Z2 \} [/mm] = [mm] \{ Z0, Z2 \} [/mm] = Z0Z2$ (in deiner Schreibweise).

> Ich verstehe die obige mathematische Notation darüber wie
> [mm]\delta'[/mm] zustande kommen soll nicht. Aber kann es sein, dass
> ich die neuen Zustandsübergänge selbst finden muss?

Nein, du vereinigst einfach die Mengen.

LG Felix


Bezug
                
Bezug
Umwandlung von NFA in DFA: Frage (überfällig)
Status: (Frage) überfällig Status 
Datum: 21:48 Fr 11.09.2009
Autor: nahpets87

Hi und danke für deine Antwort!


Ich zitiere mal diesen Teil:
>
>> Doch: Wie komm ich jetzt darauf wie diese vielen neuen
>> Zustände korrekt verknüpft werden müssen?
>
>Nehmen wir z.B. den Zustand  und die Eingabe .
>
>Dann ist  (in deiner Schreibweise).
>
>> Ich verstehe die obige mathematische Notation darüber wie
>>zustande kommen soll nicht. Aber kann es sein, dass
>> ich die neuen Zustandsübergänge selbst finden muss?
>
>Nein, du vereinigst einfach die Mengen.


Jetzt habe ich nur noch eine Frage: Wie behandel ich die ganzen Fälle die im NFA einfach nicht abgedeckt wurden?

Ich müsste ja für jeden Zustand die Zustandsübergänge für alle möglichen Eingaben haben. Die hat man bei einem NFA aber ja nicht zwangsläufig.

Z.B. in dem Beispiel von vorhin. Da ist ja jetzt zum Beispiel nicht gesagt was folgendes ist:

[mm] \delta(Z1, [/mm] 1) = ?

Eine Möglichkeit wäre, denke ich, den NFA zunächst mit einem Fangzustand so zu ergänzen, dass jeder Zustand schonmal alle Eingabemöglichkeiten hat. Und mit diesem neuen NFA weiter zu arbeiten.
Oder gibts da eine bessere Lösung?

Danke.

Bezug
                        
Bezug
Umwandlung von NFA in DFA: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 22:20 So 13.09.2009
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                        
Bezug
Umwandlung von NFA in DFA: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 06:35 Do 17.09.2009
Autor: felixf

Hallo!

Sorry das ich erst jetzt antworte, ich war in den letzten Tagen fast nicht hier.

>  >> Doch: Wie komm ich jetzt darauf wie diese vielen neuen

> >> Zustände korrekt verknüpft werden müssen?
> >
>  >Nehmen wir z.B. den Zustand  und die Eingabe .
> >
>  >Dann ist  (in deiner Schreibweise).
> >
>  >> Ich verstehe die obige mathematische Notation darüber

> wie
> >>zustande kommen soll nicht. Aber kann es sein, dass
> >> ich die neuen Zustandsübergänge selbst finden muss?
> >
>  >Nein, du vereinigst einfach die Mengen.
>  
>
> Jetzt habe ich nur noch eine Frage: Wie behandel ich die
> ganzen Fälle die im NFA einfach nicht abgedeckt wurden?

Nun, in dem Fall ist der Wert von [mm] $\delta$ [/mm] die leere Menge. Sie traegt nichts zur Vereinigung bei.

> Ich müsste ja für jeden Zustand die Zustandsübergänge
> für alle möglichen Eingaben haben. Die hat man bei einem
> NFA aber ja nicht zwangsläufig.
>  
> Z.B. in dem Beispiel von vorhin. Da ist ja jetzt zum
> Beispiel nicht gesagt was folgendes ist:
>  
> [mm]\delta(Z1,[/mm] 1) = ?

Das ist einfach [mm] $\emptyset$. [/mm]

> Eine Möglichkeit wäre, denke ich, den NFA zunächst mit
> einem Fangzustand so zu ergänzen, dass jeder Zustand
> schonmal alle Eingabemöglichkeiten hat. Und mit diesem
> neuen NFA weiter zu arbeiten.
>  Oder gibts da eine bessere Lösung?

Dieser Fangzustand heisst [mm] $\emptyset$ [/mm] und er ist bereits da.

LG Felix


Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
www.englischraum.de
[ Startseite | Forum | Wissen | Kurse | Mitglieder | Team | Impressum ]