首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在PDDL中加入条件?

如何在PDDL中加入条件?
EN

Stack Overflow用户
提问于 2021-06-02 00:25:45
回答 1查看 75关注 0票数 1

我正在学习如何在IA类中使用PDDL,我必须编写一个计划,其中我需要从location4中挑选一个人并将其放入location1中,还需要在location3中挑选一个人并将其放入location1中。我已经有了代码,移动到地点挑选人,移动到命运地点,并放弃它。但是有一些规则我不能放在代码中,我需要遵循一个连接路径,我不知道如何设置这些条件:

这是连接路径: Loction1 -> Location2 -> Location4 -> Location3

我有从一个位置到另一个位置的代码,但我不知道如何在不能直接从位置1到位置4的情况下设置条件

代码如下:

域:

(定义(域planeacion_Str) )

代码语言:javascript
复制
(:predicates (Hospital ?h)
    (Ambulancia ?a)
    (Location ?l)
    (Paciente ?px)
    (Libre ?a)
    (Ocupado ?a ?px)
    (at-ambulancia ?l)
    (at-paciente ?px ?l)
    
)

(:action Conducir
    :parameters  (?de ?para)
   :precondition (and  (Location ?de) (Location ?para) (at-ambulancia ?de))
   :effect (and  (at-ambulancia ?para)
         (not (at-ambulancia ?de)))
)

(:action subirPaciente
    :parameters (?pcte ?lctn ?amblnc)
   :precondition  (and  (Paciente ?pcte) (Location ?lctn) (Ambulancia ?amblnc)
            (at-paciente ?pcte ?lctn) (at-ambulancia ?lctn) (Libre ?amblnc))
   :effect (and (Ocupado ?pcte ?amblnc)
        (not (at-paciente ?pcte ?lctn)) 
        (not (Libre ?amblnc)))
)

(:action bajarPaciente
    :parameters  (?pcte ?lctn ?amblnc)
   :precondition  (and  (Paciente ?pcte) (Location ?lctn) (Ambulancia ?amblnc)
            (Ocupado ?pcte ?amblnc) (at-ambulancia ?lctn))
   :effect (and (at-paciente ?pcte ?lctn)
        (Libre ?amblnc)
        (not (Ocupado ?pcte ?amblnc)))
))

(define (problem practica_Planeacion_pblm) (:domain planeacion_Str) (:objects l1 l2 l3 l4 amblnc px1 px2) (:init (医院l1) ( l1) (Location l2) (Location L2) (Location l3) (Location l4) (Paciente px1) (Paciente px2 ) (Libre amblnc) (at-amblnc l1) (at-paciente px1 l4) (at-paciente px2 )) (:goal (和(at-paciente ) (at-paciente )))

希望有人能帮我。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-02 01:12:09

您需要在移动操作中添加一个前提条件,即只能在相邻位置之间移动;然后添加一个相邻位置列表作为初始状态中的谓词:

代码语言:javascript
复制
(adjacent location1 location2)   
(adjacent location2 location3)

但不是(adjacent location1 location4)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67792612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档