regulärer Ausdruck darf 010 nicht enthalten

Neue Frage »

Auf diesen Beitrag antworten »
KleenEule regulärer Ausdruck darf 010 nicht enthalten

Meine Frage:
Guten Tag: Ich habe hier eine Frage zu den regulären Ausdrücken. Hier die Aufgabe:

Gib reguläre Ausdrücke für die folgenden Sprachen über Sigma = {0,1} an:
(a) L1 = {w | w enthält nicht das Wort 010}

Meine Ideen:
Unsere Idee war erst, das wir (1)(0*111*0*)*(1) nehmen. Haben aber im Endeffekt rausgefunden, dass des nicht wirklich stimmt.
Kann uns da jmd weiterhelfen?
 
Auf diesen Beitrag antworten »
zockermax

Mein Problem ist das Wort "enthält nicht". Ich habe den Reg Ex für w<>010. Bist du dir sicher, dass das "enthält nicht" heißen muss?

Gruß Max
Auf diesen Beitrag antworten »
KleenEule

Japp 100% sicher, habe die Aufgabe absichtlich direkt kopiert, damit keine fehler passieren.

DAs ist aber auch das, was uns persönlich zweifeln lässt , also das "enthält nicht"
Auf diesen Beitrag antworten »
zockermax

Also w ist doch bestimmt Element von Sigma.

->w sind alle bildbaren wörter aus Sigma.
-> w enthält nicht das Wort 010.
-> w sind alle Wörte Sigma bis auf das Wort 010.

Also würde die L1 0010 akzeptieren.

Gruß max
 
Auf diesen Beitrag antworten »
zockermax

(1(1|0)*)* | (0 ( 0 (1|0)*)*) | (01(1(1|0)*)*) | ( 010 ( 1|0 )+)
Auf diesen Beitrag antworten »
ed209

Ich komme auf einen wesentlich kürzeren Ausdruck.
Mir hilft es dazu den DEA dazu zu konstruiieren, der Ausdruck ist dann relativ einfach daraus abzulesen.

Gruß
ED

PS: Man kann auch damit anfangen den Automaten zu finden der das Komplement der Sprache enthält. (also die Wörter die 010 enthalten), das ist intuitiver.
Auf diesen Beitrag antworten »
zockermax

Kannst du mal bitte den kürzeren Regulären Ausdruck angeben?

Außerdem schreibst du auch "Wörter die 010 enthalten", aber eigentlich akzeptiert die Sprache L1 alle Wörter außer dem Wort 010.

Gruß Max
Auf diesen Beitrag antworten »
Karlito

Hier ist die Frage wie die Aufgabe gemeint ist...

Kann auch sein, dass es so gewollt ist, dass kein Infix 010 erlaubt ist...

Ich glaube, wenn nur das Wort 010 nicht erlaubt ist, dann ist die Aufgabe zu trivial...

VG,

Karlito
Auf diesen Beitrag antworten »
Karlito

Der Ausdruck, welcher nur das Wort 010 nich zulässt wäre (00+11+10)(0+1)*

Wenn ich mich nicht verhauen habe, wäre das viel zu einfach...

VG,

Karlito
Auf diesen Beitrag antworten »
ed209

Zitat:

Kann auch sein, dass es so gewollt ist, dass kein Infix 010 erlaubt ist...


Genau so wird es gemeint sein: Jedes Wort in dem nicht 010 enthalten ist.

@zockermax:

Es geht hier nicht darum die Lösung vorzusagen. Idee des Forum ist es Hinweise zum Lösungsweg zu geben, damit man es lernt, nicht die Lösung damit man den Übungszettel nicht selber machen muß.

Gruß,
ED
Auf diesen Beitrag antworten »
Karlito

Der Weg des sturen Algorithmensklaven:

DEA für Sprache, die 010 enthält, Konstruieren -> Komplement bilden -> Arden Lemma

VG,

Karlito
Auf diesen Beitrag antworten »
zockermax

Ähhh?????????????

Dein entwickelter Reg Ex (00+11+10)(0+1)*, akzeptiert aber zb nicht das Wort 1 oder das Wort 0, obwohl es in der Sprache L1 liegt.
Auf diesen Beitrag antworten »
Karlito

Zitat:
Original von zockermax
Ähhh?????????????

Dein entwickelter Reg Ex (00+11+10)(0+1)*, akzeptiert aber zb nicht das Wort 1 oder das Wort 0, obwohl es in der Sprache L1 liegt.


Stimmt smile Irgendwie mögen Fehler meine Ergebnisse Augenzwinkern

(0+1+(00+11+10)(0+1)*) sollte es aber machen, oder?

VG,

