KI - Probleme mit Hilfe von Künstlicher Intelligenz lösen



  • LISP wär auch ne Möglichkeit.
    Aber Prolog sollte man vorziehen. Schließlich bietet LISP nicht die deduktiven Möglichkeiten wie Prolog und außerdem ist es eine funktionale Sprache. Also ein ganz anderer Ansatz wie C++ oder Prolog.



  • wenn jemand jahrelang mit c++ programmiert hat wird im der umstieg auf eine funktionale programmiersprache siecher schwer fallen.

    was macht Prolog besser als c++ 😕



  • steff3 schrieb:

    was macht Prolog besser als c++ 😕

    Kurz gesagt: Man gibt das ein was man weiß und welches Ergebnis einen interessiert. Man sagt nicht wie etwas gemacht werden soll. Das macht prolog aber nur für bestimmte Aufgaben besser als C++. Andere Sachen sind wiederrum mit prolog ein Krampf, man kann also nicht sagen x ist besser als y.



  • Man kann aber sagen C++ ist besser als Java.



  • Selbst da würd ich mich nicht anschließen.

    Man sollte immer die Sprache wählen die zu einem Problem am Besten passt.
    1. Semester Informatik



  • frosty schrieb:

    Hab schon was:

    http://www.cc.gatech.edu/~yannis/lc++/

    Bietet scheinbar die Möglichkeiten von Prolog.
    Vielleicht hilfts.

    Ich bekomme es nicht hin, dass mein Programm auch die Bibliotheken "Included", wie mache ich das denn normal? 😕



  • hmm du musst die dateien entweder in dein system-include-verzeichnis kopieren und dann mittels <> includieren oder du müsstest die in alle projekt-sourcecode verzeichnisse packen in die du den code benutzt( würde ich sehr start von abraten) und dann mittels "" includieren.

    beim windoews ist es oft
    laufwerk:\proramme\softwarename\include
    oder bei linuxen in etwa

    /usr/include oder
    /usr/local/include

    oder ähnliches.

    Nur mal so am rande die header aus der funktionalen lib machen bei mir ärger.
    Hab eben mal kurz getestet und die prolog.h includiert ja die prelude.h und die scheint bei mir noch buggy zu sein...



  • Sehe ich richtig, dass das ganze irgendwie doch nicht geht? Beim Beispiel (http://www.cc.gatech.edu/~yannis/lc++/LC++v1.0/family.cc) von der Homepage kommen bei mir 69Fehler!?



  • Ich habe es selber noch nicht versucht, aber hast Du auch die FC++ Lib von der Seite installiert?



  • ich hatte schon fehler wenn ich nur den header eingebunden hatte. Die fehler die ich hatte kamen aus der FC++ Lib zB der prlude.h, aber ich hab es denn auch nicht genauer durchgesucht oder nach den genauen gründen gesucht



  • Wie gesagt, hab es noch nicht selbst ausprobiert. Aber habt ihr dann auch die FC++ Lib compiliert?

    Ach ja, schon geguckt ob euer Compiler auch unterstützt wird?
    Mit dem g++ solls ohne Probleme



  • 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.

    http://www.amzi.com/manuals/amzi7/articles/procpp.htm



  • 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 prolog

    Wobei 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 prolog

    Wobei 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

    Wobei 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]]


Anmelden zum Antworten