Sto cercando una libreria C++ e ho a che fare con funzioni convesse di obiettivi e vincoli.Che cos'è una buona libreria di ottimizzazione convessa?
risposta
Immagino che il tuo problema non sia lineare. Dove lavoro, usiamo SNOPT, Ipopt e un altro risolutore proprietario (non in vendita). Abbiamo anche provato e ascoltato cose positive su Knitro.
Finché il problema è convesso, tutti questi risolutori funzionano correttamente.
Tutti hanno una propria API, ma tutti chiedono le stesse informazioni: valori, prima e seconda derivata.
Da quello che so, il risolutore CPLEX è il miglior risolutore di ottimizzazione convessa. È lo stato dell'arte nei risolutori di LP. Ottimizza l'ottimizzazione davvero bene. Mentre lo cerco, vedo che il suo software IBM ora. Puoi trovarlo qui: http://www-01.ibm.com/software/integration/optimization/cplex/
Qui puoi trovare altri solutori open source e i relativi benchmark delle prestazioni: http://plato.asu.edu/ftp/lpfree.html Inoltre, non dimenticare di consultare http://code.msdn.microsoft.com/solverfoundation –
La linea lineare implica convesso, non il contrario. –
cplex risolve problemi convessi con vincoli lineari o quadratici. È molto veloce, ma non gestisce i problemi convessi generali. –
Supponendo che i problemi non siano lineari, è possibile utilizzare OPT++ open source e disponibile da Sandia Lab. L'ho usato in un progetto in C++ ed è stato facile da usare e ha funzionato bene.
È possibile utilizzare GSL
(GNU Scientific Library) con the packageNLopt
che è un pacchetto di ottimizzazione non lineare con vincolate, legato con vincoli, e generali vincoli di disuguaglianza non lineari.
Due commenti: in primo luogo, cosa intendi per utilizzare GSL e NLOpt insieme (GSL con NLOpt)? Sembrano essere progetti separati. Hanno lo stesso spirito ma sono indipendenti. In secondo luogo, l'autore di NLOpt sconsiglia di utilizzare NLOpt per problemi convessi, dalla pagina web: "NLopt include solo metodi generali che non assumono convessità, se si dispone di un problema probabilmente convesso, si potrebbe stare meglio con un pacchetto software diverso , come il pacchetto CVX di Stanford. " http://ab-initio.mit.edu/wiki/index.php/NLopt_Introduction#Global_versus_local_optimization – alfC
- 1. Consiglia una buona libreria di statistiche javascript?
- 2. Una buona libreria JavaScript Text-to-Speech
- 3. Libreria di log buona PHP?
- 4. C'è una buona libreria yaml per Android?
- 5. Buona libreria SIMD portatile
- 6. Che cos'è una buona libreria di pagamento PHP che funziona con Paypal, Google Checkout e Authorize.net?
- 7. Una buona libreria di aritmetica (intervallo) di incertezza?
- 8. Buona libreria PHP Rest Api
- 9. C'è una buona libreria di riflessioni disponibile per Scala?
- 10. Buona libreria di manipolazione di stringhe C++
- 11. Una buona libreria IO di file TDD-Friendly .NET
- 12. Qualcuno può suggerire una buona libreria di vincoli per Haskell?
- 13. Dove posso trovare una buona libreria di PDF .NET?
- 14. C'è una buona libreria di grafici per iPhone?
- 15. C'è una buona libreria di layout grafico richiamabile da C++?
- 16. Esiste una buona libreria di elaborazione del linguaggio naturale
- 17. Qualsiasi buona libreria di disegno postscript?
- 18. Buona libreria di programmazione lineare per C#?
- 19. Esiste una buona libreria di pluralizzazione delle stringhe per actionscript?
- 20. Esiste una buona libreria di crittografia GnuPG per Java/Scala?
- 21. Esiste una buona libreria Python in grado di analizzare C++?
- 22. Buona libreria di stampa per C?
- 23. Che cos'è una buona libreria di visualizzazione dei dati per iOS?
- 24. Che cos'è una buona libreria di manipolazione delle matrici disponibile per C?
- 25. Una buona libreria per la matematica 3D in C#?
- 26. Esiste una buona libreria per accedere a HBase da Python?
- 27. Esiste una buona libreria PHP per vettori e matrici?
- 28. Una buona libreria Design-by-Contract per Java?
- 29. Che cos'è una buona funzione hash?
- 30. Che cos'è una buona vetrina per Clojure?
Dove l'hai visto l'ultima volta? –
La maggior parte dei solutori LP ha il proprio modo di definire i set di problemi. Le interfacce programmatiche per esso sono per lo più rivestimento di zucchero. –
Sto usando cvxopt, e per installare ho appena scaricato le librerie precompilate da http://www.lfd.uci.edu/~gohlke/pythonlibs/#cvxopt, poi ho installato pip (ruota scaricata), quindi ho fatto in modo di importare Numpy prima di usarlo. – Phylliida