PDFO: Powell's Derivative-Free Optimization solvers

版本 2.2.0 (647.4 KB) 作者: Zaikun Zhang
Interfaces by Tom M. Ragonneau and Zaikun Zhang for using the late Professor M. J. D. Powell's derivative-free optimization solvers.
640.0 次下载
更新时间 2024/6/3
(More information is available at the homepage of PDFO: https://www.pdfo.net ; the paper describing PDFO is available at https://arxiv.org/abs/2302.13246 ; check also PRIMA at http://www.libprima.net )
PDFO (Powell's Derivative-Free Optimization solvers) is a cross-platform package providing interfaces for using the late Professor M. J. D. Powell's derivative-free optimization solvers, including UOBYQA, NEWUOA, BOBYQA, LINCOA, and COBYLA, which were originally implemented in Fortran 77.
PDFO provides a MATLAB function named pdfo. It can automatically identify the type of your problem and then call one of Powell's Fortran solvers.
The pdfo function is designed to be compatible with the fmincon function available in the Optimization Toolbox of MATLAB. You can call pdfo in the same way as calling fmincon:
x = pdfo(fun, x0)
x = pdfo(fun, x0, A, b)
x = pdfo(fun, x0, A, b, Aeq, beq)
x = pdfo(fun, x0, A, b, Aeq, beq, lb, ub)
x = pdfo(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon)
x = pdfo(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon, options)
x = pdfo(problem) % PROBLEM is a structure defining the optimization problem
[x, fval] = pdfo(___)
[x, fval, exitflag, output] = pdfo(___)
In addition, pdfo can be called in some flexible ways that are not supported by fmincon. If your problem can be solved by fmincon without specifying the derivatives, then it can probably be better solved by pdfo; if your problem cannot be solved by fmincon, then try pdfo.
Professor Powell ( https://en.wikipedia.org/wiki/Michael_J._D._Powell ) devised these derivative-free optimization solvers to tackle general nonlinear optimization problems of continuous variables with or without constraints using only function values but not derivatives of the objective function or nonlinear constraint functions. In practice, such functions are often black boxes defined by simulations. Consequently, the corresponding optimization problems are often categorized as black-box optimization or simulation-based optimization. Problem specified by explicit formulas can probably be handled by other methods more efficiently. UOBYQA and NEWUOA can solve unconstrained problems, NEWUOA being preferable except for rather small problems; BOBYQA can solve unconstrained and bound-constrained problems; LINCOA can solve unconstrained, bound-constrained, and linearly constrained problems; COBYLA, which is not recommended unless nonlinear constraints are present, can solve general nonlinear optimization problems. See the Decision Tree for Optimization Software for more information.
The current version of PDFO supports MATLAB and Python. It relies on MEX for MATLAB and F2PY for Python to compile the Fortran solvers and wrap them into user-friendly functions.
Based on Professor Powell's Fortran code, PDFO is developed by Tom M. Ragonneau and Zaikun Zhang at the Department of Applied Mathematics, the Hong Kong Polytechnic University.
For more information, see the homepage of PDFO: https://www.pdfo.net .
PDFO is dedicated to the late Professor M. J. D. Powell FRS (1936--2015).

引用格式

T. M. Ragonneau and Z. Zhang, "PDFO: A Cross-Platform Package for Powell's Derivative-Free Optimization Solver", arXiv preprint arXiv:2302.13246 (2023)

MATLAB 版本兼容性
创建方式 R2020a
与 R2014a 及更高版本兼容
平台兼容性
Windows macOS Linux

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

matlab/examples

matlab/interfaces

matlab/interfaces/private

版本 已发布 发行说明
2.2.0

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v2.2.0

2.1.0

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v2.1.0

2.0.2

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v2.0.2

2.0.1.0

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v2.0.1

2.0.0

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v2.0.0

1.3.1.0

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v1.3.1

1.3.0.0

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v1.3

1.2.1

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v1.2.1

1.2

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v1.2

1.1

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v1.1

1.0

See release notes for this release on GitHub: https://github.com/pdfo/pdfo/releases/tag/v1.0

0.9

要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库
要查看或报告此来自 GitHub 的附加功能中的问题,请访问其 GitHub 仓库