我目前正在研究一个人工智能项目,其中一个代理需要将箱子从其原始位置推入并拉到某个目标位置。然后该项目将扩展到包含多个代理,因此我们有一位主管负责创建“高级”目标,而代理负责实际实施。用于人工智能中高级计划的算法
实际上,目前,主管应该决定箱子放置在目标位置的顺序。事实上,将箱子放入其目标位置可能会阻碍另一个目标的实现。
我们解决这个问题的第一种方法是试图考虑“裁员”。如果将可行走空间分为两个子集,其中一个是我们的代理人,另一个是我们的一个或多个目标,那么某个职位就是一个裁员职位。例如,考虑下面的水平,其中“x”是代理,“A”和“B”是框和“a”和“b”是各自的目标的位置:
+++++++++++++++++++++++++++++++++++++++++
x a b+
+++++ +++++++++++++++++++++++++++++++++
+AB +
+++++
在这种情况下的目标“a”的位置是一个切断位置,因为如果一个盒子放在那里,那么代理将无法达到目标“b”。
你能否提出一个快速算法来计算切割位置,这可能会返回每个切割位置阻挡的目标数量?