运筹优化(九)--整数规划模型

版权声明:随便转,取之于网络,用之于网络。。。 https://blog.csdn.net/App_12062011/article/details/86529628

一类规划问题中如果要求部分或全部决策变量是正整数,则称之为整数规划(Integer Programming,简称IP)。例如,所要求解的是机器设备的台数、完成工作的人数或装货的汽车数等。整数规划中要求全部变量都限制为(非负)整数的,称为纯整数规划(Pure Integer Programming)或全整数规划(All Integer Programming);要求一部分变量限制为(非负)整数,则称为混合整数规划(Mixed Integer Programming);决策变量全部取0或1的规划称为0-1整数规划(Binary Integer Programming);如果模型是线性的,称为整数线性规划(Integer Linear Programming,简称ILP)。

我们在线性规划的基础上增加非此即彼的边际约束或者目标函数的问题,定义为块状/批量线性规划。

为了局限讨论范围,这里只讨论整数线性规划。

整数线性规划与一般线性规划比较,具有下述特点:

1.可行解域为离散点集

整数规划的可行解域仅是凸集中的整数点集,相邻整数点之间的区域不是可行解域。

例1:有一整数规划问题的数学模型为:

Max  Z=x1+5x2

解:如果不考虑整数约束,得到一个线性规划问题(称为公式1的松弛问题),对于这个问题,用图解法很容易得到最优解(见1中B点):x1=2, x2=9/5, 且有:Z=11。

再考虑整数条件。如将x2 凑成整数x2=2 ,则点(2,2)落在可行域外,不是可行解;若将x2凑成整数1,但点(2,1)不是最优解。因为当x1=2,x2=1,得到Z=7,而当x1=0,x2=2得到Z=10,显然点(0,2)比点(2,1)更好。因此不能企图简单的将松弛问题的最优解取整(例如四舍五入)就能得到整数规划的最优解。

从图1可知,整数规划问题的可行解集是相应的线性规划问题的可行域内的整数格子点,它是一个有限集。

2.不能用舍入取整法

用图解法或单纯形法求解的线性规划问题中,有些最优解可能是分数或小数,为了满足整数解的要求,初看起来,似乎只要把已得到的带有分数或小数的最优解“舍入化整”就可以了,但这样通常是不行的。因为化整后的解很可能不是可行解;或虽是可行解,但也不一定是最优解。

3.目标函数值的优劣

整数最优解目标函数值劣于同问题(即舍去决策变量取整数这一约束后的松弛问题)非整数最优解目标函数值,即当目标要求为极大时,整数解目标函数值下降;当目标要求为极小时,目标函数值增大。

设整数规划的可行解域为D1,同问题非整数规划的可行解域为D2,虽然有D1∈D2,可以很容易证明:对于建立在可行解域D1,D2上的同一目标函数的规划问题,若D1∈D2,则建立在D2上的目标值优于建立在D1上的目标值。

这个特点从图1中也不难看出,在用图解法求解整数最优解时,等值线应从非整数最优解切点向可行域内移动,因此Z值改变,劣化。移动等值线后最先碰到的整数解为最优解,这个最优整数解可能是线性规划问题的极点(图1),更多情况下它既不是极点,甚至也不在凸集的边缘上。因此,不能简单地用单纯形法求极点的基变换来找到它。

具体的整数规划应用模型有:

背包模型:只有一个主约束的纯整数线性规划问题

资产预算模型:将背包模型的主约束定义为预算约束,并且不同时间段都有这个预算约束,也叫多维背包模型

分配模型:两类不同事物之间的最优配对。

二次分配:指在知道其他决策之后,一个决策的影响才被确定,导致模型变为二次分配问题

广义分配模型:多对多,每一个事物i必须分给一些事物j,每个事物j可以与多个事物i配对。

匹配模型:同类事物,最佳配对。

路径模型:旅行商问题,将所有点组成单个序列,或者组成几条线路。

设施选址和网络设计模型:从一个计划好的位置列表中选择某些作为建设设施的地点,使得满足特定客户的总成本最小。

调度及排序模型:给定一组处理设备时对作业集在这些处理设备上的处理进行排序。

猜你喜欢

转载自blog.csdn.net/App_12062011/article/details/86529628