Skip to content

Commit a3b0c4b

Browse files
committed
Added links to global optimization paper
1 parent 4b0696a commit a3b0c4b

File tree

10 files changed

+54
-17
lines changed

10 files changed

+54
-17
lines changed

README.rst

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,12 @@ Py-BOBYQA: Derivative-Free Solver for Bound-Constrained Minimization
1616

1717
Py-BOBYQA is a flexible package for solving bound-constrained general objective minimization, without requiring derivatives of the objective. It is a Python implementation of the BOBYQA algorithm by Powell. Py-BOBYQA is particularly useful when evaluations of the objective function are expensive and/or noisy.
1818

19-
More details about Py-BOBYQA can be found in our paper: C. Cartis, J. Fiala, B. Marteau and L. Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://arxiv.org/abs/1804.00154>`_, technical report, University of Oxford, (2018). For reproducibility of all figures in this paper, please feel free to contact the authors.
19+
More details about Py-BOBYQA can be found in our papers:
20+
21+
1. C. Cartis, J. Fiala, B. Marteau and L. Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://arxiv.org/abs/1804.00154>`_, technical report, University of Oxford, (2018).
22+
2. C. Cartis, L. Roberts and O. Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://arxiv.org/abs/1812.11343>`_, technical report, University of Oxford, (2018).
23+
24+
Please cite [1] when using Py-BOBYQA for local optimization, and [1,2] when using Py-BOBYQA's global optimization heuristic functionality. For reproducibility of all figures, please feel free to contact the authors.
2025

2126
The original paper by Powell is: M. J. D. Powell, The BOBYQA algorithm for bound constrained optimization without derivatives, technical report DAMTP 2009/NA06, University of Cambridge (2009), and the original Fortran implementation is available `here <http://mat.uc.pt/~zhang/software.html>`_.
2227

docs/build/html/_sources/index.rst.txt

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,16 @@ That is, Py-BOBYQA solves
2121
\min_{x\in\mathbb{R}^n} &\quad f(x)\\
2222
\text{s.t.} &\quad a \leq x \leq b
2323
24-
Full details of the Py-BOBYQA algorithm are given in our paper: C. Cartis, J. Fiala, B. Marteau and L. Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://arxiv.org/abs/1804.00154>`_, technical report, University of Oxford, (2018).
24+
Full details of the Py-BOBYQA algorithm are given in our papers:
25+
26+
1. C. Cartis, J. Fiala, B. Marteau and L. Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://arxiv.org/abs/1804.00154>`_, technical report, University of Oxford, (2018).
27+
2. C. Cartis, L. Roberts and O. Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://arxiv.org/abs/1812.11343>`_, technical report, University of Oxford, (2018).
28+
29+
Please cite [1] when using Py-BOBYQA for local optimization, and [1,2] when using Py-BOBYQA's global optimization heuristic functionality **(new in v1.1!)**.
2530

2631
If you are interested in solving least-squares minimization problems, you may wish to try `DFO-LS <https://github.com/numericalalgorithmsgroup/dfols>`_, which has the same features as Py-BOBYQA (plus some more), and exploits the least-squares problem structure, so performs better on such problems.
2732

28-
**New feature: global optimization heuristic (July 2018)!** Py-BOBYQA now has a heuristic for global optimization (see :doc:`userguide` for details). As this is a heuristic, there are no guarantees it will find a global minimum, but it is more likely to escape local minima if there are better values nearby.
33+
Since v1.1, Py-BOBYQA has a heuristic for global optimization (see :doc:`userguide` for details). As this is a heuristic, there are no guarantees it will find a global minimum, but it is more likely to escape local minima if there are better values nearby.
2934

3035
Py-BOBYQA is released under the GNU General Public License. Please `contact NAG <http://www.nag.com/content/worldwide-contact-information>`_ for alternative licensing.
3136

docs/build/html/_sources/userguide.rst.txt

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Py-BOBYQA is designed to solve the local optimization problem
1414
where the bound constraints :math:`a \leq x \leq b` are optional. The objective function :math:`f(x)` is usually nonlinear and nonquadratic. If you know your objective is linear or quadratic, you should consider a solver designed for such functions (see `here <https://neos-guide.org/Optimization-Guide>`_ for details).
1515

