0

例如,我有以下问题:我有一个销售 4 种产品(a、b、c 和 d)的销售代理。它总共有 10 个客户:3 个需要产品 a,3 个需要产品 b,3 个需要产品 c,1 个需要产品 d。并非每个客户都有通往所有其他客户的道路(链接)。代理目前在需要产品 a 的客户 1 的家中,他的目标是满足需要产品 d 的客户 10。这样它需要经过所有客户端才能到达客户 10。

有人可以帮忙吗?谢谢!

4

1 回答 1

0

您需要在该init部分中将图表设置为一组“连接谓词”,例如:

(adjacent l1 l2) (adjacent l2 l3) ...

这表示 and 之间的联系and between l1and ; 这些可能是航点或客户的位置。然后,您需要一个沿图表移动的操作:l2l2l3

(:action move
     :parameters (?from ?to - location)
     :precondition (and
             (adjacent ?from ?to)
             (at salesman ?from))
     :effect (and
             (at salesman ?to)
             (not (at salesman ?from)))

然后,您还需要一个动作deliver来确保推销员有一些商品,在客户那里,并且作为效果客户有商品(而推销员没有)。然后你设置为goal所有客户都有他们想要的商品,你应该很高兴。

于 2020-04-07T10:39:15.057 回答