接网站开发私活如何签合同,互联网行业的工作岗位,郑州校园兼职网站建设,白云营销型网站建设现实生活中#xff0c;比如机器的台数#xff0c;参与工作的人数#xff0c;可调动的车辆数#xff0c;这些数据都是整数。因此对于变量中包含整数、或者完全是整数的规划问题#xff0c;我们称之为整数规划。在解决整数规划常用的算法便是单纯形法。 课题名称#xff1a…现实生活中比如机器的台数参与工作的人数可调动的车辆数这些数据都是整数。因此对于变量中包含整数、或者完全是整数的规划问题我们称之为整数规划。在解决整数规划常用的算法便是单纯形法。 课题名称任务的分配
设有甲、乙、丙、丁四个人各有能力去完成A、B、C、D、E五项任务中的任一项由于四个人的能力和经验不同所需完成各项任务的时间如表1所示.由于任务数多于人数要求考虑如下问题
1 任务E必须完成其他四项中可任选三项完成
2 要求有一个人完成两项任务其他人各完成一项
3 要求任务A可由甲或丙完成任务C可由丙或丁完成任务E可由甲、乙或丁完成且规定四个人中丙或丁能够完成两项任务其他人完成一项任务。
试分别确定最优的分配方案使得完成任务的总时间最少。
表1 每个人完成各项任务的能力 项目 人员 A B C D E 甲 25 29 31 42 37 乙 39 38 26 20 33 丙 34 27 28 40 32 丁 24 42 36 23 45 由于任务数大于人数所以需要有一个虚拟的人设为戊。因为工作E必须完成故设戊完成E的时间为MM为非常大的数即戊不能做工作E其余的假想时间为0建立的效率矩阵如表2
表2 每个人完成各项任务的能力 项目 人员 A B C D E 甲 25 29 31 42 37 乙 39 38 26 20 33 丙 34 27 28 40 32 丁 24 42 36 23 45 戊 0 0 0 0 M
令第 i 个人表示甲、乙、丙、丁、戊第 j 个任务分别表示A、B、C、D、E项任务cij 表示第 i 个人完成第 j 个任务的时间d。设
Z为完成任务的总时间d。则该问题的数学模型为 为输入程序方便令M1000.
方法一Matlab求解
Matlab程序
c[25 29 31 42 37;39 38 26 20 33;34 27 28 40 32;24 42 36 23 45;0 0 0 0 1000];
nsize(c,1);
cc(:);
azeros(2*n,n^2);
for i1:na(i,(i-1)*n1:n*i)1;a(ni,i:n:n^2)1;
end
bones(2*n,1);
[x,y]linprog(c,[],[],a,b,zeros(n^2,1),ones(n^2,1));
Xreshape(x,n,n);
X_minround((X)),yMatlab运行结果
Optimization terminated.
X_min 0 1 0 0 00 0 0 1 00 0 0 0 11 0 0 0 00 0 1 0 0
y 105.0000
方案甲——B ,乙——D ,丙——E ,丁——A , 总时间为105d. 方法二lingo求解
Lingo程序
model:
sets:
row/1..5/;
arrange/1..5/;
link(row,arrange):c,x;
endsets
data:
c25,29,31,42,37,39,38,26,20,33,34,27,28,40,32,24,42,36,23,45,0,0,0,0,1000;
enddata
[OBJ]minsum(link(i,j):c(i,j)*x(i,j));
x(1,1)x(1,2)x(1,3)x(1,4)x(1,5)1;
x(2,1)x(2,2)x(2,3)x(2,4)x(2,5)1;
x(3,1)x(3,2)x(3,3)x(3,4)x(3,5)1;
x(4,1)x(4,2)x(4,3)x(4,4)x(4,5)1;
x(5,1)x(5,2)x(5,3)x(5,4)x(5,5)1;
x(1,1)x(2,1)x(3,1)x(4,1)x(5,1)1;
x(1,2)x(2,2)x(3,2)x(4,2)x(5,2)1;
x(1,3)x(2,3)x(3,3)x(4,3)x(5,3)1;
x(1,4)x(2,4)x(3,4)x(4,4)x(5,4)1;
x(1,5)x(2,5)x(3,5)x(4,5)x(5,5)1;
for(link(i,j):x(i,j)0;);
endLingo运行结果 Global optimal solution found.Objective value: 136.0000Infeasibilities: 0.000000Total solver iterations: 9Elapsed runtime seconds: 0.04Variable Value Reduced CostC( 1, 1) 25.00000 0.000000C( 1, 2) 29.00000 0.000000C( 1, 3) 1000.000 0.000000C( 1, 4) 42.00000 0.000000C( 1, 5) 37.00000 0.000000C( 2, 1) 1000.000 0.000000C( 2, 2) 38.00000 0.000000C( 2, 3) 1000.000 0.000000C( 2, 4) 20.00000 0.000000C( 2, 5) 33.00000 0.000000C( 3, 1) 34.00000 0.000000C( 3, 2) 27.00000 0.000000C( 3, 3) 28.00000 0.000000C( 3, 4) 40.00000 0.000000C( 3, 5) 1000.000 0.000000C( 4, 1) 1000.000 0.000000C( 4, 2) 42.00000 0.000000C( 4, 3) 36.00000 0.000000C( 4, 4) 23.00000 0.000000C( 4, 5) 45.00000 0.000000C( 5, 1) 34.00000 0.000000C( 5, 2) 27.00000 0.000000C( 5, 3) 28.00000 0.000000C( 5, 4) 23.00000 0.000000C( 5, 5) 45.00000 0.000000X( 1, 1) 1.000000 0.000000X( 1, 2) 0.000000 11.00000X( 1, 3) 0.000000 981.0000X( 1, 4) 0.000000 28.00000X( 1, 5) 0.000000 10.00000X( 2, 1) 0.000000 969.0000X( 2, 2) 0.000000 14.00000X( 2, 3) 0.000000 975.0000X( 2, 4) 0.000000 0.000000X( 2, 5) 1.000000 0.000000X( 3, 1) 0.000000 0.000000X( 3, 2) 0.000000 0.000000X( 3, 3) 1.000000 0.000000X( 3, 4) 0.000000 17.00000X( 3, 5) 0.000000 964.0000X( 4, 1) 0.000000 966.0000X( 4, 2) 0.000000 15.00000X( 4, 3) 0.000000 8.000000X( 4, 4) 1.000000 0.000000X( 4, 5) 0.000000 9.000000X( 5, 1) 0.000000 0.000000X( 5, 2) 1.000000 0.000000X( 5, 3) 0.000000 0.000000X( 5, 4) 0.000000 0.000000X( 5, 5) 0.000000 9.000000
lingo所得的方案与matlab一致。甲——B ,乙——D ,丙——E ,丁——A , 总时间为105d.
lingo的运行结果怎么解读的问题我已经在上一篇“非线性规划”的文章中说了不再赘述不懂的同学可以过去看一看以后用lingo解决的问题还会有不会每次都讲解怎么看运行结果哦希望见谅下面是“非线性规划”文章的链接。
数据建模-用非线性规划解决问题 整数规划问题是线性规划问题的一种特殊情况本例题为典型的非标准形式的指派问题根据题目的不同要求相应地添加虚拟人或任务以及修改效率矩阵。另外在转换成程序语言时引进的M可以任意取定一个较大的数方便计算的进行。