La programmazione non lineare fa parteprogrammazione 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 data funzione obiettivo con un certo numero di parametri e vincoli.
I problemi di programmazione non lineare differiscono dacompiti con un contenuto lineare del risultato ottimale non solo all'interno dell'area che ha determinati limiti, ma anche al di fuori di essa. Questi tipi di problemi includono quei compiti di programmazione matematica che possono essere rappresentati sia da uguaglianze che da disuguaglianze.
La programmazione non lineare è classificata ina seconda della varietà della funzione F (x), della funzione di vincolo e della dimensione del vettore soluzione x. Quindi, il nome dell'attività dipende dal numero di variabili. Quando si utilizza una singola variabile, la programmazione non lineare può essere eseguita utilizzando l'ottimizzazione a un parametro non vincolata. Quando il numero di variabili è più di uno, è possibile utilizzare l'ottimizzazione multiparametrica non vincolata.
Per risolvere i problemi di linearità, utilizzaremetodi di programmazione lineare standard (es. metodo simplex). Ma con un metodo di soluzione generale non lineare non esiste, viene scelto in ogni singolo caso e dipende anche dalla funzione F (x).
La programmazione non lineare è abbastanza comune nella vita di tutti i giorni. Ad esempio, questo è un aumento sproporzionato dei costi rispetto al numero di beni prodotti o acquistati.
A volte, per trovare la soluzione ottimale inNei problemi di programmazione non lineare, si tenta di approssimare i problemi lineari. Un esempio è la programmazione quadratica, in cui la funzione F (x) è rappresentata da un polinomio di secondo grado rispetto alle variabili, mentre si osserva la linearità dei vincoli. Il secondo esempio è l'uso del metodo delle funzioni sanzionatorie, la cui applicazione, in presenza di determinate restrizioni, riduce il compito di trovare un estremo a una procedura simile senza tali restrizioni, che è molto più facile da risolvere.
Tuttavia, se lo analizziamo nel suo insieme, allora il non linearela programmazione è una soluzione a problemi di maggiore complessità computazionale. Molto spesso, quando si risolvono, è necessario utilizzare metodi di ottimizzazione approssimativi. Un altro potente strumento che può essere offerto per risolvere questo tipo di problema sono i metodi numerici che consentono di trovare la giusta soluzione con una data precisione.
Come accennato in precedenza, la programmazione non lineare richiede un approccio speciale individuale che deve tener conto delle sue specificità.
Esistono le seguenti tecniche di programmazione non lineare:
- Metodi del gradiente basati sulla proprietàgradiente funzionale in un punto. In altre parole, è un vettore di derivate parziali calcolato nel punto preso come indicatore della direzione del maggior incremento della funzione in prossimità di questo punto.
- Il metodo Monte Carlo, che determinaun parallelepipedo di dimensione n-esima, comprendente un insieme di piante, per la successiva modellazione di N punti casuali con una distribuzione uniforme in questo parallelepipedo.
- Il metodo di programmazione dinamica è ridotto a un problema di ottimizzazione dell'attività multidimensionale a una dimensione inferiore.
- Il metodo di programmazione convesso è implementato introvare il valore minimo di una funzione convessa o il valore massimo di una concava su una parte convessa di un insieme di piani. Nel caso in cui l'insieme di disegni sia un poliedro convesso, è possibile applicare il metodo simplex.