Apri il menu principale

Ottimizzazione (matematica)

branca della matematica applicata
(Reindirizzamento da Programmazione matematica)

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; si ottiene così un modello matematico che traduce in termini matematici un dato problema (non occupandosi quindi direttamente di come tale modello sia stato costruito).

DescrizioneModifica

I problemi di ottimizzazione richiedono necessariamente la creazione di algoritmi efficienti in quanto, generalmente, un problema di ottimizzazione possiede uno spazio delle possibili soluzioni di cardinalità esponenziale, quindi anche possedendo il più potente dei computer non potremmo permetterci di enumerare tutte le possibili soluzioni e scegliere la migliore. A titolo di esempio supponiamo di avere   variabili  ; che possono assumere   valori diversi  ; in questo caso avremo che il numero di soluzioni ammissibili per il problema sarebbe dato da:  . Considerando  , si otterrebbe  . Di conseguenza un algoritmo enumerativo richiederebbe un tempo di esecuzione proporzionale a   con soli 20 elementi.

L'ottimizzazione può essere suddivisa in due grandi categorie: dinamica e statica. Nell'ottimizzazione dinamica i vincoli e le variabili che esprimono il modello del problema possono variare nel tempo. Nella ottimizzazione statica vincoli e variabili sono costanti. A sua volta l'ottimizzazione statica si divide in continua e discreta in funzione del fatto che le variabili possano assumere valori continui o discreti. Nell'ambito della programmazione continua distinguiamo tra programmazione lineare, se funzione obiettivo e vincoli sono lineari, e programmazione non lineare altrimenti.

Un lettore non addetto potrebbe domandarsi come sia possibile trovare la soluzione ottima senza verificare una per una tutte le soluzioni disponibili. Questo può avvenire grazie a meccanismi di classificazione; il dominio delle soluzioni viene organizzato secondo una struttura che le ordina in funzione di determinate caratteristiche, quindi è possibile scartare a priori alcuni sottoinsiemi del dominio delle soluzioni senza esaminarle essendo sicuri del fatto che queste non potranno fornire soluzioni migliori di un determinato obiettivo. È un po' come entrare in una biblioteca e cercare un libro; i libri sono organizzati per argomento e per titolo alfabeticamente, quindi non sarà necessario esplorare tutti i libri della biblioteca per trovare quello che cerchiamo, ma solo un sottoinsieme. Questo è il meccanismo di funzionamento degli algoritmi e delle metodologie di risoluzione dei problemi di ottimizzazione tra cui ricordiamo il metodo del simplesso e la tecnica del branch and bound.

Limiti e formalizzazioneModifica

È applicabile solo a problemi decisionali con un solo decisore, un solo criterio di scelta ed ambiente certo. L'ambito di ricerca privilegiato dell'ottimizzazione sono i modelli esprimibili in termini di funzioni di più variabili, nei quali i punti di ottimo vengono ricercati ponendo anche vincoli espressi secondo equazioni o disequazioni anche in termini di derivate successive.

Nel caso più semplice, un problema di ottimizzazione consiste nel massimizzare o minimizzare una funzione reale scegliendo sistematicamente i valori di input da un insieme consentito e calcolando il valore della funzione. La generalizzazione della teoria e delle tecniche di ottimizzazione ad altre formulazioni costituisce una vasta area di matematica applicata. Più in generale, l'ottimizzazione include la ricerca dei "migliori valori disponibili" di alcune funzioni oggettive in un determinato dominio (o input), compresa una varietà di diversi tipi di funzioni oggettive e diversi tipi di domini.

Un qualsiasi problema di ottimizzazione può essere espresso nella seguente forma (nel caso della ricerca di un minimo, che è lo standard matematico in problemi di ottimizzazione):

 

dove   è una funzione reale,   è il vettore delle variabili decisionali a   componenti e   è il sottoinsieme dello spazio euclideo   definito dai vincoli.

