当前位置: 首页 > news >正文

使用intlinprog求解指派问题MATLAB代码分享

% 输入指派矩阵

C = [

3 8 2 10 3;

8 7 2 9 7;

6 4 2 7 5;

8 4 2 3 5;

9 10 6 9 10

];

f = C(:); %生成一个列向量,作为目标函数系数,matlab默认以列排序

[m,n] = size(C);

Aeq = zeros(2*n,n*n); %2*n个等式约束,n*n个变量

for i = 1:n %这里先生成的是后5个等式约束的左端项

Aeq(1:n, 1+(i-1)*n:i*n) = eye(n,n);

end

for i = 1:n %前5个等式约束左端项

Aeq(i+n, 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); %将上式求出的x值变成n阶矩阵

y = y'; %上式生成的是按列排列的,所以转致一下

y = round(y); %对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(:)); %极小值的目标函数值

http://www.lryc.cn/news/1681.html

相关文章:

  • Spark On YARN时指定Python版本
  • [数据库]库的增删改查
  • Wine零知识学习1 —— 介绍
  • 设计模式--建造者模式 builder
  • 终于周末啦,继续来总结一下Python的一些知识点啦
  • CUDA By Example(八)——流
  • 02- pandas 数据库 (数据库)
  • less常用语法总结
  • DHCP Relay中继实验
  • “1+1>2”!《我要投资》与天际汽车再度“双向奔赴”!
  • 【分享】订阅金蝶KIS集简云连接器同步OA付款审批数据至金蝶KIS
  • dubbo服务消费
  • Python调用API接口,实现人脸识别
  • 2月10日刷题总结
  • C++学习/温习:新型源码学编程(三)
  • 阿里云ecs服务器搭建CTFd(ubuntu20)
  • 视频号小店新订单如何实时同步企业微信
  • ag-Grid Enterprise
  • 扫雷——C语言【详解+全部码源】
  • 【C++】类和对象(下)
  • 计算机网络
  • 【Unity VR开发】结合VRTK4.0:将浮点操作转换为布尔操作
  • error when starting dev server:Error: Failed to resolve vue/compiler-sfc.
  • Vue2之完整基础介绍和指令与过滤器
  • JY-7A/3DK/220 19-130V静态【电压继电器】
  • [ECCV 2018] Learning to Navigate for Fine-grained Classification
  • 关于apifox和postman接口工具我有话要说~~
  • Vue3通透教程【二】更高效的构建工具—Vite
  • 前端中如何判断在线状态?
  • [MySQL教程①] - MySQL的安装