欢迎光临散文网 会员登陆 & 注册

快速学懂Lingo软件及其编程方法

2023-07-10 15:38 作者:拉布拉多多多-小布丁  | 我要投稿

最下面附带能运行的代码

ctrl鼠标滚轮

放大缩小


05:44


初始代码

英文版福利

Ctrl+u 是快捷键


10:06


2.lingo求解大规模问题,以及集合语言的运用


11:27


问题

定义集合


13:59


sets:

......

endsets

注意:代码严格规定省略号的点只能打两个

【如:s/1..6/: ; 而不能用s/1.......6/:;】

表示定义一个集合;

1先确定已知和未知

集合语言知识:

{

(1)定义范围S/1..6/: ;

(2)定义双下标U(S,T): ;

(3)定义满足范围的变量S/1..6/: a,b;

}

(方便看在放一下)问题


数据站知识

定义:

data:

.......

enddata

数据栈语言知识:

{

是多少写多少 空格 或 逗号隔开数据

}

写模型


20:13


记得最后加括号和前面的@sum函数配对

写约束条件


21:18


用@for来循环

非线性问题:


23:45



需要勾选全局求解器


成功代码:

sets:

S/1..6/:a,b,d ;

T/1..2/:e,x,y ;

U(S,T):c ;

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软件及其编程方法的评论 (共 条)

分享到微博请遵守国家法律