Optimization Toolbox™ bietet Funktionen zum Bestimmen von Parametern, die eine Zielfunktion minimieren bzw. maximieren und gleichzeitig die Nebenbedingungen erfüllen. Die Toolbox enthält Solver für lineare Programmierung (LP), gemischt-ganzzahlige lineare Programmierung (MILP), quadratische Programmierung (QP), Programmierung eines Kegels der zweiten Ordnung (SOCP), nichtlineare Programmierung (NLP), lineare kleinste Quadrate mit Nebenbedingungen, nicht lineare kleinste Quadrate und nicht lineare Gleichungen.
Sie können Ihr Optimierungsproblem mit Funktionen und Matrizen definieren oder Variablenausdrücke angeben, die die zugrundeliegende Mathematik wiedergeben. Mithilfe der automatischen Differenziation von Ziel- und Nebenbedingungsfunktionen erhalten Sie schnellere und genauere Lösungen.
Mit den Toolbox-Solvern können Sie optimale Lösungen für kontinuierliche und diskrete Probleme finden, Trade-Off-Analysen ausführen und Optimierungsmethoden in Algorithmen und Anwendungen integrieren. Mit der Toolbox können Sie Entwurfsoptimierungsaufgaben ausführen, wie z. B. Parameterschätzung, Komponentenauswahl und Parameteroptimierung. Sie können damit auch optimale Lösungen in Anwendungen wie Portfolio-Optimierung, Energieverwaltung und -handel sowie Produktionsplanung finden.
Jetzt beginnen:
KOSTENLOSE CHEATSHEETS
9 MATLAB Cheat Sheets für Data Science und Machine Learning
Cheatsheets hinzuziehenDefinieren 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.
Modellierung
Überführen Sie eine Problembeschreibung in eine mathematische Form, indem Sie Variablen, eine Zielfunktion und Nebenbedingungen definieren, sodass das Problem mithilfe von Optimierungsverfahren gelöst werden kann.
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.
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.
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.
Solver zur linearen Programmierung
Wenden Sie Duale-Simplex- oder Innere-Punkte-Algorithmen an, um lineare Programme zu lösen.
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.
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.
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.
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.
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.
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.
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.
Solver
Wenden Sie Levenberg-Marquardt-, Trust-Region-, Active-Set- oder Innere-Punkte-Algorithmen an.
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.
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.
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.
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.