Optimization Toolbox
Risoluzione di problemi di ottimizzazione lineare, quadratica, conica, intera e non lineare
Domande? Contattaci.
Domande? Contattaci.
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
Applica algoritmi del simplesso duale o di tipo interior-point per risolvere programmi lineari.
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.
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.
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.
Usa il risolutore di programmazione lineare mista intera per costruire algoritmi specifici.
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.
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.
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.
Applica algoritmi Levenberg-Marquardt, trust-region, active-set o interior-point.
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.
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, lineari e non lineari.
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®.
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.