1616
Py-BOBYQA iteratively constructs an interpolation-based model for the objective, and determines a step using a trust-region framework.
17-
For an in-depth technical description of the algorithm see the paper [CFMR2018]_.
17+
For an in-depth technical description of the algorithm see the paper [CFMR2018]_, and for the global optimization heuristic, see [CRO2018]_.
1818

1919
How to use Py-BOBYQA
2020
--------------------
@@ -388,11 +388,12 @@ The output of this is:
388388
Warning (max evals): Objective has been called MAXFUN times
389389
******************************
390390
391-
As we can see, the :code:`seek_global_minimum` flag helped Py-BOBYQA escape the local minimum from the first run, and find the global minimum.
391+
As we can see, the :code:`seek_global_minimum` flag helped Py-BOBYQA escape the local minimum from the first run, and find the global minimum. More details are given in [CRO2018]_.
392392

393393
References
394394
----------
395395

396396
.. [CFMR2018]
397397
C. Cartis, J. Fiala, B. Marteau and L. Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://arxiv.org/abs/1804.00154>`_, technical report, University of Oxford, (2018).
398-
398+
.. [CRO2018]
399+
C. Cartis, L. Roberts and O. Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://arxiv.org/abs/1812.11343>`_, technical report, University of Oxford, (2018).

docs/build/html/index.html

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -163,16 +163,27 @@
163163
<div class="section" id="py-bobyqa-derivative-free-optimizer-for-bound-constrained-minimization">
164164
<h1>Py-BOBYQA: Derivative-Free Optimizer for Bound-Constrained Minimization<a class="headerlink" href="#py-bobyqa-derivative-free-optimizer-for-bound-constrained-minimization" title="Permalink to this headline"></a></h1>
165165
<p><strong>Release:</strong> 1.1</p>
166-
<p><strong>Date:</strong> 24 December 2018</p>
166+
<p><strong>Date:</strong> 07 January 2019</p>
167167
<p><strong>Author:</strong> <a class="reference external" href="mailto:lindon&#46;roberts&#37;&#52;&#48;maths&#46;ox&#46;ac&#46;uk">Lindon Roberts</a></p>
168168
<p>Py-BOBYQA is a flexible package for finding local solutions to nonlinear, nonconvex minimization problems (with optional bound constraints), without requiring any derivatives of the objective. Py-BOBYQA is a Python implementation of the <a class="reference external" href="http://mat.uc.pt/~zhang/software.html#powell_software">BOBYQA</a> solver by Powell (documentation <a class="reference external" href="http://www.damtp.cam.ac.uk/user/na/NA_papers/NA2009_06.pdf">here</a>). It is particularly useful when evaluations of the objective function are expensive and/or noisy.</p>
169169
<p>That is, Py-BOBYQA solves</p>
170170
<div class="math">
171171
\[\begin{split}\min_{x\in\mathbb{R}^n} &amp;\quad f(x)\\
172172
\text{s.t.} &amp;\quad a \leq x \leq b\end{split}\]</div>
173-
<p>Full details of the Py-BOBYQA algorithm are given in our paper: C. Cartis, J. Fiala, B. Marteau and L. Roberts, <a class="reference external" href="https://arxiv.org/abs/1804.00154">Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers</a>, technical report, University of Oxford, (2018).</p>
173+
<p>Full details of the Py-BOBYQA algorithm are given in our papers:</p>
174+
<ol class="arabic simple">
175+
<li><ol class="first upperalpha" start="3">
176+
<li>Cartis, J. Fiala, B. Marteau and L. Roberts, <a class="reference external" href="https://arxiv.org/abs/1804.00154">Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers</a>, technical report, University of Oxford, (2018).</li>
177+
</ol>
178+
</li>
179+
<li><ol class="first upperalpha" start="3">
180+
<li>Cartis, L. Roberts and O. Sheridan-Methven, <a class="reference external" href="https://arxiv.org/abs/1812.11343">Escaping local minima with derivative-free methods: a numerical investigation</a>, technical report, University of Oxford, (2018).</li>
181+
</ol>
182+
</li>
183+
</ol>
184+
<p>Please cite [1] when using Py-BOBYQA for local optimization, and [1,2] when using Py-BOBYQA’s global optimization heuristic functionality <strong>(new in v1.1!)</strong>.</p>
174185
<p>If you are interested in solving least-squares minimization problems, you may wish to try <a class="reference external" href="https://github.com/numericalalgorithmsgroup/dfols">DFO-LS</a>, which has the same features as Py-BOBYQA (plus some more), and exploits the least-squares problem structure, so performs better on such problems.</p>
175-
<p><strong>New feature: global optimization heuristic (July 2018)!</strong> Py-BOBYQA now has a heuristic for global optimization (see <a class="reference internal" href="userguide.html"><span class="doc">Using Py-BOBYQA</span></a> for details). As this is a heuristic, there are no guarantees it will find a global minimum, but it is more likely to escape local minima if there are better values nearby.</p>
186+
<p>Since v1.1, Py-BOBYQA has a heuristic for global optimization (see <a class="reference internal" href="userguide.html"><span class="doc">Using Py-BOBYQA</span></a> for details). As this is a heuristic, there are no guarantees it will find a global minimum, but it is more likely to escape local minima if there are better values nearby.</p>
176187
<p>Py-BOBYQA is released under the GNU General Public License. Please <a class="reference external" href="http://www.nag.com/content/worldwide-contact-information">contact NAG</a> for alternative licensing.</p>
177188
<div class="toctree-wrapper compound">
178189
<p class="caption"><span class="caption-text">Contents:</span></p>

docs/build/html/objects.inv

6 Bytes
Binary file not shown.

docs/build/html/searchindex.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/build/html/userguide.html

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ <h2>Nonlinear Minimization<a class="headerlink" href="#nonlinear-minimization" t
182182
\text{s.t.} &amp;\quad a \leq x \leq b\end{split}\]</div>
183183
<p>where the bound constraints <span class="math">\(a \leq x \leq b\)</span> are optional. The objective function <span class="math">\(f(x)\)</span> is usually nonlinear and nonquadratic. If you know your objective is linear or quadratic, you should consider a solver designed for such functions (see <a class="reference external" href="https://neos-guide.org/Optimization-Guide">here</a> for details).</p>
184184
<p>Py-BOBYQA iteratively constructs an interpolation-based model for the objective, and determines a step using a trust-region framework.
185-
For an in-depth technical description of the algorithm see the paper <a class="reference internal" href="#cfmr2018" id="id1">[CFMR2018]</a>.</p>
185+
For an in-depth technical description of the algorithm see the paper <a class="reference internal" href="#cfmr2018" id="id1">[CFMR2018]</a>, and for the global optimization heuristic, see <a class="reference internal" href="#cro2018" id="id2">[CRO2018]</a>.</p>
186186
</div>
187187
<div class="section" id="how-to-use-py-bobyqa">
188188
<h2>How to use Py-BOBYQA<a class="headerlink" href="#how-to-use-py-bobyqa" title="Permalink to this headline"></a></h2>
@@ -549,7 +549,7 @@ <h2>Example: Global Optimization<a class="headerlink" href="#example-global-opti
549549
</pre></div>
550550
</div>
551551
</div></blockquote>
552-
<p>As we can see, the <code class="code docutils literal"><span class="pre">seek_global_minimum</span></code> flag helped Py-BOBYQA escape the local minimum from the first run, and find the global minimum.</p>
552+
<p>As we can see, the <code class="code docutils literal"><span class="pre">seek_global_minimum</span></code> flag helped Py-BOBYQA escape the local minimum from the first run, and find the global minimum. More details are given in <a class="reference internal" href="#cro2018" id="id3">[CRO2018]</a>.</p>
553553
</div>
554554
<div class="section" id="references">
555555
<h2>References<a class="headerlink" href="#references" title="Permalink to this headline"></a></h2>
@@ -562,6 +562,15 @@ <h2>References<a class="headerlink" href="#references" title="Permalink to this
562562
</td></tr>
563563
</tbody>
564564
</table>
565+
<table class="docutils citation" frame="void" id="cro2018" rules="none">
566+
<colgroup><col class="label" /><col /></colgroup>
567+
<tbody valign="top">
568+
<tr><td class="label">[CRO2018]</td><td><em>(<a class="fn-backref" href="#id2">1</a>, <a class="fn-backref" href="#id3">2</a>)</em> <ol class="last upperalpha simple" start="3">
569+
<li>Cartis, L. Roberts and O. Sheridan-Methven, <a class="reference external" href="https://arxiv.org/abs/1812.11343">Escaping local minima with derivative-free methods: a numerical investigation</a>, technical report, University of Oxford, (2018).</li>
570+
</ol>
571+
</td></tr>
572+
</tbody>
573+
</table>
565574
</div>
566575
</div>
567576

