0-1整数规划

1.前置知识

01整数规划,仅限用于变量xj为0/1的情况

即约束函数为:

0xj1xj为整数

2.单一相互排斥的约束条件

抽象化理解题目即:λ种运输方式,仅能选择一定种数的运输方式

为了解决此类问题,我们统一引入0-1变量

y={1,当采取船运方式时0,当采取车运方式时

e.g.1

约束条件为:

5x1+4x224 or 7x1+3x245

引入0-1变量,上述可改写为:

{5x1+4x224+yM,7x1+3x245+(1y)M,y=01 

其中,M为充分大的数

(待解决:怎么用linprog实现yM的表示?)<-已解决

e.g.实例

某公司拟在市东、西、南三区建立门市部。拟议中有7个位置(点)Ai(i=1,2,3...7)可供选择。规定:

1.在东区。由A1,A2,A3三个点中至多选两个

2.在西区,由A4,A5两个点中至少选一个

3.再南区,由A6,A7两个点中至少选一个

如选用Ai点,设备投资估计为bi,每年可获利润估计为ci元,但投资总额不能超过

解:

引入0-1变量xi

xi={1,Ai点被选中0,Ai点未被选中(i=1,2...7)

则上述模型转化为:

max z=i=17cixi

s.t.{i=17bixiBx1+x2+x32x4+x51x6+x71(xi=01)

2.1.多重相互排斥的约束条件

抽象化理解题目:

即问题2的扩展,问题变为了运用01变量来求解m个互相排斥的约束问题

若有m个相互约束的约束条件:

ai1x1+...+ainxnbi,i=1,2,...,m

我们重新定义0-1变量yi

yi={1,i个约束起作用,0,i个约束起作用(i=1,2,...m)

可得m+1个约束条件:

{ai1x1+...+ainxnbi+(1yi)M  (1)y1+y2+...+ym=1  (2)

注意到,(2*)式只有一个yi会等于1

故令y=1,代入(1*)式,则只有i=i的约束条件起作用,其他式子均为多余的。

可暴力枚举y来更新ans

3.关于固定费用的问题

常见问题下要求使成本最小,故成本为可变常数。而部分问题中成本为固定常数,则需要使用混合整数规划来解决。

e.g.

某工厂为了生产某种产品,有几种不同的生产方式可供选择,如选定的生产方式投资高(选购自动化程度高的设备),由于产量大,因而分配到每件产品的变动成本就降低;反之,如选定的生产方式投资低,将来分配到每件产品的变动成本可能增加。所以,必须全面考虑。设有三种方式可供选择,令

j=1,2,3分别表示三种方式;

xj表示采用第j种方式时的产量;

cj表示采用第j种方式时每件产品的变动成本

kj表示采用第j种方式时的固定成本

解:

暂不考虑其他约束条件的情况下,采用各种生产方式的总成本分别为

Pj={kj+cjxj,xj>00,xj=0

引入01变量yj

yi={1,当采用第j种生产方式,即xj>00,当不采用第j种生产方式,即xj=0(i=1,2,...m)

故目标函数为:

min z=(k1y1+c1x1)+(k2y2+c2x2)+(k3y3+c3x3)

约束条件为:

yjϵxjyjM,j=1,2,3

式中ϵ为充分小的正常数,M为充分大的正常数

此式可完全替代01变量表达式

posted @   SxtoxA  阅读(348)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
12 13
点击右上角即可分享
微信分享提示