lingo-运输问题的数学模型

建模

变量

ai表示第i个工厂的加工量
bj表示第j个门市部的销量
cij表示运价,从第i个加工厂到第j个门市部运送一吨糖果的价格
决策变量:xij 从第i个加工厂到第j个门市部的糖果数量

一般形式

m i n z = ∑ ∑ c i j ∗ x i j s . t . { ∑ j x i j = a i ∑ i x i j = b j x i j ≥ 0 min z = \sum \sum cij * xij\\ s.t. \left\{ \begin{matrix} \sum_j xij = ai\\ \sum_i xij = bj\\ xij \geq 0 \end{matrix} \right. minz=∑∑cijxijs.t. jxij=aiixij=bjxij0

矩阵形式

A = [ 7 4 9 ] B = [ 3 6 5 6 ] C = [ 3 11 3 10 1 8 2 8 7 4 10 5 ] X = [ x 11 x 12 x 13 x 14 x 21 x 22 x 23 x 24 x 31 x 32 x 33 x 34 ] A = [\begin{matrix}7&4&9\end{matrix}] \\ B= [\begin{matrix}3&6&5&6\end{matrix}] \\ C=\left [ \begin{matrix} 3&11&3&10\\ 1&8&2&8\\ 7&4&10&5 \end{matrix} \right]\\ X = \left [ \begin{matrix} x_{11}&x_{12}&x_{13}&x_{14}\\ x_{21}&x_{22}&x_{23}&x_{24}\\ x_{31}&x_{32}&x_{33}&x_{34}\\ \end{matrix} \right] A=[749]B=[3656]C= 317118432101085 X= x11x21x31x12x22x32x13x23x33x14x24x34

Lingo 建立模型

方法

定义集合
给常量赋值
目标函数的表达
约束条件的表达
模型求解

定义集合

! 建立加工厂集合及产量;
factory/1..3/:A;
! 建立门市部集合及产量;
shop/1..4/:B;
!建立联系集合及运价和运量,派生集合,双下标变量;
LINK(factory,shop):C,X;

给常量赋值

DATA:
	A = 7 4 9;
	B = 3 6 5 6;
	C = 
	3 11 3 10
	1 9 2 8
	7 4 10 5;
ENDDATA

目标函数的表达

m i n z = ∑ ∑ c i j ∗ x i j min z = \sum \sum cij * xij minz=∑∑cijxij

MIN = @SUM (LINK(i,j): C(i,j) * X(i,j));

约束条件的表达

1.产量约束
∑ j x i j = a i \sum_j xij = ai jxij=ai

@for(factory(i): @sum(shop(j): x(i,j)) = A(i));

2.销量约束
∑ i x i j = b j \sum_i xij = bj ixij=bj

@for(shop(j): @sum(factory(i): x(i,j)) = b(j));

3.自身约束
x i j ≥ 0 xij \geq 0 xij0
lingo 默认非负

完整代码

MODEL:
	SETS:
	factory/1..3/:A;
	shop/1..4/:B;
	LINK(factory,shop):C,X;
	ENDSETS
	
	DATA:
	A = 7 4 9;
	B = 3 6 5 6;
	C = 
	3 11 3 10
	1 9 2 8
	7 4 10 5;
	ENDDATA
	
	MIN = @SUM (LINK(i,j): C(i,j) * X(i,j));
	@for(factory(i): @sum(shop(j): x(i,j)) = A(i));
	@for(shop(j): @sum(factory(i): x(i,j)) = b(j));
END
  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值