L’ottimizzazione non lineare studia problemi in cui l’obiettivo o i vincoli non sono lineari:
La non linearità permette di modellare prodotti tra variabili, costi quadratici, rischi, distanze, energie, rendimenti decrescenti, saturazioni e penalità curve.
Per f:\mathbb R^n\to\mathbb R il gradiente è:
La Hessiana è:
Se x^\ast è minimo locale interno e f è differenziabile:
Questa condizione è necessaria, ma non sufficiente. Un punto con gradiente nullo può essere un minimo, un massimo o un punto di sella. La Hessiana aiuta a classificare il punto: se H_f(x^\ast) è definita positiva, il punto è un minimo locale stretto; se è indefinita, il punto è di sella.
Nei problemi vincolati si costruisce spesso la lagrangiana:
Con vincoli di disuguaglianza e uguaglianza si usano le condizioni KKT, che combinano stazionarietà, ammissibilità, moltiplicatori non negativi e complementarità. Queste condizioni sono necessarie sotto opportune ipotesi di regolarità; diventano anche sufficienti in molti problemi convessi.
La distinzione tra problema convesso e non convesso è centrale. Se f è convessa e l’insieme ammissibile è convesso, ogni minimo locale è globale. Nei problemi non convessi possono esistere molti minimi locali, bacini di attrazione e punti di sella; il risultato di un algoritmo può dipendere fortemente dal punto iniziale.
Gli algoritmi principali includono discesa del gradiente, Newton e quasi-Newton, metodi trust-region, penalità, barriera e programmazione quadratica sequenziale. La scelta dipende da dimensione del problema, disponibilità di derivate, struttura sparsa, vincoli e tolleranze numeriche.
In ingegneria l’ottimizzazione non lineare compare in taratura di modelli, controllo ottimo, progetto strutturale, traiettorie, reti energetiche, portafogli, machine learning e pianificazione industriale. Un errore frequente è fidarsi del valore numerico restituito dal solutore senza controllare scala delle variabili, vincoli attivi, sensibilità, condizionamento e significato fisico della soluzione.
Vedi anche: Ottimizzazione, Condizioni KKT.