建模训练案例

您所在的位置:网站首页 如何建立线性规划模型 建模训练案例

建模训练案例

2022-03-24 05:57| 来源: 网络整理| 查看: 265

作者:祁彬彬、马良 本篇问题引自《数学模型(第五版)》 序  本篇文章主要讲解很多教材在开篇时,都会介绍的一个线性规划求解的简单实例——奶制品加工生产计划获利的代码,但它出现在我们关于建模文章系列的开篇位置,其承担的任务有所不同,因为写出代码方案不再是目标,而是手段。我们关注的是,通过多种求解代码方案,几个非常关键的问题应当在这个系列刚开始的时候就得到部分回答:Lingo作为早期数学建模中的应知必会软件,其模型搭建与求解机制是怎样的?为什么早期版本的MATLAB在优化问题求解时无法代替Lingo?为什么新版本MATLAB又具备了走向建模舞台中央,彻底取代Lingo的资格和条件?   这几个问题,尤其第3个,兼具头条系的帅气,和UC震惊部的沧桑,究竟是博眼球?还是确有资格?可能需要一个比较漫长的论证和测试,并伴随大量问题实例以及对应的代码求解方案。那么从这篇文章开始,我们可能就要开始这个探讨过程,这篇文章主要有如下内容:用Lingo软件求解该优化模型; 分析总结Lingo代码中,有关优化模型求解时对应的基本要素与机制;利用Yalmip求解同一问题的模型构造与求解方法;利用MATLAB求解同一问题,其对应Lingo不同模块位置的命令函数以及相应的代码编写方法;设置MATLAB调用Gurobi求解问题的代码方案与步骤。 通过对这个示例的剖析,达到如下目标:解释Lingo模型搭建与求解机制以及新版MATLAB中,对应的等效代码流程;通过比较几种方式求解同一规划问题的代码,感受MATLAB基于问题和基于求解器两类求解代码的编写方式差异;了解MATLAB调用Gurobi求解同一模型的方法,以及如何在代码中指定调用MATLAB官方命令或者Gurobi同名函数求解模型;利用Yalmip建模并求解(调用Gurobi)的方式; 题目  一奶制品加工厂用牛奶生产​ 两种奶制品,1桶牛奶可在甲车间用12h加工成3kg的​ ,或者在乙车间用8h加工成4kg的 ​,根据市场需求,生产出的​ 全部都能售出,​每千克 获利24元,​每千克 获利16元,现在加工厂每天能得到50桶牛奶的供应,每天正式工人总的劳动时间为480h,且甲车间设备每天至多能加工100kg的​ ,乙车间的设备加工能力可以认为没有上限限制(加工能力足够大),试为该厂指定一个生产计划,使得每天的获利最大。 分析获利最大的决策是生产计划,每天多少桶牛奶用来各自生产 ​,决策受3个条件限制:原料供应、劳动时间、甲车间加工能力。优化模型要素决策变量:设每天用 ​桶牛奶生产 ​、用​ 桶牛奶生产 ​;目标函数:设每天获利 ​元。​ 桶牛奶生产​ ​,获利为​ ,​ 桶牛奶生产​ ​,获利为​ ,所以​ 约束条件:包括原料供应、劳动时间、设备能力、非负约束。 约束条件明细:原料供应:生产总量所需牛奶上限需满足​   :劳动时间:加工总时间不超过工人总劳动时间  ​:设备能力:加工的产量上限   ​:非负约束   数学模型 从优化模型的几个要素,以及数学模型表达式,很容易看出牛奶加工问题属于简单线性规划模型求解,这种优化模型任何市面所见的优化软件都不会有求解难度,且每一条约束和目标函数都容易理解,后续分析的重心放在代码的流程结构上。 代码Lingo与MATLAB求解器求解模型方式分析比较Lingo求解优化问题的机制一般优化问题从模型搭建到求解,要经历下面的过程。

Fig00.png (5.73 KB, 下载次数: 35)

下载附件  保存到相册

2021-7-30 08:49 上传

  需要强调的是,建模语言进入求解器之前,总归要被转换为矩阵形式输入的,但Lingo却中间两个环节做了整合化的处理,不妨看看Lingo是如何求解奶制品加工厂这个简单LP例子的: max = 72*x1+64*x2; x1+x2


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3