www.vorhilfe.de
Vorhilfe

Kostenlose Kommunikationsplattform für gegenseitige Hilfestellungen.
Hallo Gast!einloggen | registrieren ]
Startseite · Forum · Wissen · Kurse · Mitglieder · Team · Impressum
Forenbaum
^ Forenbaum
Status Vorhilfe
  Status Geisteswiss.
    Status Erdkunde
    Status Geschichte
    Status Jura
    Status Musik/Kunst
    Status Pädagogik
    Status Philosophie
    Status Politik/Wirtschaft
    Status Psychologie
    Status Religion
    Status Sozialwissenschaften
  Status Informatik
    Status Schule
    Status Hochschule
    Status Info-Training
    Status Wettbewerbe
    Status Praxis
    Status Internes IR
  Status Ingenieurwiss.
    Status Bauingenieurwesen
    Status Elektrotechnik
    Status Maschinenbau
    Status Materialwissenschaft
    Status Regelungstechnik
    Status Signaltheorie
    Status Sonstiges
    Status Technik
  Status Mathe
    Status Schulmathe
    Status Hochschulmathe
    Status Mathe-Vorkurse
    Status Mathe-Software
  Status Naturwiss.
    Status Astronomie
    Status Biologie
    Status Chemie
    Status Geowissenschaften
    Status Medizin
    Status Physik
    Status Sport
  Status Sonstiges / Diverses
  Status Sprachen
    Status Deutsch
    Status Englisch
    Status Französisch
    Status Griechisch
    Status Latein
    Status Russisch
    Status Spanisch
    Status Vorkurse
    Status Sonstiges (Sprachen)
  Status Neuerdings
  Status Internes VH
    Status Café VH
    Status Verbesserungen
    Status Benutzerbetreuung
    Status Plenum
    Status Datenbank-Forum
    Status Test-Forum
    Status Fragwürdige Inhalte
    Status VH e.V.

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
Dt. Schulen im Ausland: Mathe-Seiten:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Formale Sprachen" - DFA über {0,1}
DFA über {0,1} < Formale Sprachen < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Formale Sprachen"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

DFA über {0,1}: Aufgabe
Status: (Frage) beantwortet Status 
Datum: 22:34 Do 04.08.2005
Autor: chris_hs

Hab ein Problem mit folgender Automatentheorie-Aufgabe.
Hoffe es kann mir einer weiterhelfen.
Es soll ein DFA über {0,1} konstruiert werden der folgende Eigenschaften besitzt:
enhält nicht 101, beginnt nicht mit 01 und endet nicht mit 10.
Ich weiss wie man die einzelnen Automaten durch Pattern Matching hinbekommt, aber wie kann ich die zusammenfügen? Hintereinanderausführung wär nicht sinnvoll, Parallelisierung auch nicht. Ich will auch nicht den DFA für 101 bauen und die andren beiden Bedingungen einbauen. Ein Kreuzproduktautomat müsste wieder minimiert werden. Gibts da nicht ne einfache Möglichkeit wie man die Eigenschaften "beginnt, enhält, endet" miteinander kombinieren kann?

Ich habe diese Frage auch in folgenden Foren auf anderen Internetseiten gestellt: www.informatikerboard.de

        
Bezug
DFA über {0,1}: DFA?
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 23:19 Do 04.08.2005
Autor: Bastiane

Hallo!
> Hab ein Problem mit folgender Automatentheorie-Aufgabe.
> Hoffe es kann mir einer weiterhelfen.
> Es soll ein DFA über {0,1} konstruiert werden der folgende
> Eigenschaften besitzt:
> enhält nicht 101, beginnt nicht mit 01 und endet nicht mit
> 10.
> Ich weiss wie man die einzelnen Automaten durch Pattern
> Matching hinbekommt, aber wie kann ich die zusammenfügen?
> Hintereinanderausführung wär nicht sinnvoll,
> Parallelisierung auch nicht. Ich will auch nicht den DFA
> für 101 bauen und die andren beiden Bedingungen einbauen.
> Ein Kreuzproduktautomat müsste wieder minimiert werden.
> Gibts da nicht ne einfache Möglichkeit wie man die
> Eigenschaften "beginnt, enhält, endet" miteinander
> kombinieren kann?

Was ist denn ein DFA? Ich habe Automatentheorie eigentlich schon gehabt, aber entweder habe ich das einfach vergessen, oder es hieß bei uns anders, oder wir haben es nicht gemacht. Vielleicht kannst du mal sagen, was damit gemeint ist?

Viele Grüße
Bastiane
[cap]


Bezug
        
Bezug
DFA über {0,1}: Antwort
Status: (Antwort) fertig Status 
Datum: 01:31 Fr 05.08.2005
Autor: Frank05

Der Sinn und Zweck der Theorie wie man all diese Automaten zusammenbringt (und NFA->DFA, minimieren,..) ist insbesondere, dass man sich nicht jedesmal neue Loesungsideen einfallen lassen muss.
Bei deiner Aufgabe musst du dir jetzt nur noch ueberlegen, wie man am geschicktesten die Automaten zusammenbaut:

