function [x,y]=IntLp(f,G,h,Geq,heq,lb,ub,x,id,options)

%整数线性规划分枝定界法,可求解全整数线性或混合整数线性规划。

% y = min f'*x subject to: G*x <= h Geq*x=heq x为全整数或混合整% 数列向量

%用法

% [x,y]=IntLp(f,G,h)

% [x,y]=IntLp(f,G,h,Geq,heq)

% [x,y]=IntLp(f,G,h,Geq,heq,lb,ub)

% [x,y]=IntLp(f,G,h,Geq,heq,lb,ub,x)

% [x,y]=IntLp(f,G,h,Geq,heq,lb,ub,x,id)

% [x,y]=IntLp(f,G,h,Geq,heq,lb,ub,x,id,options)

%参数说明

% x:最优解列向量; y:目标函数最小值;f:目标函数系数列向量

% G:约束不等式条件系数矩阵;h:约束不等式条件右端列向量

% Geq:约束等式条件系数矩阵;heq:约束等式条件右端列向量

% lb:解的下界列向量(Default: -inf);ub:解的上界列向量(Default: inf)

% x:迭代初值列向量;

% id:整数变量指标列向量,1-整数,0-实数(Default: 1)

% options的设置请参见optimset或lingprog

%例 min Z=x1+4x2

% s.t. 2x1+x2<=8

% x1+2x2>=6

% x1, x2>=0且为整数

%先将x1+2x2>=6化为 - x1 - 2x2<= -6

%[x,y]=IntLp([1;4],[2 1;-1 -2],[8;-6],[],[],[0;0])

%胡良剑,孙晓君, Matlab数学实验,高等教育出版社, 2006

global upper opt c x0 A b Aeq beq ID options;

if nargin<10, options=optimset({});options.Display='off';

options.LargeScale='off';end

if nargin<9, id=ones(size(f));end

if nargin<8, x=[];end

if nargin<7|isempty(ub), ub=inf*ones(size(f));end

if nargin<6|isempty(lb), lb=zeros(size(f));end

if nargin<5, heq=[];end

if nargin<4, Geq=[];end

upper=inf;c=f;x0=x;A=G;b=h;Aeq=Geq;beq=heq;ID=id;

ftemp=ILP(lb(:),ub(:));

x=opt;y=upper;

%以下子函数

function ftemp=ILP(vlb,vub)

global upper opt c x0 A b Aeq beq ID options;

[x,ftemp,how]=linprog(c,A,b,Aeq,beq,vlb,vub,x0,options);

if how<=0

return;

end;

if ftemp-upper>0.00005 %in order to avoid error

return;

end;

if max(abs(x.*ID-round(x.*ID)))<0.00005

if upper-ftemp>0.00005 %in order to avoid error

opt=x';upper=ftemp;

return;

else

