1、整数规划,作业讲解,工厂商品调拨(平衡运输问题) 数学模型 决策变量:每个工厂运往调拨站的货物数量目标函数:运费最小,约束条件: s.t.,工厂的运量和等于产量,非负约束,调拨站的运量和等于销量,不平衡运输问题 数学模型 决策变量:每个产地运往销售地的货物数量目标函数:运费最小,约束条件,产地的运量和等于产量,非负约束,销地的运量和小于等于销量,客户定销问题 数学模型,决策变量:每个工厂销售给客户的产品数量,目标函数:工厂的获利最大,约束条件:,工厂的出售货物数量等于产量,出售4000件给客户1,出售3000件给客户2,至少1000件给客户3,客户3与4都想尽可能多购剩下的件数,非负约束,客户
2、4最多购到4000件,整数规划简介,在工程设计和企业管理中,常会遇到要求决策变量取离散的非负整数值的线性规划问题。例如,最优调度的车辆数,设置的销售网点数,指派工作的人数等。这类问题在形式上与线性规划类似,只是比线性规划增加了某些约束条件,来限制全部或部分决策变量必须取离散的非负整数值。我们称之为整数线性规划问题,也经常简称为整数规划问题。,整数规划问题举例,问题:公交公司乘务人员安排问题某昼夜服务的公交线路每天各时间区段内所需乘务人员如下:,假设乘务人员分别在各时间区段一开始时上班,并连续工作八小时。该公交线路应该至少配备多少名乘务人员?,分析问题建立模型决策变量:目标函数:约束条件s.t.
3、,14:00-,6:00-,10:00-,18:00-,22:00-,2:00-,每个时间段所需人数的限制,6:00-10:00(60),10:00-14:00(70),14:00-18:00(60),18:00-22:00(50),22:00-2:00(20),2:00-6:00(30),非负和整数约束,每个时间段开始上班的乘务人员人数,总的乘务人员最少,求解模型,0-1整数规划问题,01 整数规划是一种特殊形式的整数规划,这时的决策变量xj 只取两个值0或1 瑞福公司的投资决策问题瑞福公司是一家小型的风险投资公司,现在有800万元的资金可以投资。目前的投资方向可以有三个独立的项目可供选择,
4、不同的项目投资额度与收益见下表。瑞福公司如何分配这些资金,以最佳的投资组合取得最大的投资收益?,注:投资额度单位:百万,收益单位:万,分析问题建立模型,决策变量:,目标函数:投资收益最大,约束条件:,每个项目只能选择一个额度投资,0-1约束,投资总额度不能超过8百万,某个项目的某个额度是否投资,1:投资 0:不投资,指派问题,在实际中经常会遇到这样的问题,有n 项不同的任务,需要n 个人分别完成其中的一项,但由于任务的性质和各人的专长不同,因此各人去完成不同的任务的效率(或花费的时间或费用)也就不同。于是产生了一个问题,应指派哪个人去完成哪项任务,使完成 n 项任务的总效率最高(或所需时间最少
5、),这类问题称为指派问题或分派问题。,指派问题举例,教师分配教学任务问题某系有4名教师甲、乙、丙和丁,均有能力讲授A,B,C和D课程。由于经验上的原因,各名教师每周所需备课时间不同(见下表)。教务部门的要求是:每一门课程由一名教师担任,同时每一名教师只能担任一门课程的教学任务。针对以上情况,给出教师整体备课时间最小的排课方案。,教师备课效率情况,此问题就是典型的指派问题,效率矩阵,教师分配教学任务问题的数学模型,决策变量,目标函数:总备课时间最小,约束条件,每个课程只能由一名老师承担,每个老师只能承担一门课程,0-1约束,如果教师丁外出进修。教务部门决定让甲乙丙三名老师中的一名同时担任两门课程
6、的教学任务,应该如何重新分配教学任务使得教师整体的备课时间最少?,匈牙利法:,指派问题是0-1 规划的特例,也是运输问题的特例,当然可用整数规划,0-1 规划或运输问题的解法去求解,这就如同用单纯型法求解运输问题一样是不合算的。利用指派问题的特点可有更简便的解法,这就是匈牙利法,第一步:找出效率矩阵每行的最小元素,并分别从每行中减去,-4,-6,-11,-9,-0,-0,-4,-1,第二步:再找出矩阵每列的最小元素,再分别从各列中减去,第三步:找出4个位于不同行不同列的零元素的集合常用的步骤为:(1)从第一行开始,若该行只有一个零元素,就对这个零元素打上( )号。对打( )号零元素所在列画一条
7、直线。若该行没有零元素或有两个以上零元素(已划去的不计在内),则转下一行,依此进行到最后一行。,( ),( ),( ),(2)从第一列开始,若该列只有一个零元素,就对这个零元素打上( )号(同样不考虑已划去的零元素)。再对打( )号零元素所在行画一条直线。若该列没有零元素或有两个以上零元素(已划去的不计在内),则转下一列,依此进行到最后一列。,( ),( ),( ),( ),( ),(3)重复(1),(2)两个步骤,可能出现三种情况:效率矩阵每行(每列)都有一个打( )号的零元素,很显然,按上述步骤得到的打( )号的零元素都位于不同行不同列,只要令对应打( )号零元素的xij=1就得到了问题的
8、最优解;打( )号的零元素小于4,但未被划去的零元素之间存在闭回路,这时可顺着闭回路的走向,对每个间隔的零元素打一( )号,然后对所有打( )号的零元素,或所在行,或所在列画一条直线,如下所示:,( ),( ),( ),矩阵中所有元素或被划去,或打上( )号,但打( )号的零元素个数少于4。为设法使得每一行都有一个打( )号的零元素,按下述步骤继续变换。 (1)从矩阵未被直线覆盖的数字中找出一个最小的数k; (2)对矩阵的每行,当该行有直线覆盖时,令ui=0,无直线覆盖的,令ui=k; (3)从矩阵中有直线覆盖的列,令vj=-k,对无直线覆盖的列,令vj=0; (4)从原矩阵的每个元素中分别减去ui和vj,得到一个新的矩阵,( ),( ),( ),1,0,1,1,-1,0,-1,0,第五步:回到第三步,反复进行,直到矩阵每一行都有一个打( )号的零元素为止,即找到了最优分配方案。,( ),( ),( ),( ),( ),( ),( ),最优分配方案: 甲-D课程 乙-B课程 丙-A课程 丁-C课程,练习:,有一份中文说明书,需译成英、日、德、俄四种文字,分别记作A、B、C、D。现有甲、乙、丙、丁四人,他们将中文说明书译成不同语种的说明书所需时间如下表所示,问如何分派任务,可使总时间最少?,