TSL语言基础 > 数学与统计教程 > 优化方法

线性规划    

  • 线性规划是数学规划的一个重要分支,也是最简单、最基础的一类问题,它历史悠久,理论较成熟,方法也校完善。这里我们的模型把整数规划也包含进来。

    线性规划模型Prog_L

    例:某车间有一批长度为7.4m的同型钢管,砍用它们来做100套钢架,已知每套钢架需用长2.9m、2.1m和1.5m的钢管各一根。问如何下料方可使所用材料最省
    解:因为所需钢材总长度是固定的,所以要使用料的根数最少,也就是要使裁下来的残料最少、而残料的多少取决于裁取方法,故设为按第j种方法裁取钢管的跟数,则对各种可能的裁取方法所产生的残料:
    所裁长度/m 裁料方案 所需根数
    1 2 3 4 5 6 7 8
    2.9 2 1 1 1 0 0 0 0 100
    2.1 0 0 2 1 2 1 3 0 100
    1.5 1 3 0 1 2 3 0 4 100
    残料长度/m 0.1 0 0.3 0.9 0.2 0.8 1.1 1.4



    f := array(0.1,0,0.3,0.9,0.2,0.8,1.1,1.4);
    a := array();
    b := array();
    aeq := array((2,1,1,1,0,0,0,0),(0,0,2,1,2,1,3,0),(1,3,0,1,2,3,0,4));
    beq := array(100,100,100);
    lb := array(0,0,0,0,0,0,0,0);
    ub := array();
    x0 := array();
    options := array();
    Ozarr := array();
    Intarr := array(0,1,2,3,4,5,6,7);
    return prog_L(f,a,b,aeq,beq,lb,ub,x0,options,ozarr,Intarr);
    结果:
    array("X":
    (10.00,30.00,50.00,0.00,0.00,0.00,0.00,0.00),"Fval":16.00,"Error_M":1,"Iter":8)
    "Error_M"的各输出值的含义详见表9-2。
    表9-2          结果信息"Error_M"含义
    Error_M取值 含义
    1 函数得到收敛的解
    3 目标函数值变化小于设定精度
    4 发现局部最优值
    5 方向倒数小于精度
    0 达到迭代次数
    -1 算法终止
    -2 没有发现可行解
    -3 发散问题
    -4 无可行下降方向
    -7 不能继续求解,问题可能病态
相关