opt=[opt;x'];

return;

end;end;

notintx=find(abs(x-round(x))>=0.00005); %in order to avoid error

intx=fix(x);tempvlb=vlb;tempvub=vub;

if vub(notintx(1,1),1)>=intx(notintx(1,1),1)+1

tempvlb(notintx(1,1),1)=intx(notintx(1,1),1)+1;

ftemp=ILP(tempvlb,vub);

end;

if vlb(notintx(1,1),1)<=intx(notintx(1,1),1)

tempvub(notintx(1,1),1)=intx(notintx(1,1),1);

ftemp=ILP(vlb,tempvub);

end

分枝定界法matlab,分支定界法 求混合0-1规划问题相关推荐

  1. 分枝定界法求哈密尔登回路问题的由表及里

    刻苦努力的奋斗,终于有了学习成果,虽然写出的仅仅是非常拙略,功能单一的,简单的小程序代码,但不失为在代码学习的进步.总算是有了含有自己智慧在其中的结晶.其实这段代码能够顺利完成,虽然是独立完成,但终究 ...

  2. python混合整数线性规划_Python 实现整数线性规划:分枝定界法(Branch and Bound)...

    今天做作业,要实现整数线性规划的分枝定界法算法.找了一些网上的博客,发现都很屎,感觉自己写的这个比较清楚.规范,所以在此记录.如有错误,请指正. from scipy.optimize import ...

  3. Python整数规划—分枝定界法

    分枝定界法可用于解纯整数或混合的整数规划问题.在本世纪六十年代初由 Land Doig 和 Dakin 等人提出的.由于这方法灵活且便于用计算机求解,所以现在它已是解 整数规划的重要方法.目前已成功地 ...

  4. Python 实现整数线性规划:分枝定界法(Branch and Bound)

    今天做作业,要实现整数线性规划的分枝定界法算法.找了一些网上的博客,发现都很屎,感觉自己写的这个比较清楚.规范,所以在此记录.如有错误,请指正. from scipy.optimize import ...

  5. 分枝定界法解0/1背包问题

    分枝定界法解0/1背包问题 关键词:分支定界.0-1背包 分枝定界法简介 分枝定界法按照树形结构来组织解空间,展开节点后,有两种策略: 策略一.把节点加入 FIFO 队列当中: 策略二.把节点加入到堆 ...

  6. 分枝定界法的一般步骤

    分枝定界法的一般步骤 设有最大化的整数规划问题A ,与它相对应的松弛问题为 B. (1)先不考虑原问题的整数约束,求解相应的松弛问题.用图解法或单纯形法求得最优解,记为 . (2)若求得的最优解 刚好 ...

  7. 【数学建模入门】整数规划求最优解|分枝定界法求最优解

    文章目录 整数规划 分枝定届法 `intprog` `branchbound` 整数规划 intprog() function [x,fval,status] = intprog(f,A,B,I,Ae ...

  8. 分支定界 matlab,使用MATLAB实现分枝定界法求解整数规划的详细资料说明

    分支定界法是一种求解离散最优化问题的计算分析方法.它是由Land Doig和Dakin等人在20世纪60年代初提出的.分支定界法可求纯整数或混合整数线性规划问题,求解方法由分支和定界组成." ...

  9. 整数规划之分枝定界法

    整数规划之分枝界定法 引子: 题目分析: 这个整数规划问题相当于是在简单的线性规划问题上增加了决策变量为整数的限制条件.如果没有这个限制条件,那我们用linprog函数很容易解决如下 >> ...

  10. 分支定界算法 matlab,分支定界法----整数规划matlab

    分支定界法的思想是:首先确定目标值的上下界 发布人:chengxu0921 发布时间:2008-7-21 18:16:27 新闻类别:分支-界限法 例1:设有A,B,C,D,E 5人从事j1,j2,j ...

最新文章

  1. python django 的启动脚本
  2. 2018.08.27 lucky(模拟)
  3. 与webview打交道中踩过的那些坑
  4. 【python数据挖掘课程】十一.Pandas、Matplotlib结合SQL语句可视化分析
  5. 【测试点分析】1072 开学寄语 (20分)_42行代码AC
  6. 大数据就业前景分析的太到位了【附:1T视频资料】
  7. 十道解分式方程及答案_100道八年级分式方程及答案.
  8. 忽悠CTO搞中台,把自己饭碗都搞砸了
  9. 《精通ArcGIS Server 应用与开发》——1.3 ArcGIS 10 Mobile新特性1
  10. oracle查看视图数据,查看oracle 10g 视图-数据库专栏,ORACLE
  11. 3DTouch - iOS新特性
  12. svpwm矢量控制电机相电压波形_SVPWM调制中的6个非零基础电压矢量的幅值到底是Udc还是2/3Udc ? 电压利用率为什么是1?...
  13. LeetCode_Maximum Subarray | Maximum Product Subarray
  14. 深入解读Linux内存管理系列(3)——MMU初始化和页表的建立
  15. Python第三方库使用感言
  16. 信息网络传播中的服务器标准,信息网络传播权的服务器标准与实质替代标准之争...
  17. SQL SERVER 报表开发工具入门教程
  18. 施耐德PLC Unity Pro xl 软件使用一
  19. 《工业设计史》 绪论
  20. {工作记录}遇到过的网络攻击合集爬虫User-Agent记录..{持续更新}

热门文章

  1. 【值得读】大神周志华谈AI的三大挑战:开放环境、弱监督、新型深度模型(非可微)...
  2. 《马云点评创业》读书笔记
  3. 金额转换成人民币大写
  4. 3d显卡2003测试软件,3DMark 2003
  5. table trtd tbody
  6. linux内核定时器
  7. 联想电脑安装黑苹果全教程
  8. 百度网盘有linux客户端吗,bcloud-百度网盘Linux客户端
  9. 操作系统笔记 第一章
  10. Cardhop for Mac(通讯录管理软件)