Python module for multiple variable global optimization [closed]
Asked Answered
K

5

19

I have been looking for a python module that implements the common techniques of global optimization (finding the global minimum of a function in N dimensions) without success.

If you heard about a simulated annealing or genetic algorithm implementation in python, please share.

Katherinakatherine answered 19/11, 2010 at 17:11 Comment(0)
M
15

Scipy's optimize module has a dual_annealing function that might fit your needs. Also, you should check out the PyEvolve module for doing a genetic algorithm.

Michi answered 19/11, 2010 at 17:31 Comment(2)
anneal is deprecated in scipy: docs.scipy.org/doc/scipy/reference/generated/…Outmarch
use basinhopping insteadOutmarch
U
7

I'm not an expert, but have you looked at:

Udell answered 19/11, 2010 at 17:40 Comment(0)
T
6

One of the most common is scipy.optimize.

For genetic algorithms, there's pygene.

Also, the aima-python project has implementations of algorithms described in Russell and Norvig's "Artificial Intelligence: A Modern Approach".

Tiffanitiffanie answered 19/11, 2010 at 17:49 Comment(0)
T
1

I've been working on a detailed comparison of many python global optimizers (I assume you are interested in derivative-free optimization where there are plenty of local minima).

To summarize, I'd recommend scipy.optimize and if you're in dimension less than say ten, the SHGO algorithm therein is really solid. You might want to read up on it if you have a passing interest in homology. It is better than some previous ones, such as basin-hopping, because it cleverly tries to avoid redundant local searches.

The full list and comparisons are in the report

Troat answered 22/12, 2020 at 14:44 Comment(0)
B
1

Simulated Annealing:

frigidum is a python package for simulated annealing.

Babur answered 24/12, 2020 at 8:20 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.