Prolog - Logisches Rätsel

J

jan10101

Mitglied
Thread Starter
Dabei seit
27.12.2005
Beiträge
61
Reaktionspunkte
0
Hallo ich will dieses logische Rätsel in Prolog aufschreiben:
Vieleicht kann mir da ja mal jemand nen Tip für geben.

"Fünf Männer wohnen in füunf nebeneinander liegenden Häusern unterschiedlicher
Farbe. Sie haben unterschiedliche Geschmacksvorlieben bei Speisen und Getränken und
halten unterschiedliche Haustiere. Ordnen Sie den Häusern die anderen 4 Eigenschaften
zu. Beantworten Sie damit die folgende Frage: Welche Nationalität hat der Halter des
Goldfischs?
1. Der Finne wohnt im ersten Haus
2. Der Holl¨ander wohnt im gr¨unen Haus
3. Der Grieche trinkt gerne Milch
4. Das rote Haus liegt links vom blauen
5. Derjenige, der gern Pizza isst, wohnt neben demjenigen, der eine Katze h¨alt
6. Derjenige, der im gelben Haus wohnt, liebt Schokolade
7. Der Tscheche isst gern Fisch
8. Derjenige, der das Haus in der Mitte bewohnt, trinkt gern Tee
9. Derjenige, der gern Pizza isst, hat einen Nachbarn, der am liebsten Wasser trinkt
10. Derjenige, der am liebsten Bockwurst isst, h¨alt sich V¨ogel
11. Der Franzose h¨alt sich Hunde
12. Der Finne wohnt neben dem weißen Haus
13. Der Liebhaber von Pommes Frites trinkt gern Kaffee
14. Der Pferdeliebhaber wohnt neben dem gelben Haus
15. Im roten Haus trinkt man am liebsten Bier
"

Folgende Regeln sind schon vorgegeben:

bei([A1|A0],A):-A1=A;bei(A0,A).
bei([A1|A0],A,[B1|B0],B):-A1=A,B1=B;bei(A0,A,B0,B).
nach(A0,A,[_|B0],B):-bei(A0,A,B0,B).
neben(A0,A,B0,B):-nach(A0,A,B0,B);nach(B0,B,A0,A).

loesung(
[P1,F1,E1,D1,T1],
[P2,F2,E2,D2,T2],
[P3,F3,E3,D3,T3],
[P4,F4,E4,D4,T4],
[P5,F5,E5,D5,T5]):-
[P1,P2,P3,P4,P5]=P,
[F1,F2,F3,F4,F5]=F,
[E1,E2,E3,E4,E5]=E,
[D1,D2,D3,D4,D5]=D,
[T1,T2,T3,T4,T5]=T.

P steht für Personen, F für Farben, E für Gerichte, D für Getränke, T für Tiere


Jetzt müsst ich doch nur noch die 15 Punkte von oben in Prolog-Sprache schreiben oder?
Hab aber schon bei Nummer 1 Probleme...
Bei 5 würd ich sagen heißt es: neben(E,pizza,T,katze).
Würde das so stimmen?
 
Dieses Rätsel ist von Albert Einstein. Und 98% der Weltbevölkerung kann dieses Rätsel NICHT lösen. Ich glaub nicht das eine Formel das Problem lösen kann.
 
Doch, das geht mit Prolog. Nur kann ich Dir bei der genauen Realisierung auch nicht weiterhelfen.
 
Dann warte ich mal auf die Lösung
 
Das ist doch eine klassische Prolog Aufgabe, die hatte ich auch schon im Studium.

Einerseits sollst Du es natürlich selber lösen, aber es würde mich sehr wundern wenn google die Lösung nicht kennt.

Alex
 
Hatte auch einmal die Idee das in Prolog aufzuschreiben, habs aber relativ schnell wieder aufgegeben. Habe damals danach gegooglet und ein paar Lösungen gefunden, diese sind aber nicht ganz so trivial, vorallem wenn du nicht 5 Jahre auf die Lösung warten willst :)
 
Eigentlich kann das nicht so schwer sein... ist die erste Aufgabe, die wir zu Prolog haben und wir hatten erst eine Vorlesung über die Prolog-Grundlagen.

Achja, wenn jemand die Lösung für das Rätsel haben will: ich könnte das schnell hochladen... :)
 
BenIrminger schrieb:
Dieses Rätsel ist von Albert Einstein. Und 98% der Weltbevölkerung kann dieses Rätsel NICHT lösen. Ich glaub nicht das eine Formel das Problem lösen kann.

Ach quatsch, die 98% sind übertrieben.
Die meisten Leute, die ich kenne, und die sich dahinter geklemmt haben, haben das gelöst.

Außerdem ist es afaik durch Prädikatenlogik lösbar (kann ja gerne jemand beweisen ;-)), und sollte damit auch in Prolog gehen.

Ich habs damals mit nem Excel-Sheet gelöst und manuellem Umgruppieren - also ganz "old style".
 
Ich meinte die ausgefuchsteren Lösungen sind nicht so ganz trivial. Dadurch das der Prolog Interpreter/Compiler ja alle Möglichkeiten durchgeht dauert das auswerten bei der einfach Lösung halt relativ lange.
 
aecher/inf/material/prolog/logik/einstein
 
Dieses Rätsel ist einfach, ich habe es schon vor längerem geschafft es zu lösen. Ich habe 1,5 Stunden dafür gebraucht und ca. 10 Blatt Din A4 Papier. Es macht viel Spaß es zu lösen.
Einstein war nicht dumm, aber ich denke, dass es mehr als 2% lösen können.

Zitiat: "Der Vorteil an der Unordnung ist, dass man jeden Tag neue Entdeckungen macht"

Albert Einstein
 
stefan6591 schrieb:
Einstein war nicht dumm, aber ich denke, dass es mehr als 2% lösen können.

Glaub ich nicht, jedenfalls nicht signifikant. 24% schliessen die Schule mit Abitur ab, im Jahr werden etwa 100.000 Diplome in Deutschland vergeben.

Ich glaube, Klugheit ist nicht so weit verbreitet wie man als Gymnasiast oder Student glaubt.

Alex
 
hi leute, ich hab jetzt hier ne loesung raus, moechte die aber nicht unbedingt posten :)

schreibt mir mal bitte eure loesung als pm, damit ich schauen kann :)

mfg
m0mo
 
below schrieb:
Glaub ich nicht, jedenfalls nicht signifikant. 24% schliessen die Schule mit Abitur ab
Wobei man das ja heutzutage in Bundesländern != Bayern quasi geschenkt bekommt
 
Hm, wenn du das schon als Listen im Lösungsprädikat vorgegeben hast würde ich einfach "member" und Softcuts bemühen ;) Das sollte das Einfachste sein. Und man muss sich natürlich Gedanken darüber machen, in welcher Reihenfolge man seine Constraints an Prolog verfüttert. Da gibt es aber ja wirklich genug Heuristiken über Google zu finden.

Viel Erfolg und so.
 
BenIrminger schrieb:
Dieses Rätsel ist von Albert Einstein. Und 98% der Weltbevölkerung kann dieses Rätsel NICHT lösen. Ich glaub nicht das eine Formel das Problem lösen kann.

quatsch, hab das raetzel schon mal geloest!
 
Der Deutsche isses :D
 
Werd's morgen mal probieren, auf'm Zettel und so. Bin mal gespannt ob ich das schaffe und wie lange ich dafür brauche.
kommt mir beim Überfliegen gar nicht so schwer vor,....
 
Zurück
Oben Unten