Backward Search (Inverse Action Application)

Moderator: Einführung in die Künstliche Intelligenz

mProg
BASIC-Programmierer
BASIC-Programmierer
Beiträge: 147
Registriert: 25. Apr 2015 00:10

Backward Search (Inverse Action Application)

Beitrag von mProg » 11. Jun 2018 19:46

Ich habe eine Verständnisfrage bzgl. Inverse Action Application. Anhand der Folien kann man Backward Search für ein Goal G mit einer Aktion a anwenden wenn folgende Bedingung gilt:
1. a ist konsistent: Sei G unser Ziel bestehend aus s_1,s_2,...,s_n aus S (S=Subgoals) (als Beispiel https://www.ke.tu-darmstadt.de/lehre/ss ... anning.pdf S.39 handempty,clear(X),on(X,Y)) und a eine Aktion und es exisitiert ein s aus S so dass s Element von Add-Liste von a ist, dann ist a konsistent.
2. a ist relevant: Sei G unser Ziel bestehend aus s_1,s_2,...,s_n aus S (S=Subgoals) (als Beispiel https://www.ke.tu-darmstadt.de/lehre/ss ... anning.pdf S.39 handempty,clear(X),on(X,Y)) und a eine Aktion und es exisitiert kein s aus S so dass s Element von DELETE-Liste von a ist, dann ist a relevant.
Somit kann man in dem Beispiel von S.39 die Aktion stack(c,b) verwenden.
Meine Frage ist, dass man doch laut der Definition auch stack(b,a) verwenden könnte. Ich sehe hier kein Problem mit den gegebenen Bedingungen im Algorithmus. Jedoch sollte das doch nicht erlaubt sein, da ja auf b noch c liegt.
Müsste deshalb nicht gelten, dass anstatt ein subgoal doch alle subgoals in der Add-Liste einer Aktion a gelten müssen, damit man Aktion a benutzen darf?

Karl Stelzner
Neuling
Neuling
Beiträge: 5
Registriert: 30. Mai 2018 12:26

Re: Backward Search (Inverse Action Application)

Beitrag von Karl Stelzner » 13. Jun 2018 18:02

Du hast recht, stack(b,a) würde hier in der Tat als mögliche Aktion durchsucht. Nach weiterem Suchen wird man dann feststellen, dass es unmöglich ist, die Ziele holding(b) und on(c,b) gleichzeitig zu erreichen.

Die von dir vorgeschlagene Lösung würde allerdings nicht funktionieren, da sie ja bedeuten würde, dass nur Aktionen betrachtet werden, die alle Ziele auf einmal erfüllen. Solche wird es in der Regel nicht geben.

Ich denke die Lösung liegt eher in der Modellierung des Problems: Wenn wir irgendwie kodieren würden, dass sich holding(X) und on(_, X) gegenseitig ausschließen, könnten wir uns die zusätzlichen Suchschritte ersparen.

Antworten

Zurück zu „Einführung in die Künstliche Intelligenz“