非线性规划

概念

在一组等式或不等式的约束下,求一个函数的最大值(或最小值)问题,其中至少有一个非线性函数,这类问题称之为非线性规划问题。可概括为一般形式

\[\begin{aligned} & \min f(x) \\ \text { s.t. } & h_{j}(x) \leq 0, \quad j=1, \cdots, q \\ & g_{i}(x)=0, \quad i=1, \cdots, p \end{aligned} \]

其中 \(x=\left[\begin{array}{lll}x_{1} & \cdots & x_{n}\end{array}\right]^{T}\) 称为模型 \((\mathrm{NP})\) 的决策变量, \(f\) 称为目标函数, \(g_{i}(i=1, \cdots, p)\)\(h_{j}(j=1, \cdots, q)\) 称为约束函数。另外, \(g_{i}(x)=0 \quad(i=1, \cdots, p)\) 称为等式约束, \(h \cdot(x) \leq 0 \quad(j=1, \cdots, a)\) 称为不等式的约束。

线性规划的最优解存在,其最优解只能在其可行域的边界上达到。

非线性规划的最优解(如果最优解存在)则可能在其可行域的任意一点达到。

Matlab解法

Matlab 中非线性规划的数字模型下形式

\[\begin{aligned} &\min f(x) \\ &\left\{\begin{array}{l} A x \leq B \\ A e q \cdot x=B e q \\ C(x) \leq 0 \\ \operatorname{Ceq}(x)=0 \end{array}\right. \end{aligned} \]

其中 \(f(x)\) 是标量函数, \(A, B, A e q, B e q\) 是相应维数的矩阵和向量, \(C(x), C e q(x)\) 是非 线性向量函数。

Matlab 中的命令是

\(X= FMINCON (FUN, X0, A, B, Aeq, Beq, LB, UB, NONLCON, OPTIONS)\) 它的返回值是向量 \(x\), 其中 FUN 是用 \(\mathrm{M}\) 文件定义的函数 $f(x) $$;

$ \mathrm{X} 0$ 是 \(x\) 的初始值;
\(\mathrm{A}, \mathrm{B}, \mathrm{Aeq}, \mathrm{Beq}\) 定义了线性约束 \(A^{*} X \leq B, A e q^{*} X=B e q\),如果没有线性约束, 则$\mathrm{A}=[], \mathrm{B}=[], \mathrm{Aeq}=[], \mathrm{Beq}=[] $$; \mathrm{LB}$ 和 \(\mathrm{UB}\) 是变量 \(x\) 的下界和上界,如果上界和下界没有约束, 则 \(\mathrm{LB}=[], \mathrm{UB}=[]\), 如果 \(x\) 无下界, 则 \(\mathrm{LB}\) 的各分量都为 \(-\mathrm{inf}\), 如果 \(x\) 无上界, 则 UB 的各分量都为 inf;

NONLCON 是用 \(M\) 文件定义的非线性向量函数 \(C(x), \operatorname{Ceq}(x) ; 0 \mathrm{PTIONS}\) 定义了优化参数, 可以使用 Matlab 缺省的参数设置。

例子

\[\begin{aligned} &\min f(x)=x_{1}^{2}+x_{2}^{2}+x_{3}^{2}+8 \\ &\text { s.t. } \quad x_{1}^{2}-x_{2}+x_{3}^{2} \geq 0 \\ &x_{1}+x_{2}^{2}+x_{3}^{3} \leq 20 \\ &-x_{1}-x_{2}^{2}+2=0 \\ &x_{2}+2 x_{3}^{2}=3 \\ &x_{1}, x_{2}, x_{3} \geq 0 \\ \end{aligned} \]

image-20210811111506744

分析

由于线性规划的目标函数为线性函数,可行域为凸集,因而求出的最优解就是整 个可行域上的全局最优解。

非线性规划却不然,有时求出的某个解虽是一部分可行域上 的极值点,但却并不一定是整个可行域上的全局最优解

对于非线性规划模型(NP), 可以采用迭代方法求它的最优解。迭代方法的基本思 想是:从一个选定的初始点 \(x^{0} \in R^{n}\) 出发, 按照某一特定的迭代规则产生一个点列 \(\left\{x^{k}\right\}\), 使得当 \(\left\{x^{k}\right\}\) 是有穷点列时, 其最后一个点是(NP)的最优解;当 \(\left\{x^{k}\right\}\) 是无穷点 列时,它有极限点,并且其极限点是(NP)的最优解。
\(x^{k} \in R^{n}\) 是某迭代方法的第 \(k\) 轮迭代点, \(x^{k+1} \in R^{n}\) 是第 \(k+1\) 轮迭代点, 记

\[x^{k+1}=x^{k}+t_{k} p^{k} \]

这里 \(t_{k} \in R^{1}, p^{k} \in R^{n},\left\|p^{k}\right\|=1\), 并且 \(p^{k}\) 的方向是从点 \(x^{k}\) 向着点 \(x^{k+1}\) 的方向。式 (1) 就是求解非线性规划模型(NP)的基本迭代格式。

posted @ 2021-09-19 13:18  ddddd1234654732  阅读(304)  评论(0)    收藏  举报
Live2D