1. 程式人生 > >數學建模之目標規劃問題(總)

數學建模之目標規劃問題(總)

數學建模中的目標規劃問題

對數學建模中的目標規劃問題作梳理。

一、目標規劃的分類

  1. 約束規劃與無約束規劃(既無不等式約束又無等式約束)
  2. 線性規劃(目標函式與約束函式均為線性函式)與非線性規劃
  3. 整數規劃(包括0-1規劃)
  4. 多目標規劃(目標函式形如f(x)=[f1(x),f2(x),…,fn(x)]

相關術語: 
可行解:滿足約束條件的一組決策變數的取值 
可行域:全部可行解的集合 
最優解:可行域中使目標函式達到最優值的可行解

二、線性規劃(Linear Programming,LP)

MATLAB中的標準形式:

 
minf(x) 
s.t.A*x≤b 
Aeq*x=beq 
lb≤x≤ub 
呼叫格式:[x,fval] = linprog(f,A,b,Aeq,beq,lb,ub)

線性規劃詳解見:https://blog.csdn.net/jianwei2016/article/details/76140388?utm_source=debugrun&utm_medium=referral

三、整數規劃(Integer Linear Programming,ILP)

MATLAB中的標準形式: 
minf(x) 
s.t.A*x≤b 
Aeq*x=beq 
lb≤x≤ub 
x1,x2,…,xn部分或全部取整數 
呼叫格式:

[x,fval] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub)

 

四、無約束非線性規劃

求解方法:

  • 目標函式連續可微:最速下降法、牛頓法、擬牛頓法、共軛梯度法等

  • 目標函式不連續不可微:遺傳演算法、粒子群演算法等

問題型別:

  1. 一元函式在給定區間上的最小值

    模型:minf(x)s.t.x1<x<x2 
    呼叫格式:[x,fval] = fminbnd(f,x1,x2)

  2. 無約束的多元函式的最小值

    模型:minf(x) 
    呼叫格式:[x,fval] = fminunc(f,x0)

  3. 無導數法求解無約束的多元函式的最小值 
    模型:minf(x) 
    呼叫格式:[x,fval] = fminsearch(f,x0)

  4. 遺傳演算法求解無約束規劃問題的最小值 
    模型:minf(x)s.t.lb≤x≤ub 
    呼叫格式:[x,fval] = ga(fitnessfcn,nvars,[],[],[],[],lb,ub)

  5. 粒子群演算法求解無約束規劃問題的最小值 
    模型:minf(x)s.t.lb≤x≤ub 
    呼叫格式:[x,fval] = particleswarm(f,nvars,lb,ub)

  6. 模式搜尋演算法求解無約束規劃問題的最小值

    模型:minf(x)s.t.lb≤x≤ub 
    呼叫格式:[x,fval] = patternsearch(f,x0,[],[],[],[],lb,ub)

非線性規劃

  1. 二次規劃 
    模型: 
    minZ=12xTHx+cTx 
    s.t.A⋅x≤b 
    Aeq⋅x=beq 
    lb≤x≤ub 
    呼叫格式:[x,fval] = quadprog(H,f,A,b,Aeq,beq,lb,ub)
  2. 約束的多元函式的最小值 
    minf(x) 
    s.t.A⋅x≤b 
    Aeq⋅x=beq 
    G(x)≤0 
    Geq(x)=0 
    lb≤x≤ub 
    呼叫格式:[x,fval] = fmincon(f,x0,A,b,Aeq,beq,lb,ub,nonlcon)
  3. 遺傳演算法求解約束規劃問題的最小值 
    minf(x) 
    s.t.A⋅x≤b 
    Aeq⋅x=beq 
    G(x)≤0 
    Geq(x)=0 
    lb≤x≤ub 
    呼叫格式:[x,fval] = ga(fitnessfcn,nvars,A,b,Aeq,beq,LB,UB,nonlcon)
  4. 模式搜尋演算法求解約束規劃問題的最小值 
    minf(x) 
    s.t.A⋅x≤b 
    Aeq⋅x=beq 
    G(x)≤0 
    Geq(x)=0 
    lb≤x≤ub 
    呼叫格式:[x,fval] = patternsearch(f,x0,A,b,Aeq,beq,lb,ub,nonlcon)

多目標規劃

多目標規劃問題的解之間通常不能簡單地比較好壞,這樣的解稱為非支配解Pareto最優解 
遺傳演算法求解多目標規劃問題: 
gamultiobj運用基於NSGA-II方法的多目標遺傳演算法 
模型: 
minF(x) 
s.t.A⋅x≤b 
Aeq⋅x=beq(LinearConstraints) 
G(x)≤0 
Geq(x)=0(NonlinearConstraints) 
lb≤x≤ub(BoundConstraints) 
呼叫格式:[x,fval] = gamultionj(fitnessfcn,nvars,A,b,Aeq,beq,lb,ub,nonlcon,options) 

 

參考連結:
[1]https://blog.csdn.net/suntengnb/article/details/81699943