matlab指派问题求法,matlab求解指派问题

matlab求解运筹学中的指派问题,这里并非用匈牙利法求解。其中C为效率矩阵。

%适用于任意n阶系数矩阵

clear all;

C=[2 15 13 4;10 4 14 15;9 14 16 13;7 8 11 9];%效率矩阵C

n=size(C,1);%计算C的行列数n

C=C(:);%计算目标函数系数,将矩阵C按列排成一个列向量即可。

A=[];B=[];%没有不等式约束

Ae=zeros(2*n,n^2);%计算等约束的系数矩阵a

for i=1:n

for j=(i-1)*n+1:n*i

Ae(i,j)=1;

end

for k=i:n:n^2

Ae(n+i,k)=1;

end

end

Be=ones(2*n,1);%等式约束右端项b

Xm=zeros(n^2,1);%决策变量下界Xm

XM=ones(n^2,1);%决策变量上界XM

[x,z]=linprog(C,A,B,Ae,Be,Xm,XM);%使用linprog求解

x=reshape(x,n,n);%将列向量x按列排成一个n阶方阵

disp('最优解矩阵为:');%输出指派方案和最优值

Assignment=round(x)%使用round进行四舍五入取整

disp('最优解为:');

z

参考资料

来源:https://www.cnblogs.com/MemoryDrive/p/13303408.html

  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值