function [y,fval]=assign_math(C)
C=C';
f=C(:);
[m,n]=size(C);
Aeq=zeros(2*n,n*n);
for i=1:n
Aeq(1:n,1+(i-1)*n:i*n)=eye(n,n);
end
for i=1:n
Aeq(n+i,1+(i-1)*n:i*n)=ones(1,n);
end
beq=ones(2*n,1);
lb=zeros(n*n,1);
ub=ones(n*n,1);
x=linprog(f,[],[],Aeq,beq,lb,ub);
y=reshape(x,n,n);
y=y';
y=round(y);
sol=zeros(n,n);
for i=1:n
for j=1:n
if y(i,j)==1
sol(i,j)=C(j,i);
end
end
end
fval=sum(sol(:));
以上这些放在m文件里,文件名为assign_math.m
在命令行里写:
a=[0.4714 0.2628 0.7246 0.3312 0.3626 0.2136 0.2072 0 0 0
0.8146 0.4504 0.4286 0.3980 0.1766 0.0900 0.1864 0 0 0
0.6334 0.5568