Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

Jethro

Junior Schreiberling

  • "Jethro" is male
  • "Jethro" started this thread

Posts: 185

Date of registration: Oct 15th 2002

1

Friday, November 5th 2004, 4:11pm

KI - PROLOG -Rekursion

Hallo, in der 3ten Übung ist ein Beispiel zu PROLOG und Rekursion mit folgender KB:

teurer(X,Y):- kostet_etwas_mehr(X,Y).
teurer(X,Y):- kostet_etwas_mehr(X,Z), teurer(Z,Y).
kostet_etwas_mehr(big_mac,pommes).
kostet_etwas_mehr(doener,big_mac).

Das Problem ist, fragt man nach teurer(doener,pommes) so wird nicht nur 'yes' abgeleitet, sondern als zweite Antwort 'no', da PROLOG beim REDO auf kostet_etwas_mehr(pommes,pommes) gerät, was kein Fakt ist. Gibt es eine Möglichkeit diese Zweideutigkeit zu umgehen und nur 'yes' als Antwort zu bekommen oder funktioniert das aufgrund der nötigen Basis-Rekursions-Klasusel -Struktur nicht?
Information is like a mist, you have to breath it in

(De-Phazz - Information)

Arne

ThI

  • "Arne" is male

Posts: 1,798

Date of registration: Oct 7th 2002

Location: Hannover :)

Occupation: Lecturer ThI

2

Friday, November 5th 2004, 9:53pm

ich hab mich damit jetzt noch nicht beschäftigt, doch irgendwie erinner ich mich aus PSUE, dass da doch etwas mit einem '!' in einer Klausel war, sodass die Rekursion abgebrochen wird. meinst du soetwas? vllt gehts damit...
"NP - The class of dashed hopes and idle dreams." Complexity Zoo

Jethro

Junior Schreiberling

  • "Jethro" is male
  • "Jethro" started this thread

Posts: 185

Date of registration: Oct 15th 2002

3

Sunday, November 7th 2004, 2:46pm

Danke, du hattest Recht, wenn man die Klausel wie folgt modifiziert bekommt man nur eine (richtige) Antwort:

teurer(X,Y):- kostet_etwas_mehr(X,Y),!.
Information is like a mist, you have to breath it in

(De-Phazz - Information)