Sind Sie bei Ihren Computerexperimenten jemals auf einen Engpass gestoßen? Sind Sie es leid, geeignete Parameter für eine ausgewählte Technik auszuwählen? Wenn ja, ist Opytimizer genau das Richtige! Dieses Paket bietet eine einfache Implementierung metaheuristischer Optimierungen. Von Agenten bis zum Suchraum, von internen Funktionen bis zur externen Kommunikation fördern wir alle Forschungsarbeiten im Zusammenhang mit der Optimierung.
Verwenden Sie Opytimizer, wenn Sie eine Bibliothek benötigen oder Folgendes möchten:
Lesen Sie die Dokumente unter opytimizer.readthedocs.io.
Opytimizer ist kompatibel mit: Python 3.6+ .
Wenn Sie Opytimizer zur Erfüllung Ihrer Anforderungen verwenden, nennen Sie uns bitte:
@misc { rosa2019opytimizer ,
title = { Opytimizer: A Nature-Inspired Python Optimizer } ,
author = { Gustavo H. de Rosa, Douglas Rodrigues and João P. Papa } ,
year = { 2019 } ,
eprint = { 1912.13002 } ,
archivePrefix = { arXiv } ,
primaryClass = { cs.NE }
}
Erstens. Wir haben Beispiele. Ja, sie sind kommentiert. Navigieren Sie einfach zu examples/
, wählen Sie Ihr Unterpaket aus und folgen Sie dem Beispiel. Wir haben für die meisten Aufgaben, die uns einfallen, erstklassige Beispiele und erstaunliche Integrationen (Learnergy, NALP, OPFython, PyTorch, Scikit-Learn, Tensorflow).
Alternativ, wenn Sie noch mehr erfahren möchten, nehmen Sie sich bitte eine Minute Zeit:
Opytimizer basiert auf der folgenden Struktur, und Sie sollten auf seinen Baum achten:
- opytimizer
- core
- agent
- block
- cell
- function
- node
- optimizer
- space
- functions
- constrained
- multi_objective
- math
- distribution
- general
- hyper
- random
- optimizers
- boolean
- evolutionary
- misc
- population
- science
- social
- swarm
- spaces
- boolean
- graph
- grid
- hyper_complex
- pareto
- search
- tree
- utils
- callback
- constant
- exception
- history
- logging
- visualization
- convergence
- surface
Kern ist der Kern. Im Wesentlichen ist es das übergeordnete Element von allem. Sie sollten übergeordnete Klassen finden, die die Grundlage unserer Struktur definieren. Sie sollten Variablen und Methoden bereitstellen, die beim Aufbau anderer Module helfen.
Probieren Sie dieses Modul aus, anstatt einfache und unkomplizierte Funktionen zu verwenden. Verfassen Sie abstrakte Funktionen auf hoher Ebene oder sogar neue funktionsbasierte Ideen, um Ihre Probleme zu lösen. Beachten Sie, dass wir vorerst nur Strategien mit mehreren Zielfunktionen unterstützen.
Nur weil wir mit Computern beschäftigt sind, heißt das nicht, dass wir keine Mathematik brauchen. Math ist das mathematische Paket, das mathematische Implementierungen auf niedriger Ebene enthält. Von Zufallszahlen bis hin zur Verteilungsgenerierung finden Sie in diesem Modul Ihre Anforderungen.
Deshalb heißen wir Opytimizer. Dies ist das Herzstück der Heuristik, wo Sie eine große Anzahl von Meta-Heuristiken, Optimierungstechniken und allem, was man als Optimierer bezeichnen kann, finden. Bitte werfen Sie einen Blick auf die verfügbaren Optimierer.
Man kann den Raum als den Ort betrachten, an dem Agenten ihre Positionen aktualisieren und eine Fitnessfunktion bewerten. Die neuesten Ansätze könnten jedoch einen anderen Raumtyp berücksichtigen. Vor diesem Hintergrund unterstützen wir gerne vielfältige Raumumsetzungen.
Dies ist ein Utility-Paket. Gemeinsame Dinge, die in der gesamten Anwendung gemeinsam sind, sollten hier implementiert werden. Es ist besser, es einmal zu implementieren und nach Belieben zu verwenden, als dasselbe immer wieder zu implementieren.
Jeder braucht Bilder und Darstellungen, um zu visualisieren, was passiert, richtig? Dieses Paket stellt Ihnen alle visuellen Methoden zur Verfügung. Überprüfen Sie die Konvergenz einer bestimmten Variablen, die Konvergenz Ihrer Fitnessfunktionen, zeichnen Sie Benchmark-Funktionsoberflächen und vieles mehr!
Wir glauben, dass alles einfach sein muss. Opytimizer ist nicht knifflig oder entmutigend, sondern das One-to-go-Paket, das Sie benötigen, von der ersten Installation bis zu den täglichen Aufgaben zur Implementierung Ihrer Anforderungen. Wenn Sie einfach Folgendes in Ihrer bevorzugten Python-Umgebung (raw, conda, virtualenv, was auch immer) ausführen möchten:
pip install opytimizer
Wenn Sie alternativ lieber die neueste Version installieren möchten, klonen Sie bitte dieses Repository und verwenden Sie:
pip install -e .
Beachten Sie, dass manchmal eine zusätzliche Implementierung erforderlich ist. Bei Bedarf erfahren Sie von hier aus alle Details.
Es sind keine spezifischen zusätzlichen Befehle erforderlich.
Es sind keine spezifischen zusätzlichen Befehle erforderlich.
Es sind keine spezifischen zusätzlichen Befehle erforderlich.
Schauen Sie sich ein schnelles Arbeitsbeispiel von Opytimizer an. Beachten Sie, dass wir der Prozedur nicht viele zusätzliche Argumente oder zusätzliche Informationen übergeben. Komplexere Beispiele finden Sie in unserem examples/
Ordner.
import numpy as np
from opytimizer import Opytimizer
from opytimizer . core import Function
from opytimizer . optimizers . swarm import PSO
from opytimizer . spaces import SearchSpace
def sphere ( x ):
return np . sum ( x ** 2 )
n_agents = 20
n_variables = 2
lower_bound = [ - 10 , - 10 ]
upper_bound = [ 10 , 10 ]
space = SearchSpace ( n_agents , n_variables , lower_bound , upper_bound )
optimizer = PSO ()
function = Function ( sphere )
opt = Opytimizer ( space , optimizer , function )
opt . start ( n_iterations = 1000 )
Wir wissen, dass wir unser Bestes geben, aber es ist unvermeidlich, anzuerkennen, dass wir Fehler machen. Wenn Sie jemals einen Fehler oder ein Problem melden müssen oder mit uns sprechen möchten, tun Sie dies bitte! Wir werden in diesem Repository unser Bestes geben.