UOBYQA (PDO)

Unconstrained Optimization BY Quadratic Approimation

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