1条回答 默认 最新
- CSDN专家-Matlab_Fans 2021-06-05 22:26关注
1. 设决策变量 x = [ x1' x2' … xn'], xi表示第i个人是否做m项工作,xi = [xi1 xi2 … xim],xij取1表示第i个人做第j项工作,xij取0表示第i个人不做第j项工作;
2. 目标函数 sum( Cij * xij ) 最小化
3. 约束条件:第i个人最多做1项工作,sum( xi ) <= 1
第j项工作有且仅有1人做,sum( xj ) = 1
Matlab代码:
% 目标函数 C = [6 2 6 7 6 7 5 3 8 3 1 10 7 4 2 3 9 2 7 11 7 2 6 5 8 5 6 4 1 3]; C2 = C'; f = C2(:); % 约束条件 [n,m] = size(C); A = kron( eye(n),ones(1,m) ); b = ones(n,1); Aeq = repmat( eye(m),1,n ); beq = ones(m,1); lb = zeros(m*n,1); % 下限 ub = ones(m*n,1); % 上限 intcon = 1:m*n; x = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub); y = f'*x % 显示结果 for ii = 1:n disp(['第' num2str(ii) '人:']) ind = find( x( (ii-1)*m+(1:m) ) == 1); if isempty(ind) disp('无工作') else disp(['第' num2str(ind) '项工作']) end end
结果:
总时间消耗 y = 9 第1人: 无工作 第2人: 第5项工作 第3人: 第1项工作 第4人: 第3项工作 第5人: 第2项工作 第6人: 第4项工作
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 2无用
悬赏问题
- ¥15 这种微信登录授权 谁可以做啊
- ¥15 请问我该如何添加自己的数据去运行蚁群算法代码
- ¥20 用HslCommunication 连接欧姆龙 plc有时会连接失败。报异常为“未知错误”
- ¥15 网络设备配置与管理这个该怎么弄
- ¥20 机器学习能否像多层线性模型一样处理嵌套数据
- ¥20 西门子S7-Graph,S7-300,梯形图
- ¥50 用易语言http 访问不了网页
- ¥50 safari浏览器fetch提交数据后数据丢失问题
- ¥15 matlab不知道怎么改,求解答!!
- ¥15 永磁直线电机的电流环pi调不出来