用lingo解决“指派问题”的代码,如下:
---------------------------------------------------------------------------------------------------------------
model:
!6人指派问题;
sets:
Flight/1..6/;
Assign(Flight,Flight):c,x;
endsets
!Here is income matrix;
data:
c= 20 15 16 5 4 7
17 15 33 12 8 6
9 12 18 16 30 13
12 8 11 27 19 14
-99 7 10 21 10 32
-99 -99 -99 6 11 13;
enddata
!Maximize value of assignments;
max=@sum(Assign: c*x);
@for(Flight(i):
!Each i must be assigned to some j;
@sum(Flight(j): x(i,j))=1;
!Each i must receive an assignment;
@sum(Flight(j): x(j,i))=1;
);
end
-------------------------------------------------------------------------------------------------------------------------
结果如下:
解释如下:
即第1个人做第1项工作,第2个人做第3项工作,第3个人做第2项工作,
第4个人做第4项工作,第5个人做第6项工作,第6个人做第5项工作,
总效益最大为135.