lingo重点部分快速上手

一、设置结果范围的命令:

  1. @bin(x):表示x为0/1

  2. @gin(x):表示x为证书

  3. @free(x):表示x为任意实数

  4. @bnd(l,x,u):表示x为【l,u】之间的实数

  5. 默认变量为非负实数

例题1:

max = 4*x1+3*x2;
2*x1+x2<=10;
x1+x2<=8;
x2<=7;
    x1>=0;
    x2>=0;
​
@gin(x1);
@gin(x2);

 

 

例題2:
​
定义集合:
sets:
S/1..6/: a,b,d  ;S是一个1-6的集合,定义给a
T/1,2,3/: e,x   ;T是一个1,2,3的集合
U(S,T):c        ;定义了一个6*3的矩阵,也就是双虾标
endsets
​
定义数据段:
data:
a=1.25 8.75 0.5 5.75 3 7.25;
b=1.25 0.75 4.75 5 6.5 7.75;
d=3 5 4 7 6 11;
x=5 2;
y=1 7;
e=20 20;
enddata
​
定义模型:
min=@sum(T(j):@sum(S(i):
c(i,j)*@sqrt((x(j)-a(i))^2+(y(j)-b(i)^2))));
​
@for(S(i):
    @sum(T(j):c(i,j))=d(i));
​
@for(T(j):
    @sum(S(i):c(i,j))<=e(j));
 

 

Lingo读取数据:(重点)

1.读取txt数据:

!使用file函数
sets:
    id/1..100/;
    weight/1..400/;
    value/1..600/;
    dataing(id,weight,value)/@file('G:\无用的\运筹学\运筹学应用课程设计2021-第2版\data\knapsack100.txt')/:data1;
endsets

 

2.读取excel数据(有问题这里)

!使用ole函数
sets:
    fiveStar;
    fourStar;
    threeStar;
    range/1..17/:rn;
    Allowed(fiveStar,fourStar,threeStar):x,y;
endsets
​
data:
    rate=0.01;
    fiveStar,fourStar,threeStar=@ole('E:\学习笔记\Lingo\上海4A景区.XLS','_5A','_4A','_3A');
enddata
​

 

如果简单调用,excel传入的数据会循环调用,这部分暂时没有头绪

 

posted @ 2021-07-04 13:16  焕不涣  阅读(655)  评论(0编辑  收藏  举报