自然语言处理
pyomo.contrib.pynumero.interfaces.nlp 模块包含了表示非线性规划问题的抽象类。有两个类为NLP提供了不同的表示方式。
第一个接口(NLP)以以下形式呈现NLP (其中所有等式和不等式约束都结合在一起)
\[\begin{split}\min\ & f(x) \\
s.t.\ & g_L <= g(x) <= g_U \\
& x_L <= x <= x_U\end{split}\]
其中: - \(x \in R^{n_x}\) 是原始变量, - \(x_L \in R^{n_x}\) 是原始变量的下界, - \(x_U \in R^{n_x}\) 是原始变量的上界, - \(g: R^{n_x} \rightarrow R^{n_c}\) 是约束条件(等式和不等式)
第二个接口(ExtendedNLP)扩展了上述定义,并以以下形式呈现NLP,其中等式和不等式约束被分开。
\[\begin{split}\min\ & f(x) \\
s.t.\ & h(x) = 0 \\
& q_L <= q(x) <= q_U \\
& x_L <= x <= x_U\end{split}\]
其中: - \(x \in R^{n_x}\) 是原始变量, - \(x_L \in R^{n_x}\) 是原始变量的下界, - \(x_U \in R^{n_x}\) 是原始变量的上界, - \(h: R^{n_x} \rightarrow R^{n_eq}\) 是等式约束 - \(q: R^{n_x} \rightarrow R^{n_ineq}\) 是不等式约束
注意:在ExtendedNLP的情况下,通常假设NLP和ExtendedNLP接口都受支持并且一致(ExtendedNLP继承自NLP)。例如,用户应该能够调用set_duals或set_duals_eq和set_duals_ineq,或者在evaluate_jacobian或evaluate_jacobian_eq和evaluate_jacobian_ineq之间混合使用。
目录
Classes
此接口扩展了NLP接口,以支持将问题表示为分离等式和不等式约束的形式 |
|
|