lingo |
您所在的位置:网站首页 › lingo求解最短路问题心得 › lingo |
文章目录
建模变量一般形式矩阵形式
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.⎩ ⎨ ⎧∑jxij=ai∑ixij=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=[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=∑∑cij∗xij 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 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 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |