Suchergebnisse
Suchergebnisse 1-8 von insgesamt 8.
-
Hallo zusammen, meine in den vorherigen Threads beschriebenen Problem hab ich alle lösen können. *freu* Danke nochmal an die, die mir geholfen haben. Jetzt mal ein allgemeineres Problem. Letztens habe ich mit einem Kumpel diskutiert, ob die Warnungen, die Prolog so beim Kompilieren ausspukt, die Performance (negativ) beeinflussen könnte. Ich weiß, bei dem Familien-Problem kann man das vernachlässigen, aber so ganz prinzipiell? Was meint ihr dazu? Lassen sich die Warnungen eigentlich ausschalten,…
-
Hallo zusammen, Mal ein allgemeineres Problem. Letztens habe ich mit einem Kumpel diskutiert, ob die Warnungen, die Prolog so beim Kompilieren ausspukt, die Performance (negativ) beeinflussen könnte. Ich weiß, z.B. bei dem Familien-Problem kann man das vernachlässigen, aber so ganz prinzipiell? Was meint ihr dazu? Lassen sich die Warnungen eigentlich ausschalten, wenn mann sie nicht vermeiden kann? Ich denke da z.B. an die "Singleton Variable" Warnung. *grübelnd* tom_paris78
-
Re:
BeitragAber wie soll das gehen? Wenn ich Prolog richtig verstanden habe, versucht er doch eine Regel aus mehreren Prädikaten oder Bedingungen immer Stück für Stück zu beweisen und wenn es zum Backtracking kommt, dann immer erst innerhalb des aktuellen Teils. *ziemlichratlosbin*
-
Hallo, mit dem Forumwechsel und weil sich meine Erkenntnis bezüglich meines Problems geändert haben, poste ich das Ganze nochmal in nem neuen Thread. Im Prinzip läuft mein Problem darauf hinaus, daß ich 2 Prädikate in einer Regel habe,die bei jedem Durchlauf geändert werden sollen. Also ungefähr so (beispielhaft): [code:1] zahl(1). zahl(X):- zahl(Y), X is Y+1. id(1). id(X):- id(Y), X is Y+1. echo:- zahl(X), id(Y). [/code:1] Und dann sollen beide Zähler gleichzeitig hochgezählt werden, ungefähr s…
-
Für das in meinem letzten Thread beschriebene Problem finde ich keine Lösung. :cry: Deswegen habe ich jetzt versucht den Umweg über Listen zu gehen. Mit dem folgenden Konstrukt lese ich die Argumente aller maennlich/1 Prädikate meiner WB ein und schreibe sie in eine Liste: Quellcode (10 Zeilen) Wenn ich nun nach liste(X) frage gibt er mir 5 Lösungen aus, von der leeren Liste bis hin zum richtigen Ergebnis. Ich brauch ja aber nur das letzte Ergebnis. Gibt es eine Möglichkeit nur das letzte auszug…
-
Hallo malwieder, beschäftige mich immernoch mit meinem Familien-Problem. ich würde den maennlich etc. Prädikaten nun gern IDs zuordnen, damit doppelte Namen nicht sofort gelöscht werden, wenn es eine Namensgleichhet gibt. Eine ID zu generieren habe ich inzwischen hinbekommen, allerdings hakt es noch beim Einfügen in das Prädikat. Mit der folgenden Regel: Quellcode (1 Zeile) verabschiedet er sich immer in eine Endlosschleife, was wohl am Prädikat generate_ID/1 liegt. Alleine funktioniert dieses P…
-
Prolog: Verständnisproblem
BeitragHab ein Problem, das nicht auf meinem Mist gewachsen ist. In einem Buch über Prolog hab ich folgende Aufgabe gefunden: "Analysieren sie das folgende Prädikat: zahl(1). zahl(X):- integer(X), zahl(Y), X is Y +1. " In der Lösung in diesem Buch heißt es dann: "Dieses Prädikat eignet sich zum Beweisen, ob X eine Zahl ist oder zum generieren von Integer-Zahlen. Also die Anfrage ?- zahl(4). liefert yes, während die Anfrage ?- zahl(X). X = 1, X = 2, X = 3, X = 4, ... liefert." Nun zu meinem Problem: bei…
-
Hallo, Hab ein Verständnisproblem mit Prolog. :? Ich wollte mit dem folgenden Konstrukt doppelte Prädikate aus der Wissensbasis löschen. loesche(X, Y):- maennlich(X), maennlich(Y), X == Y, retract(maennlich(Y)). Leider ging der Schuß nach hinten los und alle Prädikate waren gelöscht. :cry: Ist ja auch verständlich, weil Prolog bei beiden maennlich/1 Prädikaten das aktuell gefundene benutzt, miteinander unifiziert und dann löscht. Gibts ne Möglichkeit ihm zu sagen, daß er bei maennlich(Y) das näc…