cobyqa.subsolvers.normal_byrd_omojokun#
- cobyqa.subsolvers.normal_byrd_omojokun(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}\min_{s \in \R^n} \quad \frac{1}{2} \big( \lVert \max \{ \aub s - \bub, 0 \} \rVert^2 + \lVert \aeq s - \beq \rVert^2 \big) \quad \text{s.t.} \quad \left\{ \begin{array}{l} \xl \le s \le \xu,\\ \lVert s \rVert \le \Delta, \end{array} \right.\end{split}\]using a variation of the truncated conjugate gradient method.
- Parameters:
- aubnumpy.ndarray, shape (m_linear_ub, n)
Matrix \(\aub\) as shown above.
- bubnumpy.ndarray, shape (m_linear_ub,)
Vector \(\bub\) as shown above.
- aeqnumpy.ndarray, shape (m_linear_eq, n)
Matrix \(\aeq\) as shown above.
- beqnumpy.ndarray, shape (m_linear_eq,)
Vector \(\beq\) as shown above.
- xlnumpy.ndarray, shape (n,)
Lower bounds \(\xl\) as shown above.
- xunumpy.ndarray, shape (n,)
Upper bounds \(\xu\) 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 \(s\).
- 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
This function implements Algorithm 6.4 of [1]. It is assumed that the origin is feasible with respect to the bound constraints and that delta is finite and positive.
References
[1]T. M. Ragonneau. Model-Based Derivative-Free Optimization Methods and Software. PhD thesis, The Hong Kong Polytechnic University, Hong Kong, China, 2022.