Praedikaten Logik
-
Hallo,
ich bin gerade dabei mich selbstaendig etwas in Praedikatenlogik und Prolog einzuarbeiten, dabei verwende ich folgendes Buch: "kuenstliche Intelligenz"/Laemmel, CleveEigentlich wollte ich auch die Aufgaben dazu etwas bearbeiten. Nun sitze ich momentan gerade schon ne Zeit vor dieser:
Bernd, Lutz und Jochen werden verdächtigt, einen Hoteldiebstahl begangen zu haben. Bekannt ist:
Genau einer der Drei ist der Täter
Der Dieb muss im Hotel gewesen sein
Keiner der Drei sagt die Wahrheit.
Lutz sagt: Ich war es nicht, Bernd war es, ich war nicht im Hotel.
Bernd sagt: Ich war es nicht. Alles, was Lutz gesagt hat, ist gelogen. Jochen ist auch unschuldig.
Jochen sagt: Ich war es nicht. Es stimmt, dass Lutz im Hotel war. Bernds 2. Aussage ist gelogen.
Finden Sie den Täter!...und haenge da schon etwas beim Ansatz v.a. auch die Aussage "Keiner der Drei sagt die Wahrheit" laesst mich da etwas zweifeln.
Ich habe nun folgenden Ansatz gewaehlt:
1. Allquant. x Exist. x : taeter(x) → Allquant. y : ~taeter(y)
(soll heissen, genau einer der dreien ist der taeter, dh die andern sind unschuldig)
2. Exist. x : taeter(x) Λ hotel(x)
(soll heissen der taeter war im hotel)
3. Allquant. x : ~wahrheit(x)
(sollte heissen, dass keiner der Jungs die Wahrheit sagt)Da ich denke, dass man mit Hilfe von Resolution arbeiten soll, glaube ich, dass eben die weiteren Thesen (die ja falsch sind, als dementsprechende Thesen genommen werden sollen und der dabei jeweils entstehende Widerspruch einen dann als Taeter entlarvt - ???
also
Lutz() : ~taeter(Lutz) Λ taeter(Bernd) Λ ~hotel(Lutz)
Bernd() : ~taeter(Bernd) Λ ~wahrheit(Lutz) Λ ~taeter(Jochen)
Jochen() : ~taeter(Jochen) Λ hotel(Lutz) Λ wahrheit(Lutz)Imo muss nach der These Bernd() (damit diese eben falsch ist sh. 3.) der Taeter entweder Bernd oder Jochen sein. Aber wer nun und wie bringt man das dann im weiteren Praedikatenlogisch zum Ausdruck?
Wenn es Bernd waere, dann muss Lutz im Hotel gewesen sein damit die Aussage falsch bleibt sh 3, er selber sagt er sei unschuldig, also passt das auch, weil es falsch is und Jochen redet sowieso nur schwachsinn, weil er meint dass Lutz die Wahrheit sagt hat.
Wenn es Jochen gewesen waere, passt es aber auch, weil Lutz den Bernd bezichtigt, seine Aussage is also falsch, wie in 3 gefordert. Bernd sagt, dass es nich Jochen is, auch das passt und Jochen redet sich auch raus.
Aber was nun - hab ich was uebersehn?? Was is das mit dem Hotel?
-
Zum einen ist die Implikation:
1. Allquant. x Exist. x : taeter(x) → Allquant. y : ~taeter(y)
nicht richtig.
Du mußt auf der rechten Seite auf jeden Fall noch fordern, daß y ungleich x ist.Zum anderen bin ich nicht sicher wie das mit dem nicht die Wahrheit sagen gemeint ist. So wie Du es interpretierst sagst Du: jede einzelne Aussage der Leute ist falsch und das Gegenteil ist wahr. Mann könnte aber auch sagen: die Aussage ist falsch als Gesamtes... das heißt: mindestens eine der Teil-Aussagen ist falsch, aber nicht unbedingt alle.
Also eher so:
Bernd ~(taeter(Bernd) Λ wahrheit(Lutz) Λ taeter(Jochen))
MfG Jester
-
Danke schon mal,
Also das mit dem x != y habe ich angenommen, sollte man aber als Forderung unbedingt dazunehmen (hab ich gar nicht drangedacht!)
zu "mindestens eine der Teil-Aussagen ist falsch, aber nicht unbedingt alle", ich habe eigentlich auch dieses angenommen, jedoch mich bei meinen obigen Folgerungen nur immer auf mind. eine falsche Aussage beschraenkt (reicht ja bei ner und Verknuepfung um das ganze falsch zu machen). Ich wollte also nicht damit ausdruecken dass die anderen richtig seien. Mittlerweile denke ich aber, dass es wohl darauf hinauslaufen sollte, dass die anderen Aussagen alle wahr sind und die einzigsten falschen, die Schlussfolgerung auf den "Taeter" erlauben.
Ich habe hierzu ueberlegt, dass es vllt "_nur_ der Taeter war im Hotel" heissen sollte, da es anders fuer mich nicht eindeutig ist zwischen Bernd und Jochen zu unterscheiden. Einer der beiden muss es aber sein, damit die falsche Aussage von Bernd mit 3 und 1 uebereinstimmt (da er ja meint Lutz redet Muell und Jochen und er seien unschuldig - es aber genau nur einen Taeter geben darf).Ich habe die Klammerung mit ~(...) nicht gemacht, da ich mir eben nicht sicher war ob ich jede einzelne These deren als Widerspruch (Resolutionsbeweis) nehmen sollte oder sie auch als Klauseln aufnehmen sollte - nun denke ich es is wohl eher letzteres und so habe ich sie oben ja auch behandelt. Aber welche ist dann die Resolutionsaussage, deren Widerspruch man beweisen soll? Es ist wohl so, dass man die Thesen aufstellen soll und direkt darin den Widerspruch finden muss... hm... weiterueberleg...
-
Also um das ganze mal in leserlicher Form zu bringen:
Die Menge der Verdächtigen sei V = {l, b, j}
T(x) bedeutet hier dass x Täter ist, H(x) dass er im Hotel war
kann auch geschrieben werden als
bedeutet am Ende, dass jede Aussage (als ganzes!) falsch istnun zu den Aussagen:
Die zweite Aussage kann man noch etwas auflösen:
- heißt ausführlich geschrieben:
Settz man die Aussagen ein, kommt folgendes bei raus:
und nun löst man die Negation der Klammern auf:
wenn man jetzt auch noch die Quantorenschreibweise der ersten beiden Tatsachen auflöst, und mit hinzufügt, dann kommt man auf einen länglichen Ausdruck, der allerdings eindeutig zu lösen sein sollte... (hab jetzt aber grad keine zeit mehr für den Latex-kram)
- heißt ausführlich geschrieben:
-
Danke, dieser Ansatz hat mir sehr weiter geholfen. Wie gesagt, war mir klar, dass die Aussagen nur im gesamten falsch sind, aber den Trick (also ich bin da zumindest nich draufgekommen) mit dem Einsetzen von den Aussagen, bsp "alles was Lutz sagt ist gelogen"..., hab ich selber nich entdeckt
Nun hab ich einfach, die letzte Aussage genommen, den in Klammern negierten Teil ("...Bernds 2. Aussage ist gelogen..." = die Aussage von Lutz, aber eben nun in Klammern negiert) ausgerechnet und auf diese KNF Form gebracht.Also mit Hilfe der de Morgan Regeln, hab ich versucht die Klammern in dieser Aussage von Jochen aufzuloesen, nach der allg. Negierung der kompletten Aussage und der nochmaligen Anwendung von de Morgan zurueck (warum einfach, wenns halt auch kompliziert geht ), sowie des Distributivgesetzes, bekam ich dann einen per AND separierten Ausdruck. Da ich weiss, dass man fuer die Resolution alle Aussagen per AND aneinanderhaengen kann, bzw auch per AND Einzelaussagen trennen, hab ich das dann in drei Einzelaussagen zerlegt. Die letzte hiess "taeter(Jochen)" !!!
- wenn ich also nun ~taeter(Jochen) als Resolutionsthese aufstellen wuerde bekaeme ich hiermit schon einen direkten Widerspruch.
Wenn ich versuche die andern als Taeter zu ueberpruefen, bekomme ich immer mind. eine Aussage, die nicht stimmt - nach Resolution (wenn ich das also richtig verstanden hab, beweisst das dass diese unschuldig sind?).Hoffentlich stimmts so - bitte andere Loesung posten, wenn ich mich irre!?
Sorry aber ich kenn die LateX Tags fuer Allquantor und Existenzquantor nicht
-
\exists und \forall
ich hab ne nette kleine quelle für mathematische latextags:
http://www.uni-giessen.de/hrz/tex/cookbook/seventh.htmlIch hab deine Rechnung zwar jetzt nicht nachvollzogen, aber da ja die Tatsache 2) mit in dem Ausdruck stecken sollte am Ende, und da T(j) gelten muss, muss auch drinstecken, dass die anderen unschuldig sind (weil sonst 2) nicht erfüllt wäre)...
-
Stimmt - so kommt es bei mir zumindest auch heraus (wenn mal kein Fehler drin is).
Danke fuer die LateX Tags, hab die auch gleich unter Favoriten rein getan.