ProjectedNLP
(class from pyomo.contrib.pynumero.interfaces.nlp_projections
)
- class pyomo.contrib.pynumero.interfaces.nlp_projections.ProjectedNLP(original_nlp, primals_ordering)[source]
Bases:
_BaseNLPDelegator
- __init__(original_nlp, primals_ordering)[source]
This class takes an NLP that depends on a set of primals (original space) and converts it to an NLP that depends on a reordered set of primals (projected space).
This will impact all the returned items associated with primal variables. E.g., the gradient will be in the new primals ordering instead of the original primals ordering.
Note also that this can include additional primal variables not in the original NLP, or can exclude primal variables that were in the original NLP.
- Parameters:
original_nlp (NLP-like) – The original NLP object that implements the NLP interface
primals_ordering (list) – List of strings indicating the desired primal variable ordering for this NLP. The list can contain new variables that are not in the original NLP, thereby expanding the space of the primal variables.
Methods
__init__
(original_nlp, primals_ordering)This class takes an NLP that depends on a set of primals (original space) and converts it to an NLP that depends on a reordered set of primals (projected space).
Override this to provide string names for the constraints
Returns vector of lower bounds for the constraints
Returns vector of upper bounds for the constraints
create_new_vector
(vector_type)Creates a vector of the appropriate length and structure as requested
evaluate_constraints
([out])Returns the values for the constraints evaluated at the values given for the primal variales in set_primals
evaluate_grad_objective
([out])Returns gradient of the objective function evaluated at the values given for the primal variables in set_primals
evaluate_hessian_lag
([out])Return the Hessian of the Lagrangian function evaluated at the values given for the primal variables in set_primals and the dual variables in set_duals
evaluate_jacobian
([out])Returns the Jacobian of the constraints evaluated at the values given for the primal variables in set_primals
Returns value of objective function evaluated at the values given for the primal variables in set_primals
Return the desired scaling factors to use for the for the constraints.
Get a copy of the values of the dual variables as provided in set_duals.
Get the value of the objective function factor as set by set_obj_factor.
Return the desired scaling factor to use for the for the objective function.
Get a copy of the values of the primal variables as provided in set_primals.
Return the desired scaling factors to use for the for the primals.
Returns vector with initial values for the dual variables of the constraints
Returns vector with initial values for the primal variables
Returns number of constraints
Returns number of primal variables
Returns number of nonzero values in hessian of the lagrangian function
Returns number of nonzero values in jacobian of equality constraints
Returns vector of lower bounds for the primal variables
Override this to provide string names for the primal variables
Returns vector of upper bounds for the primal variables
report_solver_status
(status_code, status_message)Report the solver status to NLP class using the values for the primals and duals defined in the set methods
set_duals
(duals)Set the value of the dual variables for the constraints to be used in calls to the evaluation methods (hessian_lag)
set_obj_factor
(obj_factor)Set the value of the objective function factor to be used in calls to the evaluation of the hessian of the lagrangian (evaluate_hessian_lag)
set_primals
(primals)Set the value of the primal variables to be used in calls to the evaluation methods
Member Documentation
- constraint_names()
Override this to provide string names for the constraints
- constraints_lb()
Returns vector of lower bounds for the constraints
- Return type:
vector-like
- constraints_ub()
Returns vector of upper bounds for the constraints
- Return type:
vector-like
- create_new_vector(vector_type)[source]
Creates a vector of the appropriate length and structure as requested
- Parameters:
vector_type ({'primals', 'constraints', 'duals'}) – String identifying the appropriate vector to create.
- Return type:
vector-like
- evaluate_constraints(out=None)
Returns the values for the constraints evaluated at the values given for the primal variales in set_primals
- Parameters:
out (array_like, optional) – Output array. Its type is preserved and it must be of the right shape to hold the output.
- Return type:
vector_like
- evaluate_grad_objective(out=None)[source]
Returns gradient of the objective function evaluated at the values given for the primal variables in set_primals
- Parameters:
out (vector_like, optional) – Output vector. Its type is preserved and it must be of the right shape to hold the output.
- Return type:
vector_like
- evaluate_hessian_lag(out=None)[source]
Return the Hessian of the Lagrangian function evaluated at the values given for the primal variables in set_primals and the dual variables in set_duals
- Parameters:
out (matrix_like (e.g., coo_matrix), optional) – Output matrix with the structure of the hessian already defined. Optional
- Return type:
matrix_like
- evaluate_jacobian(out=None)[source]
Returns the Jacobian of the constraints evaluated at the values given for the primal variables in set_primals
- Parameters:
out (matrix_like (e.g., coo_matrix), optional) – Output matrix with the structure of the jacobian already defined.
- Return type:
matrix_like
- evaluate_objective()
Returns value of objective function evaluated at the values given for the primal variables in set_primals
- Return type:
- get_constraints_scaling()
Return the desired scaling factors to use for the for the constraints. None indicates no scaling. This indicates potential scaling for the model, but the evaluation methods should return unscaled values
- Return type:
array-like or None
- get_duals()
Get a copy of the values of the dual variables as provided in set_duals. These are the values that will be used in calls to the evaluation methods.
- get_obj_factor()
Get the value of the objective function factor as set by set_obj_factor. This is the value that will be used in calls to the evaluation of the hessian of the lagrangian (evaluate_hessian_lag)
- get_obj_scaling()
Return the desired scaling factor to use for the for the objective function. None indicates no scaling. This indicates potential scaling for the model, but the evaluation methods should return unscaled values
- Return type:
float or None
- get_primals()[source]
Get a copy of the values of the primal variables as provided in set_primals. These are the values that will be used in calls to the evaluation methods
- get_primals_scaling()[source]
Return the desired scaling factors to use for the for the primals. None indicates no scaling. This indicates potential scaling for the model, but the evaluation methods should return unscaled values
- Return type:
array-like or None
- init_duals()
Returns vector with initial values for the dual variables of the constraints
- n_constraints()
Returns number of constraints
- primals_lb()[source]
Returns vector of lower bounds for the primal variables
- Return type:
vector-like
- primals_ub()[source]
Returns vector of upper bounds for the primal variables
- Return type:
vector-like
- report_solver_status(status_code, status_message)[source]
Report the solver status to NLP class using the values for the primals and duals defined in the set methods
- set_duals(duals)
Set the value of the dual variables for the constraints to be used in calls to the evaluation methods (hessian_lag)
- Parameters:
duals (vector_like) – Vector with the values of dual variables for the equality constraints