Lingo编程步骤:
- 确保模型准确(需要清楚每个变量、下标、系数等);
- 确定指标集(也就是系数);
- 确定决策变量;
- 根据式子转化成Lingo代码
01 简单示例
max = 4*x1 + 3*x2;
2*x1 + x2 <= 10;
x1 + x2 <= 8;
x2 <= 7;
@gin(x1)
@gin(x2)
不用添加大于零的约束条件,因为默认是非负实数。
求解代码:如果看不懂,可以看视频讲解
! 集和定义 ;
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的考虑距离约束车辆路径问题模型与求解
这是一个经典组合优化问题的车辆路径问题(VRP) ,里面有LINGO代码示例