繁体   English   中英

A *算法的启发式算法

[英]Heuristic For A* Algorithm

我有一个问题要解决A *但我很难设计一个好的启发式。

我的问题是:

确定在一个城市中的垃圾收集车完成的最佳路线,该城市在已知的地图上移动,以寻求最大化负荷并最小化旅行时间。

我有4种类型的节点:Geral Nodes,Dump Nodes,Garbage Nodes和Gas Nodes。

垃圾收集车可能没有燃气并且有机会重新装满车辆。 也可能有超过1个垃圾垃圾箱在哪里交付。

什么是最好的启发式来解决这个问题?

问候

一个好的首次搜索启发式是使用贪心算法。 例如,在一般的路线规划算法(找到城市之间的最短路线)中,一个不错的启发式算法就是使用贪婪的算法,你总是会去乌鸦飞行时最接近目的地的下一个城市; 这是一种线性时间启发式算法,永远不会过高估计解决方案。 在您的情况下,也许您可​​以使用贪婪算法,其中垃圾车始终进入下一个最接近的垃圾节点,或垃圾节点最多的垃圾节点; 如果不知道你正在使用的四个节点的细节,我就无法更具体,但你明白了。 任何不高估解决方案的线性时间算法都可以,然后您可以在下一次传递中调整它。 (在大多数情况下,nlog(n)启发式也是可以接受的; n ^ 2变得非常昂贵。)

A *非常适合找到2点之间的最快/最短路线。

但是,您的垃圾车问题可能是一个完全不同的问题:您需要通过订购一组点来找到最快/最短的路线。 这基本上是旅行商问题(TSP)或它的大兄弟车辆路径问题(VRP),两者都是NP完全的

A *无法处理NP完全问题 ,您需要算法,如元启发式等。寻找TSP和VRP问题的解决方案, 例如OptaPlanner中的TSP和VRP示例(java,开源) (在此视频中显示 )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM