Die Global Optimization Toolbox bietet Funktionen zur globalen Lösung von Problemen, die mehrere Maxima oder Minima umfassen. Solver in der Toolbox sind Surrogat, Pattern Search, genetischer Algorithmus, Partikelschwarm, simuliertes Annealing, MultiStart und GlobalSearch. Mit diesen Solvern können Sie Optimierungsprobleme lösen, bei denen die Zielfunktion oder die Bedingungsfunktion stetig, unstetig oder stochastisch ist oder keine Ableitungen aufweist oder Simulationen oder Black-Box-Funktionen enthält. Für Probleme mit mehreren Zielen können Sie mithilfe des genetischen Algorithmus oder des Pattern Search-Solvers eine Pareto-Front identifizieren.
Sie können die Solver-Effektivität verbessern, indem Sie Optionen anpassen und (bei einigen Solvern) die Erstellungs-, Aktualisierungs- und Suchfunktionen spezifisch anpassen. Sie können spezifisch angepasste Datentypen mit den genetischen Algorithmus- und simulierte Abkühlung-Solvern verwenden, um Probleme zu lösen, die nicht einfach mit Standarddatentypen ausgedrückt werden können. Mithilfe der Hybridfunktion können Sie eine Lösung durch Anwendung eines zweiten Solvers nach dem ersten verbessern.
Jetzt beginnen:
Modellierung und Auswahl von Optimierungsansätzen
Überführen Sie eine Problembeschreibung in eine mathematische Form, damit Sie das Problem mithilfe von Optimierungsverfahren lösen können. Wählen Sie den problembasierten Ansatz und schreiben Sie Zielfunktionen und Nebenbedingungen mithilfe von Ausdrücken aus Optimierungsvariablen. Wenden Sie dann einen automatisch ausgewählten Solver an. Entscheiden Sie sich alternativ für den Solver-basierten Ansatz, um Zielfunktionen und Nebenbedingungen mithilfe von Funktionen und Koeffizientenmatrizen zu definieren.
Angeben von Solver und Problem
Nutzen Sie den Live Editor Task „Optimize“ mit dem problembasierten oder Solver-basierten Ansatz für die Auswahl eines geeigneten Solvers für den jeweiligen Problemtyp.
Festlegen allgemeiner Optionen
Legen Sie die Stoppkriterien für den ausgewählten Solver fest. Legen Sie Toleranzen für die Optimalität und die Bedingungen fest. Beschleunigen Sie die Lösung durch Parallel Computing.
Bewerten von Zwischenergebnissen
Verwenden Sie Darstellungsfunktionen, um den Optimierungsfortschritt in Echtzeit zu verfolgen. Schreiben Sie Ihre eigenen oder verwenden Sie die bereitgestellten. Verwenden Sie Ausgabefunktionen, um Ihre eigenen Stoppkriterien zu definieren, schreiben Sie Ergebnisse in Dateien, oder schreiben Sie Ihre eigenen Apps für die Ausführung der Solver.
Vergleichen von Solvern
Verwenden Sie GlobalSearch, um mehrere Startpunkte zu generieren und sie zu filtern, bevor Sie den nichtlinearen Solver starten. Dies führt häufig zu Lösungen in hoher Qualität. Mit MultiStart können Sie lokale Solver sowie verschiedene Möglichkeiten für die Erstellung von Startpunkten wählen.
Auswählen von Optionen für GlobalSearch
Legen Sie die Anzahl der Testpunkte fest und optimieren Sie die Suche.
Auswählen von Optionen für MultiStart
Geben Sie den nichtlinearen Solver an. Wählen Sie eine Generierungsmethode für Startpunkte oder verwenden Sie einen benutzerdefinierten Satz. Beschleunigen Sie die Lösung durch Parallel Computing. |
Angeben des Problems
Lösen Sie Probleme mit endlichen Grenzbedingungen. Die Zielfunktion muss nicht differenzierbar oder stetig sein.
Auswählen von Optionen
Stellen Sie einen Satz von Anfangspunkten und optionalen Zielwerten bereit, um das anfängliche Surrogat zu erstellen. Legen Sie die Anzahl der Punkte fest, die für das Surrogat verwendet werden sollen, sowie einen minimalen Abstand zwischen den Einzelwerten. Beschleunigen Sie die Lösung durch Parallel Computing.
Pattern Search
Beginnen Sie am aktuellen Punkt und fügen Sie eine Reihe von Vektoren hinzu, um neue Testpunkte zu erhalten. Bewerten Sie die Zielfunktion der Testpunkte und nutzen Sie diese Informationen zur Aktualisierung des aktuellen Punkts. Wiederholen Sie den Vorgang, bis der aktuelle Punkt optimal ist.
Angeben des Problems
Lösen Sie Probleme ohne Bedingungen, mit Grenzbedingungen oder mit linearen oder nichtlinearen Bedingungen. Die Zielfunktion und die Bedingungsfunktion müssen nicht differenzierbar oder stetig sein. |
Auswählen von Optionen
Wählen Sie aus verschiedenen Algorithmusoptionen, um die effizienteste Lösung zu erhalten. Wählen Sie Diagrammpunkte zur Überwachung der Optimierung. Beschleunigen Sie den Prozess durch parallele Verarbeitung.
Genetischer Algorithmus
Suchen Sie nach globalen Minima, indem die Prinzipien der biologischen Evolution nachgeahmt werden. Dies geschieht durch das wiederholte Ändern einer Population von einzelnen Punkten mithilfe von Regeln, die basierend auf in der biologischen Fortpflanzung vorkommenden Genkombinationen gebildet wurden.
Angeben des Problems
Lösen Sie Probleme ohne Bedingungen, mit Grenzbedingungen oder mit linearen, nichtlinearen oder ganzzahligen Bedingungen. Die Zielfunktion und die Bedingungsfunktion müssen nicht differenzierbar oder stetig sein.
Auswählen von Optionen
Wählen Sie unter Optionen für Erstellung, Fitness-Scaling, Auswahl, Crossover und Mutation. Geben Sie die Populationsgröße, die Anzahl von Elite Children und den Crossover-Anteil an. Beschleunigen Sie die Lösung durch Parallel Computing.
Anpassen
Stellen Sie Ihre eigenen Funktionen für die Erstellung, die Auswahl und die Mutation bereit. Verwenden Sie benutzerdefinierte Datentypen, um Ihr Problem leichter zu formulieren. Wenden Sie eine zweite Optimierung an, um Lösungen zu verfeinern.
Partikelschwarm
Suchen Sie mit einem Algorithmus nach globalen Minima, der dem Verhalten von Insektenschwärmen nachempfunden ist. Jedes Partikel bewegt sich in einer Geschwindigkeit und Richtung, die vom besten Ort beeinflusst ist, den es bisher gefunden hat, und vom besten Ort, den der Schwarm gefunden hat.
Angeben des Problems
Lösen Sie Probleme ohne Bedingungen oder Probleme mit Grenzbedingungen. Die Zielfunktion muss nicht differenzierbar oder stetig sein.
Auswählen von Optionen
Optimieren Sie die Geschwindigkeitsberechnung, indem Sie die Trägheit sowie Gewichtungen für die individuelle und die soziale Anpassung festlegen. Legen Sie die Größe der Nachbarschaft fest. Beschleunigen Sie die Lösung durch Parallel Computing.
Anpassen
Stellen Sie Ihre eigene Funktion für die Erstellung des anfänglichen Schwarms bereit. Wenden Sie eine zweite Optimierung an, um Lösungen zu verfeinern. |
Simuliertes Annealing
Suchen Sie mit einem wahrscheinlichkeitstheoretischen Suchalgorithmus nach globalen Minima. Der Algorithmus bildet den physikalischen Prozess einer Glühung (Annealing) nach, bei dem ein Material erhitzt und seine Temperatur dann langsam gesenkt wird, um Defekte zu verringern, sodass die Systemenergie minimiert wird.
Angeben des Problems
Lösen Sie Probleme ohne Bedingungen oder Probleme mit Grenzbedingungen. Die Zielfunktion muss nicht differenzierbar oder stetig sein.
Auswählen von Optionen
Wählen Sie unter Optionen für Algorithmen für adaptives simuliertes Annealing, Boltzmann-Annealing oder schnelles Annealing. |
Anpassen
Erstellen Sie Funktionen, um den Annealing-Prozess, die Akzeptanzkriterien und den Temperaturplan zu definieren. Verwenden Sie benutzerdefinierte Datentypen, um Ihr Problem leichter zu formulieren. Wenden Sie eine zweite Optimierung an, um Lösungen zu verfeinern.
Vergleichen von Solvern
Verwenden Sie den Pattern Search-Algorithmus mit mehreren Zielen, um eine Pareto-Front mit weniger Funktionsevaluierungen zu generieren als mit dem genetischen Algorithmus mit mehreren Zielen. Der genetische Algorithmus generiert möglicherweise weiter auseinanderliegende Punkte.
Auswählen von Optionen für Pattern Search
Stellen Sie einen Satz von Anfangspunkten bereit. Geben Sie die gewünschte Größe der Pareto-Menge, den Polling-Mindestanteil und die Umfangsänderungs-Toleranz an. Stellen Sie automatisch Pareto-Fronten in 2D und 3D dar. Beschleunigen Sie die Lösung durch Parallel Computing. |
Festlegen von Optionen für den genetischen Algorithmus
Geben Sie den Anteil der Individuen an, die in der Pareto-Front mit höchstem Rang verbleiben sollen. Stellen Sie automatisch Pareto-Fronten in 2D dar. Beschleunigen Sie die Lösung durch Parallel Computing. |