混合整数线性规划,图的最大流,图的匹配,求解
求解软件有,
matlab,lingo,商用软件
GLPK,GNU LP Kit,开源,ansi C
介绍图的匹配,matching
https://www.tutorialspoint.com/graph_theory/graph_theory_matchings.htm
最大流问题,有许多图的基础知识
https://blog.csdn.net/qq_39557517/article/details/81945749
介绍如何使用GLPK
https://www-sop.inria.fr/members/Frederic.Giroire/teaching/ubinet/pdfs/exercises-solvers.pdf
线性规划基本介绍:https://www.cs.cmu.edu/~ckingsf/bioinfo-lectures/linearp.pdf
线性规划三种求解方法:
Simplex method,单纯形法,古老的方法,虽然不是多项式时间算法,但实际计算很快;
Ellipsoid method,椭球方法,1970s提出,虽然是多项式时间算法,但实际效果差,很少用;
Interior point method,多项式时间算法,实用。
最大二分匹配,maximum bipartite matching
最大流问题求解:
下面这个例子简单一些:
http://www.cs.cornell.edu/~tomf/pyglpk/ex_maxflow.html
与这个图类似:
对应的matlab线性规划代码如下,有一点需要注意PPT的目标函数是max,matlab目标函数是min:
clc;clear; A = [ 1, 0, 0, 0, 0;0, 1, 0, 0, 0;0, 0, 1, 0, 0;0, 0, 0, 1, 0;0, 0, 0, 0, 1]; b = [4;1;2.5;1;4]; Aeq=[ 1, 0, -1, -1, 0;0, 1, 1, 0, -1]; beq = [0;0];f = [-1,-1,0,0,0];x = linprog(f,A,b,Aeq,beq)
View Code
输出结果如下,最大流为4.5:
Optimization terminated.x =3.50001.00002.50001.00003.5000
View Code
下面这篇很好的介绍了如何将最大流问题整理成一个线性规划问题,使用了PyGLPK 。
http://www.mathcs.emory.edu/~cheung/Courses/323/Syllabus/NetFlow/max-flow-lp.html
对应的matlab线性规划代码如下,需要使用整数线性规划:
clc;clear;%x01,x02,x03,x14,x15,x24,x25,x26,x35,x47,x57,x67 Aeq=[ 1, 0, 0, -1, -1, 0, 0, 0, 0, 0, 0, 0;0, 1, 0, 0, 0, -1, -1, -1, 0, 0, 0, 0;0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0;0, 0, 0, 1, 0, 1, 0, 0, 0, -1, 0, 0;0, 0, 0, 0, 1, 0, 1, 0, 1, 0, -1, 0;0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, -1]; beq = [0;0;0;0;0;0];%x01,x02,x03,x14,x15,x24,x25,x26,x35,x47,x57,x67 A = [ 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0;0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0;0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0;0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0;0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0;0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0;0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0;0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0;0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0;0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0;0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1]; b = [3;2;2;5;1;1;3;1;1;4;2;4];f = [-1,-1,-1,0,0,0,0,0,0,0,0,0];intcon = [1:12]; x = intlinprog(f,intcon,A,b,Aeq,beq)
View Code
输出结果如下,最大流为6:
LP: Optimal objective value is -6.000000. Optimal solution found.Intlinprog stopped at the root node because the objective value is within a gap tolerance of the optimal value, options.AbsoluteGapTolerance = 0 (the default value). The intcon variables are integer within tolerance, options.IntegerTolerance = 1e-05 (the default value).x =321301101420
View Code
转载于:https://www.cnblogs.com/yanhc/p/10989972.html
混合整数线性规划,图的最大流,图的匹配,求解相关推荐
- MindOpt对于混合整数线性规划问题如何建模优化(python语言)
简介 MindOpt是一款高效的优化算法软件包,求解算法实现了线性规划(LP).混合整数线性规划(MILP).二次规划(QP),可以支持命令行.c.c++.java和python调用.接下来我们将发布 ...
- 基于混合整数线性规划的电力系统机组组合优化研究
基于混合整数线性规划的电力系统机组组合优化研究 *一.简介 电力系统机组组合问题属于单目标.多约束优化问题,是电力系统优化调度.系统规划的学习的第一步.通过对机组组合优化的掌握,并进一步引入新的运行场 ...
- 混合整数线性规划——切割平面
我们可以使用Gomory切割来完全求解一个整数线性规划问题.思路是 1. 求解线性松弛 2. 根据这个线性松弛的单纯性表产生并添加Gomort切割,切割约束条件空间, 直到线性松弛的最优解为整. 针对 ...
- 如何用matlab编写混合整数规划,MATLAB中的混合整数线性规划
我试图用MATLAB解决这个混合整数线性规划问题 . 但是,我在matlab中对线性目标函数和决策变量求和的定义存在问题 . 我在MATLAB中使用intlinprog函数 . 请在下面找到图片链接 ...
- 混合整数线性规划(MILP)
混合整数线性规划(MILP) 线性规划模型(Linear Programming, LP):LP的定义比较简单,它指的就是目标函数是线性的,所有约束也是线性的,最后,决策变量可以取任何的实数.如果在线 ...
- 混合整数线性规划问题 Matlab
问题介绍 一般来说可以使用simplex算法计算正实数范围内的线性规划问题,但是在实际生活中我们常常会遇到带有相关整数要求的线性规划问题,我们称之为整数线性规划问题,而更复杂的情况下,问题中既有实数又 ...
- 混合整数线性规划——分支限界法
当上一节讲到的线性规划问题中,要求某些变量是整数的时候,就变成了混合整数线性规划问题. 其实对于某些问题来说,线性规划问题的最优解刚好是整数,那么它对应的混合整数线性规划问题的解就刚好是这个最优解了. ...
- 使用COPT求解混合整数线性规划
一.使用Copt求解模型步骤 1.模型的引入 使用 from copt import * 引入模型 import coptpy as cp 2.创建求解环境 env = Envr() 创建优化模型,返 ...
- yalmip + lpsolve + matlab 求解混合整数线性规划问题(MIP/MILP)
转自,原文: https://www.cnblogs.com/kane1990/p/3428129.html 最近建立了一个网络流模型,是一个混合整数线性规划问题(模型中既有连续变量,又有整型变量). ...
- 利用CVX和gurobi这个求解器复现一篇混合整数线性规划问题时遇到的问题
利用CVX和gurobi这个求解器复现一篇混合整数线性规划问题时遇到的问题 1.当出现从cvx 转换为double 时出现错误: ![](https://img-blog.csdnimg.cn/202 ...
最新文章
- 使用Singleton需要考虑内存释放
- 【PP生产订单】入门介绍(三)
- 徐教授的对于商业模式创新的讲座!十分有用!
- IM开发基础知识补课(三):快速理解服务端数据库读写分离原理及实践建议
- mysql strstr_实现 strStr() 函数-算法刷题
- 解决远程登陆Linux误按ctrl+s锁屏
- 【软件】我安装Tomcat5.5(Java Web开发服务器)的几点经验
- Android 系统(163)---Gallery为何有的图片在详细信息里查看其分辨率与实际不一样?
- PAT甲级1056(queue的用法)
- 【2031】求一元三次方程的解
- 【字符知识】SGML 类语言(Eg.HTML)字符转义
- ANSI, unicode, UTF-8编码详解
- js去空格、去重函数
- ICP备案线下注销 网站域名备案注销
- UML之工具篇(Win10无法使用VGAPlayer播放asf格式与VGA课件的解决办法)
- Animated之实例篇
- 深度优先搜索和广度优先搜索
- 光功率P和振幅E的平方成正比关系
- 电脑登录密码和outlook密码不一致。密码正确却提示密码或用户不正确。
- 谁说计算机专业只能去互联网敲代码?国企,公务员,产品经理照样很香|应届生求职指南
热门文章
- idea中文件编码方式_idea设置编码格式为utf8
- x-s-common参数分析
- java list初始化数据_Java中初始化List的5种方法 /List的2种去重方式
- 你打算买新版 Mac Book 吗?- 鸟语花香[01]
- web应用水平越权(横向越权)和垂直权限(纵向越权)问题
- 家庭洗地机实用吗?2023高性价比的家用洗地机推荐
- VINS_MONO系列:(五)前端特征提取
- DEJA_VU3D - Cesium功能集 之 045-沉降漏斗效果(点/盒子形式)
- CC2530基础实验:(8)串口通讯-发送字符串控制LED
- java 日程安排_java实现日程表