一款优秀的求解最优化模型的数学工具——Lingo

原创 2004年09月24日 19:11:00

        Lingo是一款优秀的求解最优化模型的数学工具。无论是线性规划还是动态规划在其中都能很容易的得到求解。软件本生能在www.lindo.org上下载得到。
        用Lingo来解题需要一定的输入格式,以便Lingo能够来处理。每个模型都定义在以“MODEL:”开始以“END”结束之间。集合定义在“SETS”和“ENDSETS”之间,数据定义在“DATA”和“ENDDATA”之间。然后便是模型的约束条件,可以写N组方程。然后用SOLVE来迭代解题。在Lingo中用!作为注释的开始每个语句结束用分号,函数以@开始,如@SUM。Lingo是大小写不敏感的。Lingo附带的EXAMPLES和HELPS是很好的学习资料。以下就举个最简单的例子。
     MODEL:
 ! 生产线负载平衡模型;
   ! 这个模型涉及到将任务加载到工作站而要避免产生瓶颈,希望实现负载平衡,而使工作时间最短;
 SETS:
   ! 定义任务集合;
   TASK/ A B C D E F G H I J K/: T;
   ! 定义先后配对(如. A 必须在 B之前做, B必须在 C之前做, 等等.);
   PRED( TASK, TASK)/ A,B  B,C  C,F  C,G  F,J  G,J  J,K  D,E  E,H  E,I  H,J  I,J /;
   ! 定义工作站集合;
   STATION/1..4/;
   ! 定义任务和工作站配对集合;
  TXS( TASK, STATION): X;
   ! 当任务I交给工作站K时 用X(I,K) = 1标注;
 ENDSETS
 DATA:
   ! 为任务集合的每个元素赋值,该值为任务的时间花消;
   T = 45 11  9 50 15 12 12 12 12  8  9;
 ENDDATA 
  ! 以下计算式约束了每个工作站一次只能接受一个任务;
  @FOR( TASK( I): @SUM( STATION( K): X( I, K)) = 1);
  ! 以下表达式约束了任务的执行顺序必须按照PRED集合中的定义;
  @FOR( PRED( I, J):@SUM( STATION( K):K * X( J, K) - K * X( I, K)) >= 0);
  ! 定义变量CYCTIME使得每个工作站的工作时间小于这个数值 
  @FOR( STATION( K):@SUM( TXS( I, K): T( I) * X( I, K)) <= CYCTIME);
  ! 约束CYCTIME为最小,solve时会以迭代的方法求得满足这个要求得最优解;
  MIN = CYCTIME;
  ! 最后一个等式约束了X值必须是整数。
  @FOR( TXS: @BIN( X));
END
    以上便是这个模型的表达,将其输入Lingo然后Solve后便能得到他的最优解。
   
注(关于这个软件及其更详细的求解最优化模型的方法可以参考同济教育出版社的《最优化模型及实验》)

数学优化工具Gurobi.Optimization.Gurobi.v5.1.0

  • 2013年06月02日 01:45
  • 9.57MB
  • 下载

SwfUpload 基本配置

SWFUpload Demos - Simple Demo var swfu; window.onload = function() { var setti...
  • jiang_bing
  • jiang_bing
  • 2011年12月01日 21:34
  • 2

浅谈路径规划算法

原文地址:http://theory.stanford.edu/~amitp/GameProgramming/ 1 导言 1.1 算法 1.2 Dijkstra算法与最佳优先搜索 1....
  • chauncygu
  • chauncygu
  • 2017年09月19日 16:32
  • 4302

小点滴——Lingo的非线性规划、最优化求解

Lingo软件——Linear Interactive and General Optimizer 交互式的线性和通用优化求解器。 总之,求解线性规划、非线性规划、线性和非线性方程,非常好用。 比...
  • BHathaway
  • BHathaway
  • 2015年08月01日 18:18
  • 2430

最优化问题简介

题目:最优化问题简介         一年多学习以来,无论是前面学习压缩感知,还是这半年学习机器学习,一直离不开最优化,比如压缩感知的基追踪类重构算法,核心问题就是一个优化问题,而机器学习中的很多算...
  • jbb0523
  • jbb0523
  • 2016年01月27日 20:39
  • 4833

(三)非线性规划

第三章——非线性规划非线性规划背景非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围注意事项 确定供选方案:首先要收集同问题有关的资料和数据,在全面熟悉问题的基础上,确认什么是...
  • VFDGDFFDFDGFD
  • VFDGDFFDFDGFD
  • 2017年08月07日 17:33
  • 326

Matlab求解微分方程数值解

有三种方法求解微分方程数值解: 欧拉法 改进欧拉法 龙格库塔法 接下来用一个练习来对比这三种求解方法。问题描述:用改进的Euler方法、MATLAB的ode45命令分别求下列初值问题的数值解,并画图与...
  • karry_zzj
  • karry_zzj
  • 2017年08月01日 11:52
  • 1059

Lingo超经典案例大全

Lingo超经典案例大全 LINGO是Linear Interactive and General Optimizer的缩写,即“交互式的线性和通用优化求解器”。Lingo超强的优化计算能力...
  • u012717411
  • u012717411
  • 2014年09月03日 17:31
  • 1402

用lingo解决“指派问题”

用lingo解决“指派问题”的代码,如下: ------
  • sanqima
  • sanqima
  • 2014年04月08日 15:24
  • 2907

几个R语言画图小程序分享

三维图 x=seq(-5,5,by=0.1) #步长很小时画的图就是黑色的了,因为都是画格子的黑线的颜色 y=x x1=dnorm(x,0,1) #dnorm()为正态分布密度函数 z=outer(...
  • lusongno1
  • lusongno1
  • 2017年08月16日 14:02
  • 298
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:一款优秀的求解最优化模型的数学工具——Lingo
举报原因:
原因补充:

(最多只允许输入30个字)