【问题标题】:Finding a path: SAT solving寻找路径:SAT求解
【发布时间】:2017-06-01 17:02:02
【问题描述】:

给定一个 n*m 网格,它在各个点都有障碍物,即机器人的起始和结束位置。任务是找到一条从头到尾的无碰撞路径。这个问题将被建模为 SAT 问题。

请指导我在这种情况下应该做什么以获得最佳解决方案。

【问题讨论】:

  • 你似乎已经问过这个问题,得到了惊人的回应,现在你问的只是一个细微的变化。也许你应该自己试一试?
  • 我之前问过一个类似的问题,但这不是完整的答案。那只会告诉我一条路径是否存在。但任务是如何找到最佳路径

标签: sat motion-planning


【解决方案1】:

我会假设 最佳 意味着最短。使用我描述的here 的方法,您可以执行第一步:

  1. 定义网格
  2. 制定可满足性任务

在这个阶段,求解器会返回满足所有约束的随机路径。需要记住的重要一点 - 您可以定义达到目标所需的步骤数k!所以你只需从 k = 0 开始。是否有可能通过 0 个动作达到目标?可能不会,直到代理已经达到目标。然后只增加 k = 1。现在有可能吗?如果没有,增加更多!如何实施?只需将高于某个限制的所有 k 设置为 False 并在每次迭代时增加此限制。

如果你知道上限,你可以使用二分查找找到最短的路径,这样会更有效率。

如果您关心路径的其他属性,可以使用pseudo-boolean constraints。通过利用这种方法,您可以最大限度地减少例如右转的次数。为所有可能的右转创建一个布尔计数器,并通过assumptions 限制可用转数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-22
    • 1970-01-01
    相关资源
    最近更新 更多