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.