docs/index.rst

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,16 @@ That is, Py-BOBYQA solves
2121
\min_{x\in\mathbb{R}^n} &\quad f(x)\\
2222
\text{s.t.} &\quad a \leq x \leq b
2323
24-
Full details of the Py-BOBYQA algorithm are given in our paper: C. Cartis, J. Fiala, B. Marteau and L. Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://arxiv.org/abs/1804.00154>`_, technical report, University of Oxford, (2018).
24+
Full details of the Py-BOBYQA algorithm are given in our papers:
25+
26+
1. C. Cartis, J. Fiala, B. Marteau and L. Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://arxiv.org/abs/1804.00154>`_, technical report, University of Oxford, (2018).
27+
2. C. Cartis, L. Roberts and O. Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://arxiv.org/abs/1812.11343>`_, technical report, University of Oxford, (2018).
28+
29+
Please cite [1] when using Py-BOBYQA for local optimization, and [1,2] when using Py-BOBYQA's global optimization heuristic functionality **(new in v1.1!)**.
2530

2631
If you are interested in solving least-squares minimization problems, you may wish to try `DFO-LS <https://github.com/numericalalgorithmsgroup/dfols>`_, which has the same features as Py-BOBYQA (plus some more), and exploits the least-squares problem structure, so performs better on such problems.
2732

28-
**New feature: global optimization heuristic (July 2018)!** Py-BOBYQA now has a heuristic for global optimization (see :doc:`userguide` for details). As this is a heuristic, there are no guarantees it will find a global minimum, but it is more likely to escape local minima if there are better values nearby.
33+
Since v1.1, Py-BOBYQA has a heuristic for global optimization (see :doc:`userguide` for details). As this is a heuristic, there are no guarantees it will find a global minimum, but it is more likely to escape local minima if there are better values nearby.
2934

3035
Py-BOBYQA is released under the GNU General Public License. Please `contact NAG <http://www.nag.com/content/worldwide-contact-information>`_ for alternative licensing.
3136

docs/userguide.rst

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ Py-BOBYQA is designed to solve the local optimization problem
1414
where the bound constraints :math:`a \leq x \leq b` are optional. The objective function :math:`f(x)` is usually nonlinear and nonquadratic. If you know your objective is linear or quadratic, you should consider a solver designed for such functions (see `here <https://neos-guide.org/Optimization-Guide>`_ for details).
1515

1616
Py-BOBYQA iteratively constructs an interpolation-based model for the objective, and determines a step using a trust-region framework.
17-
For an in-depth technical description of the algorithm see the paper [CFMR2018]_.
17+
For an in-depth technical description of the algorithm see the paper [CFMR2018]_, and for the global optimization heuristic, see [CRO2018]_.
1818

1919
How to use Py-BOBYQA
2020
--------------------
@@ -388,11 +388,12 @@ The output of this is:
388388
Warning (max evals): Objective has been called MAXFUN times
389389
******************************
390390
391-
As we can see, the :code:`seek_global_minimum` flag helped Py-BOBYQA escape the local minimum from the first run, and find the global minimum.
391+
As we can see, the :code:`seek_global_minimum` flag helped Py-BOBYQA escape the local minimum from the first run, and find the global minimum. More details are given in [CRO2018]_.
392392

393393
References
394394
----------
395395

396396
.. [CFMR2018]
397397
C. Cartis, J. Fiala, B. Marteau and L. Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://arxiv.org/abs/1804.00154>`_, technical report, University of Oxford, (2018).
398-
398+
.. [CRO2018]
399+
C. Cartis, L. Roberts and O. Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://arxiv.org/abs/1812.11343>`_, technical report, University of Oxford, (2018).

manual.pdf

655 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)