【问题标题】:Local search using the min-conflicts heuristic for solving a maze使用最小冲突启发式解决迷宫的局部搜索
【发布时间】:2015-07-03 19:14:01
【问题描述】:

我有一个迷宫(以二维矩阵表示),如下所示 (5 x 5):

s 1 X 1 X
1 X 1 1 1
1 1 X 1 X
X 1 G 1 X
1 1 1 1 1

其中 s 是起始位置,G 是目标位置,X 是障碍物。

如何在迷宫中使用最小冲突启发法应用本地搜索。

我在想的是使用障碍作为“冲突”和

1. Start at the starting position, current = start;
2. Find the neighbor that has least number of neighboring obstacles (conflicts), 
3. Update current to that neighbor state, and
4. Repeat until goal is found.

为简单起见,我只能向左、向右、向上或向下移动;但没有对角线

我做得对吗?如果这里有人可以为我指出正确的方向,那就太好了。

【问题讨论】:

    标签: java search artificial-intelligence maze


    【解决方案1】:

    这是一个完全有效的解决迷宫的算法。如果有人告诉您必须使用最小冲突作为启发式方法,我认为这可能是最好的方法,因为它具有避免死胡同的一些不错的特性。但是,我不确定它是否会特别有效。很容易构建一个能够以次优方式处理的迷宫,例如:

    s 1 1 1 1
    X 1 X X X
    X 1 X G 1
    X 1 X X 1
    X 1 1 1 1
    

    在它的关键点上,最小冲突只是一种用于迷宫的奇怪启发式方法。它旨在用于解决问题是否解决问题完全取决于它是否与任何规则(例如 N-Queens)冲突。在这些问题中,减少冲突的数量本质上意味着您更接近可行的解决方案。迷宫并非如此——唯一决定你是否有解决方案的是你是否达到目标。您可能必须穿过障碍物隧道才能到达那里。因此,虽然在技术上是正确的,但这似乎不是一个理想的方法。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-07
      • 2019-02-01
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 2020-03-08
      • 2015-04-24
      相关资源
      最近更新 更多