direct: update readme

This commit is contained in:
Connor Olding 2022-06-13 23:14:14 +02:00
parent f00ecdfde0
commit 114169d00d

View File

@ -0,0 +1,21 @@
**di**viding **rect*angles, and the algorithms that stem from it.
for a description and history of these methods, please refer to
["The DIRECT algorithm: 25 years Later."](https://link.springer.com/article/10.1007/s10898-020-00952-6)
i don't plan on implementing the original DIRECT algorithm itself,
but i've heard through the grapevine that
[scipy](https://docs.scipy.org/doc/scipy/reference/optimize.html)
is getting its own DIRECT implementation soon.
`birect.py` is a modification of DIRECT that divides hyper-rectangles
into halves instead of thirds, and re-uses one point per evaluation.
there's a couple other devils in the details, but that's the gist of it.
`soo.py` allows for an arbitrary (K≥2) number of subdivisions,
behaving somewhat similar to BIRECT (K=2), DIRECT (K=3), and beyond.
SOO stands for **S**imultaneous **O**ptimistic **O**ptimization.
SOO is typically not as efficient as the other algorithms,
but it is simpler to implement, specially when K is fixed to a constant.
curiously, SOO is not covered in the aforementioned article, so please refer to
["Optimistic Optimization of a Deterministic Function
without the Knowledge of its Smoothness"](https://team.inria.fr/sequel/software/soo/)