数学建模建筑工地建筑运输优化方案

更新时间:2023-09-21 00:20:01 阅读量: 自然科学 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

建筑工地建筑运输优化方案

摘要

题目给出后,想到的是用线性规划的思路来解决问题。目标函数中包含了多个决策变量,而且决策变量的性质不同,坐标和运量,需要灵活的来利用规划模型的知识计算。

为了得到结果,需要有两个值,做为决策变量出现,料场的位置和具体运量,即,每个料场向每个建筑工地的运量,使得所用的运费最少。

显然,运费是按元/km*t来计算,所以最终的问题就化为了对运费的计算。由于最终只需要得到决策变量的值,所以这里的运费不需要具体给出,不妨设运费是1/km*t,这样就简化计算而且不影响结果。具体的求解过程要借助LINGO软件,按Lingo建模语言,将变量、数据、目标函数、约束条件一一输入。

关键词

LINGO软件求解 优化模型 最优解 多值解

1问题的提出

随着现代科学的发展,我们可以更加科学合理地规划一些问题,尤其是在工业生产,建筑投资方面,我们希望可以得到最优的结果,利用线性规划,非线性规划,以及优化模型我们可以实现资源的最大利用从而达到我们的目的,例如,使得用料最省,使得收益最大等等问题。这次要解决的问题也是这一类的求解最优值的问题,只不过我们求解的目标是一个坐标,就是位置,而我们的决策变量就是产生的费用。类似这样的问题在工厂选址,工业生产等等方面用途十分广泛,如何使得利益最大?如何最节省用费节约成本?这些都是值得工厂的运营者思考的问题。

2 问题的重述

某公司有6个建筑工地,位置坐标为 (ai, bi),

(单位:公里),水泥日用量di (单位:吨)

i a b d 1 1.25 1.25 3 2 8.75 0.75 5 3 0.5 4.75 4 4 5.75 5 7 5 3 6.5 6 6 7.25 7.75 11

建两个日储量为 e = 20 吨的料场,

如何确定料场的位置和具体的运量,总体上最节约运送的成本。

3.问题的分析

首先我们确定这是一个优化问题,有最优解,所以我们首先需要弄清楚的是问题的决策变量和目标函数,约束条件。我们先定性地说明一下这里的决策变量,目标函数,约束条件。

目标函数:提供满足工地需求量的总的运费,再细化一下,就是g=求和(每吨材料的价格)*(料场与建筑工地的距离)*(运送的数量)的最小值

决策变量:显然,只有确定了建厂位置的时候,我们才可以计算运输费用,设最优位置为(x,y),设为f=(x,y),其中f是一个函数,和我们的目标有关。

约束条件:显然,我们要保证各个工地的水泥足够用,而每个料场又只有20吨水泥,于是我们要求:

料场运向工厂的总量>=工厂的需求量(对每个工厂都是如此) 料场运出的总量<=20吨(对每个料场都是如此)

有了这些文字性说明,我们就可以给出式子,从而利用数学软件求解。 注:其中涉及到的知识点比较简单,没有太多的迷惑条件,是一个十分显然的最优化的问题,解题思路清晰,编写程序也没有太多推陈出新的地方,按部就班的编写,列清楚决策变量和已知量以及他们之间的关系,弄清楚约束条件的针对性,就可以很快求解了。

有了这样的文字说明,我们就只需要简单的把文字化成数学表达,再转化为LINGO语言,就可以准确地给出结果了。

4条件假设

1单位运费是按照元/km*t,单位运费与路程和运输货物的质量没有关系; 2 单位运费是一个定值,不受特殊天气以及恶劣的交通状况等等意外因素的影响。

5符号的设定

a(i):第i个工厂的横坐标(km) b(i):第i个工厂的纵坐标(km) x(i):第j个料场的横坐标(km) y(j):第j个料场的纵坐标(km)

d(i):第个i工厂需要的原料质量(吨)

s(i,j):第j个料场需要向第i个工厂供应的原料质量(吨)

6 模型的建立及求解

6.1模型的建立

画出建筑工厂的位置图示,如图一 图一

再来看看我们的思路: F(目标函数)=

min(每吨材料的价格)*(料场与建筑工地的距离)*(运送的数量) 决策变量:显然,只有确定了建厂位置的时候,我们才可以计算运输费用,设最优位置为(x,y),设为f=(x,y),其中f是一个函数,和我们的目标有关。 约束条件:显然,我们要保证各个工地的水泥足够用,而每个料场又只有20吨水泥,于是我们要求:

料场运向工厂的总量>=工厂的需求量(对每个工厂都是如此) 料场运出的总量<=20吨(对每个料场都是如此)

将上面的条件转化成数学语言就是:

决策变量建厂位置坐标?x1,y1? ,?x2,y2?,一共有四个值,目标函数显然是要使得费用最少,和料场的位置直接相关:

i?6,j?2minf?i?1,j?2?((x(j)?a(i))2?(y(j)?b(i))2*s(i,j)

约束条件: 使得满足各个工厂需要的同时,每个料场不能运出超出20吨的原料。根据这个思想,容易得到下面的约束条件:

?s(i,j)?d(i)j?12 i=1;

?2s(i,j)?d(i)j?1 i=2;

……………… ………………..

?2s(i,j)?d(i)j?1 i=6;

?6s(i,j)??20i?1 j=1;

?6s(i,j)??20i?1 j=2;

6.2 模型的求解

具体的求解过程要借助LINGO软件,按Lingo建模语言,将变量、数据、目标函数、约束条件一一输入。得到下面的LINGO建模语言:

Model Sets:

number/1..6/:d,a,b; Column/1..2/:x,y;

Link(number,column):s; Endsets Data:

a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; enddata

min=@sum((link(i,j):sqrt((x(j)-a(i))^2+(y(j)-b(i))^2))*s(i,j)); @for(number(i):@sum(column(j):s(i,j))>=d(i)); @for(column(j):@sum(number(i):s(i,j))<=20); end

求得的结果化为表格形式,LINGO输出形式可以参见附录。

表二 料场位置的求解

表三 料场向工厂的最优分配 料场序号 料场一 料场二

横轴坐标 7.249997 5.695940 纵轴坐标 7.749998 4.928524 料场供应 向料场一供料量 向料场二供料量 工厂一 0 3 工厂二 0 5 工厂三 4 0 工厂四 0 7 工厂五 5 1 工厂六 11 0 目标函数的结果:minf=89.88350 对结果的说明:由于我们不知道单位公里*吨的运费,所以结果中的单位无法确定,在本文中,已经架设运费看做1,求解得到的目标函数方便代值计算,只要乘以每单位公里*吨的运费就可以了。虽然没有具体运费,但不影响模型的求解。

七 模型的推广 八 感想 九附录

(LINGO语言以及运行结果) Model Sets:

number/1..6/:d,a,b; Column/1..2/:x,y;

Link(number,column):s; Endsets Data:

a=1.25,8.75,0.5,5.75,3,7.25; b=1.25,0.75,4.75,5,6.5,7.75; d=3,5,4,7,6,11; enddata

min=@sum((link(i,j):sqrt((x(j)-a(i))^2+(y(j)-b(i))^2))*s(i,j)); @for(number(i):@sum(column(j):s(i,j))>=d(i)); @for(column(j):@sum(number(i):s(i,j))<=20);

本文来源:https://www.bwwdw.com/article/4s6h.html

Top