Karlito
Auf diesen Beitrag antworten »
KleenEule

Wie sicher bist du dir dem?

Also wir haben nun noch weiter geforscht und kamen auf:
1*0*+(1*0*011)*1*0*01(10+1*)
Auf diesen Beitrag antworten »
Karlito

Hi,

sorry für das wirrwar. Wie weiter oben beschrieben, löst der Ausdruck wahrscheinlich leider nicht euer Problem. Der Ausdruck akzeptiert alle Wörter über der Sprache Sigma* ohne das Wort 010. Eure Aufgabe ist sicherlich, dass die Sprache den Infix 010 nicht enthält...

Wie ed beschrieben hat, is es günstig, einen DEA zu bauen, welcher Wörter mit dem Infix 010 akzeptiert und dann das komplement zu bilden. Er meinte man kann dann den Ausdruck rel. einfach ermitteln (durch nachdenken).

Als Erweiterung dessen kann man noch das Arden Lemma verwenden um den Ausdruck aus dem DEA zu "errechnen".

VG,

Karlito
Auf diesen Beitrag antworten »
zockermax

Zitat:
Original von Karlito
Zitat:
Original von zockermax
Ähhh?????????????

Dein entwickelter Reg Ex (00+11+10)(0+1)*, akzeptiert aber zb nicht das Wort 1 oder das Wort 0, obwohl es in der Sprache L1 liegt.


Stimmt smile Irgendwie mögen Fehler meine Ergebnisse Augenzwinkern

(0+1+(00+11+10)(0+1)*) sollte es aber machen, oder?

VG,

Karlito


Nein! Du kannst immer no ni das Wort 0 oder das Wort 1 mit diesem Reg Ex bilden.

Gruß Max
Auf diesen Beitrag antworten »
zockermax

Zitat:
Original von ed209
Zitat:

Kann auch sein, dass es so gewollt ist, dass kein Infix 010 erlaubt ist...


Genau so wird es gemeint sein: Jedes Wort in dem nicht 010 enthalten ist.

@zockermax:

Es geht hier nicht darum die Lösung vorzusagen. Idee des Forum ist es Hinweise zum Lösungsweg zu geben, damit man es lernt, nicht die Lösung damit man den Übungszettel nicht selber machen muß.

Gruß,
ED


Also ich will dir ja nicht zu Nahe treten, aber ich habe doch oben ganz klar gezeigt:

->w Element Sigma
->also sind w alle Wörter, die aus Sigma bildbar sind
->eingegrenzt wird w durch "w enthält nicht das Wort 010"
->w sind alle Wörter Sigma bis auf das Wort 010!!!

Gruß Max
Auf diesen Beitrag antworten »
Karlito

Hallo,

1. Verwendete ich eine andere Notation als du. In deiner Notation:
(1|0|(00|10|11|)(0|1)*). So sollte erkennbar sein, dass 0 und 1 in der Sprache liegen.

und 2.

Die Aufgabenstellung lautet wie folgt:

Gib reguläre Ausdrücke für die folgenden Sprachen über Sigma = {0,1} an:
(a) L1 = {w | w enthält nicht das Wort 010}

Ich gehe davon aus, dass w bereits ein Element von Sigma* ist. Somit ist es bereits ein Wort. Die Aufgabenstellung besagt, dass w 010 nicht enthalten soll. Daraus folgt für mich, dass 010 nicht Infix von w sein soll...

Wäre es so wie du es sagst, dann müsste da stehen w!=010...

Ich denke wir sollten uns jetzt die Diskussion stoppen und uns um etwaige weitere Fragen der Autoren kümmern.

@KleenEule
Ich habe mir den Ausdruck noch nicht angeschaut. Wie seid ihr darauf gekommen?

VG,

Karlito
Auf diesen Beitrag antworten »
Karlito

Hallo KleenEule,

euer Ausdruck ist leider falsch, da z.b. folgende Wörter nicht akzeptiert werden:

001
01
011
101

VG,

Karlito
Auf diesen Beitrag antworten »
KleenEule

Also ich habe heute die Lösung herausgefunden und auch schon absegnen lassen...
es war iwas mit 1*(0*111*0)1*0* iwie so, weiß es grad aber nicht mehr auswendig ^^ wollte euch nur dran teilhaben, das wir auf jeden die lösung haben


Danke das ihr geholfen habt smile
Auf diesen Beitrag antworten »
ICHBINALDA

machste so digga, wenn 0 kommt gehts neune zustand wenn 1 kommt wieder neun wenn 0 kommt wieder neuen. In dem Zustand weißte du hast 010 gelesen. Dann machst einfach nix ;D Denn dann akzeptiert der Automat das wort nicht ;d
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »