lingo指派问题

指派问题:有若干项任务,每项任务必须由一人且只能由一人承担,每人也只能承担其中一项,不同人员承担不同任务的成本(或收益)不同,求分派各项任务使总成本最小(或总收益最大)。

通常可使用0-1规划模型对其求解。

lingo指派问题_第1张图片

使用lingo求解,代码如下:

model:
title:指派问题;
sets:
work/1..4/:;
people/1..5/:;
link(work,people):c,x;
endsets

data:
c=
66.8 57.2 78 70 67.4
75.6 66 67.8 74.2 71
87 66.4 84.6 75.2 83.8
58.6 53 59.4 57.2 57.5;!每个人每个项目的成本矩阵;
enddata

min=@sum(link(i,j):c(i,j)*x(i,j));!总时间(成本)最小;
@for(work(i):@sum(people(j):x(i,j))=1);  !每个项目必须且只能由一人完成;
@for(people(j):@sum(work(i):x(i,j))<=1); !每人最多选一个项目完成;
@for(link(i,j):@gin(x(i,j)));!x为0,1变量;

end

你可能感兴趣的:(lingo,数学建模,编程语言)