Optimization Toolbox

 

Optimization Toolbox

Risoluzione di problemi di ottimizzazione lineare, quadratica, conica, intera e non lineare

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.

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.

Risoluzione dei problemi di ottimizzazione

Applica un risolutore al problema di ottimizzazione per trovare la soluzione ottimale: una serie di valori variabili di ottimizzazione in grado di produrre il valore ottimale della funzione obiettivo, se presente, e rispettino i vincoli, se presenti.

Scelta del risolutore

Usa l’attività Optimize di Live Editor per aiutarti a scegliere un risolutore adatto al tipo di problema quando usi l’approccio basato su risolutori. Quando si implementa l’approccio basato su problemi, il risolutore viene selezionato automaticamente.

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.

Monitoraggio dei progressi del risolutore con la visualizzazione iterativa

Monitoraggio dei progressi del risolutore con la visualizzazione iterativa.

Programmazione non lineare

Risolvi problemi di ottimizzazione che presentano un obiettivo non lineare o sono soggetti a vincoli non lineari.

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.

Programmazione lineare, quadratica e conica

Risolvi problemi di ottimizzazione convessa che presentano obiettivi quadratici o lineari e che sono soggetti a vincoli lineari o conici di secondo ordine.

Risolutori per la programmazione lineare

Applica algoritmi del simplesso duale o di tipo interior-point per risolvere programmi lineari.

Soluzione ottimale

Regione praticabile e soluzione ottimale per un programma lineare.

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.

Soluzione ottimale

Regione praticabile e soluzione ottimale per un programma quadratico.

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.

Piano operativo di una centrale idroelettrica

Strategia di controllo ottimale trovata grazie alla programmazione quadratica.

Programmazione lineare mista intera

Risolvi problemi di ottimizzazione che presentano obiettivi lineari soggetti a vincoli lineari, con l’ulteriore vincolo per cui alcune o tutte le variabili devono avere un valore intero.

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.

Soluzione ottimale

Applicazione dell’algoritmo Branch and Bound. 

Algoritmi basati sulla programmazione lineare mista intera

Usa il risolutore di programmazione lineare mista intera per costruire algoritmi specifici.

Soluzione al problema di un venditore che deve visitare 200 città

Tragitto più breve per passare da ogni città una sola volta.

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.

Programmazione ottimale per i generatori

Programmazione per due generatori con prezzi dell’elettricità variabili.

Ottimizzazione multiobiettivo

Risolvi problemi di ottimizzazione che hanno funzioni multiobiettivo soggette a una serie di vincoli.

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.

Grafico di Pareto

Fronte di Pareto calcolato usando la funzione fgoalattain.

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.

Progettazione di un filtro FIR

Risposta in ampiezza per coefficienti del filtro iniziali e ottimizzati.

Risoluzione di equazioni e minimi quadrati

Risolvi problemi di minimi quadrati non lineari e sistemi non lineari di equazioni soggetti a vincoli di limite. Risolvi problemi di minimi quadrati lineari soggetti a vincoli di limite e lineari.

Fitting dei dati non lineare

Confronto tra l’approccio locale e l’approccio globale.

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.

Deblurring ottico

Recupero di un’immagine sfocata risolvendo un problema di minimi quadrati 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.

Fitting di un percorso circolare su un sistema di Lorenz.

Fitting di un percorso circolare su un sistema di Lorenz di equazioni differenziali ordinarie.

Distribuzione

Costruisci strumenti di progettazione e supporto decisionale basati sull’ottimizzazione, integrali con sistemi enterprise e distribuisci gli algoritmi di ottimizzazione sui sistemi embedded.

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®.

App Unit Commitment

App che calcola un programma di generazione di potenza ottimale.

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.

Report di MATLAB Coder

Report di MATLAB Coder per una funzione di ottimizzazione della traiettoria.