FB18 - Das Forum für Informatik

fb18.de / Diplom Informatik / Unterbereich Grundstudium / Formale Informatik

Musterlösungen zu (Teil)-musterKlausur

Musterlösungen zu (Teil)-musterKlausur 2004-07-15 18:06
nitro-kuh
Hi, kann jemand so nett sein und irgerndwie eine richtige Lösung für die teil-musterKlausuren die im netz sind?? ich schaffe es irgendwie nicht die Lösungen zu finden, insbesondere das F2 Teil.

kann jemand sich ein bisschen Zeit nehmen und die Lösungen geben?( nicht direkt, sondern schrittweise ).

ich würde mich freuen..

mfg.

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-15 18:31
Brokkoli
1a)
a°b(a+b)*

° ist so ein hochgestelltes plus (also mindestens eins halt..)

schrittweise:
also erst muss ein a sein
a
dann können a's und b's beliebig kommen
a(a+b)*
aber es muss ein b drinnen sein
a(a+b)*b(a+b)*
und dann hab ich das noch etwas vereinfacht auf das was da oben steht..

aaaa ist da dann mal so als beispiel nicht drinn

————————————————-

(a+b)((a+b)(a+b))*

Schrittweise:
damit es immer eine ungrade anzahl von buchstaben gibt, muss mindestens ein buchstabe vorhanden sein (0 ist ja nicht ungrade), also (a+b). dahinter müssen immer 2 (beliebige) zeichen folgen also aa,ab,ba,bb und das ist eben genau (a+b)(a+b). und das kann dann beliebig oft wiederholt werden..

aabb ist da nicht drinn

1b)
[img]http://einniemand.dyndns.org/autokaputt.gif[/img]
Z1 = {z0,z1,z2,z3}
(Sigma)1 = {a,b}
Zend = {z2}


alle lösungen ohne gewähr und jegliche schusswaffen…

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-15 20:13
nitro-kuh
Cool, danke,, das hat geholfen,, .. aber…

wieso bei der erste ein "+" ?? also a°b(a+b)* ???

a°b(a+b)*

° ist so ein hochgestelltes plus (also mindestens eins halt..)

kann ich nicht die Sprache so definieren ? {a}{a+b}*{b}{a+b}* einfach so ?? oder muss man das unbedingt verinfachen,,..

und wie hast du das verinfacht ?? wie kommst du von a(a+b)*b(a+b)* zu a°b(a+b)* .. Gibt es irgendwo im Skript regeln wie man mit solchen ausdrücken umgehen soll ?? ( sonst habe ich die nicht gesehen ) . oder kann jemand bitte kurz die wichtigsten Regeln schreiben ?? Danke noch mals…

mfg.

nitro-kuh

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-15 21:17
Brokkoli
kann ich nicht die Sprache so definieren ? {a}{a+b}*{b}{a+b}* einfach so ?? oder muss man das unbedingt verinfachen,,..

nein das muss man nicht vereinfachen.. die sprache ist ja so die gleiche, also wird es richtig sein. ich habe es eigentlich vereinfacht, weil dann der dfa einfacher zu bauen ist.

und wie hast du das verinfacht ?? wie kommst du von a(a+b)*b(a+b)* zu a°b(a+b)* .. Gibt es irgendwo im Skript regeln wie man mit solchen ausdrücken umgehen soll ?? ( sonst habe ich die nicht gesehen ) . oder kann jemand bitte kurz die wichtigsten Regeln schreiben ?? Danke noch mals…

wie man das formal macht weiss ich leider auch nicht. (muss noch im script weiterlesen, es steht da bestimmt..) in diesem fall konnte man es sehen - also ich habe von a(a+b)*b(a+b)* erstmal in aa*b(a+b)* vereinfacht, weil man ja sagen kann, dass das b in der mitte das erste b ist was vorkommt (eins muss ja das erste sein), also davor sowiso nur a's sind. und dann eben aa* zu a°

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-15 22:02
nitro-kuh
Vielleich hilft es das hier jemandem…

http://www.fh-wedel.de/~si/vorlesungen/cb/LexikalischeAnalyse/DFAmin.html

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-16 14:57
NaZo
Zum F1-Teil: Würde gerne folgende Lösungen zur Diskussion stellen:

