1. Weiterleitung zu NetzLiving.de
  2. Forum
    1. Unerledigte Themen
  3. zum neuen Forum
  • Anmelden
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Erweiterte Suche
  1. Informatik Forum
  2. Community
  3. Smalltalk

Kann mir jemand bei diesem Automaten helfen?

    • Frage
  • Fips1907
  • 19. April 2008 um 09:42
  • Unerledigt
Hallo zusammen,

das Informatik-Forum geht in den Archivmodus, genaue Informationen kann man der entsprechenden Ankündigung entnehmen. Als Dankeschön für die Treue bekommt man von uns einen Gutscheincode (informatikforum30) womit man bei netzliving.de 30% auf das erste Jahr sparen kann. (Genaue Infos sind ebenfalls in der Ankündigung)

Vielen Dank für die Treue und das Verständnis!
  • Fips1907
    Punkte
    115
    Beiträge
    18
    • 19. April 2008 um 09:42
    • #1

    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

  • Sandybutt
    Punkte
    554
    Beiträge
    99
    • 19. April 2008 um 11:11
    • #2
    Zitat von Fips1907

    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

    Alles anzeigen


    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.

  • Fips1907
    Punkte
    115
    Beiträge
    18
    • 19. April 2008 um 11:36
    • #3
    Zitat von Sandybutt

    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?):

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

  • Wings-of-Glory
    Punkte
    8.305
    Beiträge
    1.573
    • 19. April 2008 um 11:41
    • #4
    Zitat von Fips1907

    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

  • Fips1907
    Punkte
    115
    Beiträge
    18
    • 19. April 2008 um 13:36
    • #5
    Zitat von Wings-of-Glory

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


    bei jflap kommen aber irgendwie ganz andere ergebnisse raus als bei http://www.iti.fh-flensburg.de/lang/compbau/konstruktion.htm
    komisch..

  • Fips1907
    Punkte
    115
    Beiträge
    18
    • 19. April 2008 um 13:49
    • #6

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

  • Sandybutt
    Punkte
    554
    Beiträge
    99
    • 19. April 2008 um 16:46
    • #7

    Das hätt ich gern als Poster. ^^

  • Paulchen
    Gast
    • 19. April 2008 um 16:50
    • #8
    Zitat von Fips1907

    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.

  • Sandybutt
    Punkte
    554
    Beiträge
    99
    • 19. April 2008 um 16:52
    • #9

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

  • Fips1907
    Punkte
    115
    Beiträge
    18
    • 20. April 2008 um 16:56
    • #10
    Zitat von Sandybutt

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


    danke.. sieht zumindest mal besser aus, als der generierte von jflap..
    aber sicher das man den kompletten ausdruck in so einem "kleinen" automaten abbilden kann?

  • samyjr
    Punkte
    609
    Beiträge
    117
    • 20. April 2008 um 18:04
    • #11

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

    Zitat von Fips1907


    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

  • Fips1907
    Punkte
    115
    Beiträge
    18
    • 24. April 2008 um 09:13
    • #12

    super, danke!
    ich glaub jetzt hab ichs auch kappiert.. mir hat anscheint nur en gutes beispiel gefehlt.. ;p

  • Maximilian Rupp 27. Dezember 2024 um 00:20

    Hat das Thema aus dem Forum Off-Topic nach Off-Topic verschoben.

  1. Datenschutzerklärung
  2. Impressum