La programmazione non lineare è un metodo mediante il quale viene ottimizzata una funzione obiettivo, massimizzando o minimizzando. Questo, tenendo conto delle diverse restrizioni date. È caratterizzato dal fatto che la funzione obiettivo, o alcune delle restrizioni, possono essere non lineari.
La programmazione non lineare è, quindi, un processo in cui la funzione da massimizzare, o una qualsiasi delle restrizioni, è diversa da un'equazione lineare o di primo grado, in cui le variabili sono elevate alla potenza 1.
Dobbiamo ricordare che un'equazione lineare è un'uguaglianza matematica che può avere una o più incognite. Pertanto, ha la seguente forma di base, dove a e b sono le costanti, mentre x e y sono le variabili:
ax + b = y
Va aggiunto che non tutti gli elementi che compongono questo tipo di programmazione rispetteranno questa caratteristica. Ad esempio, può essere che la funzione obiettivo sia un'equazione di secondo grado e una delle variabili sia al quadrato, soddisfacendo la seguente forma:
y = ax2+ bx + c
Ora, attraverso la programmazione non lineare, questa funzione potrebbe essere ottimizzata, trovando il valore massimo o minimo di y. Questo, tenendo conto che x è soggetto a determinate restrizioni.
Elementi di programmazione non lineare
Gli elementi principali della programmazione non lineare sono i seguenti:
- Funzione obiettivo: È la funzione che viene ottimizzata, massimizzando o minimizzando il suo risultato.
- Restrizioni: Sono quelle condizioni che devono essere soddisfatte quando si ottimizza la funzione obiettivo. Possono essere equazioni o disuguaglianze algebriche.
Esercizio di programmazione non lineare
Vediamo, per finire, un esercizio di programmazione non lineare.
Supponiamo di avere la seguente funzione:
y = 25 + 10x-x2
Abbiamo anche la seguente restrizione:
y = 50-3x
Come possiamo vedere nel grafico, la funzione obiettivo e la restrizione si intersecano in due punti, ma dove y è massimizzato è quando x = 2.3, dove y = 43 (i decimali sono approssimativi).
I punti di cut-off possono essere trovati eguagliando entrambe le equazioni:
25 + 10x-x2= 50-3x
0 = x2-13x + 25
Quindi l'equazione quadratica sopra ha due soluzioni o radici che possono essere trovate con le seguenti formule, dove a = 1, b = -13 e c = 25.
Quindi, troviamo che x1 = 2,3467 (y = 43) e x2 = 10,653 (y = 18).
Dobbiamo avvertire che questo tipo di programmazione è più complesso che lineare e non ci sono così tanti strumenti disponibili online per risolvere questo tipo di ottimizzazione. L'esempio mostrato è un caso molto semplificato.