一、优化求解软件简介
众所周知,常用的优化工具软件有Lingo、Mathcad和MATLAB。
1. LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”,由美国LINDO系统公司(Lindo System Inc.)推出的,LINGO是一款强大的数学规划和优化软件,主要用于解决线性规划、非线性规划、整数规划以及二次规划等问题。它提供了简单易用的建模语言,使用户能够方便地表达复杂的优化问题。优点:建模语言直观,LINGO的建模语言非常接近数学表达式,使得用户能够快速地建立优化模型;求解速度快,LINGO采用了高效的算法,能够快速地求解大规模优化问题;结果报告详细,LINGO提供的求解报告详细,包括各种统计数据和灵敏度分析等,有助于用户对优化问题进行进一步深入分析。
2. MathCAD是美国PTC公司旗下的一个交互式的数学软件,集科学编辑、数学计算和仿真于一体。它以其友好的输入界面和所见即所得的特点而受到用户的青睐。对优化问题进行求解时,可以方便建立其数学模型,调用minimize和maximize函数进行建立的数学模型的最小值和最大值,但其只给出结果,没有求解报告。
3. MATLAB优化求解工具箱(Optimization Toolbox)是MATLAB的一个重要扩展,它提供了多种优化算法和工具,用于解决线性规划、非线性规划、整数规划、多目标优化等复杂优化问题。但MATLAB软件占用存储空间大,价格较高。
二、优化求解问题和数学模型建立
下面以一个常见生产计划问题为例进行展示:
问题:某工厂生产甲、乙两种产品。生产每种产品所需的材料、工时、电力和获得的利润,以及能够提供的材料、工时和电力见下表。试确定两种产品每天的产量,以使每天可获得的利润最大。
产品 | 材料/kg | 工时/h | 电力/(kw•w | 利润/元 |
甲 | 9 | 3 | 4 | 60 |
乙 | 4 | 10 | 5 | 120 |
供应量 | 360 | 300 | 200 |
解:该问题是一个线性规划问题,首先建立数学模型(设计变量、目标函数和约束条件)
设每天生产甲产品x件,乙产品生产y件。 设计变量
求最大值 f(x,y)=60x+120y 目标函数
约束条件:
9x+4y≤360
3x+4y≤300
4x+5y≤200
x≥0 y≥0
三、LINGO求解优化问题
LINGO求解程序如下:
MAX = 60*x + 120 * y;
9*x+4*y<= 360;
4*x+5*y<= 200;
3*x+10*y<= 300;
x>=0;
y>=0;
注:LING0语言的语法详见其帮助或网上有关资料,LING0默认变量是大于等于零的,上面LINGO程序没有最后两行语句求解结果也一样。
LINGO 11.0软件的编辑界面如下:
生成求解报告如下所示:
由上可知,当甲产品每天生产20件,乙产品每天生产24件时,该厂获得最大利润4080,该解也是全域最优解。从上面实例可以看出,LINGO软件编程比较简单,且有求解报告,便于对问题深入分析。
未完待续…