You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.rst
+13-32Lines changed: 13 additions & 32 deletions
Original file line number
Diff line number
Diff line change
@@ -28,8 +28,9 @@ More details about Py-BOBYQA and its enhancements over BOBYQA can be found in ou
28
28
29
29
1. Coralia Cartis, Jan Fiala, Benjamin Marteau and Lindon Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://doi.org/10.1145/3338517>`_, *ACM Transactions on Mathematical Software*, 45:3 (2019), pp. 32:1-32:41 [`arXiv preprint: 1804.00154 <https://arxiv.org/abs/1804.00154>`_]
30
30
2. Coralia Cartis, Lindon Roberts and Oliver Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://doi.org/10.1080/02331934.2021.1883015>`_, *Optimization*, 71:8 (2022), pp. 2343-2373. [`arXiv preprint: 1812.11343 <https://arxiv.org/abs/1812.11343>`_]
31
+
3. Lindon Roberts, `Model Construction for Convex-Constrained Derivative-Free Optimization <https://arxiv.org/abs/2403.14960>`_, *arXiv preprint arXiv:2403.14960* (2024).
31
32
32
-
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.
33
+
Please cite [1] when using Py-BOBYQA for local optimization, [1,2] when using Py-BOBYQA's global optimization heuristic functionality, and [1,3] if using the general convex constraints functionality.
33
34
34
35
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>`_.
35
36
@@ -41,13 +42,13 @@ See manual.pdf or the `online manual <https://numericalalgorithmsgroup.github.io
41
42
42
43
Citation
43
44
--------
44
-
If you use Py-BOBYQA in a paper, please cite:
45
+
Full details of the Py-BOBYQA algorithm are given in our papers:
45
46
46
-
Cartis, C., Fiala, J., Marteau, B. and Roberts, L., Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers, *ACM Transactions on Mathematical Software*, 45:3 (2019), pp. 32:1-32:41.
47
+
1. Coralia Cartis, Jan Fiala, Benjamin Marteau and Lindon Roberts, `Improving the Flexibility and Robustness of Model-Based Derivative-Free Optimization Solvers <https://doi.org/10.1145/3338517>`_, *ACM Transactions on Mathematical Software*, 45:3 (2019), pp. 32:1-32:41 [`preprint <https://arxiv.org/abs/1804.00154>`_]
48
+
2. Coralia Cartis, Lindon Roberts and Oliver Sheridan-Methven, `Escaping local minima with derivative-free methods: a numerical investigation <https://doi.org/10.1080/02331934.2021.1883015>`_, *Optimization*, 71:8 (2022), pp. 2343-2373. [`arXiv preprint: 1812.11343 <https://arxiv.org/abs/1812.11343>`_]
49
+
3. Lindon Roberts, `Model Construction for Convex-Constrained Derivative-Free Optimization <https://arxiv.org/abs/2403.14960>`_, *arXiv preprint arXiv:2403.14960* (2024).
47
50
48
-
If you use Py-BOBYQA's global optimization heuristic, please cite the above and also
49
-
50
-
Cartis, C., Roberts, L. and Sheridan-Methven, O., Escaping local minima with derivative-free methods: a numerical investigation, Optimization, 71:8 (2022), pp. 2343-2373.
51
+
Please cite [1] when using Py-BOBYQA for local optimization, [1,2] when using Py-BOBYQA's global optimization heuristic functionality, and [1,3] if using the general convex constraints functionality.
51
52
52
53
Requirements
53
54
------------
@@ -65,31 +66,17 @@ Additionally, the following python packages should be installed (these will be i
65
66
66
67
Installation using pip
67
68
----------------------
68
-
For easy installation, use `pip <http://www.pip-installer.org/>`_ as root:
69
-
70
-
.. code-block:: bash
71
-
72
-
$ [sudo] pip install Py-BOBYQA
73
-
74
-
or alternatively *easy_install*:
75
-
76
-
.. code-block:: bash
77
-
78
-
$ [sudo] easy_install Py-BOBYQA
79
-
80
-
If you do not have root privileges or you want to install Py-BOBYQA for your private use, you can use:
69
+
For easy installation, use `pip <http://www.pip-installer.org/>`_:
81
70
82
71
.. code-block:: bash
83
72
84
-
$ pip install --user Py-BOBYQA
85
-
86
-
which will install Py-BOBYQA in your home directory.
73
+
$ pip install Py-BOBYQA
87
74
88
75
Note that if an older install of Py-BOBYQA is present on your system you can use:
89
76
90
77
.. code-block:: bash
91
78
92
-
$ [sudo] pip install --upgrade Py-BOBYQA
79
+
$ pip install --upgrade Py-BOBYQA
93
80
94
81
to upgrade Py-BOBYQA to the latest version.
95
82
@@ -106,13 +93,7 @@ Py-BOBYQA is written in pure Python and requires no compilation. It can be insta
106
93
107
94
.. code-block:: bash
108
95
109
-
$ [sudo] pip install .
110
-
111
-
If you do not have root privileges or you want to install Py-BOBYQA for your private use, you can use:
112
-
113
-
.. code-block:: bash
114
-
115
-
$ pip install --user .
96
+
$ pip install .
116
97
117
98
instead.
118
99
@@ -121,7 +102,7 @@ To upgrade Py-BOBYQA to the latest version, navigate to the top-level directory
121
102
.. code-block:: bash
122
103
123
104
$ git pull
124
-
$ [sudo] pip install .# with admin privileges
105
+
$ pip install .
125
106
126
107
Testing
127
108
-------
@@ -144,7 +125,7 @@ If Py-BOBYQA was installed using *pip* you can uninstall as follows:
144
125
145
126
.. code-block:: bash
146
127
147
-
$ [sudo] pip uninstall Py-BOBYQA
128
+
$ pip uninstall Py-BOBYQA
148
129
149
130
If Py-BOBYQA was installed manually you have to remove the installed files by hand (located in your python site-packages directory).
Copy file name to clipboardExpand all lines: docs/advanced.rst
+9-3Lines changed: 9 additions & 3 deletions
Original file line number
Diff line number
Diff line change
@@ -21,9 +21,9 @@ Logging and Output
21
21
22
22
Initialization of Points
23
23
------------------------
24
-
* :code:`init.random_initial_directions` - Build the initial interpolation set using random directions (as opposed to coordinate directions). Default is :code:`True`.
25
-
* :code:`init.random_directions_make_orthogonal` - If building initial interpolation set with random directions, whether or not these should be orthogonalized. Default is :code:`True`.
26
-
* :code:`init.run_in_parallel` - If using random directions, whether or not to ask for all :code:`objfun` to be evaluated at all points without any intermediate processing. Default is :code:`False`.
24
+
* :code:`init.random_initial_directions` - Build the initial interpolation set using random directions (as opposed to coordinate directions). Default is :code:`True`. Not used if general convex constraints provided.
25
+
* :code:`init.random_directions_make_orthogonal` - If building initial interpolation set with random directions, whether or not these should be orthogonalized. Default is :code:`True`. Not used if general convex constraints provided.
26
+
* :code:`init.run_in_parallel` - If using random directions, whether or not to ask for all :code:`objfun` to be evaluated at all points without any intermediate processing. Default is :code:`False`. Not used if general convex constraints provided.
27
27
28
28
Trust Region Management
29
29
-----------------------
@@ -74,6 +74,12 @@ Multiple Restarts
74
74
* :code:`restarts.auto_detect.min_chg_model_slope` - Minimum rate of increase of :math:`\log(\|g_k-g_{k-1}\|)` and :math:`\log(\|H_k-H_{k-1}\|_F)` over the past iterations to cause a restart. Default is 0.015.
75
75
* :code:`restarts.auto_detect.min_correl` - Minimum correlation of the data sets :math:`(k, \log(\|g_k-g_{k-1}\|))` and :math:`(k, \log(\|H_k-H_{k-1}\|_F))` required to cause a restart. Default is 0.1.
76
76
77
+
General Convex Constraints
78
+
--------------------------
79
+
* :code:`projections.dykstra.d_tol` - termination tolerance for Dykstra's algorithm for computing the projection onto the intersection of all convex constraints. Default is :math:`10^{-10}`.
80
+
* :code:`projections.dykstra.max_iters` - maximum iterations of Dykstra's algorithm for computing the projection onto the intersection of all convex constraints. Default is 100.
81
+
* :code:`projections.feasible_tol` - tolerance for checking feasibility of initial points with respect to general convex constraints. Default is :math:`10^{-10}`.
82
+
* :code:`projections.pgd_tol` - termination tolerance for trust-region and geometry-improving subproblems. Default is :math:`10^{-8}`.
0 commit comments