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

这篇具有很好参考价值的文章主要介绍了【数学建模lingo学习】lingo解决规划问题1:投料问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

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

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

投料问题:

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

1 2 3 4 5 6
横坐标 1.25 8.75 0.5 5.75 3 7.25
纵坐标 1.25 0.75 4.75 5 6.5 7.25
日需求量 3 5 4 7 6 11

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

解 设从第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

需要往各个工地运送的物料如下表所示:文章来源地址https://www.toymoban.com/news/detail-597574.html

料场1 料场2
工地1 3 0
工地2 5 0
工地3 0 4
工地4 7 0
工地5 0 6
工地6 1 10

到了这里,关于【数学建模lingo学习】lingo解决规划问题1:投料问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Lingo数学建模基础

    #not# 否定操作数的逻辑值,一元运算符 #eq# 若两运算数相等,则为 true, 否则为 false #ne# 若两运算数 不 相等,则为 true, 否则为 false #gt# 若左边运算数严格大于右边,则为 true, 否则为 false #ge# 若左边运算数大于或等于右边,则为 true, 否则为 false #lt# 若左边运算数严格小于右边

    2024年01月23日
    浏览(55)
  • 数学建模的LINGO基础

      LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的,可以用于求解非线性规划,也可以用于一些线性和非线性方程组的求解等。   下面介绍一下我从网上总结学习到的一些lingo知识:   内置函

    2024年02月21日
    浏览(46)
  • Lingo软件入门【数学建模】

    enddata 约束条件区域 end 其中,每一个lingo程序文件都以一个model:开头,以一个end结束,中间的三个区域不是强制要求的,但对于数模中大部分涉及到lingo的题目,基本上三个区域都会使用。 II.II 集合区域 II.II.i 一维集合的定义 集合模块以sets: 开头,endsets 结尾,这是固定的格

    2024年04月11日
    浏览(50)
  • 数学建模1:lingo软件求解优化模型

    本次数学建模学习笔记系列,以代码学习为主,附带建模及论文亮点记录 由于队友为两位经济学小伙伴,因此以大数据类型题目为主要学习方向 注:论文代码资料来源网络 1、结构清晰(后附该论文前两问的目录结构) 2、lingo求解优化模型,涉及函数循环与求和 3、表格很好

    2024年02月08日
    浏览(65)
  • 数学建模 优化问题——数学规划

    优化问题 :在一系列客观或主观限制条件下,寻求使所关注的某个或多个指标达到最大(或最小)的决策 结构设计、资源分配、生产计划、运输方案中经常可见 通常的解决手段: 经验积累、主观判断 做试验、比优劣 建立数学模型,求解最优策略 解决优化问题的数学方法: 数

    2024年02月06日
    浏览(54)
  • Lingo软件入门【数学建模】,腾讯T2大牛亲自教你

    下面的代码演示了这部分的内容: sets: supply/1…2/: s; !集合一,s是集合变量 demand/1…3/: d; !集合二,d是集合变量 link(supply,demand): road, g; !二维集合,road和g是集合变量 endsets data: road = 10,5,6,4,8,12; d = 50,70,40; s = 60,100; enddata II.IV 约束条件区域(逻辑部分) 通过一个@for函数(和@

    2024年04月09日
    浏览(53)
  • 数学建模-python递归、lingo解多元一次方程

    在了解如何用python、lingo解多元一次方程问题之前我们先了解什么是递归,因为python解多元一次方程问题是递归算法的一个经典算法习题,也是python解多元一次方程问题用到的主要算法。 简单说程序调用自身的编程技巧叫递归。递归的思想是把一个大型复杂问题层层转化为一

    2024年01月25日
    浏览(50)
  • 数学建模——规划问题

     运筹学对于线性规划问题直接使用图解法,单纯形法利用求解。在python中可以直接使用scipy.optimize模块的linprog函数求解。   linprog 函数的调用方式: 常用参数解释 : (1)  c:价格向量 (2)  A_ub:不等式约束技术系数矩阵 (3)  b_ub:不等式约束资源向量 (4)  A_eq:等式约束技

    2024年02月13日
    浏览(66)
  • 数学建模——整数规划(0-1规划)问题

    题目:现拟将录用的8名公务员安排到所属的7个部门,并且要求每个部门至少安排一名公员。 x招聘领导小组在确定录用名单的过程中,本着公平、公开的原则,同时考虑录用人员的合理分配和使用,有利于发挥个人的特长和能力。招聘领导小组将7个用人单位的基本情况(包

    2023年04月17日
    浏览(40)
  • 数学建模学习---非线性规划

    目录 前言 一、非线性规划问题是什么? 二、非线性规划的数学模型 1.一般形式 三、线性规划的 Matlab 解法 Matlab 中非线性规划的数学模型: 2.Matlab 中的命令: 本篇讲述非线性规划问题极其matlab解法 如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规

    2024年02月06日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包