1、2019/5/18,优化模型及求解,整数规划,问题的提出,线性规划问题中,有些最优解可能是分数或小数,但对于某些具体问题,常有要求解答必须是整数的情形(称为整数解)。例如,所求解是机器的台数、完成工作的人数或装货的车数等,分数或小数的解答就不合要求。 为了满足整数解的要求,初看起来,似乎只要把已得到的带有分数或小数的解经过“舍入化整”就可以了。但这常常是不行的,因为化整后不见得是可行解;或虽是可行解,但不一定是最优解。,设每月生产小、中、大型汽车的数量分别为x1, x2, x3,汽车厂生产计划,模型建立,线性规划模型(LP),模型求解,3) 模型中增加条件:x1, x2, x3 均为整数,重新
2、求解。,OBJECTIVE FUNCTION VALUE1) 632.2581 VARIABLE VALUE REDUCED COSTX1 64.516129 0.000000X2 167.741928 0.000000X3 0.000000 0.946237ROW SLACK OR SURPLUS DUAL PRICES2) 0.000000 0.7311833) 0.000000 0.003226,1)舍去小数:取x1=64,x2=167,算出目标函数值z=629,与LP最优值632.2581相差不大。,2)试探:如取x1=65,x2=167;x1=64,x2=168等,计算函数值z,通过
3、比较可能得到更优的解。,但必须检验它们是否满足约束条件。,结果为小数,怎么办?,某厂拟用集装箱托运甲乙两种货物,每箱的体积、重量、可获利润以及托运所受限制见下表。问每集装箱中两种货物各装多少箱,可使所获利润最大。,设x1,x2分别为甲、乙两种货物的托运箱数。,Max z= 20x1+10x2 s.t. 5x1+4x2 242x1+5x2 13x1, x2 0,整数,这是一个纯整数规划。 去掉整数约束,解相应的线性规划,可得,最优解X*=(4.8, 0), z*=96. 问题:是否可以把非整数的最优解通过化整得到整数规划的最优解? IP最优解为X*=(4, 1), z*=90.,图中画(+)号的
4、点表示可行的整数解。凑整的(5,0)点不在可行域内,而C点又不合于整数条件。为了满足题中要求,表示目标函数的z的等值线必须向原点平行移动,直到第一次遇到带“+”号B点(x1=4,x2=1)为止。这样,z的等值线就由z=96变到z=90,它们的差值 z=96-90=6 表示利润的降低,这是由于变量的不可分性(装箱)所引起的。,背包问题,有一只背包,最大装载重量为W公斤,现有k种物品,每种物品数量无限。第i种物品每件重量为wi公斤,价值为vi元。每种物品各取多少件装入背包,使其中物品的总价值最高。 设取第i种物品xi件(i=1,2,k),则规划问题可以写为,这个问题如果用线性规划求解,k个变量中将
5、只有一个大于0,其余k-1个都等于0,而且这个大于0的变量一般情况下是非整数。这样的解显然是没有意义的。,对求最优整数解的问题,有必要另行研究。称这样的问题为整数线性规划(integer linear programming),简称ILP。 变量取整数的规划称为整数规划。 所有变量都取整数的规划称为纯整数规划; 部分变量取整数的规划称为混合整数规划; 所有变量都取0,1两个值的规划称为0-1规划; 部分变量取0、1两个值的规划称为0-1混合规划。,厂址选择问题在N个地点中选r个(Nr)建厂,在第i个地点建厂(i=1,2,N)所需投资为Ii万元,占地Li亩,建成以后的生产能力为Pi万吨。现在有总
6、投资I万元,土地L亩,应如何选择厂址,使建成后总生产能力最大。,相互排斥的约束条件,例:工厂可用k种不同的工艺生产n种产品。每种产品的利润已知。在各种工艺条件下每种产品所消耗的资源是确定的,并且工厂的总资源有一定的限制。问:应选择哪种工艺进行生产,每种产品各生产多少,能使总利润最高。 符号设定: 工艺:A1,A2,Ak; 产品:B1,B2,Bn; 单件Bi的利润为pi; 在工艺Aj下单件Bi的资源消耗为cij,资源限制为Qj. 决策变量: Bi的产量,记为xi.,目标函数:总利润为,在任一种工艺Aj下,资源限制可表示为,为确定工艺,引入0-1变量,选定某种工艺进行生产,以上的k个条件中只有被选
7、中的某一个起作用,,约束条件:,这是一个混合01规划模型,指派问题,一般提法:某单位有n项任务可由n个人完成,但每人完成不同任务的效率不同,指派哪个人去完成哪项任务,可使完成n项任务的效率最高。它是01型整数规划的特殊模型,也是供需平衡的运输问题的特例。,指派问题的数学模型: 设(cij)为nn的效率矩阵, cij 决策变量xij= 1,指派第i人去完成第j项任务0,不指派第i人去完成第j项任务,集合覆盖和布点问题,某市消防队布点问题。该市共有6个区,每个区都可以建消防站,市政府希望设置的消防站最少,但必须满足在城市任何地区发生火警时,消防车要在15min内赶到现场。据实地测定,各区之间消防车
8、行驶的时间见表,请制定一个布点最少的计划。,引入0-1变量,解得: X* = (0,1,0,1,0,0) Z* = 2,01型整数规划的典型应用问题还有: 背包问题( 背包问题适用于若干种用途争用 一种资源的问题,如投资选择问题) 货郎担问题(旅行推销商问题),计 算 软 件,整数变量定义LinDo一般整数变量:GIN 0-1整数变量: INT LinGo一般整数变量: GIN( variable_name);0-1整数变量:BIN( variable_name);,算 例,max 3 x1+5 x2+4 x3subject to2 x1+3 x2=15002 x2+4 x3=8003 x1+
9、2 x2 +5 x3=2000 end gin x1 gin x3,IP可用LINDO直接求解,“gin 3”表示“前3个变量为整数”,等价于: gin x1 gin x2 gin x3,IP 的最优解x1=64,x2=168,x3=0,最优值z=632,max 2x1+3x2+4x3 st 1.5x1+3x2+5x3600 280x1+250x2+400x360000 end gin 3,OBJECTIVE FUNCTION VALUE1) 632.0000 VARIABLE VALUE REDUCED COSTX1 64.000000 -2.000000X2 168.000000 -3.0
10、00000X3 0.000000 -4.000000,模型求解,IP 结果输出,LINDO中对0-1变量的限定: int y1 int y2 int y3,方法:引入0-1变量,化为整数规划,M为大的正数,可取1000,OBJECTIVE FUNCTION VALUE1) 610.0000 VARIABLE VALUE REDUCED COSTX1 80.000000 -2.000000X2 150.000000 -3.000000X3 0.000000 -4.000000Y1 1.000000 0.000000Y2 1.000000 0.000000Y3 0.000000 0.000000,
11、若生产某类汽车,则至少生产80辆,求生产计划。,x1=0 或 80,为了选修课程门数最少,应学习哪些课程 ?,选课策略,选修课程最少,且学分尽量多,应学习哪些课程 ?,0-1规划模型,决策变量,目标函数,xi=1 选修课号i 的课程(xi=0 不选),选修课程总数最少,约束条件,最少2门数学课,3门运筹学课, 2门计算机课。,先修课程要求,最优解: x1 = x2 = x3 = x6 = x7 = x9 =1, 其它为0;6门课程,总学分21,0-1规划模型,约束条件,x3=1必有x1 = x2 =1,模型求解(LINDO),学分最多,多目标优化的处理方法:化成单目标优化。,两目标(多目标)规
12、划,讨论:选修课程最少,学分尽量多,应学习哪些课程?,课程最少,以学分最多为目标,不管课程多少。,以课程最少为目标,不管学分多少。,多目标规划,在课程最少的前提下以学分最多为目标。,注意:最优解不唯一!,LINDO无法告诉优化问题的解是否唯一。,可将x9 =1 易为x6 =1,最优解: x1 = x2 = x3 = x5 = x7 = x9 =1, 其它为0;总学分由21增至22。,多目标规划,对学分数和课程数加权形成一个目标,如三七开。,最优解: x1 = x2 = x3 = x4 = x5 = x6 = x7 = x9 =1, 其它为0;总学分28。,讨论与思考,最优解与1=0,2=1的结
13、果相同学分最多,多目标规划,最优解与1=1,2=0的结果相同课程最少,2019/5/18,公务员招聘,2004全国大学生数学建模竞赛D题,公务员招聘的数学建模问题 我国公务员制度已实施多年,1993年10月1日颁布施行的国家公务员法规定:“国家行政机关录用担任主任科员以下的非领导职务的国家公务员,采用公开考试、严格考核的办法,按照德才兼备的标准择优录用”。 目前招聘公务员程序一般分3步进行:公开考试(笔试)、面试考核、择优录取。 现有某市因工作需要,拟向社会公开招聘8名公务员,具体招聘办法和程序如下:,(一)公开考试:凡是年龄不超过30周岁,大学专科以上学历,身体健康者均可报名参加考试,考试科
14、目3门,每科满分100分。根据考试总分的高低排序按1:2的比例(共16人)选择进入第二阶段的面试考核。 (二)面试考试:面试考核主要考核应聘人员的知识面、对问题的理解能力、应变能力、表达能力等综合素质。按照一定的标准,面试专家组对每个应聘人员各个方面分别给出一个等级评分,从高到低分成A/B/C/D4个等级,具体结果如下表。,表1 招聘公务员笔试成绩专家面试评分及申报志愿类别(其中(1)行政管理(2)技术管理(3)行政执法(4)公共事业),(三)招聘领导小组综合专家组意见、笔试成绩以及各部分用人需求确定录用名单,将录用人员分配到各用人部门。 拟录用8名公务员,分别安排到7个部门,其中每个部门至少
15、安排一名公务员。这7个部门的工作性质如上表中分类: (1)行政管理(2)技术管理(3)行政执法(4)公共事业。 招聘领导小组在确定录用名单的过程中,本着公平、公开的原则,同时考虑录用人员的合理分配和使用。7个用人单位的基本情况和4类工作对聘用公务员的具体条件的希望达到的要求都向所有应聘人员公布。,问题,如果不考虑应聘人员的意愿,择优按需录用,试帮助招聘领导小组设计一种录用分配方案。 在考虑应聘人员意愿和用人部门希望要求的情况下,请你帮助招聘领导小组设计一种分配方案。,分析,单位录用人员,以单位满意度最佳为最终目标。 由于是同一单位,因此目标应该是单位对被录用的8人的总满意度最大。 单位对应聘者
16、的满意度可从应聘者的特长评分及笔试成绩两方面考虑。 应聘者也有满意度,取决于应聘者的志愿。考虑应聘者志愿的前提下,最终让单位满意度最大。,假设,经过筛选后,单位录用人员,以面试结果为主要选择标准,笔试成绩次之。 根据部门要求不同,代表各特长对各部门重要性的A,B,C,D是从高到低的,对应权重由大到小。 从事志愿以外的工作是应聘者的最低志愿。 用人单位的基本情况只在最后具体分配时作为参考。,数据分析处理,隶属度 根据各部门对应聘人员各项特长要求,计算应聘人员特长与各部门要求的接近程度。 引入隶属度 ABCD 4个等级分别用1,2,3,4表示。表示第i类工作对第k项特长的要求, 表示应聘人员j第k
17、项特长的等级。 隶属度计算公式,可以列出各应聘人员对各类工作特长要求的隶属度。各应聘人员对I,II类工作各项特长要求的隶属度,各类工作中对特长要求的权重 根据各类工作对特长的不同要求,每一项特长在各类工作中所占的重要程度不同,对各特长赋以权重 类别1:类别2:类别3:类别4:,各应聘者对各类工作的适合度 各类工作对特长要求不同,每位应聘者各项特长评分不同,因此各类工作对每一个应聘者面试得分有一个满意度,也表示了该人员适合这类工作的程度。 用某类工作的各项特长权重与应聘者相应特长要求的隶属度的乘积之和表示。I 类工作对各人员特长的满意度,笔试成绩归一化处理 由于笔试与面试采取不同评分方式,为了便
18、于数据处理,将笔试成绩归一化。 由于最高分为290,以290为基准。各分数除以290,得到各应聘者笔试成绩指标分别为1,0.933,0.933,0.983,0.976,0.976,0.941 各类工作对每一个应聘者的综合满意度 进入面试考核后,面试成绩是录用的主要依据,因此面试成绩和笔试成绩分别赋权重0.8,0.2。 根据如上赋权,以得到的成绩作为各类工作对应聘人员的总满意度,记为p。,排序 按每类工作对16位应聘人员的总满意度从大到小分别排序,得到相应排列如下: 类别1: 1,12,4,5,7,8,9,15,16,3,13,2,11,6,14,10 类别2: 1,2,4,5,8,9,16,7
19、,12,15,10,14,3,6,11,13 类别3: 9,1,2,7,8,12,6,11,14,4,5,13,15,16,10,3 类别4: 1,4,12,2,5,8,9,16,7,15,14,11,6,13,10,3,I 类工作对各应聘人员满意度,不考虑应聘人员意愿下的择优录用模型,有些优秀的人员在4个排列中都靠前,而有些人员在每类排列中都排在靠后的位置。根据择优选择的原则,靠后人员的有无对最后结果影响不大。 为了避免数据过于庞大而带来计算过于复杂,先对其进行如下简化:录用人员数为8名,故对每个类别人员排列取前8名,即使4个类别前8名完全一样也可以做出正确选择。 被选中的人员有12名J=1
20、,2,4,5,6,7,8,9,11,12,15,16, 再从其中选出8名。,人员 j 是否被选入 i 类工作;i 类工作对人员j的综合满意度。其中 i 表示工作类别,j 表示被选上的12名应聘人员。 表示人员 j 被选入 i 类工作部门; 表示人员 j 没被选入 i 类工作部门。 不考虑应聘人员意愿,只按需择优录用的整数规划模型如下,综合考虑应聘人员志愿和工作要求的 择优录用模型,由于应聘人员可能被分配到志愿内的工作,也可能被分配到志愿外的工作,因此,应聘人员对工作分配也存在满意度。 优先考虑志愿内的工作,志愿外的次之,用 表示这种优先级。 志愿外的工作看做应聘人员的最后一个志愿,用 表示,其
21、他按优先级从高到低分别用 表示。 考虑全部16名应聘人员。,两志愿同等重要,无先后之分,两志愿同等重要,即应聘人员对第一第二志愿的满意度一样,被录用的人员被分配到的工作只有志愿内和志愿外之分。 设这两类工作对人员 的优先级分别为 对愿意从事某一类工作的人员进行统计,用 表示, 结果如下:,从总体满意度最大的角度出发建立如下整数规划模型,两志愿根据前后分为第一、第二志愿,第一志愿是应聘者最想去的,第二志愿次之,再次是分配到志愿外的工作。 设三者优先级分别为1,0.8,0.5. 分别统计第一、第二志愿应聘者选择情况,例如第一志愿 报类别1的人员报类别2的人员 得到第一志愿和第二志愿分别报考4个类别
22、工作的人员对应的8个集合。设,目标函数中对应项上乘以相应志愿的优先级以便体现应聘者的意愿,使其意愿尽量得到满足,再求单位总满意度最大,故目标函数为,建立整数规划模型,2019/5/18,DVD在线租赁,2005全国大学生数学建模竞赛B/D题,DVD在线租赁的数学建模问题 随着信息时代的到来,网络成为人们生活中越来越不可或缺的元素之一。许多网站利用其强大的资源和知名度,面向其会员群提供日益专业化和便捷化的服务。 音像制品的在线租赁就是一种可行的服务。这项服务充分发挥了网络的诸多优势,包括传播范围广泛、直达核心消费群、强烈的互动性、感官性强、成本相对低廉等,为顾客提供更为周到的服务。,考虑如下的在
23、线DVD租赁问题。 顾客缴纳一定数量的月费成为会员,订购DVD租赁服务。会员对哪些DVD有兴趣,只要在线提交订单,网站就会通过快递的方式尽可能满足要求。 会员提交的订单包括多张DVD,这些DVD是基于其偏爱程度排序的。网站会根据手头现有的DVD数量和会员的订单进行分发。 每个会员每个月租赁次数不得超过2次,每次获得3张DVD。会员看完3张DVD之后,只需要将DVD放进网站提供的信封里寄回(邮费由网站承担),就可以继续下次租赁。,问题:网站列出了某20种DVD的现有张数和当前需要处理的100位会员的在线订单(参见下页表格)。如何对这些DVD进行分配,才能使会员获得最大的满意度?请具体列出前30位
24、会员(即C0001C0030)分别获得哪些DVD。,D001D020表示20种DVD, C0001C0100表示100个会员,会员的在线订单用数字1,2,表示,数字越小表示会员的偏爱程度越高,数字0表示对应的DVD当前不在会员的在线订单中。,模型假设: 各个会员的满意度是独立的 忽略快递时间,即网站邮寄出DVD之后会员马上就能收到,会员寄回DVD网站马上就能收到 假设每个月30天,1个月租赁2次的会员租赁时间不超过15天,1个月租赁1次的会员租赁时间不超过30天 假设网站处理订单时不考虑订单到达的先后次序 符号表示:,数据处理,偏爱程度处理 当前订单中数据19表示会员的偏爱程度,数据越小偏爱程
25、度越高。0表示对应DVD不在会员订单中。为了处理问题方便,把0转换成一个较大的数据20,表示会员对此DVD偏爱程度很低。,会员满意度的定义 由于每个会员每次租赁获得3张DVD,故得到偏爱程度编号指标为1、2、3的3张DVD的会员满意度最高。没有获得订单中任何一张DVD的会员(即分配的3张DVD偏爱程度指标均为20)满意度定义为0。 若第i个会员获得的3张DVD的偏爱程度指标分别为 则会员的满意度定义为,模型的建立与求解,假设处理100位会员的订单时不分先后次序,对每位会员,如果得到全部最偏爱的3张DVD,则满意度为1,否则满意度按前面定义计算。要使100位会员总满意度达到最大,建立整数规划模型
26、:,上述问题可以用相关软件,如Lingo等软件求解,但数据量较大,变量较多,求解速度比较慢。 可以设计一种求解该问题的近似算法:由于会员订单中各种DVD现存量不同,所以满足不同订单的选择机会就不同。如果一个订单中DVD存量都比较多,则满足该会员的订单就比较容易,反之该会员的订单满足范围就比较小。因此可以设计优先满足选择机会比较少的会员需求的“启发式算法”。,首先考虑各订单的第一、二、三志愿,将各会员订单中偏爱程度指标最小的DVD数量之和求出来,选择其中和最小的订单,按其最满意的方式分配3张DVD。 同时将相应DVD存量分别减少1,再对剩下的人和DVD按同样方式依次分配。当一种DVD存量成为0时
27、,不再考虑会员选择该DVD的志愿。,算法,初始化:对各个订单中的DVD按其偏好顺序排序 其中 表示第k份订单中偏好指标为j的DVD,对不在订单中的DVD按任意顺序排在后面位置上。 第一步:计算各类DVD现有存量。 第二步:对尚未处理的每份订单,求其对应现有DVD存量不为0的偏爱指标最小的3个DVD类别,计算相应DVD存量之和。 第三步:求出第二步中对应的现有存量之和最小的一份订单,按现有DVD存量为其分配最满意的DVD,同时将相应DVD存量减小1。 第四步:若所有订单都已处理,则结束,否则转第二步。,模型分析,模型简单明了,易于理解,但难于计算。 该启发式算法可在合理的时间给出效果不错的解。
28、由于算法中每分配一个订单需要计算一次库存,因此运算速度稍显慢。,问题:假设前表中DVD的现有数量全部为0。如果你是网站经营管理人员,如何决定每种DVD的购买量,以及如何对这些DVD进行分配,才能使一个月内95%的会员得到他想看的DVD,并且满意度最大?,问题分析,实现会员的最大满意度只要统计出会员对每种DVD的需求量,最后进行总求和即可得到DVD的总购买量。 会员对不同DVD的需求量就是网站应该对不同DVD的分配量。从网站经营角度讲,获得最大客户满意度即可取得最大利润。,模型假设,不考虑租赁周期。租赁周期越短,DVD周转越快,网站所需购买DVD数量就越少。考虑一个月为周期,只统计DVD的需求,
29、不考虑归还量。 在相当长的时间内,某种DVD被“动态偏爱”的状态具有一定稳定性。因此在大规模数据及足够长的时间内某种DVD最优先被租走的次数可以看作是一定的。 如上假设下,网站每天收到的订单分布具有稳定性,可以认为前述表格代表了这种稳定分布情况。,网站处理每批订单时若能满足会员的租赁需求且要求满意度最高,则一个月内也能满足会员需求且满意度最高。 设DVD购买量分别为,方法二,由于会员的满意度达到最高是在他们得到订单中偏爱系数为1,2,3的DVD时,所以网站应该优先购买会员偏爱程度最高的DVD。 对于表中数据,做如下处理:(1)对每一条记录的横向处理(每个订单):把偏爱程度编号为1,2,3位置的DVD做标记。(2)对每一列,统计每种DVD被标记的次数,由这个次数计算出每次处理订单时各种DVD的需求量及需求比例。,10万个会员中,有40%的会员租赁一次(设人数为P1),60%的会员租赁两次,每次租赁DVD3张,对应3人次。按照前面假设可算出10万人的租赁人次R。,