lingo

您所在的位置:网站首页 lingo求解最短路问题心得 lingo

lingo

2024-07-11 21:54| 来源: 网络整理| 查看: 265

文章目录 建模变量一般形式矩阵形式 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=∑∑cij∗xijs.t.⎩ ⎨ ⎧​∑j​xij=ai∑i​xij=bjxij≥0​

矩阵形式

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=[7​4​9​]B=[3​6​5​6​]C= ​317​1184​3210​1085​ ​X= ​x11​x21​x31​​x12​x22​x32​​x13​x23​x33​​x14​x24​x34​​ ​

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=∑∑cij∗xij

MIN = @SUM (LINK(i,j): C(i,j) * X(i,j)); 约束条件的表达

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

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

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

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

3.自身约束 x i j ≥ 0 xij \geq 0 xij≥0 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


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3