【数学建模lingo学习】lingo解决规划问题1:投料问题

lingo相较于matlab实现规划问题更加简洁,但无法实现多目标规划,如果不了解lingo可以去看以下视频了解:

Lingo(1):基础篇——基本界面与解方程_哔哩哔哩_bilibiliicon-default.png?t=M7J4https://www.bilibili.com/video/BV1CT4y177qS?spm_id_from=333.337.search-card.all.click那么废话不多说,我在这里分享一道例题及解法:

投料问题:

现有两个临时料场坐标分别为:A(5,1),B(2,7);日储量各20吨
工地位置坐标及日需求量如下表所示:

123456
横坐标1.258.750.55.7537.25
纵坐标1.250.754.7556.57.25
日需求量3547611

试制定每天的供应计划,即从两料场分别向各工地运送多少吨水泥,使总的吨千米数最小。
 

解 设从第j个料场(j=1,2)送往第i(i=1,2,3...6)个工地的所需的水泥重量为xij吨,设工地的横坐标ai(i=1,2,3...6),纵坐标为bi(i=1,2,3...6),料场的横坐标为xj(j=1,2),纵坐标为yj(j=1,2)每个料场的日需求量为di(i=1,2,3...6)

根据题目分析需要使总的吨千米数最小,则可设目标函数为:      

由于每个工地的日需求量都有不同,可以得约束条件1:

由于两个料场的日存储量都为20吨,则有约束条件2

由于往每个料场运送的吨数都为大于零的数,则有约束条件3

 lingo实现代码为

model:
!生成矩阵;
sets:
factory1/1..6/:a,b,d;
factory2/1..2/:x1,y1;
coo(factory1,factory2):x;
endsets

!输入题目中数据;
data:
!a,b表示工地坐标;
a=1.25,8.75,0.5,5.75,3,7.25;
b=1.25,0.75,4.75,5,6.5,7.25;
!x,y表示料场坐标;
x1=5,2;
y1=1,7;
!d表示工地日需求量;
d=3,5,4,7,6,11;


enddata
!列出表达式求解;
!目标函数;
min = @sum(coo(i,j):@sqrt((a(i)-x1(j))^2+(b(i)-y1(j))^2)*x(i,j));
!约束条件1;
@for(factory1(i):@sum(factory2(j):x(i,j))=d(i));
!约束条件2;
@for(factory2(j):@sum(factory1(i):x(i,j))<=20);

end

运行结果

吨千米数最小为: 135.2815

需要往各个工地运送的物料如下表所示:

料场1料场2
工地130
工地250
工地304
工地470
工地506
工地6110
  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Lingo是一款强大的规划问题求解软件,可以帮助解决各种复杂的规划问题,包括投料问题投料问题是指在生产过程中,如何合理安排原料的投放,使得能够在满足生产需求的前提下,最大程度地降低成本和资源的浪费。 使用Lingo解决投料问题,首先需要建立一个数学模型,将问题转化为数学表达式。然后,根据生产需求、原料约束、成本等因素,设置相应的目标函数和约束条件。通过Lingo求解功能,可以自动计算得出最优的投料方案。 在建立数学模型时,需要考虑到生产目标和约束条件的具体情况。比如,如果要最大化产量,可以将目标函数设置为产量的总和;如果要最小化成本,可以将目标函数设置为成本的总和。同时,需要考虑到原料的供应限制、质量要求等约束条件,以确保求解结果符合实际情况。 除了建立数学模型Lingo还提供了一系列优化算法和求解方法,可以根据问题的规模和复杂度选择最合适的求解方式。例如,对于较小规模的问题,可以使用线性规划方法求解;对于较大规模的问题,可以使用混合整数规划或启发式算法求解。 总之,Lingo是一款功能强大的求解软件,可以有效地解决投料问题。通过建立合理的数学模型,设置适当的目标函数和约束条件,并选择合适的求解方法,可以得到最优的投料方案,提高生产效率,降低成本和资源的浪费。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值