Нелинейно програмиране - какво е това, определение и концепция

Нелинейното програмиране е метод, чрез който обективната функция се оптимизира, или чрез максимизиране или минимизиране. Това, като се вземат предвид дадените различни ограничения. Характеризира се с това, че целевата функция или някои от ограниченията могат да бъдат нелинейни.

Тогава нелинейното програмиране е процес, при който функцията, която трябва да бъде максимизирана, или някое от ограниченията, се различава от линейно уравнение или уравнение от първа степен, където променливите се повишават до степен 1

Трябва да помним, че линейното уравнение е математическо равенство, което може да има едно или повече неизвестни. По този начин той има следната основна форма, където a и b са константите, докато x и y са променливите:

ax + b = y

Трябва да се добави, че не всички елементи, съставляващи този тип програмиране, ще отговарят на тази характеристика. Например може да бъде, че целевата функция е уравнение на втората степен и една от променливите е на квадрат, изпълнявайки следната форма:

y = брадва2+ bx + c

Сега, чрез нелинейно програмиране, тази функция може да бъде оптимизирана, като се намери максималната или минималната стойност на y. Това, като се има предвид, че x е обект на определени ограничения.

Елементи на нелинейното програмиране

Основните елементи на нелинейното програмиране са следните:

  • Целева функция: Функцията е тази, която се оптимизира, или чрез максимизиране или минимизиране на резултата.
  • Ограничения: Те са онези условия, които трябва да бъдат изпълнени при оптимизиране на целевата функция. Това могат да бъдат алгебрични уравнения или неравенства.

Упражнение за нелинейно програмиране

Да видим, за финал, нелинейно упражнение по програмиране.

Да предположим, че имаме следната функция:

y = 25 + 10x-x2

Имаме и следното ограничение:

y = 50-3x

Както можем да видим на графиката, целевата функция и ограничението се пресичат в две точки, но където y е максимизирано е, когато x = 2.3, където y = 43 (десетичните знаци са приблизителни).

Граничните точки могат да бъдат намерени чрез приравняване на двете уравнения:

25 + 10x-x2= 50-3x

0 = x2-13x + 25

Тогава квадратното уравнение по-горе има две решения или корени, които могат да бъдат намерени със следните формули, където a = 1, b = -13 и c = 25.

По този начин установяваме, че x1 = 2,3467 (y = 43) и x2 = 10,653 (y = 18).

Трябва да предупредим, че този тип програмиране е по-сложно от линейното и няма толкова много налични инструменти онлайн за решаване на този тип оптимизация. Показаният пример е много опростен случай.