Try Ithy free
Save

Pubblicato · Aggiornato

Programmazione non lineare: obiettivi, vincoli e condizioni KKT

Un problema di programmazione non lineare ottimizza una funzione quando l’obiettivo o almeno un vincolo è non lineare. Prima di scegliere l’algoritmo, individua le variabili, la regione ammissibile e le ipotesi che puoi verificare.

Un esempio con soluzione a mano

Minimizza (x − 3)² con x ≥ 4. Il minimo libero sarebbe x = 3, ma non è ammissibile. Nella regione x ≥ 4 la funzione cresce e il minimo vincolato è x = 4.

Quando servono le condizioni KKT

Per problemi differenziabili, con adeguate condizioni di regolarità, le condizioni di Karush–Kuhn–Tucker aiutano a individuare candidati. Verifica ammissibilità, stazionarietà e complementarità. In un problema non convesso, un candidato non garantisce un minimo globale.

Usare un risolutore

Specifica chiaramente unità, limiti e valori iniziali. Controlla la violazione dei vincoli e lo stato di uscita. Se il problema non è convesso, confronta più partenze e documenta che tipo di soluzione hai trovato.

Fonte

Appunti del MIT sulle condizioni KKT

Ask Ithy a follow-up