KI - Probleme mit Hilfe von Künstlicher Intelligenz lösen
-
Habe es jetzt auch mal ausprobiert. Geht net! Nicht alles von der FC++ Lib ist korrekt. Und auch der LC++ Lib lässt sich nix entlocken.
Ne Alternative die ich gefunden hab wäre Amzi-Prolog aus C++ heraus aufzurufen.
-
Okay, vielen Dank, werde ich das mal ausprobieren

-
Hat jemand schon versucht damit eines der Rätsel zu lösen`?
-
peter77 schrieb:
Hat jemand schon versucht damit eines der Rätsel zu lösen`?
mit dem fisch ?
japp sowohl aufm zettel als auch in prolog
-
Ja, einige.
-
shapeless schrieb:
peter77 schrieb:
Hat jemand schon versucht damit eines der Rätsel zu lösen`?
mit dem fisch ?
japp sowohl aufm zettel als auch in prologWobei mein Rätsel darauf ausgelegt war, dass es im Kopf gelöst werden sollte. Nur wer es im Kopf löst (ohne Papier und Stift) gehört zu den klügsten Köpfen der Welt.
Und nun in den Dreck, ihr Maden
!Euer 3in5t3in
-
4lb3rt 3in5t3in schrieb:
shapeless schrieb:
peter77 schrieb:
Hat jemand schon versucht damit eines der Rätsel zu lösen`?
mit dem fisch ?
japp sowohl aufm zettel als auch in prologWobei mein Rätsel darauf ausgelegt war, dass es im Kopf gelöst werden sollte. Nur wer es im Kopf löst (ohne Papier und Stift) gehört zu den klügsten Köpfen der Welt.
Und nun in den Dreck, ihr Maden
!
Euer 3in5t3inWobei ich mir nicht anmaßen wollte, zu testen ob ich zu den schlausten 2% gehöre.
also hab ich es so gemacht.
( nur mal so am Rande ich habs nur zu prolog-übungszwecken gelöst
und auf dem papier lediglich überprüft hab ob das Ergebnis stimmt...)
-
Wie sieht das ganze denn in Prolog aus? Würde mich mal interessieren

-
Leider konnte ich meinen Code bisher nicht finden. Wenn ich das doch noch schaffe werde ich den auch mal posten aber Inhaltlich unterscheidet er sich kaum.
also hier eine Lösung:next_to(X, Y, List) :- iright(X, Y, List). next_to(X, Y, List) :- iright(Y, X, List). iright(L, R, [L | [R | _]]). iright(L, R, [_ | Rest]) :- iright(L, R, Rest). einstein(Houses, Fish_Owner) :- =(Houses, [[house, norwegian, _, _, _, _], _, [house, _, _, _, milk, _], _, _]), member([house, brit, _, _, _, red], Houses), member([house, swede, dog, _, _, _], Houses), member([house, dane, _, _, tea, _], Houses), iright([house, _, _, _, _, green], [house, _, _, _, _, white], Houses), member([house, _, _, _, coffee, green], Houses), member([house, _, bird, pallmall, _, _], Houses), member([house, _, _, dunhill, _, yellow], Houses), next_to([house, _, _, dunhill, _, _], [house, _, horse, _, _, _], Houses), member([house, _, _, _, milk, _], Houses), next_to([house, _, _, marlboro, _, _], [house, _, cat, _, _, _], Houses), next_to([house, _, _, marlboro, _, _], [house, _, _, _, water, _], Houses), member([house, _, _, winfield, beer, _], Houses), member([house, german, _, rothmans, _, _], Houses), next_to([house, norwegian, _, _, _, _], [house, _, _, _, _, blue], Houses), member([house, Fish_Owner, fish, _, _, _], Houses).den code kann man dann mit nem prolog interpereter benutzen und wenn man
dann in der "command line "?- einstein(Houses,Fish_owner).
eingibt erhält man folgene Auflösung:
Fish_owner = german
Houses = [[house,norwegian,cat,dunhill,water,yellow],[house,dane,horse,marlboro,tea,blue],
[house,brit,bird,pallmall,milk,red],[house,german,fish,rothmans,coffee,green],
[house,swede,dog,winfield,beer,white]]
-
Ach ja es gibt ürgibens auch schon eine Schnittstelle für C++.
die wrapped SWI-Prolog.h und man kann SWI-cpp.h somit als schnittstelle benutzen.
Ich und ein freund hamm schon mal elizer per prolog gehabt und mit dieser Schnittstelle konnten wir erfolgreich per C++ drauf zugreifen.hier nen link zu nem swi-prolog/c++ interface
-
Nur als Anmerkung: das ist kein schöner und guter Prolog-Stil. Um Prolog richtig programmieren zu können sollte man verstehen wie Prolog funktioniert. Man muß wissen wie der Interpreter die Regeln abarbeitet. Deshalb sollte man sich ein gutes Buch, z.B. Adventure in Prolog, nehmen und durcharbeiten. Adventure in Prolog findest Du kostenlos hier: http://www.amzi.com/download/index.htm
-
Hiermit kann man also in C++ arbeiten um solche Probleme zu lösen?
http://www.amzi.com/manuals/amzi7/articles/procpp.htm
Das bedeutet ich schreibe die Sachen einfach so in meinen C++ Quellcode?
-
frosty schrieb:
Nur als Anmerkung: das ist kein schöner und guter Prolog-Stil. Um Prolog richtig programmieren zu können sollte man verstehen wie Prolog funktioniert. Man muß wissen wie der Interpreter die Regeln abarbeitet. Deshalb sollte man sich ein gutes Buch, z.B. Adventure in Prolog, nehmen und durcharbeiten. Adventure in Prolog findest Du kostenlos hier: http://www.amzi.com/download/index.htm
Danke für den Link aber wie gesagt ist der Code nicht von mir. Ich weiss nciht mehr wo meiner ist, da es schon ein paar jahre her ist das ich selbst Prolog benutzt hab, falls ich ihn finde, kann ich ja sehen ob ichs vll doch auch nicht verstanden hab....
-
Oswald_ schrieb:
Hiermit kann man also in C++ arbeiten um solche Probleme zu lösen?
http://www.amzi.com/manuals/amzi7/articles/procpp.htm
Das bedeutet ich schreibe die Sachen einfach so in meinen C++ Quellcode?Das steht doch in dem Link genau erklärt
.
-
Walli schrieb:
Oswald_ schrieb:
Hiermit kann man also in C++ arbeiten um solche Probleme zu lösen?
http://www.amzi.com/manuals/amzi7/articles/procpp.htm
Das bedeutet ich schreibe die Sachen einfach so in meinen C++ Quellcode?Das steht doch in dem Link genau erklärt
.Also ja, danke

-
Hallo,
Hast du eins der Probleme nun schon mit Hilfe von C++ gelöst? Oder jemand anderes?
