当前位置:文档之家› lingo编程程序求解选址-运输问题

lingo编程程序求解选址-运输问题

lingo编程程序求解选址-运输问题
lingo编程程序求解选址-运输问题

sets:

factory/1..3/:s1,s2,s3,s4;

!工厂四种产品供应量;

warhouse/1..13/:lwar,fd,eva,yun,war1,war2,war3,war4,wq1,wq2,wq3,wq4;

!配送中心最大仓储量、评价值、固定运营成本、库存成本以及库存量;

customer/1..24/:d1,d2,d3,d4;

!客户四种产品的需求量;

tr/1..13/:z;

link1(factory,warhouse):d,x1,x2,x3,x4;

!工厂到客户的运输距离,四种产品的运输量;

link2(warhouse,customer):dd,xx1,xx2,xx3,xx4,xxx1,xxx2,xxx3,xxx4;

!物流中心到客户运输距离、运输量,未超出安全距离的运输量;

endsets

data:

!供用量;

s1=;

s2=;

s3=;

s4=;

!最大库存;

lwar=;

!安全距离;

fd=;

!需求量;

d1=;

d2=;

d3=;

d4=;

!运输成本;

tc=;

ttc=;

yun=;!运营成本;

u=;!超出最佳半径的惩罚成本;

w1=;w2=;w3=;

!单位库存成本;

war1=;

war2=;

war3=;

war4=;

d=;!各钢厂到备选配送中心距离;

dd=;!备选配送中心到需求点的距离;

enddata

f1=@sum(link1(i,j):x1(i,j)*tc*d(i,j))+@sum(link1(i,j):x2(i,j)*tc*d(i,j) )+@sum(link1(i,j):x3(i,j)*tc*d(i,j))+@sum(link1(i,j):x4(i,j)*tc*d(i,j)) +@sum(link2(j,k):xx1(j,k)*ttc*dd(j,k))+@sum(link2(j,k):xx2(j,k)*ttc*dd( j,k))+@sum(link2(j,k):xx3(j,k)*ttc*dd(j,k))+@sum(link2(j,k):xx4(j,k)*tt c*dd(j,k))+@sum(warhouse(j):z(j)*yun)+

lingo解决线性规划问题的程序

Lingo12软件培训教案 Lingo 主要用于求解线性规划,整数规划,非线性规划,V10以上版本可编程。 例1 一个简单的线性规划问题 0 , 600 2 100 350 st. 3 2max >=<=+=<<=++=y x y x x y x y x z ! 源程序 max = 2*x+3*y; [st_1] x+y<350; [st_2] x<100; 2*x+y<600; !决策变量黙认为非负; <相当于<=; 大小写不区分 当规划问题的规模很大时,需要定义数组(或称为矩阵),以及下标集(set) 下面定义下标集和对应数组的三种方法,效果相同::r1 = r2 = r3, a = b = c. sets : r1/1..3/:a; r2 : b; r3 : c; link2(r1,r2): x; link3(r1,r2,r3): y; endsets data : ALPHA = ; a=11 12 13 ; r2 = 1..3; b = 11 12 13; c = 11 12 13; enddata

例2 运输问题 解: 设决策变量ij x = 第i 个发点到第j 个售点的运货量,i =1,2,…m; j =1,2,…n; 记为ij c =第i 个发点到第j 个售点的运输单价,i =1,2,…m; j =1,2,…n 记i s =第i 个发点的产量, i =1,2,…m; 记j d =第j 个售点的需求量, j =1,2,…n. 其中,m = 6; n = 8. 设目标函数为总成本,约束条件为(1)产量约束;(2)需求约束。 于是形成如下规划问题: n j m i x n j d x m i s x x c ij j n i ij i m j ij m i n j ij ij ,...,2,1,,...,2,1,0 ,...,2,1, ,...,2,1, st. z min 11 11==>=<==<==∑∑∑∑==== 把上述程序翻译成LINGO 语言,编制程序如下: ! 源程序

