UOBYQA is a trust-region method for derivative-free optimization that builds quadratic models using function values only. Developed by M.J.D. Powell, it's one of the foundational algorithms in the Prima library. UOBYQA is particularly effective for smooth, unimodal functions and forms the basis for more advanced methods like NEWUOA and BOBYQA.
Implementation Details
| Component | Details | Links |
|---|---|---|
| Original Algorithm |
M.J.D. Powell Trust-region method using quadratic interpolation models Derivative-free optimization for unconstrained problems Published: 2002 |
š Paper |
| Reference Package |
PDFO (Python Derivative-Free Optimization) Wraps Powell's original Fortran implementation Authoritative implementation with numerical robustness Package: pdfo |
š¦ PDFO š Source |
| Humpday Python Wrapper |
Humpday Integration Calls PDFO's UOBYQA implementation Standardized interface for optimization contests File: humpday/optimizers/primacube.py |
š Wrapper Code |
| Humpday JavaScript Port |
Browser Implementation Pure JavaScript port maintaining core trust-region logic Simplified quadratic model building for web performance Class: PRIMA_UOBYQA |
š JS Port |
| Dependencies |
Reference: PDFO package (wraps Powell's Fortran) Humpday Python: pdfo, numpy Humpday JS: None (standalone port) |
š¦ PyPI |
š Performance Characteristics
- Best for: Smooth, unimodal functions with moderate noise tolerance
- Dimensions: Works well up to ~50 dimensions
- Function evaluations: Typically requires O(n²) evaluations for n dimensions
- Convergence: Fast local convergence on quadratic-like functions
- Robustness: Handles discontinuous derivatives but sensitive to high noise