Sto cercando un open source implementazione di un metodo che esegue l'ottimizzazione vincolata per la funzione multivariata non lineare in Java.Ottimizzazione vincolata per funzione multivariata non lineare in Java
risposta
Ci sono diversi Java implementazioni open source che possono farlo, come ad esempio:
- OptaPlanner (licenza Apache, 100% Java, un sacco di esempi e documentazione)
- Jacop
- choco
- ...
IPOPT è il risolutore più affidabile che conosca.
Ha un Java interface anche se non ho idea di quanto sia buono, io uso solo l'API C++.
La mia esperienza con IPOPT è che è il risolutore open source più performante che ho usato per problemi convessi di grandi dimensioni e spargoli. Sfortunatamente, la libreria non è thread-safe ed è soggetta a segfault o peggio, corrompe la memoria e fa sì che la JVM seguster in un secondo momento se fai qualcosa di leggermente sbagliato, il che è quasi impossibile eseguire il debug da Java. Alla fine ho deciso che era meglio isolare qualsiasi codice usando IPOPT in un processo separato, scritto in C++. – Owen
@Owen Interessante. Ho usato l'API Java molto ampiamente da allora, e ha funzionato in modo affidabile; nessun segfault, nessuna corruzione della memoria, nessuna perdita di memoria. Tuttavia, sono d'accordo: se è possibile per te, basta metterlo in un processo separato ed evitare del tutto le difficoltà di interfaccia. – Ali
Potrebbe avere ragione. Ho finito per rintracciare la mia corruzione della memoria sul fatto che il finalizzatore di 'Ipopt' veniva chiamato su un thread diverso (come di solito sono i finalizzatori). Quindi suppongo che tutto ciò possa tornare al fatto che Ipopt non è thread-safe, [che è documentato] (https://projects.coin-or.org/Ipopt/ticket/167). – Owen
È possibile dare un'occhiata a Choco, un framework per la programmazione dei vincoli implementato in java.
Recentemente ho eseguito il porting dell'ottimizzatore senza COBYLA2 di Michael Powells per le funzioni oggettive non lineari e i vincoli su Java. Troverai il codice sorgente here.
- 1. ottimizzazione vincolata in R
- 2. Come tracciare una funzione multivariata in Python?
- 3. minimizzazione multivariata, funzione derivabile utilizzando scipy.optimize
- 4. Ottimizzazione Java: variabile locale o funzione chiamata
- 5. equivalente R di fmincon di MATLAB per l'ottimizzazione vincolata?
- 6. non lineare per loop
- 7. Java - Ottimizzazione tipo SAM
- 8. Questa vista non è vincolata
- 9. Densità normale multivariata in Python?
- 10. Espansione multivariata serie Taylor in Mathematica
- 11. Ottimizzazione Bubble Sort (Java)
- 12. Java Compiler String ottimizzazione
- 13. Regressione multivariata RANSAC
- 14. ottimizzazione in funzione SingleOrDefault di Linq
- 15. Ottimizzazione della funzione di trasposizione dell'array
- 16. definizione Concetto che richiede una funzione di membro template vincolata
- 17. Il prefisso "sonar" per l'elemento "sonar: sonar" non è vincolata
- 18. Ottimizzazione Javascript con `nuova funzione()`
- 19. contesto:. Component-scan" non è vincolata
- 20. multivariata normale CDF in Python utilizzando SciPy
- 21. Strana ottimizzazione delle condizioni "if" in Java
- 22. ottimizzazione della dimensione in memoria java
- 23. Domanda di ottimizzazione rapida Java
- 24. Libreria di programmazione non lineare in C++
- 25. Ottimizzazione del compilatore: bytecode Java
- 26. Utilizzo di CUDA per risolvere un sistema di equazioni in modo non lineare lineare al quadrato
- 27. Algoritmo lineare per MST
- 28. C++: funzione di ottimizzazione senza effetti collaterali
- 29. Tabella di ricerca lineare a tratti lineare
- 30. Ottimizzazione dello spazio di heap Java
Hai guardato Apache Commons Math? Mi sembra di ricordare alcune utilità di ottimizzazione non lineari ... –
potresti fornire un esempio del tipo di problema che stai cercando di risolvere? –
Il problema che vuoi risolvere ha variabili discrete o variabili continue? – willem