LINGO求解运输问题

一.实验目的 1、学会使用LINGO 软件求解运输问题的步骤与方法。 2、掌握使用LINGO 对运输问题的求解功能,并对结果进行分析。 二.实验内容 1.已知某企业有甲、乙、丙三个分厂生产一种产品,其产量分别为7、9、7个单位,需运往A 、B 、C 、D 四个门市部,各门市部需要量分别为3、5、7、8个单位。已知单位运价如下表。试确定运输计划使总运费最少。 2.现在要在五个工人中确定四个人来分别完成四项工作中的一项工作。由于每个工人的技术特长不同,他们完成各项工作所需的工时也不同。每个工人完成各项工作所需工时如下表所示,试找出一个工作分配方案,使总工时最小。 三. 模型建立 1.由题设知,总产量为:7+9+7=23个单位,总销量为:3+5+7+8=23个单位,所以这是一个产销平衡的运输问题。 设)4,3,2,1;3,2,1(==j i x ij 代表从第i 个产地运往第j 个销地的数量,z 为总运费。i a 表示第i 个产地的产量,j b 表示第j 个销地的销量ij c 表示从第i 个产地运往第j 个销地的单位产

品运输费用。则该问题的数学模型为: 3 4 1 1 4 13 1 max 0,1,2,3;1,2,3,4ij ij i j ij i j ij j i ij Z c x x a x b x i j =====?=???=???≥==??∑ ∑ ∑∑ 2. 设0-1变量,1,0ij i x i ?=??当第个人完成某j 项工作 ,当第个人不完成某j 项工作 则该问题的数学模型为: 5 4 115 141 min 1,1,01ij ij i j ij i ij j ij Z c x x j x i x i j =====?= =1,2,3,4??? = = 1,2,3,4,5???= =1,2,3,4,5;=1,2,3,4?? ∑∑∑∑或, 四. 模型求解(含经调试后正确的源程序) 1、编写程序1-1.m 如下: model : sets : warehouses/wh1..wh3/: capacity; vendors/v1..v4/: demand; links(warehouses,vendors): cost, volume; endsets data : capacity=7 9 7; demand=3 5 7 8; cost= 12 13 10 11 10 12 14 10 14 11 15 12; enddata min =@sum (links(I,J): cost(I,J)*volume(I,J));

用lingo解决运输问题

用lingo解决运输问题 (一)实验目的 1. 运输问题求解的编程实现 2.掌握使用matlab、Lingo、Excel的求解功能求解运输问题,并对结果进行分析。(二)实验内容 《运筹学》清华三版P98页 3.3题 Lingo程序代码及运行结果(选取部分): <1>3.3(1): 程序代码: model: sets: xiao/1..4/:s; chan/1..3/:h; link(chan,xiao):x,y; endsets data: y=3 7 6 4 2 4 3 2 4 3 8 5; h=5 2 3; s=3 3 2 2; enddata min=@sum(link:x*y); @for(xiao(j):@sum(chan(i):x(i,j))=s(j)); @for(chan(i):@sum(xiao(j):x(i,j))=h(i)); 运行结果及结果分析: Objective value: 32.00000 产地1分别将数量为3和2的产品运往销地甲和丁;产地2将数量为2的产品运往销地丙;产地3将数量为3的产品运往销地乙;该运输问题的最小费用为32. <2>3.3(2):

model: sets: xiao/1..4/:s; chan/1..3/:h; link(chan,xiao):x,y; endsets data: y=10 6 7 12 16 10 5 9 5 4 10 10; h=4 9 4; s=5 2 4 6; enddata min=@sum(link:x*y); @for(xiao(j):@sum(chan(i):x(i,j))=s(j)); @for(chan(i):@sum(xiao(j):x(i,j))=h(i)); 运行结果及结果分析: Objective value: 118.0000 产地1将数量为1、2、1的产品分别运往销地甲、乙、丙;产地将数量为3、6的产品运往销地丙、丁;产地3将数量为4的产品运往销地甲。最小费用为118. <3>3.3(3): 程序代码: model: sets: xiao/1..5/:s; chan/1..4/:h; link(chan,xiao):x,y; endsets data: y=10 20 5 9 10 2 10 8 30 6 1 20 7 10 4

用lingo解决运输问题

用lingo解决运输问题 Lingo程序代码及运行结果(选取部分): 程序代码: model: sets: xiao/1..4/:s; chan/1..3/:h; link(chan,xiao):x,y; endsets data: y=3 7 6 4 2 4 3 2 4 3 8 5; h=5 2 3; s=3 3 2 2; enddata min=@sum(link:x*y); @for(xiao(j):@sum(chan(i):x(i,j))=s(j)); @for(chan(i):@sum(xiao(j):x(i,j))=h(i)); 运行结果及结果分析: Objective value: 32.00000 产地1分别将数量为3和2的产品运往销地甲和丁;产地2将数量为2的产品运往销地丙;产地3将数量为3的产品运往销地乙;该运输问题的最小费用为32. 程序代码: model: sets: xiao/1..4/:s; chan/1..3/:h; link(chan,xiao):x,y; endsets

data: y=10 6 7 12 16 10 5 9 5 4 10 10; h=4 9 4; s=5 2 4 6; enddata min=@sum(link:x*y); @for(xiao(j):@sum(chan(i):x(i,j))=s(j)); @for(chan(i):@sum(xiao(j):x(i,j))=h(i)); 运行结果及结果分析: Objective value: 118.0000 产地1将数量为1、2、1的产品分别运往销地甲、乙、丙;产地将数量为3、6的产品运往销地丙、丁;产地3将数量为4的产品运往销地甲。最小费用为118. 程序代码: model: sets: xiao/1..5/:s; chan/1..4/:h; link(chan,xiao):x,y; endsets data: y=10 20 5 9 10 2 10 8 30 6 1 20 7 10 4 8 6 3 7 5; h=5 6 2 9; s=4 4 6 2 4; enddata min=@sum(link:x*y); @for(xiao(j):@sum(chan(i):x(i,j))=s(j)); @for(chan(i):@sum(xiao(j):x(i,j))<=h(i));

应用LINGO软件求解运输问题

2012——2013学年第一学期 合肥学院数理系 实验报告 课程名称:运筹学 实验项目:应用LINGO软件求解运输问题 实验类别:综合性□设计性□√验证性□专业班级: 姓名:学号: 实验地点: 实验时间: 指导教师:成绩:

一.实验目的 1、学会使用LINGO 软件求解运输问题的步骤与方法。 2、掌握使用LINGO 对运输问题的求解功能,并对结果进行分析。 二.实验内容 1.已知某企业有甲、乙、丙三个分厂生产一种产品,其产量分别为7、9、7个单位,需运往A 、B 、C 、D 四个门市部,各门市部需要量分别为3、5、7、8个单位。已知单位运价如下表。试确定运输计划使总运费最少。 2.现在要在五个工人中确定四个人来分别完成四项工作中的一项工作。由于每个工人的技术特长不同,他们完成各项工作所需的工时也不同。每个工人完成各项工作所需工时如下表所示,试找出一个工作分配方案,使总工时最小。 三. 模型建立 1.由题设知,总产量为:7+9+7=23个单位,总销量为:3+5+7+8=23个单位,所以这是一个产销平衡的运输问题。 设)4,3,2,1;3,2,1(==j i x ij 代表从第i 个产地运往第j 个销地的数量,z 为总运费。i a 表示第i 个产地的产量,j b 表示第j 个销地的销量ij c 表示从第i 个产地运往第j 个销地的单位产

品运输费用。则该问题的数学模型为: 3 4 1 1 4 13 1 m ax 0,1,2,3;1,2,3,4ij ij i j ij i j ij j i ij Z c x x a x b x i j ===== ?=???=???≥==??∑∑ ∑∑ 2. 设0-1变量,1,0ij i x i ?=??当第个人完成某j 项工作 ,当第个人不完成某j 项工作 则该问题的数学模型为: 5 4 1 1 5 14 1 m in 1,1,01ij ij i j ij i ij j ij Z c x x j x i x i j ===== ?= =1,2,3,4???= = 1,2,3,4,5???= =1,2,3,4,5;=1,2,3,4?? ∑∑∑∑或, 四. 模型求解(含经调试后正确的源程序) 1、编写程序1-1.m 如下: model : sets : warehouses/wh1..wh3/: capacity; vendors/v1..v4/: demand; links(warehouses,vendors): cost, volume; endsets data : capacity=7 9 7; demand=3 5 7 8; cost= 12 13 10 11 10 12 14 10 14 11 15 12; enddata min =@sum (links(I,J): cost(I,J)*volume(I,J));

用线性规划方法求解运输问题

用线性规划方法求解运输问题 线性规划是运筹学中研究较早、发展较快、应用广泛、方法较成熟的一个重要分支,它是辅助人们进行科学管理的一种数学方法.在经济管理、交通运输、工农业生产等经济活动中,提高经济效果是人们不可缺少的要求,而提高经济效果一般通过两种途径:一是技术方面的改进,例如改善生产工艺,使用新设备和新型原材料.二是生产组织与计划的改进,即合理安排人力物力资源.线性规划所研究的是:在一定条件下,合理安排人力物力等资源,使经济效果达到最好.一般地,求线性目标函数在线性约束条件下的最大值或最小值的问题,统称为线性规划问题。满足线性约束条件的解叫做可行解,由所有可行解组成的集合叫做可行域。决策变量、约束条件、目标函数是线性规划的三要素. 运输问题的提出及其数学模型:现在人们生产活动中,不可避免的要进行物资调运工作,如某时期内将生产基地的蔬菜,粮食等各类物资,分别运到需要这些物资的地区。如何根据各地的生产量和需求量及各地之间的运输费用,如何制定一个运输方案,使总的运输量费用最小,这类的问题称

为运输问题。假设有m 个产地,记为A 1、A 2….A m ,生产某种物资,可供应的产量分别为a 1,a 2….a m ,有n 个销地,记为B 1、B 2…B n ,其需求量分别为b 1、b 2…b n ,假设在供需平衡的情况下,即∑=m i ai 1=∑=n j bj 1 ,从第i 个产地到j 个销地的单位物资的运费为c ij ,在满足各地需求的前提下,求运费最小的方案。 设x ij (i=1、2…m,j=1、2…n )为第i 个产地到第j 个销地的运量,则运输问题的数学模型为 Min Z = ∑=m i 1∑=n j cijxij 1

lingo基础操作

LINGO 使用教程 LINGO 是用来求解线性和非线性优化问题的简易工具。LINGO 内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO 高效的求解器可快速求解并分析结果。 §1 LINGO 快速入门 当你在windows 下开始运行LINGO 系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model – LINGO1的窗口是LINGO 的默认模型窗口,建立的模型都要在该窗口内编码实现。下面举两个例子。 例1.1 如何在LINGO 中求解如下的LP 问题: ,6002100 350. .32min 21211 2121≥≤+≥≥++x x x x x x x t s x x 在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 例1.2 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。

单 位销地 运 B1B2B3B4B5B6B7B8产量价 产地 A1 6 2 6 7 4 2 5 9 60 A2 4 9 5 3 8 5 8 2 55 A3 5 2 1 9 7 4 3 3 51 A4 7 6 7 3 9 2 7 1 43 A5 2 3 9 5 7 2 6 5 41 A6 5 5 2 2 8 1 4 3 52 销量35 37 22 32 41 32 43 38 model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))<=capacity(I)); !这里是数据; data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 然后点击工具条上的按钮即可。 为了能够使用LINGO的强大功能,接着第二节的学习吧。 §2 LINGO中的集

