Uso di GNU Scientific & # 8220; multimin & # 8221; per trovare tutti i minimi locali

StackOverflow https://stackoverflow.com/questions/211625

  •  03-07-2019
  •  | 
  •  

Domanda

La libreria GNU Scientific ha una minimizzazione della funzione multidimensionale framework. Tuttavia, i suoi avvertimenti affermano esplicitamente che quando usato su una funzione con diversi minimi locali diversi restituisce solo una soluzione arbitraria. Qualcuno sa come si potrebbe fare per adattarlo in modo che restituisca un elenco di tutti minimi locali (soggetto ad alcuni criteri di soglia)?

È stato utile?

Soluzione

Non è basato su GNU Scientific, ma ho trovato questo algoritmo per trovare tutti i minimi locali: http://www.cs.uoi.gr/~lagaris/papers/MINF.pdf

Altri suggerimenti

Qualsiasi algoritmo di ottimizzazione standard cerca un minimo locale da qualche parte "chiudi" al punto di partenza, scelto da solo o fornito da te. Trovare tutti i minimi locali può essere un problema non calcolabile perché puoi averne un numero infinito, anche in un intervallo finito (es. F (x) = [cos (1 / x)] ^ 2 ha un numero infinito di minimi locali in un intervallo (0, 1]). Supponendo che tu abbia un numero finito di minimi locali, trovarli tutti è un compito più complesso che trovare un minimo globale, che a sua volta è un problema molto più difficile che trovare un minimo locale da qualche parte vicino a te. Non esiste un modo semplice per adattare gli algoritmi di ottimizzazione locale per trovare i minimi globali. Anche algoritmi popolari per trovare un minimo globale, come un algoritmo genetico / strategie di evoluzione, non garantiscono che visitino tutti i minimi locali. In realtà, stanno cercando di evitarlo.

Il modo migliore per usare GSL in questa situazione sarebbe quello di guardare la funzione minimizzata e provare a indovinare dove dovrebbero essere i minimi e quindi cercarli usando il codice GSL.

Si scopre che il metodo di ottimizzazione dello sciame di particelle non è una cattiva opzione per il compito di trovare tutti i minimi locali e minimi globali di una funzione. Codici PSO per trovare il minimo locale PSO per trovare il minimo globale sono disponibili come riferimento.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top