AMPL_运输模型

今天来分享基于AMPL的运输模型是如何建模的。
题目是这样的:
有三个供应商,给四个客户提供产品,其中经过好几条线路,每条线路的成本都不一样,下面是相应数据:
渔场 吨
A1 80
A2 60
A3 60

客户 需求
D1 30
D2 30
D3 60
D4 50

线路 路线成本
A1-B 100
A2-B 130
A3-B 120
B-D1 500
B-C1 100
B-C2 140
C1-D1 100
C1-D2 120
C1-D3 120
C1-D4 150
C2-D1 120
C2-D2 120
C2-D3 160
C2-D4 130

这其实也是一个网络图的问题,学过运筹学的都应该能够根据给出的路线画出网络图。
下面是我根据上面给出数据画的网络图:
AMPL_运输模型_第1张图片

从图就可以很清楚的看出整个运作的流程了,那接下来我们就用AMPL来建模吧。

模型部分:

set city;
set link within(city cross city);

param supply{city};#A1 A2 A3
param demand{city};#D1 D2 D3 D4
#param time{link};
param cost{link};

var capacity{link}>=0;
minimize total_cost:
sum{(i,j)in link}capacity[i,j]*cost[i,j];

subject to balance{k in city}:
sum{(i,k)in link}capacity[i,k]-sum{(k,j)in link}capacity[k,j]=demand[k]-supply[k];
#K代表每一个节点,左边输入量减去右边输出量=进需求量

数据部分:

set city:=A1 A2 A3 B C1 C2 D1 D2 D3 D4;

param supply default 0:=
A1	80
A2	60
A3	60;

param demand default 0:=
D1	30
D2	30
D3	60
D4	50;

param :link:cost:=
A1 B	1000
A2 B	1300
A3 B	1200
B D1	5000
B C1	1000
B C2	1400
C1 D1	1000
C1 D2	1200
C1 D3	1200
C1 D4	1500
C2 D1	1200
C2 D2	1200
C2 D3	1600
C2 D4	1300;

敲码完毕,接下来看看结果吧。
AMPL_运输模型_第2张图片

nice,很简单吧。分析我就不多说啦,哈哈

你可能感兴趣的:(ampl,AMPL_运输模型,数学建模,数据分析)