数学建模——LINGO入门学习笔记(2)(2)

这篇笔记介绍了如何使用LINGO进行线性规划,特别是最优指派问题的解决。通过匈牙利算法解决任务分配问题,以最小化总费用。笔记中提到了MATLAB实现匈牙利算法的步骤,并提供了相关代码文件。
摘要由CSDN通过智能技术生成

数学建模——LINGO入门学习笔记(2)(2)

*本篇笔记参考自中国大学mooc 西北工业大学《数学建模》1.3篇 *

2.0-1线性规划(最优指派问题)

在这里插入图片描述
分析过程:
在这里插入图片描述

利用矩阵相乘简化为数学运算过程
约束条件:每个人分配一项任务且每个任务都有一个人做

MODEL: 
SETS: 
person/1..4/; !4个业务员;
task/1..4/; !4项业务;
assign(person,task):a,x; !定义决策变量二维数组;
ENDSETS 

DATA:
 a=1100,800,1000,700,
   600,500,300,800, 
   400,800,1000,900, 
   1100,1000,500,700; !输入效率矩阵的数据;
ENDDATA 

min=@sum(assign:a*x); 

@for(task(j):@sum(person(i) :x(i,j))=1); !j未指代代表j取所有值.每个任务一个人完成;
@for(person(i):@sum(task(j) :x(i,j))=1); !每个人完成一个任务;
@for(assign(i,j):@bin(x(i,j))); !Xij 取0/1;

END

运算结果:

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

即第1个做第4项业务,第2个做第2项业务, 即第3个做第1项业务,第4个做第3项业务. 总费用达到最小,为2100元
补充:
采用数据文件方式程序:

model: 

sets: 
person/1..4/; 
task/1..4/; 
assign(person,task):a,x; 
endsets 

data: 
a=@file(
  • 5
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mzx..

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值