Lingo软件解决产销不平衡的运输问题

产销不平衡的运输问题 产地B1 B2 B3 B4 B5 B6 B7 产量 A1 6 2 6 7 4 2 5 60 A2 4 9 5 3 8 5 8 55 A3 5 2 1 9 7 4 3 51 A4 7 6 7 3 9 2 7 43 A5 2 3 9 5 7 2 6 41 销量35 37 22 32 41 32 43 model: sets: supply/1..5/:produce;demand/1..7/:sell; link(supply,demand):cost,x;endsetsdata: cost=6 2 6 7 4 2 5 4 9 5 3 8 5 8 5 2 1 9 7 4 3 7 6 7 3 9 2 7 2 3 9 5 7 2 6; produce=60 55 51 43 41; sell=35 37 22 32 41 32 43; enddatamin=@sum(link:cost*x); @for(supply(i):@sum(demand(j):x(i,j))<=produce(i)); @for(demand(j):@sum(supply(i):x(i,j))=sell(j)); end Global optimal solution found. Objective value: 717.0000 Infeasibilities: 0.000000 Total solver iterations: 14 Model Class: LP Total variables: 35 Nonlinear variables: 0 Integer variables: 0 Total constraints: 13 Nonlinear constraints: 0 Total nonzeros: 105 Nonlinear nonzeros: 0

