我对算法很陌生,现在处理一些路由优化问题,并且发现了一些关于以下方法的论文:
元启发式方法 基于人口(遗传算法,蚁群优化等) 基于单一解决方案(迭代本地搜索)
基于图表的方法 例如A *算法
混合整数线性规划方法
我对这些方法之间的关系有点困惑,我们是否使用例如使用GA来解决MILP,或者它们都只是单独的方法?
提前致谢!!
答案 0 :(得分:6)
混合整数线性规划比算法更像是一类问题。它包含所有问题,归结为最大化线性且具有整数值的成本函数。这些假设使得创建解决这个非常具体的问题的算法变得更容易,我认为这就是你所说的“MILP方法”。但实现可能会有很大差异,因为特定于问题的优化可能适用于良好的通用解决方案。
基于图形的更难以定义,因为涉及图论的所有算法都没有明确表示他们使用图表,但是正确性或最优性的证明可能需要使用一些非平凡的关于图的定理。
元启发式是一类旨在扩展启发式算法的算法。启发式算法是一种解决问题的“实用”方法,不能保证最优,但这对于直接目标来说已经足够了。元启发式将抽象级别提高一级:而不是直接在问题上进行推理,您将构建问题的解决方案(即GA中的个体)并推理它们(即在GA中扩展您的人口)。
路线优化可能属于三个类别中的任何一个,在我能够正确回答之前你需要更精确,但这里有一些例子:
流量最大化问题:线性规划。
例如:您的网络的每条路线最多可以被k卡车使用,并且您希望在最短的时间内将您的沙子从A点带到B点,您可以在每条路径上发送多少卡车?一条路径可能分成两条更受限制的路径,或缩小并让你的卡车卡在路径中间,甚至合并等等(注意它仍然是基于图形的)
最短路径,最长路径,路径数量:纯图形。
深度优先和广度优先搜索(我假设您已经知道)可以解决大量基于图形的问题,而无需任何更复杂的方法。例如,A *是“仅”DFS的扩展版本。通过路由优化,您很可能将路由网络表示为图形,因此这可能是一个很好的起点。
旅行商问题:元启发式
TSP基本上找到了一次只访问所有城市的路径。它比它看起来要困难得多(NP-complete,如果它响铃)。元启发式在这里非常有效,因为没有有效的解决方案。如果正确实施,遗传算法,蚁群优化和模拟退火都会给出相当好的结果。正如您所引用的,迭代本地搜索可用于在每个全局优化轮之间进行基于个体的局部优化,从而产生更好的结果。
对不起,我的三个例子属于与图形相关的问题,但它也表明图表可以帮助解决大量问题,即使术语 graph 没有明确引用问题陈述。
这三个也恰好是路由优化问题,这一切都取决于您正在寻找的优化。您可以使用这三种方法中的一种方法解决问题,也可以将两种方法结合起来(例如,针对元启发式的局部LP优化)。