人工神经网络算法

待做。

规划问题包括线性规划整数规划非线性规划三大类。

线性规划

线性规划的目标函数可以是求最大值,也可以是求最小值;约束条件的不等号可以是小于号,也可以是大于号。为了避免形式多样性带来的不变,Matlab 中规定线性规划的标准形式为

\[ \mathop{\min}\limits_{\mathbf{x}} \mathbf{c}^\text{T}\mathbf{x} \quad \text{s.t.}\quad \mathbf{Ax}\le\mathbf{b}, \] 其中,\(\mathbf{c}\)\(\mathbf{x}\)\(n\) 维列向量;\(\mathbf{b}\)\(m\) 维列向量;\(\mathbf{A}\)\(m\times n\) 矩阵。

对于线性规划:

\[\mathop{\max}\limits_{\mathbf{x}} \mathbf{c}^\text{T}\mathbf{x} \quad \text{s.t.}\quad \mathbf{Ax}\ge\mathbf{b},\]

Matlab 标准形式为

\[\mathop{\min}\limits_{\mathbf{x}}-\mathbf{c}^\text{T}\mathbf{x}\quad\text{s.t.}\quad-\mathbf{Ax}\le-\mathbf{b}.\]

Matlab 中线性规划的基本函数形式为linprog(c,A,b),返回值是向量 \(\mathbf{x}\) 的值。对于寻找如下形式的最小值问题:

\[\mathop{\min}\limits_{\mathbf{x}}f^\text{T}\mathbf{x}\quad\text{s.t.}\begin{cases}\mathbf{A}\cdot\mathbf{x}\le\mathbf{b}\\\mathbf{Aeq}\cdot\mathbf{x}=\mathbf{beq}\\\mathbf{lb}\le\mathbf{x}\le\mathbf{ub}\end{cases},\]

可通过

1
x = linprog(f,A,b,Aeq,beq,lb,ub,options)

求解。

非线性规划

非线性规划问题是目标函数或约束函数中包含非线性函数。Matlab 中非线性规划的基本函数形式为fmincon(fun,x0,A,b),返回值是向量 \(\mathbf{x}\) 的值。对于寻找如下形式的最小值问题:

\[ \mathop{\min}\limits_{\mathbf{x}}f(\mathbf{x})\quad\text{s.t.}\begin{cases}c(\mathbf{x})\le\mathbf{0}\\ceq(\mathbf{x})=\mathbf{0}\\\mathbf{A}\cdot\mathbf{x}\le\mathbf{b}\\\mathbf{Aeq}\cdot\mathbf{x}=\mathbf{beq}\\\mathbf{lb}\le\mathbf{x}\le\mathbf{ub}\end{cases}, \] 可通过

1
x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)

求解。

整数规划