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 so: X= 1 Y=1, X=2 Y=2 usw. Aber genau da liegt der Hase im Pfeffer.
Denn er schafft ja den ersten Teil der echo-Regel mit 1 zu erfüllen und auch den zweiten Teil mit 1. Aber dann müßte er Backtracking machen, um den ersten Zähler um 1 zu inkrementieren, nur macht er das Backtracking nur im zweiten Teil der Regel. Und das ist ja auch vollkommen korrekt. Er macht das Backtracking im 2. Teil der Regel und stößt auf die nächste gültige Lösung. Und das geht so weiter, weshallb er dann in ner "Endlosschleife" landet.
Also müßte man ihm irgendwie beibringen, das Backtracking nicht nur auf den 2. Teil, sondern auf die ganze Regel anzuwenden.
tom_paris78
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 so: X= 1 Y=1, X=2 Y=2 usw. Aber genau da liegt der Hase im Pfeffer.
Denn er schafft ja den ersten Teil der echo-Regel mit 1 zu erfüllen und auch den zweiten Teil mit 1. Aber dann müßte er Backtracking machen, um den ersten Zähler um 1 zu inkrementieren, nur macht er das Backtracking nur im zweiten Teil der Regel. Und das ist ja auch vollkommen korrekt. Er macht das Backtracking im 2. Teil der Regel und stößt auf die nächste gültige Lösung. Und das geht so weiter, weshallb er dann in ner "Endlosschleife" landet.
Also müßte man ihm irgendwie beibringen, das Backtracking nicht nur auf den 2. Teil, sondern auf die ganze Regel anzuwenden.
tom_paris78