一、两个引例
引例1 某服务部门一周中每天需要不同数目的雇员:周一到周四每天至少需要50
人,周五至少需要80人,周六和周日至少需要90人.现规定应聘者需连续工作5天,试确定聘用方案,即周一到周日每天聘用多少人,使在满足需求的条件下聘用总人数最少.
解 按照优化模型的建立步骤,其优化模型可以表示为:
决策变量:记周一到周日每天聘用的人数分别为x1,x2,…,x7,这就是问题的决策
变量.
目标函数:目标函数是聘用总人数,即

要达到的目标是聘用总人数最少,即求min z.
约束条件:约束条件由每天需用的人数确定.由于每天连续工作5天,所以周一工作的雇员应是周四到周一聘用的,按照需要至少有50人,于是

显然,人数总应该是整数,所以xi≥0(i=1,2,…,7),其中xi是整数.
问题归结为在上述7个约束条件下求解min z的一类特殊的数学规划——整数规划模型.由于目标函数和约束条件关于决策变量都是线性函数,所以这是一个整数线性规划模型.
引例2 (选课方案)又到了新学期的选课时间,正在上大学三年级的小刚为选什么课拿不定主意.由于已经到了高年级,小刚在这个学期必须要选修的课程(必修课)只有一门(2个学分);但可以供他选修的限定选修课程(限选课)有8门,任意选修课程(任选课)有10个学分;由于有些课程之间相互关联,所以可能在选修课程时必须同时选修其他某课程.小刚已经收集到了这18门课程的学分数和要求,选修课程的相应信息如表8-9所示.按照学校规定,学生每个学期选修的总学分数不能少于20学分,因此小刚必须在上述18门课程中至少选修18个学分.学校还规定学生每学期选修任选课的比例不能少于所修总学分数(包括2个必修学分)的1/6,也不能超过所修总学分数的1/3.
表8-9

小刚首先问自己:“为了达到学校的要求,我这学期最少应该选几门课?应该选哪几门?”
想到自己刚刚学习过线性规划,小刚马上考虑用线性规划来帮助解决选课问题.他用变量xi表示是否选修课程i,xi=1为选修课程i,xi=0为不选修课程i;“选修课程i时必须同时选修课程j”,则可以用xj≥xi表示;又用变量y1,y2分别表示选修的限选课、任选课的学分数,y表示总学分数(包括2个必修学分),于是很快就建立起如下的数学规划模型:

但在上面的模型中要求xi∈{0,1},这不是线性规划.聪明的小刚想:如果把“xi∈{0,1}”的条件换成“0≤xi≤1”,就可以用线性规划方法求解.于是他将该模型用线性规划软件得到的最优解如下:

但是这样得到的x3,x6,x10为小数,显然不符合要求.如果对得到的解进行四舍五入,小刚只需选4门课程(课程1,2,4,11)17个学分(不包括2个必修学分),这样选修的课程和学分都太少了.如果将所有非零变量对应的课程全选上,他必须选7门课程(加上课程3,6,10)27个学分,选修的课程和学分显然太多了.
上面问题中决策变量只允许取整数0或1,称为0-1规划,是特殊的整数规划.通过以后的学习,使用整数规划软件求解,可以得到这个问题的一个最优解(这个问题的最优解不唯一).
可以用整数规划建立模型的实际问题非常多.例如,实际生活中可以遇到这样的分派或选择问题:若干项任务分给一些候选人来完成,因为每个人的专长不同,他们完成每项任务取得的效益或需要的资源就不一样,如何分派这些任务使获得的总效益最大,或付出的总资源最少?也会遇到这样的选择问题:有若干种策略供选择,不同的策略得到的收益或付出的成本不同,各个策略之间可以有相互的制约关系,如何在满足一定条件下做出抉择,使得收益最大或成本最小.