Нелінійне програмування - це метод, за допомогою якого цільова функція оптимізується або шляхом максимізації, або мінімізації. Це з урахуванням різних наведених обмежень. Він характеризується тим, що цільова функція або деякі обмеження можуть бути нелінійними.
Отже, нелінійне програмування - це процес, коли функція, яку слід максимізувати, або будь-яке з обмежень відрізняється від лінійного рівняння або рівняння першого ступеня, коли змінні піднімаються до рівня 1.
Треба пам’ятати, що лінійне рівняння - це математична рівність, яка може мати одну або кілька невідомих. Таким чином, він має наступну основну форму, де a і b - константи, тоді як x і y - змінні:
сокира + b = y
Слід додати, що не всі елементи, що складають цей тип програмування, будуть відповідати цій характеристиці. Наприклад, може бути, що цільова функція є рівнянням другого ступеня, а одна зі змінних має квадрат, виконуючи наступну форму:
y = сокира2+ bx + c
Тепер за допомогою нелінійного програмування цю функцію можна оптимізувати, знаходячи максимальне або мінімальне значення y. Це, беручи до уваги, що x підпадає під певні обмеження.
Елементи нелінійного програмування
Основними елементами нелінійного програмування є наступні:
- Завдання: Це функція, яка оптимізована, або шляхом максимізації, або мінімізації її результату.
- Обмеження: Це ті умови, яким необхідно дотримуватися при оптимізації цільової функції. Це можуть бути алгебраїчні рівняння або нерівності.
Вправа з нелінійного програмування
Подивимось, на закінчення, вправа з нелінійного програмування.
Припустимо, ми маємо таку функцію:
y = 25 + 10x-x2
Ми також маємо таке обмеження:
y = 50-3x
Як ми бачимо на графіку, цільова функція та обмеження перетинаються в двох точках, але де максимум максимізується, коли x = 2,3, де y = 43 (десяткові цифри є приблизними).
Точки відсікання можна знайти, прирівнявши обидва рівняння:
25 + 10x-x2= 50-3x
0 = х2-13x + 25
Тоді квадратичне рівняння має два розв’язки або корені, які можна знайти за такими формулами, де a = 1, b = -13 та c = 25.
Таким чином, ми знаходимо, що x1 = 2,3467 (y = 43) і x2 = 10,653 (y = 18).
Ми повинні попередити, що цей тип програмування є більш складним, ніж лінійний, і в Інтернеті не так багато інструментів для вирішення цього типу оптимізації. Наведений приклад - дуже спрощений випадок.