分支定界法
首先说明,分支定界法运用较多的是在求解整数规划的问题中。而使用分支界定法在求解最短路径中并没有相关的论文或书籍,笔者是探索性的应用。首先介绍一下分支定界法吧,首先给定算法的一个解,然后根据求得的结果继续修改解,并进行分支操作,对已有的分支进行剪枝(即判断哪些路径不合题意),重新确定上下界,然后对其重复之前的操作,直到上界等于下界,在数学的角度来看就是两边夹法则最后收敛于一个值。
这里笔者用自己的话概述了分支定界的法的概念,下面给出网址,读者也可以自己再取了解一下分支定界法
分支定界法之所以没能应用到NP问题中,因为没有一个确定的应用形式,即没有确定的实现方法。笔者这几天
经过思考,将分支定界的思想与NP问题中tsp问题进行了结合,发现对能够求得相对更好的解,现在分享给大
家。
题目与解题思路
题目:给定31个城市的坐标,求一回路使得经过的距离最小。
经过尝试,给定的初始解会影响优化所得的解。所以,笔者使用改进过且基于tsp问题的遗传算法求出一个较好的解,然后利用分支定界的思想算法对已有解进行优化,这也可以进一步证明遗传算法收敛得到的是局部最优解。下面是分支定界算法对路径的优化流程图:
结果、分析与代码
这是分支定界使用后的路径:
使用分支界定后的结果比局部最优解减少了200+,这是经典优化算法所做不到的。当然我们可以改变初始解,进而优化最终得到的解。200+路程的优化是很客观的,比如多次运输所产生的油费时间等等资源的使用,这样的做法意义很大!
大家想要源码和数据源的可以私信我
% 分支定界法求最短路
% 使用智能算法求出一个可行较优解
clear
clc
% 数据输入
position = [1304 2312;3639 1315;4177 2244;3712 1399;3488 1535;3326 1556;
3238 1229;4196 1004;4312 790;4386 570;3007 1970;2562 1756;
2788 1491;2381 1676;2648 1328;3715 1678;3918 2179;4061 2370</