PDDL语法学习-Problem篇-2

本文介绍了PDDL 2.1中的问题语法扩展,特别是度量(metric)的概念,它作为优化函数定义了计划的成本。度量可以最大化或最小化,例如在示例中通过电池电量总和。还提到了数值流(numeric fluents)的用法以及已废弃的长度参数。文章引用了相关资源并提供了示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

为了补充域文件的语法,必须扩展PDDL 2.1中的问题语法。PDDL 2.1中语法的一个有趣扩展是添加了一个度量( metric)。行为类似于优化函数的 metric 为计划定义了一个成本值。然后,我们表示是否希望这个指标最大化(如足球)或最小化(如高尔夫球)

先引入一个简单的例子:

(define

    (problem rover1)

    (:domain rover-domain)

    (:objects

        r1 r2 - rover

        wp1 wp2 - waypoint

    )

    (:init

        (= (battery-amount r1) 100)

        (= (recharge-rate r1) 2.5)

        ...

    )

    (:goal (and

                ...

        )

    )    

    (:metric maximize (+

            (battery-amount r1)

            (battery-amount r2)

        )

    )

)

内容

  • Numeric Fluents
  • Metric
  • Length(Deprecated)

1Numetric Fluents

(= (<fluent_name> <argument>) <value>)

等号前缀表示法用于为数值流分配一个值。一些规划器将要求所有可能的数值为数值通量应声明之前,它将试图规划

(= (battery-amount r1) 10)

 

2、MeTric

(:metric minimize (<numeric_operation>))

metric 可以使用对fluents的一些数值操作来定义,包括只使用单个fluent。声明 metric 的最常用方法是声明一个没有参数的数值流,并在每个操作的效果内按该操作的成本增加它

我们可以选择最小化或最大化 metric 函数的值。注意, metric 函数不能代替目标。

(:metric maximize (+

            (battery-amount r1)

            (battery-amount r2)

        )

    )

3、Length

长度参数是不赞成使用的。几乎没有规划器会支持它。

 

 

References

 

 

 

 

 

 

 

来自 <https://github.com/nergmada/pddl-reference/blob/master/docs/reference/PDDL2.1/problem.md>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值