backyard/direct/README.md

1.2 KiB

dividing **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."

i don't plan on implementing the original DIRECT algorithm itself, but i've heard through the grapevine that scipy 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 Simultaneous Optimistic Optimization. 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"