Kann eine Funktion mit optim(par = init)
optimiert werden, mit der Einschränkung, dass der Parametervektor immer in aufsteigender Reihenfolge ist? Zum Beispiel wäre c(1,2,8)
erlaubt, aber c(1,2,0)
wäre nicht erlaubt?Parameternummern in Optimieren einschränken
Antwort
können Sie constrOptim()
verwenden, welche lineare Einschränkungen umgehen kann:
constrOptim(theta=c(..), f=.., grad=NULL,
ui=matrix(c(-1,1,0, 0,-1,1), 2, byrow=TRUE), ci=c(0, 0))
Gibt es Gefahren bei der Verwendung des Nelder-Mead impliziert durch "grad = NULL" anstatt "BFGS" in "optim" zu verwenden, wie es für Otto_Ks Antwort möglich wäre? Es scheint, dass ich BFGS nicht verwenden kann, ohne einen Gradienten mit 'constrOptim' zu berechnen, aber ich kann unter 'optim'. – Hatshepsut
Ich nehme an, die Gefahr ist geringer als in der Antwort von Otto_K (Manipulation der Zielfunktion zur Diskontinuität). BFGS ist eine Methode, um einen Proxy für den Hessian Schritt für Schritt aus Gradienten zu konstruieren. Ein Gradient kann pro endlichen Differenzen angenähert werden. – jogo
Sie haben diese Bedingung in der Optimierungsfunktion enthalten:
Wenn Ihre Funktion zu maximieren:
fn<-function(x,y,z){
-x^2-(1+y)^2-(z-y)^2
}
Sie müssen es ändern:
fn<-function(x,y,z){
if(x<y&&y<z){
return(-x^2-(1+y)^2-(z-y)^2)
}
else{
return(-Inf)
}
}
Jetzt können Sie Optimiere diese Funktion.
Dies ist nicht mehr kontinuierlich und differenzierbar. Das kann Probleme verursachen. –
Dies ist bei der Restriktionsoptimierung immer der Fall. Monte Carlo Optimierung kann jedoch helfen, dieses Problem zu vermeiden: Optim (par = init, Methode = "SANN") –
Das ist eine dumme Aussage. Eine LP gilt als kontinuierlich und differenzierbar. Das Ziel und jede Einschränkung ist kontinuierlich und differenzierbar. –
- 1. Datenbankgröße einschränken
- 2. Optimieren von SPARQL-Abfragen in MarkLogic
- 3. einschränken Dependency Injection in-Modulabhängigkeiten
- 4. Einschränken der Zeicheneingabe in C++
- 5. Einschränken der Zufallszahlengenerierung in Python
- 6. Einschränken der Bearbeitung in RichTextBox
- 7. Einschränken von Benutzerdownloads in Azure
- 8. Laufzeit in SICStus Prolog einschränken
- 9. Bildformat in WindowsForms einschränken Datenvisualisierungstabelle
- 10. FileDialog-Ordner einschränken
- 11. Einschränken von PHP-Sitzungsvariablen
- 12. Größe einschränken UITextField
- 13. Benutzereingaben mit Javascript einschränken
- 14. Einschränken von Datentypen
- 15. Einschränken der SWF-Dateisichtbarkeit
- 16. jQuery Eingabebereich einschränken
- 17. Update einschränken Spalte
- 18. einschränken JScrollPane Ansichtsbreite
- 19. DataGridView Benutzereingaben einschränken
- 20. WCF optimieren
- 21. ViewState optimieren
- 22. Zählen optimieren?
- 23. Optimieren von Datumsabfragen in Postgresql
- 24. Optimieren GROUP BY in hsqldb
- 25. Rendering in ActionScript 3 optimieren
- 26. Optimieren Hierarchie Abfrage in Oracle
- 27. Optimieren der Speichernutzung in numpy
- 28. Optimieren SQL-Abfrage in PostgreSQL
- 29. einschränken Abschnitt Vererbung in ASP.NET web.config
- 30. Einschränken von AD-Gruppen in web.config
, dass lineare Zwänge sind, die in 'constrOptim() behandelt werden kann'. Siehe auch CRAN TaskView https://cran.r-project.org/web/views/Optimization.html – jogo
@jogo Toller Tipp, danke! – Hatshepsut