[mm] \neg [/mm] A: enthaelt nicht 101
[mm] \neg [/mm] B: beginnt nicht mit 01
[mm] \neg [/mm] C: endet nicht mit 10

Gesucht ist der Automat, der [mm] \neg [/mm] A [mm] \wedge \neg [/mm] B [mm] \wedge \neg [/mm] C erkennt.
Hier kommt der allseits beliebte DeMorgan ins Spiel, da obiges aequivalent ist zu: [mm] \neg [/mm] (A [mm] \vee [/mm] B [mm] \vee [/mm] C)

Die Negation ist fuer uns vollkommen bedeutungslos, da wir ja einen DFA suchen. (Nebenfrage: Was muss man mit einem DFA machen, um die inverse Sprache zu akzeptieren?) Es muss also nur ein DFA gefunden werden fuer A [mm] \vee [/mm] B [mm] \vee [/mm] C.

An dieser Stelle hast du jetzt zwei Moeglichkeiten:
1. Brute-Force versuchen den DFA zu konstruieren. Das kann am schnellsten sein, aber du riskierst natuerlich auch eine deutlich hoehere Fehlerquote.
2. Oder du gehst nach Schema F vor: Baue die NFAs fuer A, B und C, bilde den Vereinigungsautomaten, wandle ihn um in einen DFA und minimiere diesen. Das entspricht deutlich mehr Aufwand, aber dafuer bekommst du den Korrektheitsbeweis gratis dazu.

Die zweite Moeglichkeit ist "einfach" insofern, als dass du in jedem Schritt genau weisst was zu machen ist. Der Nachteil bei diesen Aufgaben ist natuerlich, dass diese Verfahren viel Zeit in Anspruch nehmen - zumindest wenn man es von Hand machen muss.

Bezug
                
Bezug
DFA über {0,1}: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 16:13 Fr 05.08.2005
Autor: chris_hs

Dann müsste das folgenden Vereinigungsautomat ergeben.
[Dateianhang nicht öffentlich]
Aber das funktioniert ja nicht so richtig!

Dateianhänge:
Anhang Nr. 1 (Typ: jpg) [nicht öffentlich]
Bezug
                        
Bezug
DFA über {0,1}: Antwort
Status: (Antwort) fertig Status 
Datum: 17:34 Fr 05.08.2005
Autor: Frank05

Was sind bei deinem Automaten die Endzustaende? Ich nehme jetzt mal an, dass es die gefuellten Zustaende sind.

Wenn dem so ist, dann hast du wohl die Automaten fuer A,B und C gebaut und deren Zustaende geflippt (Endzustand wird normal und umgekehrt). Danach hast du den Vereinigungsautomaten gebildet. Das gibt aber dann [mm] {\neg A \vee \neg B \vee \neg C} [/mm] und damit nicht das von dir gewollte.

Hast du hingegen zuerst den Vereinigungsautomaten gebildet und dann die Zustaende geflippt, dann solltest du beachten, dass der Vereinigungsautomat ein NFA und kein DFA ist. Ueberleg dir dann noch, warum dieses einfache Zustandsflippen bei einem NFA nicht funktioniert, um die Komplementsprache zu erkennen.

Also zuerst den DFA bauen fuer {A [mm] \vee [/mm] B [mm] \vee [/mm] C} und nicht nur den NFA. Danach kannst du den komplementaeren DFA einfach bekommen.


Davon ganz unabhaengiges Problem: Du hast einmal den Fall, dass du ein Prefix erkennen willst und einmal ein Suffix, aber deine (Teil-)Automaten fuer A und C sind strukturell gleich. Das kann schon aus Prinzip nicht stimmen und du solltest da auch noch einmal ein Auge drauf werfen.

Bezug
                                
Bezug
DFA über {0,1}: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 19:26 Fr 05.08.2005
Autor: chris_hs

Hui, das wird dann aber zu kompliziert.
Wenn ich den NFA in einen DFA umwandle, muss ich ja die Potenzmenge der Zustände bilden.
Was bei so vielen Zuständen ausartet.
Und wenn ich stattdessen den Durchschnittsautomat der einzelnen Komplemente bauen will (kein DeMorgan),
muss ich den Kreuzproduktautomat konstruieren (ebenfalls viele resultierende Zustände).
Also ist so eine Aufgabe nicht in vertretbarer Zeit zu lösen, außer man probiert.
Aber danke, das hat mir beim allgemeinen Verständnis geholfen.

Bezug
                                        
Bezug
DFA über {0,1}: Antwort
Status: (Antwort) fertig Status 
Datum: 21:49 Fr 05.08.2005
Autor: Karl_Pech

Hi chris_hs!

[willkommenvh]


> Hui, das wird dann aber zu kompliziert.
>  Wenn ich den NFA in einen DFA umwandle, muss ich ja die
> Potenzmenge der Zustände bilden.
>  Was bei so vielen Zuständen ausartet.

