Optimization Toolbox

 

Optimization Toolbox

Lineare, quadratische, konische, ganzzahlige und nicht lineare Optimierungsprobleme lösen

Jetzt beginnen:

Definieren von Optimierungsproblemen

Modellieren Sie ein Entwurfs- oder Entscheidungsproblem als Optimierungsproblem. Legen Sie die Entwurfsparameter und Entscheidungen als Optimierungsvariablen fest. Nutzen Sie sie dann zum Definieren einer zu optimierenden Zielfunktion und begrenzen Sie mögliche Variablenwerte mithilfe von Nebenbedingungen.

Problembasierte Optimierung

Schreiben Sie Zielfunktionen und Nebenbedingungen mithilfe von entsprechenden Ausdrücken aus Optimierungsvariablen. Lösen Sie Probleme schneller und robuster durch die automatische Differenzierung der nicht linearen Ausdrücke. Wenden Sie einen automatisch ausgewählten Solver an. Erstellen und lösen Sie das Problem interaktiv mit dem Live Editor Task „Optimize“ und erzeugen Sie dann Code, um ihn freizugeben oder in Ihrer Anwendung einzusetzen.

Solver-basierte Optimierung

Schreiben Sie nicht lineare Zielfunktionen und Nebenbedingungen mithilfe von Funktionen; nutzen Sie Koeffizientenmatrizen für lineare Zielfunktionen und Nebenbedingungen. Erstellen und lösen Sie das Problem interaktiv mit dem Optimize Live Editor Task und erzeugen Sie dann Code, um ihn freizugeben oder in Ihrer Anwendung einzusetzen.

Lösen von Optimierungsproblemen

Wenden Sie einen Solver auf das Optimierungsproblem an, um eine optimale Lösung zu finden: eine Menge aus Optimierungsvariablenwerten, die den optimalen Wert der Zielfunktion liefern und gleichzeitig alle vorhandenen Nebenbedingungen erfüllen.

Auswählen eines Solvers

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.

Setzen von Optionen

Geben Sie Optionen zur Feinjustierung des Optimierungsprozesses an, beispielsweise, um den vom Solver genutzten Optimierungsalgorithmus zu wählen oder um Abbruchbedingungen festzulegen. Setzen Sie Optionen, um den Fortschritt des Optimierungssolvers zu überwachen und grafisch darzustellen.

Überprüfen und Verbessern von Ergebnissen

Überprüfen Sie die Meldung am Ende des Solverdurchlaufs, Optimalitätskriterien und die iterative Darstellung zur Beurteilung der Qualität der Lösung. Steigern Sie die Geschwindigkeit bei nicht linearen Problemen durch automatische Differenziation, Angabe von Gradienten oder durch Gradientenschätzung mittels paralleler Verarbeitung.

Überwachung des Solver-Fortschritts mit der iterativen Darstellung

Überwachung des Solver-Fortschritts mit der iterativen Darstellung.

Nicht lineare Programmierung

Lösen Sie Optimierungsprobleme, die eine nicht lineare Zielfunktion haben oder nicht linearen Nebenbedingungen unterliegen.

Solver

Wenden Sie Quasi-Newton-, Trust-Region- oder Nelder-Mead-Simplex-Algorithmen an, um Probleme ohne Nebenbedingungen zu lösen. Für Probleme mit Nebenbedingungen stehen hingegen Innere-Punkte-, SQP- (sequentiell quadratische Programmierung) oder Trust-Region-Reflective-Algorithmen zur Verfügung.

Anwendungen

Mithilfe der nicht linearen Optimierung können Sie Parameter schätzen und anpassen, optimale Entwürfe finden, optimale Trajektorien berechnen, robuste Portfolios zusammenstellen und weitere Problemstellungen lösen, bei denen eine nicht lineare Beziehung zwischen Variablen besteht.

Lineare, quadratische und konische Programmierung

Lösen Sie Optimierungsprobleme, die eine lineare oder konvexe quadratische Zielfunktion haben und linearen Nebenbedingungen oder solchen eines Kegels der zweiten Ordnung unterliegen.

Solver zur linearen Programmierung

Wenden Sie Duale-Simplex- oder Innere-Punkte-Algorithmen an, um lineare Programme zu lösen.

Optimale Lösung

Ausführbarer Bereich und optimale Lösung eines linearen Programms.

Solver zur quadratischen Programmierung und der von Kegeln zweiter Ordnung

Wenden Sie Innere-Punkte-, Active-Set- oder Trust-Region-Reflective-Algorithmen an, um quadratische Programme zu lösen. Nutzen Sie Innere-Punkte-Methoden zur Lösungen von Programmen mit Kegeln zweiter Ordnung.

Optimale Lösung

Ausführbarer Bereich und optimale Lösung eines quadratischen Programms.

Anwendungen

Mithilfe der linearen Programmierung lassen sich Probleme im Bereich Ressourcenzuteilung, Produktionsplanung, Blending und Investmentplanung lösen. Die quadratische Programmierung bzw. die mit Kegeln zweiter Ordnung hingegen findet Anwendung in der Entwurfs- und Portfolio-Optimierung oder in der Steuerung von Wasserkraftwerken.

Betriebsplan für eine hydroelektrische Anlage

