Lingo —— 求解规划问题

本文介绍了使用Lingo求解各种规划问题,包括线性规划、非线性规划、整数规划、动态规划和目标规划。详细阐述了各类规划的定义、举例和特点,并指出Lingo无法直接解决目标规划,但可以通过逐级求解线性规划的方法来求解。
摘要由CSDN通过智能技术生成

线性规划

(1)定义:线性规划问题是在一组线性约束条件的限制下,求一线性目标函数的最优解的问题。

(2)举例:

model:
    min=@abs(x1)+2*@abs(x2)+3*@abs(x3)+4*@abs(x4);! 目标函数;

    x1-x2-x3+x4=0;
    x1-x2+x3-3*x4=1;
    x1-x2-2*x3+3*x4=-1/2;! 约束条件;
end

非线性规划

(1)定义:非线性规划问题是在一组非线性约束条件的限制下,求一非线性目标函数的最优解的问题。

(2)举例:

model:
    min=(x1)^2+(x2)^2+8;! 目标函数;
    x1^2-x2>=0;
    -x1-x2^2+2=0;
    x1>=0;
    x2>=0;! 约束条件;
end

整数规划

(1)定义

规划中的变量(部分或全部)限制为整数时,称为整数规划。若在线性规划模型中,变量限制为整数,则称为整数线性规划。

(2)分类

如不加特殊说明,一般指整数线性规划。整数线性规划模型可划分为:

  1. 纯整数线性规划:所有变量限制为整数
  2. 混合整数线性规划:部分变量限制为整数

(3)举例

model:
    sets:
        row/1..4/:b;!四个不等式;
        col/1..5/:c1,c2,x;!五个未知数x;
        link(row,col):a;!a是x对应的系数;
    endsets
    data:
        c1=1,1,3,4,2;
        c2=-8,-2,-3,-1,-2;
        a=1 1 1 1 1
        1 2 2 1 6
        2 1 6 0 0
        0 0 1 1 5;
        b=400,800,200,200;
    enddata
max=@sum(col:c1*x^2+c2*x);! 目标函数;

@for(row(i):@sum(col(j):a(i,j)*x(j))<b(i));
@for(col:@gin(x));
@for(col:@bnd(0,x,99));! 约束条件;

end

动态规划

(1)定义:

动态规划主要用于求解以时间划分阶段的动态过程的优化问题。动态规划是求解某一类问题的一种方法,是考察问题的一种途径,而不是一种特殊的算法(如线性规划是一种算法),因此,它不像线性规划一样有一个标准的数学表达式和明确定义的一组规则,而必须针对具体情况具体分析。

(2)举例:

model:
    sets:
        vertex/A,B1,B2,C1,C2,C3,C4,D1,D2,D3,E1,E2,E3,F1,F2,G/:L;
        road(vertex,vertex)/A B1,A B2,B1 C1,B1 C2,B1 c3,B2 C2,B2 C3,B2 C4,
        C1 D1,C1 D2,C2 D1,C2 D2,C3 D2,C3 D3,C4 D2,C4 D3,
        D1 E1,D1 E2,D2 E2,D2 E3,D3 E2,D3 E3,
        E1 F1,E1 F2,E2 F1,E2 F2,E3 F1,E3 F2,F1 G,F2 G/:D;
    endsets
    data:
        D=5 3 1 3 6 8 7 6
        6 8 3 5 3 3 8 4
        2 2 1 2 3 3
        3 5 5 2 6 6 4 3;
        ! D是每条路的长度;
        L=0,,,,,,,,,,,,,,,;
        ! L是总路径;
    enddata
@for(vertex(i)|i#GT#1:L(i)=@min(road(j,i):L(j)+D(j,i)));
end

目标规划

(1)引言

  1. 线性规划的局限性:只能解决一组线性约束条件下,某一目标只能是一个目标的最大值或最小值的问题
  2. 实际决策中,衡量方案优劣要考虑多个目标

(2)定义

目标规划是一种用来进行含有单目标和多目标的决策分析的数学规划方法。它是在线性规划基础上发展起来的算法。

(3)相关概念

  1. 正、负偏差变量:

    设d为决策变量的函数,正偏差变量 d+=maxdd0

  • 62
    点赞
  • 429
    收藏
    觉得还不错? 一键收藏
  • 8
    评论
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值