793 Shares 2529 views

La programmazione non lineare è uno dei componenti della programmazione matematica

La programmazione non lineare fa parte della programmazione matematica, in cui una funzione non lineare è rappresentata da determinati vincoli o da una funzione obiettivo. Il compito principale della programmazione non lineare è trovare il valore ottimale di una determinata funzione oggettiva con un certo numero di parametri e vincoli.


I problemi della programmazione non lineare si differenziano dai problemi di un contenuto lineare del risultato ottimale non solo all'interno di un'area con determinate limitazioni, ma anche oltre i suoi limiti. Questi tipi di compiti comprendono quei compiti di programmazione matematica che possono essere rappresentati da equità o disuguaglianze.

La programmazione non lineare è classificata in funzione della varietà della funzione F (x), della funzione di vincolo e della dimensione del vettore della soluzione x. Quindi, il nome del compito dipende dal numero di variabili. Con una singola variabile, la programmazione non lineare può essere eseguita utilizzando l'ottimizzazione incondizionata di un parametro. Con una serie di variabili maggiori di una, può essere impiegata un'ottimizzazione multiparametrica incondizionata.

I problemi di linearità vengono risolti utilizzando metodi di programmazione lineari standard (ad esempio, metodo simplex). Ma per non esistere un metodo generale non lineare di soluzione, viene scelto in ogni singolo caso e dipende anche dalla funzione F (x).

La programmazione non lineare è frequente nella vita di tutti i giorni. Ad esempio, si tratta di un aumento sproporzionato dei costi rispetto al numero di beni prodotti o acquistati.

A volte, per trovare la soluzione ottimale nei problemi di programmazione non lineare, cerchiamo di approssimare i problemi lineari. Un esempio è la programmazione quadratica, in cui la funzione F (x) è rappresentata da un polinomio del secondo grado rispetto alle variabili, mentre si osserva la linearità dei vincoli. Un secondo esempio è l'uso del metodo delle funzioni di penalità, la cui applicazione, a determinate restrizioni, riduce il compito di trovare un estremo in una procedura simile senza tali limitazioni, che può essere risolto molto più facile.

Tuttavia, se analizziamo in generale, la programmazione non lineare è una soluzione ai problemi di una maggiore difficoltà computazionale. Molto spesso durante la loro decisione, è necessario utilizzare metodi di ottimizzazione approssimativi . Un altro potente strumento che può essere proposto per risolvere questo tipo di problema è il metodo numerico che consente di trovare la giusta soluzione con una precisione data.

Come già detto, la programmazione non lineare richiede un approccio individuale specifico, che deve tener conto della sua specificità.

Esistono i seguenti metodi di programmazione non lineari:

– Metodi di sfumatura basati sulla proprietà di un gradiente funzionale in un punto. In altre parole, è un vettore di derivati parziali calcolato al punto considerato come il segno della direzione del maggiore aumento della funzione in prossimità di questo punto.

– Il metodo di Monte Carlo, in cui viene determinato un parallelepipedo della dimensione n, compresa una serie di piani per la successiva modellazione di punti N casuali con distribuzione uniforme in un dato parallelepipedo.

– Il metodo di programmazione dinamica riduce al compito multidimensionale di ottimizzare le attività a una dimensione minore.

– Il metodo di programmazione convessa viene implementato nella ricerca del valore minimo di una funzione convessa o del valore massimo di un insieme di piani concavo su una parte convessa. Nel caso in cui un insieme di piani sia un poliedro convesso, è possibile applicare un metodo simplex.