nlp
The pyomo.contrib.pynumero.interfaces.nlp module includes abstract
classes to represent nonlinear programming problems. There are two
classes that provide different representations for the NLP.
The first interface (NLP) presents the NLP in the following form
(where all equality and inequality constraints are combined)
\[\begin{split}\min\ & f(x) \\
s.t.\ & g_L <= g(x) <= g_U \\
& x_L <= x <= x_U\end{split}\]
where:
- \(x \in R^{n_x}\) are the primal variables,
- \(x_L \in R^{n_x}\) are the lower bounds of the primal variables,
- \(x_U \in R^{n_x}\) are the upper bounds of the primal variables,
- \(g: R^{n_x} \rightarrow R^{n_c}\) are constraints (equality and inequality)
The second interface (ExtendedNLP) extends the definition above and
presents the NLP in the following form where the equality and
inequality constraints are separated.
\[\begin{split}\min\ & f(x) \\
s.t.\ & h(x) = 0 \\
& q_L <= q(x) <= q_U \\
& x_L <= x <= x_U\end{split}\]
where:
- \(x \in R^{n_x}\) are the primal variables,
- \(x_L \in R^{n_x}\) are the lower bounds of the primal variables,
- \(x_U \in R^{n_x}\) are the upper bounds of the primal variables,
- \(h: R^{n_x} \rightarrow R^{n_eq}\) are the equality constraints
- \(q: R^{n_x} \rightarrow R^{n_ineq}\) are the inequality constraints
Note: In the case of the ExtendedNLP, it is generally assumed that
both the NLP and the ExtendedNLP interfaces are supported and
consistent (ExtendedNLP inherits from NLP). For example, a user should
be able to call set_duals or set_duals_eq and set_duals_ineq, or
mix-and-match between evaluate_jacobian or evaluate_jacobian_eq and
evaluate_jacobian_ineq.
Contents
Classes
ExtendedNLP ()
|
This interface extends the NLP interface to support a presentation of the problem that separates equality and inequality constraints |
NLP ()
|
|