用lingo编程解决运输问题大全

LINGO是用来求解线性和非线性优化问题的简易工具。LINGO内置了一种建立最优化模型的语言,可以简便地表达大规模问题,利用LINGO高效的求解器可快速求解并分析结果。 当你在windows下开始运行LINGO系统时,会得到类似下面的一个窗口: 外层是主框架窗口,包含了所有菜单命令和工具条,其它所有的窗口将被包含在主窗口之下。在主窗口内的标题为LINGO Model –LINGO1的窗口是LINGO的默认模型窗口,建立的模型都都要在该窗口内编码实现。下面举两个例子。 例如何在LINGO中求解如下的LP问题:

,6002100 350. .32min 21211 2121≥≤+≥≥++x x x x x x x t s x x 在模型窗口中输入如下代码: min =2*x1+3*x2; x1+x2>=350; x1>=100; 2*x1+x2<=600; 然后点击工具条上的按钮 即可。 例 使用LINGO 软件计算6个发点8个收点的最小费用运输问题。产销单位运价如下表。 销地 产地 B 1 B 2 B 3 B 4 B 5 B 6 B 7 B 8 产量 A 1 6 2 6 7 4 2 5 9 60 A 2 4 9 5 3 8 5 8 2 55 A 3 5 2 1 9 7 4 3 3 51 A 4 7 6 7 3 9 2 7 1 43 A 5 2 3 9 5 7 2 6 5 41 A 6 5 5 2 2 8 1 4 3 52 销量 35 37 22 32 41 32 43 38

