规划问题本来就是给出 优化条件 和 限制条件 ,之后得出满足条件的自变量的过程。那么它自然可以解决非线性方程问题,那么只需给出一个可以增加运算速度定一个初始点,再给出限制条件,就可以解出来了。
输出结果
下面是任务流程图。
编写Lingo程序:
可以用多种方法把 TSP 表示成整数规划模型。这里介绍的一种建立模型的方法,是把该问题的每个解(不一定是最优的)看作是一次“巡回”。
引入0-1整数变量。
其目标是为了让 最小
这里有两个明显的必须满足的条件:
1.访问城市 后 必须要有一个即将访问的确切城市;
2.访问城市 前 必须要有一个刚刚访问过的确切城市。
用下面的两组约束分别实现上面的两个条件。
到此我们得到了一个模型,它是一个指派问题的整数规划模型。但以上两个条件对于
TSP 来说并不充分,仅仅是必要条件。
例如对如下的情形,它显然不是TSP问题的解。
钢铁工业是国家工业的基础之一,铁矿是钢铁工业的主要原料基地。许多现代化铁矿是露天开采的,它的生产主要是由电动铲车(以下简称电铲)装车、电动轮自卸卡车(以下简称卡车)运输来完成。提高这些大型设备的利用率是增加露天矿经济效益的首要任务。
露天矿里有若干个爆破生成的石料堆,每堆称为一个铲位,每个铲位已预先根据铁含量将石料分成 矿石和岩石 。一般来说,平均铁含量不低于 25%的为矿石,否则为岩石。每个铲位的矿石、岩石数量,以及矿石的平均铁含量(称为品位)都是已知的。每个铲位至多能安置一台电铲,电铲的平均装车时间为 5 分钟 。
卸货地点(以下简称卸点)有卸矿石的 矿石漏 、 2 个铁路倒装场 (以下简称倒装场)和 卸岩石的岩石漏、岩场 等,每个卸点都有各自的产量要求。从保护国家资源的角度及矿山的经济效益考虑,应该尽量把矿石按矿石 卸点需要的铁含量(假设要求都为29.5% ± 1%,称为品位限制) 搭配起来送到卸点,搭配的量在 一个班次(8 小时) 内满足品位限制即可。从长远看,卸点可以移动,但一个班次内不变。卡车的平均卸车时间为 3 分钟 。
所用卡车 载重量为 154 吨 , 平均时速 28 km/h 。卡车的耗油量很大,每个班次每台车消耗近 1 吨柴油。发动机点火时需要消耗相当多的电瓶能量,故一个班次中只在开始工作时点火一次。卡车在等待时所耗费的能量也是相当可观的, 原则上在安排时不应发生卡车等待的情况 。电铲和卸点都不能同时为两辆及两辆以上卡车服务。 卡车每次都是满载运输 。
每个铲位到每个卸点的道路都是专用的宽 60 m 的双向车道,不会出现堵车现象,每段道路的里程都是已知的。
一个班次的生产计划应该包含以下内容:出动几台电铲,分别在哪些铲位上;出动几辆卡车,分别在哪些路线上各运输多少次(因为随机因素影响,装卸时间与运输时间都不精确,所以排时计划无效,只求出各条路线上的卡车数及安排即可)。一个合格的计划要在卡车不等待条件下满足产量和质量(品位)要求,而一个好的计划还应该考下面两条原则之一:
某露天矿有 铲位 10 个,卸点 5 个,现有铲车 7 台,卡车 20 辆。各卸点一个班次的产量要求:矿石漏 1.2 万吨、倒装场Ⅰ1.3 万吨、倒装场Ⅱ1.3 万吨、岩石漏 1.9 万吨、岩场 1.3 万吨 。
铲位和卸点位置二维示意图见下图,各铲位和各卸点之间的距离(公里)见下表,各铲位矿石、岩石数量(万吨)和矿石的平均铁含量也见下表。
本例就原则一举例,展现完整的建模和求解过程。
各种符号及单位说明如下:
:从 号铲位到 号卸点的石料运量,单位:车·次· (最终方案所求量之一,在相应车道上的总(车·次)数)
:从 号铲位到 号卸点的距离,单位:公里
:从 号铲位到 号卸点运行一个周期所需的时间,单位:分
:从 号铲位到 号卸点最多能同时运行的卡车数,单位:辆 (最终方案所求量之一,在对应车道上安排的同时运行的车数)
:从 号铲位到 号卸点,一辆车一个班次中最多可以运行的次数,单位:次
: 号铲位的矿石铁产量乘以100
,单位:车·次;
: 号铲位的铁矿石储量,单位:万吨
: 号铲位的岩石储量,单位:万吨
:描述第 号铲位是否使用0-1变量,
=
分析所有的目标函数和限制条件:
目标函数:
限制条件:
于是可以建立如下模型:
程序如下:
【数学建模算法】(番外4)解决规划问题的神器——Lingo(下)
规划问题本来就是给出 优化条件 和 限制条件 ,之后得出满足条件的自变量的过程。那么它自然可以解决非线性方程问题,那么只需给出一个可以增加运算速度定一个初始点,再给出限制条件,就可以解出来了。输出结果 下面是任务流程图。编写Lingo程序:可以用多种方法把 TSP 表示成整数规划模型。这里介绍的一...
Lingo--线性规划的神
致远学院的数学与应用数学专业19级本科生,出于备战数学建模竞赛的需求,分享一种在解决线性规划问题中更为便捷的计算机语言——Lingo。本文将介绍Lingo的基本语法,通过实例展示其高效性,并欢迎数学爱好者交流和指正。1. Lingo语言概览算术运算符:如^(乘方)、*(乘)、\/(除)、+(加)、-(减)逻...
lingo数学建模使用指南
1)LINGO的数学规划模型包含目标函数、决策变量、约束条件三个要素。2)在LINGO程序中,每一个语句都必须要用一个英文状态下的分号结束,一个语句可以分几行输入。3)LINGO的注释以英文状态的!开始,必须以英文状态下的分号结束。4)LINGO的变量不区分字母的大小写,必须以字母开头,可以包含数字和下划线...
用lingo求解数学建模的问题
min=@sum(row:c*n);x(1)+x(4)+x(5)+x(11)>=1;x(1)+x(2)+x(11)+x(15)+x(16)>=1;X(1)+x(2)+x(3)+x(15)+x(16)>=1;x(1)+x(4)+x(5)+x(11)+x(16)>=1;x(2)+x(3)+x(6)+x(12)+x(15)+x(16)>=1;x(1)+x(4)+x(8)+x(11)>=1;x(4)+x...
急求Lingo解决数学建模的指派问题,万分感谢!
link(city,department):c,x;link1(department,department)|&2#gt#&1:a;link2(city,city):b;endsets data:a= 0 1000 1500 0 1400 1200 0 0 2000 700;b= 100 130 90 130 50 140 90 140 50;c= 0 0 0 0 0 10 15 10 20 ...
简单的数学建模题目,各位大神帮忙弄一下吧。很感谢,而且有重赏哦。_百...
max 20x+30y x+2y<=20 5x+4y<=70 以上就是该问题的模型,下面用LINGO来求解(LINGO是用来求线性规划问题的软件,此题可以用LINDO来解,但是我没有LINDO,所以用LINGO)程序:model:max=20*x+30*y;x+2*y<20;5*x+4*y<70;程序运行求得的结果是:Global optimal solution found at iteration...
数学建模——线性规划模型的问题!
!用lingo吧;max = 20 * x1 + 15 * x2;5 * x1 + 2 * x2 <= 180;3 * x1 + 4 * x2 <= 135;gin(x1);@gin(x2);计算结果:x1 = 32; x2 = 9; 最大值775
数学建模 加油站规划问题 给出lingo处理过程
这个根本就不是线性规划的问题 用lingo做没有任何好处 这个问题很简单 你只要给出实际加油价格和上面这些量的关系代进去算一下就知道了 设百公里油耗为a 油价为b 油箱容积V 距离加油站s 剩余油量为V-x 而且每次都是加满油箱 那么一次加油的总花费是 (x+as\/100)b 每升油花费(1+as\/100x)b 并且...
要学习数学建模的编程,需要学会什么软件?
在数学建模中,以下是我们数学建模中常用到的软件。1.Matlab Matlab是一款商业数学软件,用于算法开发,数据可视化,数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括Matlab和simulink两大部分。可以进行矩阵运算,绘制函数和数据,实现算法。创建用户界面,连接其他编程语言的程序等,主要应用于工程...
如何用lingo解决数学题?
1、题目:求minz=2*x1+3*x2+x3;s.t.[x1 + 4*x2+2*x3>=8 ;3*x1 + 2*x2 >=6 ;xj >= 0 , j=1,2,3, ]。2、打开Lingo软件,进入下面编程状态。3、然后输入目标函数:minz=2*x1+3*x2+x3,如下图所示:4、然后进行运行一下,看看自己是否输入正确,如果没有出现“...