数学建模——规划模型

一:线性规划问题

  1. 定义:在一组线性规划约束条件的限制下,求一线性目标函数最大或最小值的问题。
  2. 线性规划标准式:

    目标函数:f(x)=min c^{T}x

    约束条件:{Ax<=b

    Aeq*x=beq

    lb<=x<=ub}

    c和x为n维列向量,A,Aeq为系数矩阵,b,beq为维数的列向量。

  3. matlab调用linprog函数可求解线性规划问题
    c=[2;3;-5];
    a=[-2,5,-1;1,3,1]; b=[-10;12];
    aeq=[1,1,1];
    beq=7;
    x=linprog(-c,a,b,aeq,beq,zeros(3,1))
    [x,y]=linprog(-c,a,b,aeq,beq,zeros(3,1))
    

其中x为该线性规划问题的解,y为目标函数的值。

linprog中,若无aeq和beq,则该位置以[ ]代替。

线性规划常见问题:运输问题、工作指派问题、灵敏度分析

二:非线性规划

定义:目标函数或约束条件中包含非线性函数。

非线性规划标准式与线性规划标准式类似。

matlab中的命令:X=FMINCON(FUN,X0,A,B,Aeq,Beq,LB,UB,NONLCON,OPTIONS)

它的返回值是向量 x ,其中 FUN 是用 M 文件定义的函数 f (x);X0 是 x 的初始值; A,B,Aeq,Beq 定义了线性约束 A* X ≤ B, Aeq * X = Beq ,如果没有线性约束,则 A=[],B=[],Aeq=[],Beq=[];LB 和 UB 是变量 x 的下界和上界,如果上界和下界没有约 束,则 LB=[],UB=[],如果 x 无下界,则 LB 的各分量都为-inf,如果 x 无上界,则 UB 的各分量都为 inf;NONLCON 是用 M 文件定义的非线性向量函数C(x),Ceq(x) ;OPTIONS 定义了优化参数,可以使用 Matlab 缺省的参数设置。

matlab求解非线性规划一般步骤:

  1. 创建目标函数文件,编写目标函数代码。
  2. 创建约束条件文件,编写约束条件代码(不等式条件存放到同一变量中,等式条件存放到同一变量中)
  3. 编写主程序文件,调用fmincon函数。

三:整数规划

定义:规划中的变量(部分或全部)限制为整数。

整数规划特点:

  1. 原线性规划有最优解,当自变量限制为整数后:(1)原线性规划最优解全是整数,则整数规划与线性规划最优解一致。(2)整数规划无可行解。(3)有可行解,但最优解变差。
  2. 整数规划最优解不能按照实数最优解简单取整而获得。

整数规划求解方法:

分支定界法:设最大化整数规划问题为A,相对应的线性规划问题为B,从解问题B开始,若最优解不符合A的整数条件,则B的最优目标函数必是A的最优目标函数z*的上界,A的任意可行解的目标函数值将是z*的一个下界,分支定界则是将B的可行域分成子区域,逐步减小上界和增大下界,最终求得A的目标函数值z*。

你可能感兴趣的:(数学建模,matlab)