Optimization Toolbox

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

Optimization Toolbox™ offre funzioni per trovare parametri che minimizzino o massimizzino gli obiettivi e allo stesso tempo soddisfino i vincoli. Il toolbox include solver per la programmazione lineare (LP), la programmazione lineare mista intera (MILP), la programmazione quadratica (QP), 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 o specificando espressioni variabili che riflettano la matematica sottostante.

I solver di questo toolbox possono essere utilizzati 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, tra cui la stima dei parametri, la selezione dei componenti e la regolazione dei parametri. Può essere utilizzato per trovare soluzioni ottimali nelle applicazioni, come l’ottimizzazione di portafoglio, l’allocazione delle risorse e la progettazione e 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 le variabili di ottimizzazione, un obiettivo e dei vincoli, in modo da poter procedere alla soluzione con tecniche di ottimizzazione.

Ottimizzazione basata su problemi

Scrivi l’obiettivo e i vincoli in MATLAB usando espressioni che riflettano la forma matematica. Costruisci tutto questo con variabili di ottimizzazione, operatori matematici, operazioni con matrice e funzioni delle variabili. Applica un solver selezionato automaticamente.

Ottimizzazione basata su solver

Scrivi l’obiettivo e i vincoli in MATLAB usando funzioni per i casi non lineari e matrici di coefficienti peri casi lineari. Costruisci tutto questo con operazioni con matrice MATLAB, operatori matematici e funzioni. Applica un solver appropriato.

Risoluzione dei problemi di ottimizzazione

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

Scelta del solver

La scelta tra un solver non lineare, quadratico, lineare, misto intero, dei minimi quadrati o multi-obiettivo dipende dai tipi di obiettivi e vincoli che caratterizzano il problema di ottimizzazione.
Quando si implementa l’approccio basato su problemi, il solver viene selezionato automaticamente.

Punti affrontati durante l’ottimizzazione di una funzione non lineare

Impostazione delle opzioni

Imposta le opzioni di ottimizzazione per regolare il processo di ottimizzazione, ad esempio per scegliere l’algoritmo di ottimizzazione usato dal solver oppure per impostare le condizioni di conclusione. Imposta le opzioni per monitorare e raffigurare graficamente i progressi del solver di ottimizzazione.

Verifica e miglioramento dei risultati

Controlla le misure di ottimalità e la visualizzazione iterativa per valutare la soluzione. Usa i link presenti nei messaggi di chiusura per saperne di più. Migliora le prestazioni per i problemi non lineari aggiungendo dei gradienti o usando il calcolo parallelo per stimare i gradienti.

Monitoraggio dei progressi del solver con la visualizzazione iterativa.

Programmazione non lineare

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

Solver

Applica algoritmi del simplesso Nelder-Mead, trust-region o quasi-Newton per risolvere problemi senza vincoli. Applica algoritmi 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 e quadratica

Risolvi problemi di ottimizzazione che presentano obiettivi quadratici convessi o lineari e che sono soggetti a vincoli lineari.

Solver per la programmazione lineare

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

Area praticabile e soluzione ottimale per un programma lineare.

Solver per la programmazione quadratica

Applica algoritmi interior-point o trust-region-reflective per risolvere programmi quadratici.

Area praticabile e soluzione ottimale di 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 per problemi quali l’ottimizzazione della progettazione, l’ottimizzazione del portafoglio e il controllo delle centrali idroelettriche.

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.

Solver

Risolvi problemi di programmazione lineare mista intera usando l’algoritmo di enumerazione implicita, che include la pre-elaborazione, l’euristica per la generazione di punti praticabili e i piani di taglio.

Applicazione dell’algoritmo di enumerazione implicita. 

Algoritmi basati sulla programmazione lineare mista intera

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

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 per due generatori con prezzi dell’elettricità variabili.

Ottimizzazione multiobiettivo

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

Solver

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.

Risultato ottenuto con sweep di diversi pesi degli obiettivi tramite la funzione “fgoalattain”.

Applicazioni

Usa l’ottimizzazione multi-obiettivo quando sono necessari dei tradeoff per due o più obiettivi in conflitto. Degli esempi sono: il peso e la forza nella progettazione strutturale e il rischio e la redditività nell’ottimizzazione del portafoglio.

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.

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

Applicazioni dei minimi quadrati lineari

Usa i solver 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.

Recuperare un’immagine sfocata risolvendo un problema di minimi quadrati lineari

Applicazioni dei minimi quadrati non lineari

Usa i solver 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.

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

Distribuzione

Costruisci strumenti di progettazione e supporto decisionale basati sull’ottimizzazione.

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 che calcola un programma di generazione di potenza ottimale.

Funzionalità recenti

Generazione di codice

generazione di codice C/C ++ per risolvere problemi di ottimizzazione vincolata non lineare con fmincon (richiede MATLAB Coder)

Modellazione dell’ottimizzazione

possibilità di esprimere problemi di minimi quadrati non lineari e sistemi non lineari di equazioni utilizzando variabili di ottimizzazione in funzioni o espressioni razionali

Risoluzione dell’ottimizzazione

possibilità di risolvere problemi di minimi quadrati non lineari e sistemi non lineari di equazioni utilizzando automaticamente solutori selezionati

Guarda le note di rilascio per ulteriori informazioni su queste caratteristiche e sulle funzioni corrispondenti.

Prova gratuita

30 giorni di esplorazione a tua disposizione.

Scarica ora

Pronto per acquistare?

Richiedi una quotazione ed esplora i prodotti correlati.

Sei uno Studente?

Acquista MATLAB e Simulink per studenti.

Scopri di più