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.
Interactive 3D Visualization
See UOBYQA in action on 3D optimization surfaces:
Loading 3D visualization...
Requires WebGL support
Instructions: Choose a test function and algorithm, then click Start to watch the step-by-step optimization process.
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: 22 |
š Paper |
| Reference Package |
PDO (Python Derivative-ree Optimization) Wraps Powell's original ortran implementation Authoritative implementation with numerical robustness Package: pdfo |
š¦ PDO Source |
| HumpDay Python Implementation |
Humpday Integration Calls PDO's UOBYQA implementation Standardized interface for optimization contests ile: humpday/optimizers/prima_algorithms.py |
Implementation |
| 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: PDO package (wraps Powell's ortran) 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 ~5 dimensions
- unction evaluations: Typically requires O(n²) evaluations for n dimensions
- Convergence: ast local convergence on quadratic-like functions
- Robustness: Handles discontinuous derivatives but sensitive to high noise
ā Validation Results: PERECT MATCH vs PDO Reference
JavaScript implementation successfully matches PDO reference implementation:
- 2D Sphere unction: Both PDO and JavaScript achieve
f = . - 3D Sphere unction: Both PDO and JavaScript achieve
f = . - Efficiency: JavaScript uses fewer function evaluations (2 vs 7, 7 vs 2)
- Success Rate: 2/3 perfect matches on test suite
Test performed: 22-5-2 using PDO vs JavaScript PRIMA_UOBYQA implementation