Lingo学习——Lingo程序基础

一个简单的Lingo程序

实例 用LINGO求解如下二次规划问题:
M a x 98 x 1 + 277 x 2 − x 1 2 − 0.3 x 1 x 2 − 2 x 2 2 s . t . x 1 + x 2 ≤ 100 , x 1 ≤ 2 x 2 , x 1 , x 2 ≥ 0 , 且为整数 . \begin{align} Max &\quad 98x_1 +277x_2 -x_1^2-0.3x_1x_2-2x_2^2\tag{1} \\ s.t. & \quad x_1+x_2\leq100, \tag{2}\\ & \quad x_1\leq2x_2,\tag{3}\\ & \quad x_1,x_2\geq0,且为整数.\tag{4}\\ \end{align} Maxs.t.98x1+277x2x120.3x1x22x22x1+x2100,x12x2,x1,x20,且为整数.(1)(2)(3)(4)

Model:
title二次规划;
max=98*x1+277*x2-x1^2-0.3*x1*x2-2*x2^2;
x1+x2<=100;
x1<=2*x2;
@gin(x1);
@gin(x2);
End
  • 一个完整的Lingo程序通常以“MODEL:”’开头,END结尾(这对词语也可以省略不写)。
  • LINGO总是根据“MAX=”或“MIN=”寻找目标函数,除注释语句和TITLE语句外的其它语句都是约束条件,因此语句的顺序并不重要。
  • 前面实例中限定变量取整数值的语句为“@GIN(X1)”和“@GIN(X2)”。
  • LINGO中函数需要以“@”开头,常用函数有整型变量函数(@GIN)、0/1变量函数(@BIN)和上下界限定函数(@FREE、@BND)。

输出结果:运行莱单命令“LINGO|Solve或点击快捷工具分别得到求解状态窗口和求解报告窗口如下:

  • 求解状态窗口主要包含模型类型和求解算法等信息。
    Lingo学习——Lingo程序基础_第1张图片

  • 求解报告窗口主要包含最优目标值和最优解等信息。
    Lingo学习——Lingo程序基础_第2张图片

Lingo基本用法的几点注意事项

  • LINGO中不区分大小写字母。
  • 变量和行名不能超过32个字符,且必须以字母开头。
  • 用LINGO求解优化模型时默认所有变量非负(除非用限定变量取值范围的函数@free等另行说明)。
  • 为了提高LINGO求解效率,应尽可能采用线性表达式定义目标和约束。
  • 语句是组成LINGO模型的基本单位,每个语句都以分号结尾。
  • 以感吸号开始的是说明语句,说明语句也需要以分号结尾。
  • 编写程序时应注意模型的可读性。例如:一行只写一个语句,按照语句之间的嵌套关系对语句安排适当的缩进,增加层次感。

你可能感兴趣的:(Lingo,学习)