2010-10-17 7 views
9

Ich überprüfe eine einfache Moving-Average-Crossing-Strategie in R. Statt eine riesige Simulation über den zweidimensionalen Parameterraum zu machen (Länge des kurzfristigen gleitenden Durchschnitts, Länge des langfristigen gleitenden Durchschnitts), Möchte ich den Particle Swarm Optimization Algorithmus implementieren, um die optimalen Parameterwerte zu finden. Ich habe im Internet gestöbert und gelesen, dass dieser Algorithmus sehr effektiv ist. Außerdem fasziniert mich die Art, wie der Algorithmus arbeitet ...Implementierung des Particle Swarm Optimization Algorithmus in R

Hat jemand von euch Erfahrung mit der Implementierung dieses Algorithmus in R? Gibt es nützliche Pakete, die verwendet werden können?

Vielen Dank für Ihre Kommentare.

Martin

Antwort

17

Nun, es ist ein Paket auf CRAN verfügbar pso genannt, und in der Tat ist es ein Partikel-Schwarm-Optimierer (PSO).

Ich empfehle dieses Paket.

Es steht unter aktiver Entwicklung (letzte Aktualisierung 22. September 2010) und stimmt mit der reference implementation für PSO überein. Darüber hinaus enthält das Paket Funktionen zur Diagnose und zum Plotten von Ergebnissen.

Es scheint sicherlich ein anspruchsvolles Paket noch die Hauptfunktion Schnittstelle (die Funktion psoptim) ist einfach - nur einige Parameter, die Ihre Problemdomäne beschreiben, und eine Kostenfunktion übergeben.

genauer gesagt, die Hauptargumente in passieren, wenn Sie anrufen psoptim:

  • Dimensionen des Problems, als ein Vektor (par);

  • untere und obere Grenzen für jede Variable (unteren, oberen); und

  • eine Kostenfunktion (fn )

Es gibt auch andere Parameter im psoptim Methodensignatur; diese beziehen sich im Allgemeinen auf Konvergenzkriterien und Ähnliches).

Gibt es noch andere PSO-Implementierungen in R?

Es gibt ein R-Paket mit der Bezeichnung ppso für (paralleles PSO). Es ist auf R-Forge verfügbar. Ich weiß nichts über dieses Paket; Ich habe es heruntergeladen und die Dokumentation überflogen, aber das war's.

Jenseits dieser beiden, keine, denen ich bewusst bin. Vor etwa drei Monaten habe ich nach R-Implementierungen der populäreren Meta-Heuristiken gesucht. Dies ist die einzige pso-Implementierung, die mir bekannt ist. Die R-Bindungen an die Gnu Scientific Library GSL) haben einen simulierten Annealing-Algorithmus, aber keine der biologisch inspirierten Meta-Heuristiken.

Der andere Ort zu suchen ist natürlich der CRAN Task View für die Optimierung.Ich habe keine andere PSO-Implementierung gefunden, außer dem, was ich hier gesagt habe, obwohl dort einige Pakete aufgelistet sind und die meisten von ihnen habe ich nicht überprüft, außer dem Namen und der Zusammenfassung eines Satzes zu schauen.

+1

gibt es auch Robuste Regression mit Particle Swarm Optimization in R: http://comisef.wikidot.com/tutorial:roustregression mit heuristics –