使用LINGO软件,编制程序如下: model: !6发点8收点运输问题; sets: warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min=@sum(links: cost*volume); !需求约束; @for(vendors(J): @sum(warehouses(I): volume(I,J))=demand(J)); !产量约束; @for(warehouses(I): @sum(vendors(J): volume(I,J))<=capacity(I)); !这里是数据; data: capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5

《数学建模》实验指导4Lingo求解线性规划问题

实验四:在Lingo 中利用集求解线性规划问题 学时:4学时 实验目的:掌握利用Lingo 中的集求解线性规划问题的方法。 实验内容: 6 8 ,,1 1 6 ,18 ,1 m in * 1,,8 1,,6 i j i j i j i j j i i j i j cost volum e volum e dem and j volum e capacity i ========∑ ∑∑∑ 使用LINGO 软件,编制程序如下: model : !6发点8收点运输问题; sets : warehouses/wh1..wh6/: capacity; vendors/v1..v8/: demand; links(warehouses,vendors): cost, volume; endsets !目标函数; min =@sum (links: cost*volume); !需求约束; @for (vendors(J): @sum (warehouses(I): volume(I,J))=demand(J)); !产量约束; @for (warehouses(I): @sum (vendors(J): volume(I,J))<=capacity(I)); !这里是数据; data :

