%% 使用intlinprog求解指派问题
% 输入指派矩阵
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(:)); %极小值的目标函数值
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
基于matlab的IntegerProgramming(线性规划、整数规划等内容的使用案例)内含数据集和源码-可更换为自己数据.zip (3个子文件)
基于matlab的IntegerProgramming(线性规划、整数规划等内容的使用案例)内含数据集和源码-可更换为自己数据
example_1.m 325B
assgin_integer_prog.m 842B
monte_carro.m 530B
共 3 条
- 1
资源评论
AI拉呱
- 粉丝: 2765
- 资源: 5458
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功