Loading AI tools
branca della matematica applicata Da Wikipedia, l'enciclopedia libera
L'ottimizzazione (o programmazione matematica, PM) è una branca della matematica applicata che studia teoria e metodi per la ricerca dei punti di massimo e minimo di una funzione matematica all'interno di un dominio specificato.
Un esempio semplice di problema di ottimizzazione consiste nel massimizzare o minimizzare una funzione reale di una variabile reale su un dato intervallo. La generalizzazione della teoria e delle tecniche di ottimizzazione ad altre formulazioni costituisce una vasta area della matematica applicata. Più in generale, l'ottimizzazione comprende la ricerca dei "migliori valori disponibili" di una certa funzione obiettivo in un determinato dominio (o input), e considera una varietà di diversi tipi di funzioni obiettivo e diversi tipi di domini.
Un problema di ottimizzazione, talvolta detto di programmazione matematica, può essere formulato nel seguente modo:
Poiché punti di massimo per una funzione corrispondono a punti di minimo per la funzione , non è restrittivo formulare problemi di ottimizzazione in termini di minimizzazioni.
La funzione viene generalmente chiamata funzione obiettivo o funzione di costo. L'insieme , detto generalmente spazio di ricerca, può essere un insieme discreto o continuo. In molti casi di rilevante importanza applicativa, può essere identificato con un sottoinsieme dello spazio euclideo definito in termini di vincoli, ovvero uguaglianze o disuguaglianze che gli elementi di devono soddisfare. Molti problemi nell'ambito delle scienze naturali, sia teoriche sia applicate, possono essere descritti da una formulazione di questo tipo.
I problemi di ottimizzazione richiedono necessariamente la creazione di algoritmi di risoluzione efficienti in quanto, generalmente, lo spazio di ricerca ha una cardinalità tale da precludere la possibilità di ricerche esaustive. A titolo di esempio se è descritto da variabili, ciascuna delle quali può assumere valori, lo spazio di ricerca contiene elementi. Una ricerca esaustiva risulta pertanto inattuabile ed è necessario ricorrere ad algoritmi che permettano di sfruttare in modo efficace eventuali proprietà della funzione e dello spazio di ricerca .
I problemi di ottimizzazione possono essere classificati in base alle principali caratteristiche dello spazio di ricerca e della funzione . In particolare, si distingue generalmente tra programmazione continua e discreta in funzione del fatto che lo spazio di ricerca sia continuo o discreto. Nell'ambito della programmazione continua, con spazio di ricerca , distinguiamo tra programmazione lineare, se la funzione funzione obiettivo e vincoli sono lineari, e programmazione non lineare altrimenti. Un'ulteriore classificazione può essere effettuata distinguendo problemi di programmazione statica e problemi di programmazione dinamica. Nell'ottimizzazione dinamica, alla formulazione precedentemente esposta viene aggiunta una variabile temporale dalla quale vengono a dipendere le quantità in gioco, ovvero lo spazio di ricerca e, eventualmente, la funzione obiettivo.
Obiettivo della programmazione matematica è quindi quello di individuare il punto nel dominio della funzione obiettivo (cioè i valori da assegnare alle variabili decisionali) che, rispettando i vincoli, minimizza o massimizza il valore della funzione obiettivo.
Sia e sia una funzione. Un punto di minimo locale (o relativo) è un elemento tale che esiste un per cui si ha per ogni tale che Ossia, in "vicino" a tutti i valori della funzione sono maggiori o uguali al valore di . Il valore è detto valore del minimo locale.
Un punto di massimo locale (o relativo) è definito in modo simile.
Sia e sia una funzione. Un punto di minimo globale (o assoluto) è un elemento per cui si ha per ogni Ossia è un punto del dominio per il quale i valori che la funzione assume negli altri punti sono tutti maggiori o uguali al valore di che è detto valore del minimo assoluto.
Un punto di massimo globale (o assoluto) è definito in modo simile, cioè se tutti i valori assunti dalla funzione negli altri punti sono minori o uguali del valore nel massimo assoluto.
La programmazione matematica è suddivisa in più famiglie di problemi a seconda delle caratteristiche della funzione obiettivo, dei vincoli e quindi delle tecniche di approccio. In generale si distinguono tre categorie:
Risolvere un problema di ottimizzazione matematica si riferisce, in questo contesto, a:
La scelta di una tecnica appropriata dipende da:
Il problema di origine è sostituito con un problema equivalente. Per esempio, con un cambiamento di variabili per suddividere il problema in sottoproblemi o la sostituzione di incognite per ridurne il numero.
La tecnica dei moltiplicatori di Lagrange permette di superare alcuni vincoli; questo metodo equivale ad introdurre delle penalità crescenti man mano che il punto si avvicina ai vincoli. L'algoritmo dei moltiplicatori di Hugh Everett permette di aggiornare i valori dei moltiplicatori in modo coerente ad ogni iterazione per garantire la convergenza. Quest'ultimo ha anche generalizzato l'interpretazione di questi moltiplicatori per applicarli a funzioni che non sono né continue né derivabili[1].
Numerosi metodi e algoritmi per il calcolo di uno zero di una funzione possono essere usati per trovare uno zero della derivata di (alcuni sono specifici di funzioni di una variabile) o del suo gradiente . Si applicano validamente in situazioni in cui i vincoli su rimangono inattivi.
Tutti questi metodi sono sviluppati nell'ambito di un processo iterativo.
Questi approcci possono soffrire di qualche limite. In particolare:
Caso particolare: quando è polinomiale di grado 2 nei suoi argomenti (forma quadratica e lineare) e senza vincolo, annullare il gradiente è come risolvere un sistema lineare.
La classificazione del Journal of Economic Literature pone la programmazione matematica, le tecniche di ottimizzazione e i relativi argomenti nelle sottocategorie JEL:C61-C63.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.