Bestimmung der optimalen Steuerungsstrategie durch quadratische Programmierung.

Gemischt-ganzzahlige lineare Programmierung

Lösen Sie Optimierungsprobleme mit linearen Zielfunktionen und linearen Nebenbedingungen, bei denen zusätzlich gefordert ist, dass einige oder alle Variablen ganzzahlige Werte annehmen müssen.

Solver

Lösen Sie gemischt-ganzzahlige lineare Programmierungsprobleme mit einem Branch-and-Bound-Algorithmus, der eine Vorverarbeitung, Heuristiken zum Generieren zulässiger Punkte sowie Schnittebenen umfasst.

Optimale Lösung

Anwendung eines Branch-and-Bound-Algorithmus. 

Algorithmen basierend auf der gemischt-ganzzahligen linearen Programmierung

Mit dem Solver für die gemischt-ganzzahlige lineare Programmierung können Sie Algorithmen für spezielle Anwendungsfälle entwickeln.

Lösung des Problems des Handlungsreisenden für 200 Städte

Kürzeste Route, bei der jede Stadt nur einmal besucht wird.

Anwendungen

Modellieren Sie mit ganzzahligen Variablen, wenn Ein/Aus-Entscheidungen getroffen werden sollen oder logische Nebenbedingungen vorliegen und wenn Variablen nur ganzzahlige Werte annehmen dürfen. Zu den typischen Anwendungsfällen zählen Routing, Scheduling, Planung, Zuordnung und die Investitionsplanung.

Optimaler Zeitplan für Stromaggregate

Zeitplan für zwei Stromgeneratoren bei variierenden Strompreisen.

Mehrziel-Optimierung

Lösen Sie Optimierungsprobleme, die mehrere Zielfunktionen besitzen, die einer Reihe von Nebenbedingungen unterliegen.

Solver

Formulieren Sie Probleme entweder als Zielerreichungs- oder als Minimax-Aufgabe. Nutzen Sie das Zielerreichungsverfahren, wenn es optional gewichtete Zielwerte für jede der Zielfunktionen gibt. Nutzen Sie hingegen das Minimax-Verfahren, um den ungünstigsten Wert einer Reihe von Zielfunktionen zu minimieren.

Pareto-Diagramm

Ergebnis des Durchlaufens einer Pareto-Front mit fgoalattain.

Anwendungen

Die Mehrziel-Optimierung bietet sich an, wenn zwei oder mehr gegensätzliche Ziele gewisse Kompromisse erfordern. Beispiele sind das Gewicht und die Festigkeit bei der Statikplanung oder das Risiko und die Rendite bei der Portfolio-Optimierung.

FIR-Filterdesign

Amplitudengang für anfängliche und optimierte Filterkoeffizienten.

Kleinste-Quadrate-Probleme und Gleichungen

Lösen Sie nicht lineare Kleinste-Quadrate-Probleme und nicht lineare Gleichungssysteme mit oberen und unteren Schranken. Lösen Sie lineare Kleinste-Quadrate-Probleme mit oberen und unteren Schranken und linearen Nebenbedingungen.

Nicht lineare Datenanpassung

Vergleich von lokalen und globalen Ansätzen.

Lineare Kleinste-Quadrate-Anwendungen

Nutzen Sie lineare Kleinste-Quadrate-Solver, um ein lineares Modell an erfasste Daten anzupassen oder um ein lineares Gleichungssystem zu lösen, auch wenn die Parameter obere und untere Schranken besitzen und linearen Nebenbedingungen unterliegen.

Optische Schärfung

Behebung eines unscharfen Bilds durch Lösen eines linearen Kleinste-Quadrate-Problems.

Nicht lineare Kleinste-Quadrate-Anwendungen

Nutzen Sie nicht lineare Kleinste-Quadrate-Solver, um ein nicht lineares Modell an erfasste Daten anzupassen oder um ein nicht lineares Gleichungssystem zu lösen, auch wenn die Parameter obere und untere Schranken besitzen.

Anpassen einer Kreisbahn an das Lorenz-System.

Anpassen einer Kreisbahn an das Lorenz-System von gewöhnlichen Differenzialgleichungen.

Bereitstellung

Entwickeln Sie optimierungsbasierte Entscheidungsfindungs- und Entwurfstools, integrieren Sie sie in Unternehmenssysteme und stellen Sie Optimierungsalgorithmen in eingebetteten Systemen bereit.

Unterstützung für MATLAB Compiler

Mit MATLAB Compiler™ und MATLAB Compiler SDK™ können Sie MATLAB®-Optimierungsmodelle als eigenständig ausführbare Dateien, Web-Apps, C/C++ Shared Libraries, Microsoft®.NET Assemblies, Java®-Klassen und Python®-Pakete bereitstellen.

Unit_Commitment-App

App zum Festlegen des optimalen Zeitplans zur Stromerzeugung.

Codegenerierung

Generieren Sie portablen und lesbaren C oder C++ Code zur Lösung von Optimierungsproblemen mit MATLAB Coder™. Kompilieren Sie den generierten Code für jede Hardware, einschließlich eingebetteter Systeme.

MATLAB Coder-Bericht

MATLAB Coder-Bericht zu einer Trajektorienoptimierungsfunktion.