0-1线性规划模型.pptVIP

  • 256
  • 0
  • 约5.39千字
  • 约 25页
  • 2017-08-31 发布于天津
  • 举报
0-1线性规划模型.ppt

0-1线性规划模型 在实际优化问题中存在一类所谓的分派问题,其含义如下:有若干项任务,每项任务必须有一人且只能有一人承担,每人也只能承担其中一项,不同人员承担不同任务的收益(或成本)不同.优化目标是:怎样分派各项任务使总收益最大(或总成本最小). 本节通过若干个实际的分派问题,说明如何建立这类优化问题的数学模型,并用Matlab求出最优解及对应的目标函数最优值,同时对结果作一些分析. A 混合接力队的最优组合问题 ? 问题:某学院准备从5名游泳队员中选择4 人组成学院的接力队,参加校运动会的4? 100混合泳接力赛.5名队员b1,…,b5的4种 泳姿(蝶,仰,蛙,自由)a1,…,a4的百米平 均成绩cij,i=1,…,5;j=1,…,4如下表所示. 应如何选择4人组成最优的接力队? 问题分析 要求从5名队员选择4人,每人一种泳姿且4人泳姿各不相同,使接力队成绩最好. 容易想到的办法是穷举法,组成接力队的方案共5!=120种,逐一计算并作比较即可找出最优方案.显然,这不是解决这类问题的有效办法,随着问题规模变大,穷举法的计算量将是无法接受的. 一个好的办法是:用0-1变量表示一个队员是否入选接力队,从而建立这个问题的0-1规划模型,再借助数学软件求解. 建立0-1线性规划模型 引入0-1变量xij,若队员bj参加泳姿ai的比赛,记xij=1,否则记xij=0.根据组成接力队的要求,应满足两个约束条件: ① 每人至多入选4种泳姿之一,应有 ?j=14xij?1,i=1,…,5 ② 每种泳姿必须有一人入选 ?i=15xij=1,j=1,…,4 当队员bj入选泳姿ai时,其成绩为cijxij,于是接力队的成绩可表为z= ?j=14?i=15cijxij,这就是问题的目标函数. 所以,混合接力队的最优组合问题的数学 模型是下列0-1线性规划问题: Min z=?j=14?i=15cijxij s.t. ?j=14xij?1,i=1,…,5 ?i=15xij=1,j=1,…,4 xij?{0,1},i=1,…,5,j=1,…,4 这类线性规划问题的特点是决策变量只取值1或0,故称为0-1线性规划问题. Matlab的函数bintprog专门用来求解0-1线性规划,下面介绍此函数的使用范围及使用方法,其理论基础从略. 函数bintprog(f,A,b,Aeq,beq)使用范围 函数linprog(f,A,b,Aeq,beq)用来求解一般的标准型0-1线性规划: Min z=cTx s.t. Ax?b, Aeqx=beq x=0或1 其中,约束条件除若干不等式Ax?b外,还有若干等式Aeqx=beq,A,b;Aeq,beq分别代表二者的系数矩阵及右端向量.若置A=[],b=[],则不等式全缺省;若置 Aeq=[],beq=[],则等式全缺省. 函数linprog(f,A,b,Aeq,beq)使用方法 首先,(必要的话)改变z中所有系数的符号把”Max z”化为”Min z”;把”?”化为”?”. 其次,输入具体的f(=c),A,b,Aeq,beq. 最后执行行命令: [x z]=bintprog(f,A,b,Aeq,beq) 则输出的x即为最优解;z(或-z)即为目标函数最小(大)值. 混合接力队优化组合问题求解 解:执行下列Matlab行命令: f=[66.8 75.6 87 58.6 57.2 66 66.4 53 78 67.8 84.6 59.4 70 74.2 69.6 57.2 67.4 71 83.8 62.4]; A=[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0; 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1] b=[1 1 1 1 1]?;beq=[1 1 1 1]; Aeq=[1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0; 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0; 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0; 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1 0 0 0 1]; [x z]=bintpr

文档评论(0)

1亿VIP精品文档

相关文档