zoukankan      html  css  js  c++  java
  • LINGO基本操作(一)

    通常,一个优化模型由以下三部分所组成:

    (1)目标函数.一般表示出成求某个数学表达式的最大值或最小值。

    (2)决策变量.目标函数值取决于哪些变量。

    (3)约束条件.对变量附加一些条件限制(通常用等式或不等式表示)

    LINGO默认所有决策变量都非负,因而因变量非负条件可以不必输入。

    LINGO模型以语句"MODEL:"开头,以"END"结束,对于比较简单的模型,这两个语句可以省略。

    MODEL:
    !定义集合;
    SETS:
       WH/W1..W6/:AI;!基本集合:集合名称、成员、属性;
       VD/V1..V8/:DJ;
       LINKS(WH,VD):C,X;!衍生集合:集合名、初始集合、属性;
    ENDSETS
    !数据初始化;
    DATA:
       AI=60,55,51,43,41,52;
       DJ=35,37,22,32,41,32,43,38;
       C=6,2,6,7,4,2,5,9
         4,9,5,3,8,5,8,2
         5,2,1,9,7,4,3,3
         7,6,7,3,9,2,7,1
         2,3,9,5,7,2,6,5
         5,5,2,2,8,1,4,3;
    ENDDATA
    !目标函数;
    MIN=@SUM(LINKS(I,J):C(I,J)*X(I,J));
    !约束条件;
    @FOR(WH(I):@SUM(VD(J):X(I,J))<=AI(I));
    @FOR(VD(J):@SUM(WH(I):X(I,J))=DJ(J));
    END
    

      LINGO逻辑运算符:

    #EQ#  相等

    #NE# 不相等

    #GT# 大于

    #GE# 大于或等于

    #LT# 小于

    #LE# 小于或等于

    #AND# #OR# #NOT#

    关系运算符:

    <=

    >=

    算术优于逻辑、逻辑优于关系

    数学函数如 @ABS()、@SIN()等

    概率函数等

     

     @函数名(集合名|条件:表达式)

     

    model:
     sets:
      DAYS/MON..SUN/:R,X;
     endsets
    data:
      R=20 12 18 16 19 14 12;!每天所需的最少志愿数;
    enddata
    
    min = z;
    n=@size(DAYS);
    z=@sum(DAYS:X);
    @FOR(DAYS:@GIN(X));!限定变量取整;
    @FOR(DAYS(I):Z-X(@WRAP(I+1,n))-X(@WRAP(I+2,n))>=R(I));
    end
    

      1.8用LINGO实现非线性曲线拟合

    没有约束条件的规划问题适合LINGO求解

    model:
     sets:
      BAC/R1..R23/:T,Y;
     endsets
    data:
      T=0.25,0.5,0.75,1,1.5,2,2.5,3,3.5,4,4.5,5,6,7,8,9,10,11,12,13,14,15,16;
      Y=30,68,75,82,82,77,68,68,58,51,50,41,38,35,28,25,18,15,12,10,7,7,4;
    enddata
     min=@SUM(BAC:(A1*(@EXP(-A2*T)-@EXP(-A3*T))-Y)^2);
    end
  • 相关阅读:
    cookie和session详解
    MacOS Sierra10.12.4编译Android7.1.1源代码必须跳的坑
    LeetCode——4Sum &amp; 总结
    C#深拷贝
    iOS9中怎样注冊远程通知
    hdu1542 Atlantis (线段树+扫描线+离散化)
    HTML杂记
    OpenCV中图像算术操作与逻辑操作
    java集群优化——ORM框架查询优化原理
    RVM切换ruby版本号
  • 原文地址:https://www.cnblogs.com/kmxojer/p/12368934.html
Copyright © 2011-2022 走看看