4a)

KNF: (R oder S) und P und nicht Q
DNF: (R und P und nicht Q) oder (S und P und nicht Q)

4b)

KNF: (Q oder nicht R) und (nicht Q und R) und nicht S
DNF: (Q und R und nicht S) oder (nicht Q und nicht R und nicht S)

5)

Hier habe ich "nicht unifizierbar" raus. Ich hab aber null Ahnung, ob ich da richtig liege. Ich hab mal versucht den Unifikationsalgorythmus (12[19]) anzuwenden, bin mir aber nicht sicher, ob ich es richtig gemacht habe. Bei mir sah das so aus:

L1 = R(x,f(y)); L2 = R(g(y,z),u); L3 = R(g(u,a), f(b))

o1 = [x/ g(y,z)] [img]http://www.fb18.de/gfx/14.gif[/img]

L1o1 = R(g(y,z),f(y)); L2o1 = R(g(y,z),u); L3o1 = R(g(u,a), f(b))

o2 = [u/ f(y)] [img]http://www.fb18.de/gfx/14.gif[/img]

L1o2 = R(g(y,z),f(y)); L2o2 = R(g(y,z),f(y)); L3o2 = R(g(f(y),a), f(b))

o3 = [y/ f(y)] [img]http://www.fb18.de/gfx/13.gif[/img] !!! nicht unifizierbar, da y in f(y) vorkommt !!!



Bitte mal Bescheid sagen, wenn das alles (oder ein Teil) Quatsch ist.

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-16 15:09
Anonymer User
Hmm also der erste rationale Ausdruck is richtig, aber beim 2ten ist es nicht notwendig, dass das wort mit einem a beginnt soweit ich die Aufgabe richtig verstanden habe
also meiner meinung nach sieht der Ausdruck so aus:
(a+b)(aa,ab,ba,bb)*
wobei man den zweiten Teil auf deine Variante im Ausdruck verkürzen kann denk ich mal

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-16 15:43
NaZo
@Anonymer User:
Stimmt! Das das noch niemanden aufgefallen ist… [img]http://www.fb18.de/gfx/7.gif[/img]

Es muss (a+b)((a+b)(a+b))* oder eben (a+b)(aa+ab+ba+bb)* heißen. Das mit dem Anfangs-A hat der Brokkoli wohl noch aus der ersten Aufgabe mitgeschleppt. [img]http://www.fb18.de/gfx/25.gif[/img]

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-16 18:11
Brokkoli
ups ja hab ich übersehen ;) habs geändert

beim F1 teil hab ich das gleiche wie NaZo heraus..

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-18 00:43
NaZo
Mir ist gerade noch aufgefallen, dass die Lösung, die ich oben gepostet habe, nicht ganz dem Algorythmus entspricht. Das Ergebnis ist das gleiche, aber die Schritte müssen, glaube ich (!), so aussehen:

L1 = R(x,f(y)); L2 = R(g(y,z),u); L3 = R(g(u,a), f(b))

o1 = [x/ g(y,z)]

L1o1 = R(g(y,z),f(y)); L2o1 = R(g(y,z),u); L3o1 = R(g(u,a), f(b))

o2 = [u/ y]

L1o2 = R(g(y,z),f(y)); L2o2 = R(g(y,z),y); L3o2 = R(g(y,a), f(b))

o3 = [z/ a]

L1o3 = R(g(y,a),f(y)); L2o3 = R(g(y,a),y); L3o3 = R(g(y,a), f(b))

o4 = [y/ f(y)] !!! nicht unifizierbar, da y in f(y) vorkommt !!!

Re: Musterlösungen zu (Teil)-musterKlausur 2004-07-18 14:47
pRoMoE
Jo also wenn ich den Algorithmus richtig verstanden hab ist die 2te Variante wohl die, die richtig ist.
Hab bis gerade eben noch nichtmal was von dem algo gesehen oder von Prädikatenlogik-Resolventen :(((
Irgendwie ist das alles sooooo viel :)
Ich mach 3 Kreuze morgen um 11.30