Optimization Toolbox™ offre funzioni al fine di trovare parametri in grado di minimizzare o massimizzare gli obiettivi e allo stesso tempo soddisfare i vincoli. Il toolbox include risolutori per la programmazione lineare (LP), la programmazione lineare mista intera (MILP), la programmazione quadratica (QP), la programmazione a cono di secondo ordine (SOCP), la programmazione non lineare (NLP), i minimi quadrati lineari vincolati, i minimi quadrati non lineari e le equazioni non lineari.
È possibile definire il proprio problema di ottimizzazione mediante l’uso di funzioni e matrici oppure specificando espressioni variabili che riflettano la matematica sottostante. È possibile usare la derivazione automatica delle funzioni obiettivo e di vincolo per soluzioni più rapide e più accurate.
I risolutori di questo toolbox si possono utilizzare per trovare soluzioni ottimali a problemi continui e discreti, per eseguire l’analisi di bilanciamento e incorporare metodi di ottimizzazione in algoritmi e applicazioni. Il toolbox consente di eseguire attività di ottimizzazione di un progetto, come la stima dei parametri, la selezione dei componenti e la regolazione dei parametri. Consente anche di trovare soluzioni ottimali nelle applicazioni, come l’ottimizzazione del portafoglio, la gestione e il trading dell’energia e la pianificazione di produzione.
Inizia ora:
Definizione dei problemi di ottimizzazione
Modella un problema decisionale o di progettazione come un problema di ottimizzazione. Imposta le decisioni e i parametri di progettazione come variabili di ottimizzazione. Usa questi dati nella definizione di una funzione obiettivo per l’ottimizzazione e usa dei vincoli per limitare i possibili valori variabili.
Modellazione
Trasforma la descrizione di un problema in forma matematica definendo variabili, obiettivi e vincoli, in modo da poter procedere alla soluzione con tecniche di ottimizzazione.
Ottimizzazione basata su problemi
Scrivi obiettivi e vincoli usando espressioni di variabili di ottimizzazione. Risolvi i problemi in modo più rapido ed efficace applicando la derivazione automatica sulle espressioni non lineari. Applica un risolutore selezionato automaticamente. Crea e risolvi il problema in modo interattivo con l’attività Optimize di Live Editor, poi genera codice da condividere o usare nella tua applicazione.
Ottimizzazione basata su risolutori
Scrivi obiettivi e vincoli non lineari usando le funzioni; scrivi obiettivi e vincoli lineari usando le matrici di coefficienti. Crea e risolvi il problema in modo interattivo con l’attività Optimize di Live Editor, poi genera codice da condividere o usare nella tua applicazione.
Scelta del risolutore
Utilizza l’attività Optimize di Live Editor con l’approccio basato sui problemi o basato sui risolutori per scegliere un risolutore adatto al tipo di problema.
Impostazione delle opzioni
Imposta le opzioni di ottimizzazione per regolare il processo di ottimizzazione, ad esempio per scegliere l’algoritmo di ottimizzazione usato dal risolutore oppure per impostare le condizioni di conclusione. Imposta le opzioni per monitorare e tracciare i progressi del risolutore di ottimizzazione.
Verifica e miglioramento dei risultati
Verifica i messaggi di chiusura, le misure di ottimalità e la visualizzazione iterativa per valutare la soluzione. Migliora le prestazioni per i problemi non lineari adottando la derivazione automatica, aggiungendo dei gradienti o usando il calcolo parallelo per stimare i gradienti.
Risolutori
Applica algoritmi del simplesso Nelder-Mead, trust-region o quasi-Newton per risolvere problemi senza vincoli. Applica algoritmi di tipo interior-point, di programmazione quadratica sequenziale (SQP) o trust-region-reflective per risolvere problemi con vincoli.
Applicazioni
Usa l’ottimizzazione non lineare per stimare e regolare i parametri, individuare le progettazioni ottimali, calcolare le traiettorie ottimali, costruire portafogli robusti e altre applicazioni in cui le variabili sono collegate da un rapporto non lineare.
Risolutori per la programmazione lineare
Applica algoritmi del simplesso duale o di tipo interior-point per risolvere programmi lineari.
Risolutori per la programmazione quadratica e conica di secondo ordine
Applica algoritmi di tipo interior-point, active-set o trust-region-reflective per risolvere programmi quadratici. Applica metodi interior-point per risolvere programmi conici di secondo ordine.
Applicazioni
Usa la programmazione lineare per problemi quali l’allocazione delle risorse, la pianificazione della produzione, il blending e la pianificazione degli investimenti. Usa la programmazione quadratica e conica di secondo ordine per problemi quali l’ottimizzazione di progettazione, l’ottimizzazione del portafoglio e il controllo delle centrali idroelettriche.
Risolutori
Risolvi problemi di programmazione lineare mista intera usando l’algoritmo Branch and Bound, che include la pre-elaborazione, l’euristica per la generazione di punti praticabili e i piani di taglio.
Algoritmi basati sulla programmazione lineare mista intera
Usa il risolutore di programmazione lineare mista intera per costruire algoritmi specifici.
Applicazioni
Modella con le variabili intere in presenza di decisioni on/off o vincoli logici, nonché quando i valori delle variabili devono essere integrali. Tra le applicazioni tipiche compaiono problemi di routing, programmazione, pianificazione, assegnazione e capital budgeting.
Risolutori
Formula problemi di tipo goal-attainment o minimax. Usa la versione goal-attainment in presenza di valori obiettivo opzionalmente ponderati per ciascuno degli obiettivi. Usa la versione minimax per minimizzare il valore di caso peggiore di una serie di funzioni obiettivo.
Applicazioni
Usa l’ottimizzazione multiobiettivo quando sono necessari dei tradeoff per obiettivi in conflitto. Degli esempi possono essere il peso e la forza nella progettazione strutturale e il rischio e la redditività nell’ottimizzazione del portafoglio.
Risolutori
Applica algoritmi Levenberg-Marquardt, trust-region, active-set o interior-point.
Applicazioni dei minimi quadrati lineari
Usa i risolutori dei minimi quadrati lineari per adattare un modello lineare a dei dati acquisiti o per risolvere un sistema di equazioni lineari, compresi i casi in cui i parametri sono soggetti a vincoli di limite e lineari.
Applicazioni dei minimi quadrati non lineari
Usa i risolutori dei minimi quadrati non lineari per adattare un modello non lineare a dei dati acquisiti o per risolvere un sistema di equazioni non lineari, compresi i casi in cui i parametri sono soggetti a vincoli di limite.
Supporto per MATLAB Compiler
Usa MATLAB Compiler™ e MATLAB Compiler SDK™ per distribuire modelli di ottimizzazione MATLAB® come eseguibili standalone, app per il web, librerie condivise C/C++, assembly Microsoft® .NET, classi Java® e pacchetti Python®.
Generazione di codice
Genera codice C o C++ portabile e leggibile per risolvere problemi di ottimizzazione utilizzando MATLAB Coder™. Compila il codice generato per qualsiasi hardware, compresi i sistemi embedded.