capacity=60 55 51 43 41 52; demand=35 37 22 32 41 32 43 38; cost=6 2 6 7 4 2 9 5 4 9 5 3 8 5 8 2 5 2 1 9 7 4 3 3 7 6 7 3 9 2 7 1 2 3 9 5 7 2 6 5 5 5 2 2 8 1 4 3; enddata end 回答问题:哪些产地增加产量可以减少运费,应增加哪个产地的产量可以减少的最多。 2.用Lingo中的集求解课本P107上的例1(混合泳接力队的选拔)。 使用LINGO软件,编制程序如下: model: sets: workers/w1..w5/; jobs/j1..j4/; links(workers,jobs): cost,volume; endsets min=@sum(links: cost*volume); @for(workers(I): @sum(jobs(J): volume(I,J))<=1); @for(jobs(J): @sum(workers(I): volume(I,J))=1); @for(links(i,j): @bin(volume(i,j))); data: cost= 66.8 57.2 78 70 67.4 75.6 66 67.8 74.2 71 87 66.4 84.6 69.6 83.8 58.6 53 59.4 57.2 62.4; enddata end

利用Lingo解一个具体的运输问题例子

实验三:利用Lingo 解一个具体的运输问题例子 1、 实验目的和任务 1.1. 进一步掌握Lingo 编程操作; 1.2通过实验进一步掌握运筹学运输问题的建模以及求解过程,提高学生分析问题和解决问题能力。 2、 实验仪器、设备及材料 计算机、Lingo 3、 实验内容 运输问题 问题P271 设有某种物资需要从m 个产地12,,...,m A A A 运到n 个销地12,,...,n B B B ,其中每个产地的生产量为 12,,...,m a a a ,每个销地的需求量为 12,,...,n b b b 。设从产地 i A 到销地 j B 的运费单价为 (1,2,...,, 1,2,..ij c i m j n ==,问如何调运可使总运费最少? 3个产地4个销地的运输问题 建模 决策变量:决策变量就是产地i A 到销地j B 的运量ij x 目标函数: 1 1 m in m n ij ij i j z c x === ∑∑, 约束条件:第i 个产地的运出量应小于或等于该地的生产量,即 1 ,1,2,...,.n ij i j x a i m =≤=∑ 第j 个销地的运入量应等于该地的需求量,即

1 ,1,2,....m ij j i x b j n ===∑ 求解过程 编写模型程序: model : ! 3 Warehouse,4 Customer Transportation Problem; sets : Warehouse/1..3/:a; Customer/1..4/:b; Routes(warehouse,customer):c,x; endsets !here are the parameters; data : a=30,25,21; b=15,17,22,12; c=6,2,6,7, 4,9,5,3, 8,8,1,5; enddata ! The objective; [obj] min =@sum (routes:c*x); !The supply constraints; @for (warehouse(i):[sup]@sum (customer(j):x(i,j))<=a(i)); !The demand constraints; @for (customer(j):[dem] @sum (warehouse(i):x(i,j))=b(j)); end 计算结果: Global optimal solution found. Objective value: 161.0000 Total solver iterations: 6 Variable Value Reduced Cost A( 1) 30.00000 0.000000 A( 2) 25.00000 0.000000 A( 3) 21.00000 0.000000 B( 1) 15.00000 0.000000 B( 2) 17.00000 0.000000 B( 3) 22.00000 0.000000

lingo编程程序求解选址-运输问题

sets: factory/1..3/:s1,s2,s3,s4; !工厂四种产品供应量; warhouse/1..13/:lwar,fd,eva,yun,war1,war2,war3,war4,wq1,wq2,wq3,wq4; !配送中心最大仓储量、评价值、固定运营成本、库存成本以及库存量; customer/1..24/:d1,d2,d3,d4; !客户四种产品的需求量; tr/1..13/:z; link1(factory,warhouse):d,x1,x2,x3,x4; !工厂到客户的运输距离,四种产品的运输量; link2(warhouse,customer):dd,xx1,xx2,xx3,xx4,xxx1,xxx2,xxx3,xxx4; !物流中心到客户运输距离、运输量,未超出安全距离的运输量; endsets data: !供用量; s1=; s2=; s3=; s4=; !最大库存; lwar=; !安全距离; fd=; !需求量; d1=; d2=; d3=; d4=; !运输成本; tc=; ttc=; yun=;!运营成本; u=;!超出最佳半径的惩罚成本; w1=;w2=;w3=; !单位库存成本; war1=; war2=; war3=; war4=; d=;!各钢厂到备选配送中心距离; dd=;!备选配送中心到需求点的距离; enddata f1=@sum(link1(i,j):x1(i,j)*tc*d(i,j))+@sum(link1(i,j):x2(i,j)*tc*d(i,j) )+@sum(link1(i,j):x3(i,j)*tc*d(i,j))+@sum(link1(i,j):x4(i,j)*tc*d(i,j)) +@sum(link2(j,k):xx1(j,k)*ttc*dd(j,k))+@sum(link2(j,k):xx2(j,k)*ttc*dd( j,k))+@sum(link2(j,k):xx3(j,k)*ttc*dd(j,k))+@sum(link2(j,k):xx4(j,k)*tt c*dd(j,k))+@sum(warhouse(j):z(j)*yun)+

Lingo求解物流配送中心选址问题教学文稿

优化与统计建模试验 专业 学号: 姓名: 2015年5月24日

摘要 在优化与系统建模试验这门课程当中,我们学习了Lingo,Cplex这两种优化软件以及SPSS,R语言这两种统计软件,并且简单了解了如何进行优化求解,学会了如何对数据进行简单分析。本文运用了Lingo软件,对物流配送中心选址问题进行求解;采用优化软件Cplex对运输问题进行了求解,最后是使用了SPSS软件,对我国城镇居民消费进行统计分析。 关键词:Lingo;Cplex; SPSS 一、Lingo求解物流配送中心选址问题 设有4个备选物流配送中心地址,6个工厂为其供货,6个客户需要产品,最多设置3个物流配送中心,工厂到物流配送中心的运输价格见表1,物流配送中心到客户的运输价格见表2,工厂的总生产能力见表3,物流配送中心的固定成本、单位管理成本,及容量见表4,客户的需求量见表5 表1 工厂到配送中心的运输价格 表2 配送中心到客户的运输价格

表3 工厂的总生产能力 表4 备选物流配送中心的固定成本,单位管理成本,容量 表5 客户的需求量 利用Lingo软件求解以上混合整数规划,编程如下:model: sets: factory/p1..p6/:p; warhouse/w1..w4/:a,f,g; customer/c1..c6/:d; tr/tr1..tr4/:z; link1(factory,warhouse):c,w; link2(warhouse,customer):h,x; endsets data: p=40000,50000,60000,70000,60000,40000; a=70000,60000,70000,50000; f=500000,300000,400000,400000; g=3,2,5,4; d=10000,20000,10000,20000,30000,10000; c=6 5 4 2 2 3 4 9 6 8 7 5 7 4 2 3 4 2 5 1 3 4 1 7; h=3 2 7 4 7 5 6 1 4 2 5 3 2 4 5 3 6 8 5 6 3 7 4 6;

相关主题
文本预览
相关文档 最新文档