ibcdfo

Interpolation-Based Composite Derivative-Free Optimization


Keywords
ibcdfo
License
MIT
Install
pip install ibcdfo==1.0.0b1

Documentation

IBCDFO

Interpolation-Based Composite Derivative-Free Optimization

GitHub Code style: black Coverage Status

This page contains source code for interpolation-based optimization methods for composite derivative-free optimization.

Relevant references include:

  • J. Larson and M. Menickelly. Structure-aware methods for expensive derivative-free nonsmooth composite optimization. arXiv:2207.08264. 2022. LINK

  • J. Larson, M. Menickelly, and B. Zhou. Manifold sampling for optimizing nonsmooth nonconvex compositions. SIAM Journal on Optimization. 31(4):2638–2664, 2021 DOI

  • K. A. Khan, J. Larson, and S. M. Wild. Manifold sampling for optimization of nonconvex functions that are piecewise linear compositions of smooth components. SIAM Journal on Optimization 28(4):3001--3024, 2018, DOI

  • S. M. Wild. POUNDERS in TAO: Solving Derivative-Free Nonlinear Least-Squares Problems with POUNDERS. Advances and Trends in Optimization with Engineering Applications. SIAM. 529--539, 2017. DOI

  • J. Larson, M. Menickelly, and S. M. Wild. Manifold sampling for l1 nonconvex optimization. SIAM Journal on Optimization. 26(4):2540–2563, 2016. DOI

Contributing to IBCDFO

Contributions are welcome in a variety of forms; please see CONTRIBUTING.

Installation & Updating

Note that this repository depends on one or more submodules. After cloning this repository, from within the clone please run

git submodule update --init --recursive

to fetch all files contained in the submodules. This must be done before attempting to use the code in the clone. Issuing the command git pull will update the repository, but not the submodules. To update the clone and all its submodules simultaneously, run

git pull --recurse-submodules.

The ibcdfo python package can be installed by setting up a terminal with the target python and pip pair and executing

> pushd ibcdfo_pypkg
> python setup.py sdist
> pip install dist/ibcdfo-<version>.tar.gz
> popd

where <version> can be determined by looking at the output of the sdist command. The installation can be partially tested by executing

> python
>>> import ibcdfo
>>> ibcdfo.__version__
<version>

where the output <version> should be identical to the value used during installation.

License

All code included in IBCDFO is open source, with the particular form of license contained in the top-level subdirectories. If such a subdirectory does not contain a LICENSE file, then it is automatically licensed as described in the otherwise encompassing IBCDFO LICENSE.

Resources

To seek support or report issues, e-mail:

  • poptus@mcs.anl.gov