Нелинейното програмиране е един от компонентите на математическото програмиране
Нелинейното програмиране е част от математическо програмиране, в които нелинейната функция е представена от определени ограничения или обективна функция. Основната задача на нелинейното програмиране е да се намери оптималната стойност на дадена обективна функция с определен брой параметри и ограничения.
Проблемите на нелинейното програмиране се различават от проблемите на линейно съдържание на оптималния резултат не само в една област, която има определени ограничения, но и извън нейните граници. Тези видове задачи включват тези задачи на математическото програмиране, които могат да бъдат представени чрез равенство или неравенство.
Нелинейното програмиране се класифицира в зависимост от разнообразието на функцията F (x), ограничението и размера на вектора на разтвора x. Така че името на задачата зависи от броя на променливите. Когато се използва една променлива, нелинейното програмиране може да се извърши с помощта на безусловна еднопарична оптимизация. С няколко променливи, по-големи от един, може да се използва безусловна мултипараметрична оптимизация.
Линейността се решава с помощта на стандартни методи линейно програмиране (например метода на симплекс). Но в случая на нелинеен общ метод за решаване няма решение, човек избира собствения си във всеки отделен случай и зависи и от функцията F (x).
Нелинейното програмиране е често срещано в ежедневието. Например това е непропорционално увеличение на разходите за броя на произведените или закупените стоки.
Понякога, за да намерим оптималното решение в проблемите на нелинейното програмиране, се опитваме да сближим линейните проблеми. Пример за това е квадратично програмиране, при което функцията F (x) е представена от полином от втора степен по отношение на променливите, докато линейността на ограниченията се наблюдава. Втори пример е използването на метода на наказателните функции, чието прилагане при определени ограничения намалява задачата да се намери екстремум в подобна процедура без такива ограничения, които могат да бъдат решени много по-лесно.
Все пак, ако анализираме като цяло, тогава нелинейното програмиране е решение на проблемите с повишената компютърна трудност. Много често по време на тяхното решение трябва да използваме приблизителни оптимизация. Друг мощен инструмент, който може да бъде предложен за решаване на този тип проблем, са числените методи, които позволяват намирането на правилното решение с определена точност.
Както вече беше споменато по-горе, нелинейното програмиране изисква индивидуален специален подход, който трябва да вземе предвид неговата специфичност.
Съществуват следните методи за нелинейно програмиране:
- Методи на градиент, основаващи се на собствеността на функционален градиент в точка. С други думи, той е вектор на частични деривати, изчислени в точката, взета като знак за посоката на най-голямото увеличение на функцията в близост до тази точка.
- Методът Монте Карло, при който се определя паралелепипед на n-то измерение, включващ набор от планове, за последващото моделиране на случайни N-точки с равномерно разпределение в даден паралелепипед.
- метод динамично програмиране намалява до многоизмерния проблем на оптимизирането на заданията до по-малки измерения.
- Изпъкналият метод на програмиране се изпълнява при търсенето на минималната стойност на изпъкнала функция или максималната стойност на набор от планове, вдлъбнати на изпъкнала част. В случай, че комплектът от планове е изпъкнал многоъгълник, то може да се приложи simplex метод.
Обектно-ориентирано програмиране
Модулно програмиране
Структурирано програмиране
Java програмен език
Основен програмен език и неговата история
Научни изследвания на операции, използващи математически методи
Списък на езиците за програмиране. Програмни езици на ниско и високо ниво
Как да научите програмиране от нулата на популярни езици за програмиране
Оценка на езиците за програмиране 2016
История на разработването на езици за програмиране: накратко за всичко
Езикът на програмиране c (s)
Какъв език за програмиране трябва да избера за начинаещ, който да научи
Динамично програмиране, основни принципи
Линейно програмиране
Математическото програмиране е правилният начин да направите най-доброто решение
Метод на Хомори. Решаване на цялостни проблеми с програмирането
Най-лесният език за програмиране за начинаещи
Каква е системата за програмиране
Защо да използвате езици за програмиране на високо ниво?
Метод Simplex и неговото приложение
Основни принципи на ОПО и тяхното използване