Damit hast Du natürlich Recht, allerdings ist es doch eher ein Worst-Case-Fall, das bei der Potenzmengenkonstruktion aus einem NEA mit $n$ Zuständen ein DEA mit [mm] $2^n$ [/mm] Zuständen wird. Das mußt Du bei der Potenzmengenkonstruktion ausnutzen, indem Du nur die Zustände verschmilzt, die vom Startzustand (oder von mehreren Startzuständen) erreichbar sind und dabei außerdem noch darauf achtest, daß Du keine sinnlosen Zustandsteilmengen vom neuen DEA betrachtest (also Teilmengen, aus Zuständen, die niemals "zugleich" erreicht werden können, hmm, ich weiß nicht, wie ich's besser erklären soll [kopfkratz3], aber vielleicht weißt Du ja auch so, was ich meine. ;-)).


Ich würde dir außerdem bei deiner Aufgabe den Tip geben, den Nichtdeterminismus (also die Entscheidungsfreiheit eines NEA wirklich voll auszunutzen, um drei Automaten mit sowenig Zuständen wie möglich zu bauen (Versuch das Problem wirklich umgangssprachlich zu beschreiben; z.B. "Ok, zuerst alles Mögliche einlesen ... hmm ... irgendwann (Nichtdeterminismus) kommt 101 *grübel* und dann ist's egal, was kommt. Also lese ich wieder alle Zeichen aus dem Alphabet ein). Dann kannst Du mit Frank05s Hinweisen weitermachen.


Viele Grüße
Karl




Bezug
                                        
Bezug
DFA über {0,1}: Antwort
Status: (Antwort) fertig Status 
Datum: 13:20 Sa 06.08.2005
Autor: Frank05


> Hui, das wird dann aber zu kompliziert.
> Wenn ich den NFA in einen DFA umwandle, muss ich ja die
> Potenzmenge der Zustände bilden.
>  Was bei so vielen Zuständen ausartet.

Das kommt darauf an, ob du die Konstruktion exakt nach dem vorgegebenen Algorithmus machst, oder ob du ein wenig mehr Gehirnschmalz hineinsteckst. Da der Algo prinzipiell ja das simultane Durchlaufen der Zustaende simuliert kannst du eben dieses auch selbst machen. Du beginnst in einem Zustand der alle Startzustaende enthaelt (in deinem Fall waere das ein Zustand, der die 3 Anfangszustaende der Teilautomaten representiert). Von einem solchen Zustand aus kannst du nur 2 Kanten fuer 0 oder 1 haben. Jetzt musst du eben von allen verschmolzenen Zustaenden im NFA aus nachsehen, wo du bei einer 0 bzw. 1 landest. Diese Zustaende werden wieder in einen neuen Zustand fuer den DFA verschmolzen.
Auf diese Art spart man sich sehr sehr viele der [mm] 2^n [/mm] moeglichen Zustaende und es laesst sich noch relativ effizent von Hand durchfuehren.
Zu kompliziert sollte das nicht sein. Probiers einfach mal an kleinen Automaten aus. Dann kannst du den DFA einmal ueber die gesamte Potenzmenge konstruieren und danach mit dem schnelleren Verfahren vergleichen. Wenn du das Prinzip mal verstanden und ein, zwei Beispiele durchgerechnet hast, dann bekommt du das schon in den Griff :)

>  Also ist so eine Aufgabe nicht in vertretbarer Zeit zu
> lösen, außer man probiert.

Wobei je nach Aufgabenstellung 'probieren' nicht ausreichend ist. Hast du den Automat 'erraten' wird es ungleich schwieriger zu beweisen, dass der Automat auch wirklich das erwartete Verhalten zeigt.
Aber du hast schon Recht, was den Zeitaufwand fuer eine manuelle Loesung anbelangt. In einer Klausur duerfte sich so eine Aufgabe eher nicht finden lassen. 'Schnellere' Varianten waeren dann eben Einschraenkung auf weniger Teilautomaten (nur Bedingungen A, B und Aufteilen in Teilaufgaben z.B.) oder es genuegt einen NFA zu konstruieren (was es aber fast schon wieder zu einfach macht).

Bezug
                                                
Bezug
DFA über {0,1}: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:39 Mo 08.08.2005
Autor: chris_hs

Habs mit dem NFA in DFA Algorithmus (vom Startzustand die Folgezustände verschmelzen und deren Folgezustände betrachten)
recht schnell hingekriegt,
indem ich mir gesagt hab, die Endzustände von A und B werden nach dem Komplement ohnehin Fehlerzustände
(beim EZ von C allerdings nicht),
Taucht also beim Algorithmus einer dieser 2 Zustände in einem neuen Zustand auf, brauch ich den nicht weiterbetrachten.
Ohne diesen Trick dauert der Algorithmus trotzdem viel zu lange und ergibt zuviele neue Zustände.
Vielen Dank für die Hilfe!

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


^ Seitenanfang ^
www.vorhilfe.de