Kann mir jemand bei diesem Automaten helfen?

  • Hallo zusammen,

    ich benötige etwas hilfe zu folgendem Problem:

    a = c* ((a(a|c)*b) | (b(b|c)*a)) (a|b|c)*

    Aus diesem regulären Ausdruck möchte ich gerne in einen endlichen Automaten konstruieren, aber irgendwie fehlt mir da der Ansatz.

    Habe auch schon versucht mich mit Hilfe von http://www.iti.fh-flensburg.de/lang/compbau/konstruktion.htm ans das Ergebnis ranzutasten (das Applet lässt leider nur max. 20 Zeichen zu), aber habe dann Probleme die "Teil-Automaten" zusammenzuführen.

    Hab z.B. schon einen fertigen Automaten zu den Teilen (a(a|c)*b), (b(b|c)*a) und (a|b|c)*..
    Nur wie kann ich die sinnvoll zusammenführen?!?

    Vielleicht kann mir jemand helfen..

    Viele Grüße,
    Fips


  • Du machst vom Startzustand c zwei Pfeile zu den Teilautomaten (a(a|c)*b) und (b(b|c)*a) und vom b des ersten Teilautomatens und vom a des zweiten Teilautomatens machst du noch einen Pfeil zu (a|b|c)*, wobei jeder dieser Zustände ein Endzustand ist.

    "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?"

  • Du machst vom Startzustand c zwei Pfeile zu den Teilautomaten (a(a|c)*b) und (b(b|c)*a) und vom b des ersten Teilautomatens und vom a des zweiten Teilautomatens machst du noch einen Pfeil zu (a|b|c)*, wobei jeder dieser Zustände ein Endzustand ist.


    mhh.. versteh ich noch nicht so ganz..
    das müsste dann ja so aussehen (oder?):
    [Blockierte Grafik: http://www.imgshare.de/upload/image_1208597622.jpg]

    aber das sieht irgendwie komisch aus.. glaube nicht das es so stimmt.. :wein:

  • Habe auch schon versucht mich mit Hilfe von http://www.iti.fh-flensburg.de/lang/compbau/konstruktion.htm ans das Ergebnis ranzutasten (das Applet lässt leider nur max. 20 Zeichen zu), aber habe dann Probleme die "Teil-Automaten" zusammenzuführen.

    ich kann dir jflap ans herz legen. damit kannst deinen automaten zeichnen und auch testen

    Otto: Apes don't read philosophy. - Wanda: Yes they do, Otto, they just don't understand
    Beleidigungen sind Argumente jener, die über keine Argumente verfügen.
    «Signanz braucht keine Worte.» | «Signanz gibts nur im Traum.» 

    Das neue MTB-Projekt (PO, Wiki, Mitschriften, Ausarbeitungen, Folien, ...) ist online
    http://mtb-projekt.at

  • Das hätt ich gern als Poster. ^^

    "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?"

  • hab das ganze jetzt mal in jflap eingegeben..
    sieht aber etwas abenteuerlich aus.. :p

    Mach halt mal einen deterministischen Automaten draus. Abgesehen davon glaub ich eigentlich nicht, dass "a=" zu der Sprache dazugehören sollte.

  • Wie wärs mit dem im Anhang? 2 ist Endzustand.

    "I don't think that Debian can really compete with Gentoo. Sure it might be okay, but when it comes to dependencies, you probably are still going to have to get them all on your own. Or is there something like portage in the Debian world as well?"

  • ich hab mir das den automaten von sandybutt angesehen und bin mir zu 99.9% sicher, das er richtig ist und sogar minimal ...


    aber sicher das man den kompletten ausdruck in so einem "kleinen" automaten abbilden kann?

    salopp gesagt: ja ...

    so mancher lange und verschachtelte regex ausdruck lässt sich durch ein relativ kleinen automaten repräsentieren

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!