我正在制作一艘水下潜艇,需要在泳池中搜索位置未知的目标。有没有专门用于这种情况的算法?我读到过A*算法,但它似乎只在起始位置和目标位置已知的情况下用于寻找最短路径。深度优先搜索(DFS)似乎也适用于同样的场景。
有没有什么方法可以在不遍历整个泳池的情况下完成这个任务?
回答:
想象一下,你的潜艇所穿越的水体是一个带有单元格的图形。
你的搜索算法有任何启发式方法吗(即接近目标的近似度量)?
例如,目标可能更可能位于较深的水域,或者你可能通过摄像头看到目标。
如果你有一些启发式方法,你可以使用Dijkstra算法,这类似于加权图的广度优先搜索(BFS)。然后,你按照从起点增加的成本顺序探索节点。你的优先级将是源点的成本,如果你尚未探索它,以及探索的近似成本。
除此之外,根据给出的有限信息,我实在看不出除了BFS、DFS之外的其他方法,也就是以某种顺序探索每一个单元格直到找到目标。
当然,这一切都取决于你从潜艇获得的输入。也许你的潜艇可以看到或感知到目标(温度变化、声音、无线电信号,谁知道呢,等等)!