Lo spazio   del dominio di   è detto "spazio di ricerca" ed i suoi elementi sono le "soluzioni candidate" o "soluzioni possibili"[1].

Minimi e massimiModifica

 Lo stesso argomento in dettaglio: Massimo e minimo di una funzione.

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.

Minimi e massimi localiModifica

 
Grafico che mostra un massimo e due minimi relativi di una funzione, di cui uno è anche minimo assoluto.

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.

Minimi e massimi assolutiModifica

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 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:

Metodi numericiModifica

Risolvere un problema di ottimizzazione matematica si riferisce – in questo contesto – a

  • la trasformazione del problema originale in un problema equivalente,
  • un metodo teorico la cui descrizione permette lo sviluppo di un algoritmo numericamente applicabile.

La scelta di una tecnica appropriata dipende da

  • la natura della funzione obiettivo  , la sua regolarità (continuità, derivabilità), proprietà specifiche (parità, convessità), conoscenza dei vicini dei suoi estremi,
  • I vincoli   che caratterizzano l'insieme dei punti ammissibili.

SemplificazioniModifica

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[2].

Ricerca degli zeri del gradienteModifica

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:

  • La funzione deve essere sufficientemente regolare (almeno localmente) per essere derivabile (o doppiamente derivabile) per accedere alla matrice hessiana o ad una sua approssimazione.
  • Non è sempre possibile esprimere esplicitamente il gradiente della funzione obiettivo.
  • Le condizioni iniziali devono essere fissate prima dell'avvio del processo iterativo. La scelta iniziale può influenzare considerevolmente il risultato (divergenza dal processo iterativo). I metodi che convergono rapidamente sono generalmente più sensibili al riguardo.
  • In alcuni casi, la velocità di convergenza può essere disastrosa: iterazioni successive si susseguono faticosamente (si parla allora di "stagnazione") lungo una stretta valle (funzione di Rosenbrock).
  • Se la soluzione ottenuta è davvero un estremo (dopo aver verificato che non è un punto di sella), esso può anche essere locale.

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.

Classificazione JELModifica

La classificazione del Journal of Economic Literature pone la programmazione matematica, le tecniche di ottimizzazione e i relativi argomenti nelle sottocategorie JEL:C61-C63.

NoteModifica

  1. ^ Paolo Camagni, Algoritmi e basi della programmazione, HOEPLI EDITORE, 2003, p. 71, ISBN 9788820336011. URL consultato il 22 marzo 2019.
  2. ^ (EN) Hugh Everett, Generalized Lagrange multiplier method for solving problems of optimum allocation of resources, in Operations Research, vol. 11, nº 3, 1963, pp. 399-417.

BibliografiaModifica

  • (EN) Reiner Horst, Panos M. Pardalos, eds. (1995): Handbook of Global Optimization, Kluwer Academic Publishers, ISBN 0-7923-3120-6
  • (EN) Jonas Mockus, William Eddy, Audris Mockus, Linas Mockus, Gintaras Reklaitis (1997): Bayesian Heuristic Approache to Discrete and Global Optimizationn, Kluwer, ISBN 0-7923-4327-1
  • (EN) Hector O. Fattorini (1999): Infinite dimensional optimization and Control theory, Cambridge University Press, ISBN 0-521-45125-6
  • (EN) Stephen Boyd, Lieven Vandenberghe (2004): Convex Optimization, Cambridge University Press. ISBN 0-521-83378-7, disponibile anche in PDF.
  • (EN) Aleksander Schrijver (1986): Theory of Linear and Integer Programming, J.Wiley, ISBN 0-471-90854-1
  • (EN) Evgenij S. Levitin (1994): Perturbation Theory in Mathematical Programming and its Applications, J.Wiley, ISBN 0-471-93935-8

Voci correlateModifica

Altri progettiModifica

Collegamenti esterniModifica

Controllo di autoritàGND (DE4043664-0
  Portale Matematica: accedi alle voci di Wikipedia che trattano di matematica