数学建模——规划问题

今天晚上看了规划问题的经典部分——运送货物的问题。采用Lingo编程,十分的简介,在规划问题运筹学问题上,Lingo 的优势是无可比拟的。

题目:

 

具体数据:

 

可以抽象出:

\[\displaystyle \min \quad \sum_{i=1}^{n}\sum_{j=1}^{m}c_{ij}x_{ij}\]

限制条件是:

\[\left\{
\begin{array}{ll}
\displaystyle \sum_{j=1}^{n}x_{ij}\leq a_{i}(\mathrm{Customer}) \\[3mm]
\displaystyle \sum_{i=1}^{m}x_{ij} = b_{j}(\mathrm{WareHouse})
\end{array}
\right.
\]

实现代码是:

model:
sets:
warehouse/1..3/:a;
customer/1..4/:b;
routes(warehouse,customer):c,x;
endsets
data:
a=30,25,21;
b=15,17,22,12;
c=6,2,6,7,
4,9,5,3,
8,8,1,5;
enddata
min = @sum(routes:c*x);
@for(warehouse(i):[SUP]
@sum(customer(j):x(i,j))<=a(i));
@for(customer(j):[DEM]
@sum(warehouse(i):x(i,j))=b(j));
end

 下面是另外一个经典的规划问题——指派问题。指派问题可以抽像为一个0-1问题。下面给出一个例题:

题目:

设有$n$个人,计划作$n$项工作,其中$c_{ij}$表示第$i$个人做第$j$项工作的收益,现求一种指派方式,使得每个人完成一项工作,使收益最大。

数据:

 

 抽象为0-1问题:

\[\displaystyle \min \quad \sum_{i=1}^{n}\sum_{j=1}^{m}c_{ij}x_{ij}\]

subject to 是:

\[\left\{
\begin{array}{ll}
\displaystyle \sum_{j=1}^{n}x_{ij}=1\\[3mm]
\displaystyle \sum_{i=1}^{m}x_{ij} = 1
\end{array}
\right.
\]

其中,$x_{ij}=0\mathrm{or}1$。

 实现代码:

sets:
flight/1..6/;
Assign(flight,flight):c,x;
endsets
data:
c=20,15,16,5,4,7,
17,15,33,12,8,6,
9,12,18,16,30,13,
12,8,11,27,19,14,
-99,7,10,21,10,32,
-99,-99,-99,6,11,13;
enddata
!solve the problem of assignments;
max = @sum(Assign:c*x);
!subject to;
@for(flight(i):
@sum(flight(j):x(i,j))=1;
);
@for(flight(j):
@sum(flight(i):x(i,j))=1;
);
end

转运问题:

只是在指派问题的基础上加上转运点,比上面的情况稍微复杂一点。

题目:设有两个工厂A, B, 产量分别为9, 8个单位. 四个顾客1, 2, 3, 4, 需求量分别为3, 5, 4, 5. 和三个仓库x, y, z. 其中工厂到仓库、仓库到顾客的运费单价分别由表7-4所示.试求总运费最少的运输方案,以及总运费。

抽象的数学模型:

\[\displaystyle \min \quad \sum_{i=1}^{m}\sum_{j=1}^{l}c_{ij}x_{ij}^{1}+\sum_{j=1}^{l}\sum_{k=1}^{n}c_{jk}x_{jk}^{2}\]

subject to:

 

\[\left\{
\begin{array}{ll}
\displaystyle \sum_{j=1}^{l}x_{ij}^{1}\leq a_{i} \\[3mm]
\displaystyle \sum_{i=1}^{m}x_{ij}^{1} = \sum_{k=1}^{n}x_{ij}^{2}\\[3mm]
\displaystyle \sum_{j=1}^{l}x_{ij}^{2}=b_{k}
\end{array}
\right.
\].

Lingo代码如下:

!TP问题;
sets:
plant/A,B/:produce;
warehouse/x,y,z/;
customer/1..4/:require;
link1(plant,warehouse):c1,x1;
link2(warehouse,customer):c2,x2;
endsets
data:
produce=9,8;
require=3,5,4,5;
c1=1,2,100,
3,1,2;
c2=5,7,100,100,
9,6,7,100,
100,8,7,4;
enddata
min = @sum(link1:c1*x1)+@sum(link2:c2*x2);
!subject to;
@for(plant(i):[SUP]
	@sum(warehouse(j):x1(i,j))<=produce(i));
@for(warehouse(j):[MID]
	@sum(plant(i):x1(i,j))=@sum(customer(k):x2(j,k)));
@for(customer(k):[DEM]
	@sum(warehouse(j):x2(j,k))=require(k));
end

在此,强调,Lingo代码语句的规范性很重要!!!!=-=因为一个问题搞了好长时间。

 

 

转载于:https://www.cnblogs.com/txy19981002/p/7487148.html

某油田计划在铁路线一侧建造两家炼油厂,同时在铁路线上增建一个车站,用来运送成品油。由于这种模式具有一定的普遍性,油田设计院希望建立管线建设费用最省的一般数学模型与方法。 问题如下: 1、针对两炼油厂到铁路线距离和两炼油厂间距离的各种不同情形,提出设计方案。在方案设计时,若有共用管线,应考虑共用管线费用与非共用管线费用相同或不同的情形。 2、两炼油厂的具体位置由附图所示(附录1),其中A厂位于郊区(图中的I区域),B厂位于城区(图中的II区域),两个区域的分界线用图中的虚线表示。图中各字母表示的距离(单位:千米)分别为a = 5,b = 8,c = 15,l = 20。 若所有管线的铺设费用均为每千米7.2万元。 铺设在城区的管线还增加拆迁和工程补偿等附加费用,为对此项附加费用进行估计,聘请三家工程咨询公司(其中公司一具有甲级资质,公司二和公司三具有乙级资质)进行了估算。估算结果如下表所示: 工程咨询公司 公司一 公司二 公司三 附加费用(万元/千米) 21 24 20 请为设计院给出管线布置方案及相应的费用。 3、为进一步节省费用,可以根据炼油厂的生产能力,选用相适应的油管。管线铺设费用如下: 油管类型 输送A厂成品油 输送B厂成品油 输送共用管线 铺设费用(万元/千米) 5.6 6.0 7.2 请给出管线最佳布置方案及相应的费用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值