2008-10-17 22 views
1

La bibliothèque GNU Scientific a un environnement multi-dimensional function minimization. Cependant, ses mises en garde indiquent explicitement que lorsqu'il est utilisé sur une fonction avec plusieurs minima locaux différents, il renvoie simplement une solution arbitraire. Est-ce que quelqu'un sait comment vous pourriez procéder à l'adaptation de sorte qu'il renverrait une liste de tous les minima locaux (sous réserve de certains critères de seuil)?Utilisation de «multimin» de GNU Scientific pour trouver tous les minimums locaux

Répondre

3

Il ne se fonde pas sur GNU Scientific, mais je trouve cet algorithme pour trouver tous les minima locaux: http://www.cs.uoi.gr/~lagaris/papers/MINF.pdf

2

Tout algorithme d'optimisation standards cherche un minumum local quelque part "proche" du point de départ, choisi par lui-même ou fourni par vous. Trouver tous les minima locaux peut être un problème non-calculable parce que vous pouvez en avoir un nombre infini, même dans une plage finie (par exemple f (x) = [cos (1/x)]^2 a un nombre infini de minima locaux dans une gamme (0, 1) En supposant que vous avez un nombre fini de minima locaux, les trouver tous est une tâche plus complexe que de trouver un minimum global, ce qui est un problème beaucoup plus difficile que de trouver un minimum local Il n'existe pas de moyen simple d'adapter les algorithmes d'optimisation locaux pour trouver des minima globaux.Même les algorithmes populaires pour trouver un minimum global, ces algorithmes génétiques/stratégies d'évolution, ne garantissent pas qu'ils visitent tous les minima locaux. ils essaient de l'éviter

La meilleure façon d'utiliser GSL dans cette situation serait de regarder la fonction minimisée et essayer de deviner où les minima devraient être un Recherchez-les ensuite en utilisant le code GSL.