CyIpoptNLP
(类来自 pyomo.contrib.pynumero.interfaces.cyipopt_interface)
- class pyomo.contrib.pynumero.interfaces.cyipopt_interface.CyIpoptNLP(nlp, intermediate_callback=None, halt_on_evaluation_error=None)[source]
-
- __init__(nlp, intermediate_callback=None, halt_on_evaluation_error=None)[source]
该类提供了一个CyIpoptProblemInterface,用于与CyIpoptSolver类一起使用,只要它提供numpy ndarrays形式的向量和scipy.sparse.coo_matrix对象形式的矩阵,就可以接受NLP。该类提供了AmplNLP或PyomoNLP对象与CyIpoptSolver之间的接口。
方法
__init__(nlp[, intermediate_callback, ...])该类提供了一个CyIpoptProblemInterface,用于与CyIpoptSolver类一起使用,只要NLP提供向量作为numpy ndarrays和矩阵作为scipy.sparse.coo_matrix对象,就可以接受它。
constraints(x)返回在x处评估的约束残差作为numpy ndarray
g_lb()返回约束的下界作为numpy ndarray
g_ub()返回约束的上界作为numpy ndarray
gradient(x)返回在x处评估的目标函数的梯度,作为numpy ndarray
hessian(x, y, obj_factor)返回在x处评估的hessian值,作为与hessianstructure方法中指定的行和列对应的非零值的numpy ndarray。
返回Hessian矩阵在坐标格式中的结构。
intermediate(alg_mod, iter_count, obj_value, ...)调用用户的中级回调
jacobian(x)返回在x处评估的雅可比矩阵的值,作为与雅可比结构中指定的行和列对应的非零值的numpy ndarray
返回雅可比矩阵在坐标格式中的结构。
objective(x)返回在x处评估的目标函数的值
返回缩放因子的值作为一个元组 (objective_scaling, x_scaling, g_scaling)。
solve(x[, lagrange, zl, zu])解决一个CyIpopt问题
x_init()返回x的初始值作为numpy ndarray
x_lb()返回x的下界作为numpy ndarray
x_ub()返回x的上界作为numpy ndarray
成员文档
- hessian(x, y, obj_factor)[source]
返回在x处评估的hessian值,作为与hessianstructure方法中指定的行和列对应的非零值的numpy ndarray。 注意:仅返回此对称矩阵的下对角线。
- hessianstructure()[source]
返回Hessian矩阵的结构 以坐标格式。即返回(rows, cols) 其中rows和cols都是numpy ndarray 对象,包含Hessian矩阵中每个非零元素的 行和列索引。 注意:仅返回此对称矩阵的下对角线部分。
- intermediate(alg_mod, iter_count, obj_value, inf_pr, inf_du, mu, d_norm, regularization_size, alpha_du, alpha_pr, ls_trials)[源代码]
调用用户的中级回调
此方法具有CyIpopt期望的调用签名。然后我们扩展这个调用签名,以向此接口类的用户提供额外的功能。额外的参数是:
用于构造此类实例的
NLP对象。 这在回调期间查询变量、约束和导数时非常有用。类实例本身。这对于调用
get_current_iterate和get_current_violations方法非常有用,这些方法查询Ipopt的内部数据结构以提供此信息。
- jacobianstructure()[source]
返回雅可比矩阵的结构 以坐标格式。即返回 (rows, cols) 其中 rows 和 cols 都是 numpy ndarray 对象,包含雅可比矩阵中每个非零元素的行和列索引。
- scaling_factors()[source]
返回缩放因子的值作为一个元组 (objective_scaling, x_scaling, g_scaling)。如果缩放因子被忽略,则返回 None
- solve(x, lagrange=None, zl=None, zu=None)
解决一个CyIpopt问题
检查在调用 cyipopt.Problem.solve 之前是否已经调用了 __init__