例如,我有以下问题:我有一个销售 4 种产品(a、b、c 和 d)的销售代理。它总共有 10 个客户:3 个需要产品 a,3 个需要产品 b,3 个需要产品 c,1 个需要产品 d。并非每个客户都有通往所有其他客户的道路(链接)。代理目前在需要产品 a 的客户 1 的家中,他的目标是满足需要产品 d 的客户 10。这样它需要经过所有客户端才能到达客户 10。
有人可以帮忙吗?谢谢!
例如,我有以下问题:我有一个销售 4 种产品(a、b、c 和 d)的销售代理。它总共有 10 个客户:3 个需要产品 a,3 个需要产品 b,3 个需要产品 c,1 个需要产品 d。并非每个客户都有通往所有其他客户的道路(链接)。代理目前在需要产品 a 的客户 1 的家中,他的目标是满足需要产品 d 的客户 10。这样它需要经过所有客户端才能到达客户 10。
有人可以帮忙吗?谢谢!
您需要在该init
部分中将图表设置为一组“连接谓词”,例如:
(adjacent l1 l2) (adjacent l2 l3) ...
这表示 and 之间的联系and between l1
and ; 这些可能是航点或客户的位置。然后,您需要一个沿图表移动的操作:l2
l2
l3
(: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
所有客户都有他们想要的商品,你应该很高兴。