cobyqa.subproblems.bound_constrained_normal_step#
- subproblems.bound_constrained_normal_step(aub, bub, aeq, beq, xl, xu, delta, debug, **kwargs)[source]#
Minimize approximately a linear constraint violation subject to bound constraints in a trust region.
This function solves approximately
\[\begin{split}\begin{aligned} \min_{d \in \R^n} & \quad \frac{1}{2} \big(\norm{[A_{\text{ub}}d - b_{\text{ub}}]_+}^2 + \norm{A_{\text{eq}}d - b_{\text{eq}}}^2\big)\\ \text{s.t.} & \quad l \le d \le u,\\ & \quad \norm{d} \le \Delta, \end{aligned}\end{split}\]using a variation of the truncated conjugate gradient method.
- Parameters:
- aubnumpy.ndarray, shape (m_linear_ub, n)
Matrix \(A_{\text{ub}}\) as shown above.
- bubnumpy.ndarray, shape (m_linear_ub,)
Vector \(b_{\text{ub}}\) as shown above.
- aeqnumpy.ndarray, shape (m_linear_eq, n)
Matrix \(A_{\text{eq}}\) as shown above.
- beqnumpy.ndarray, shape (m_linear_eq,)
Vector \(b_{\text{eq}}\) as shown above.
- xlnumpy.ndarray, shape (n,)
Lower bounds \(l\) as shown above.
- xunumpy.ndarray, shape (n,)
Upper bounds \(u\) as shown above.
- deltafloat
Trust-region radius \(\Delta\) as shown above.
- debugbool
Whether to make debugging tests during the execution.
- Returns:
- numpy.ndarray, shape (n,)
Approximate solution \(d\).
- Other Parameters:
- improvebool, optional
If
True
, a solution generated by the truncated conjugate gradient method that is on the boundary of the trust region is improved by moving around the trust-region boundary on the two-dimensional space spanned by the solution and the gradient of the quadratic function at the solution (default is True).
Notes
It is assumed that the origin is feasible with respect to the bound constraints xl and xu, and that delta is finite and positive.