Reputation: 1
I am trying to get my PDDL plan to run, and after going through a few iterations I have the code running without any syntax errors, but when attempting to plan, I get the following error. "ff: goal can be simplified to FALSE. No plan will solve it"
I'm sure there's something wrong with my logic but I can't for the life of me find the issue. Basic premise is a delivery drone picking
Domain:
(define (domain delivery-drone)
(:predicates
(needs-package ?house)
(package-received ?house)
(is-house ?house)
(is-drone ?drone)
(at-station ?drone)
(carrying-package ?drone)
(at-house ?drone)
(is-package ?package)
(being-carried ?package)
(tobe-delivered ?package)
(package-delivered ?package)
(is-station ?station)
(is-empty ?drone))
(:action pickup-package
:parameters (?drone ?package)
:precondition (and (is-drone ?drone)
(is-package ?package)
(at-station ?drone)
(tobe-delivered ?package)
(is-empty ?drone))
:effect (and (carrying-package ?drone)
(being-carried ?package)
(not (is-empty ?drone))))
(:action deliver-package
:parameters (?drone ?house ?package ?station)
:precondition (and (is-drone ?drone)
(is-station ?station)
(is-house ?house)
(at-station ?drone)
(carrying-package ?drone)
(needs-package ?house))
:effect (and (is-empty ?drone)
(package-delivered ?package)
(package-received ?house)
(at-house ?drone)
(not (carrying-package ?drone))
(not (needs-package ?house))
(not (tobe-delivered ?package))
(not (being-carried ?package))
(not (at-station ?drone))))
(:action fly-station
:parameters (?drone ?house ?station)
:precondition (and (is-drone ?drone)
(is-house ?house)
(is-station ?station)
(at-house ?drone)
(is-empty ?drone)
)
:effect (and (at-station ?drone)
(not (at-house ?drone)))))
Problem:
(define (problem delivery-drone-6houses)
(:domain delivery-drone)
(:objects drone station house-a house-b house-c house-d house-e house-f package-a package-b package-e package-f)
(:init (is-drone drone)
(is-station station)
(is-house house-a)
(is-house house-b)
(is-house house-c)
(is-house house-d)
(is-house house-e)
(is-house house-f)
(is-package package-a)
(is-package package-b)
(is-package package-e)
(is-package package-f)
(needs-package house-a)
(needs-package house-b)
(needs-package house-e)
(needs-package house-f)
(is-empty drone)
(tobe-delivered package-a)
(tobe-delivered package-b)
(tobe-delivered package-e)
(tobe-delivered package-f))
(:goal (and
(package-received house-a)
(package-received house-b)
(package-received house-e)
(package-received house-f))))
Any tips or advice would be much appreciated.
Upvotes: 0
Views: 351
Reputation: 2352
Drones are not in stations and cannot get there unless they are at a house. Try adding: (at-station drone)
in your (:init)
.
Upvotes: 0