标签(空格分隔): 算法学习
线性规划是日常常用的算法之一,通过线性规划的对偶单纯性,可以解决最大流,最短路径等常见的规划问题。但是在TSP问题中,所要求得的解释选择或者不选择当前的边,输出结果也就是只有0,1两种结果,此种问题也被称为0,1规划。或者当我们计算给每条边分配怎样的权重的时候,最大最小化代价函数问题,也被称为整数规划的问题。
(1)求整数规划的松弛问题最优解。 (2)若松弛问题的最优解满足整数要求,得到整数规划的最优解,否则转下一步。 (3)任意选一个非整数解的变量,在松弛问题中加上约束及+1组成两个新的松弛问题,称为分支。新的松弛问题具有如下特征:当原问题是求最大值时,目标值是分支问题的上界;当原问题足求最小值时,目标值是分支问题的下界。 (4)检查所有分支的解及目标函数值,若某分支的解是整数并且目标函数值大于(max)等于其他分支的目标值,则将其他分支剪去不再计算,若还存在非整数解并且目标值大于(max)整数解的目标值,需要继续分支,再检查,直到得到最优解 算法的流程图与说明见下图所示
程序说明,此程序时用来接min整数规划,要求解最大值的时候,需要设置下界为全局变量。 程序中的线性规划的实现是基于在线开源库lp_solver
以上过程的实现可以总结为0,1规划问题。0,1规划可以用在线开源库GLPK进行实现
新闻热点
疑难解答