当前位置:   article > 正文

Lingo基础语法笔记_lingo中@text()=@table(q1);什么意思

lingo中@text()=@table(q1);什么意思

内容来源

注意事项

  • 模型是以MODEL: 开始,END结尾,每句;结尾
  • min=模型,max=模型,表示求函数最大最小值
  • 不区分大小写
  • 默认所有变量非负,解除用@free(x)
  • 注释符号为:!
  • 可以给每个语句加上标号;例如 [ 标 号 ] M A X = x 1 + x 2 [标号] MAX=x_1+x_2 []MAX=x1+x2

基本运算符

算术运算符

在这里插入图片描述

逻辑运算符

在这里插入图片描述

在这里插入图片描述

关系运算符

在这里插入图片描述

常见数学函数

在这里插入图片描述

目 标 函 数 最 大 值 max ⁡ z = 4 x 1 + 3 x 2 约 束 条 件 { 2 x 1 + x 2 ≤ 10 x 1 + x 2 ≤ 8 x 2 ≤ 7 x 1 , x 2 ≥ 0 目标函数最大值 \max z=4 x_{1}+3 x_{2} \\ 约束条件 \left\{

2x1+x210x1+x28x27x1,x20
\right. maxz=4x1+3x22x1+x210x1+x28x27x1,x20

model:
max=4*x1+3*x2;
2*x1+x2<10;
x1+x2<8;
x2<7;
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

整数规划@gin(x)

在这里插入图片描述

01规划@bin(x)

在这里插入图片描述

可取负数@free(x)

min ⁡ z = ∣ x 1 ∣ − 2 ∣ x 2 ∣ − 3 ∣ x 3 ∣ + 4 ∣ x 4 ∣ { x 1 − x 2 − x 3 + x 4 = 0 x 1 − x 2 + x 3 − 3 x 4 = 1 x 1 − x 2 − 2 x 3 + 3 x 4 = − 1 2

\begin{array}{l} \min z=\left|x_{1}\right|-2\left|x_{2}\right|-3\left|x_{3}\right|+4\left|x_{4}\right| \\ \left\{\begin{array}{l} x_{1}-x_{2}-x_{3}+x_{4}=0 \\ x_{1}-x_{2}+x_{3}-3 x_{4}=1 \\ x_{1}-x_{2}-2 x_{3}+3 x_{4}=-\frac{1}{2} \end{array}
\right. \end{array} minz=x12x23x3+4x4x1x2x3+x4=0x1x2+x33x4=1x1x22x3+3x4=21

model:
max=@abs(x1)-2*@abs(x2)-3*@abs(x3)+4*@abs(x4);
x1-x2-x3+x4=0;
x1-x2+x3-3*x4=1;
x1-x2-2*x3+3*x4=-1/2;
@free(x1 ); @free(x2);@free(x3); @free(x4);
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

集合和条件约束

 S.t.  { min ⁡ = ∑ j = 1 3 ∑ i = 1 2 g i j × L i j ∑ i = 1 2 g i j = d j ( j = 1 , 2 , 3 ) ∑ j = 1 3 g i j = s i ( i = 1 , 2 ) \text { S.t. }\left\{

min=j=13i=12gij×Liji=12gij=dj(j=1,2,3)j=13gij=si(i=1,2)
\right.  S.t. min=j=13i=12gij×Liji=12gij=dj(j=1,2,3)j=13gij=si(i=1,2)

model:
! 集合的本质就是拥有几个元素的集合,类型名自定义,变量名自定义
sets:
supply/1..2/:s;		!表示supply类型的数据是一个有两个元素的向量,s就是supply类型的一个数据,supply类自定义,变量名称也是自定义
demand/1..3/:d;		! 和supply相同,不过是三个元素的
link(supply,demand):road,g;		!组合元素类型名(行类型,列类型),link就是一个两行三列的二维数据组合,两个变量road和g
end sets

data:
road=10,5,6;
4,8,12;
d=50,70,40;
s=60,100;
end data

min=@sum(link(i,j):road(i,j)*g(i,j));
!@sum(类型名:数据表达式);类型名本质就是确定i,j等索引变量的范围,sum函数会依次取出范围中的数据进行数据表达式的运算。

@for(demand(j):@sum(supply(i):g(i,j))=d(j));
!和sum类似,demand(j)本质就是确定了j范围是1~3,一次遍历循环。

@for(supply(i):@sum(demand(j):g(i,j))=s(i));
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

min ⁡ Z = ∑ i = 1 n ∑ j = 1 n w i j f i j \min Z=\sum_{i=1}^{n} \sum_{j=1}^{n} w_{i j} f_{i j} minZ=i=1nj=1nwijfij
 s.t.  { ∑ j = 1 n f 1 j = 1 ∑ j = 1 n f j n = 1 ∑ j = 1 n f j i = ∑ j = 1 n f i j i ≠ 1 , n \text { s.t. }\left\{

j=1nf1j=1j=1nfjn=1j=1nfji=j=1nfiji1,n
\right.  s.t. j=1nf1j=1j=1nfjn=1j=1nfji=j=1nfiji=1,n

model:
sets:
node/1..6/;
road(node,node)/1,2,1,3,2,4,2,5,3,4,3,5,4,6,5,6/:w,f;
end sets

data:
w=2,1,5,3,4,3,0,0;
end data

n=@size(node);
[obj]min=@sum(road(i,j):w(i,j)*f(i,j));
@for(node(i)|i#ne#1 #and# i#ne#n:@sum(road(j,i):f(j,i))=@sum(road(i,j):f(i,j)));
! 类型后添加 | 可以后加条件约束,只有满足条件约束的才运行后面的表达式,sum类似

@sum(road(i,j)|i#eq#1:f(i,j))=1;
@sum(road(j,i)|i#eq#n:f(j,i))=1;
end
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

从excel中读取数据

data
d=@ole("excel文件路径","区域名称");
end data
  • 1
  • 2
  • 3

区域名称通过选中若干单元格按 C t r l + F 3 Ctrl+F3 Ctrl+F3命名即可读取。

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/55661
推荐阅读
相关标签
  

闽ICP备14008679号