- •3. Линейное программирование
- •3.4. Симплексный метод с искусственным базисом (м-метод)
- •3.5. Двойственные задачи линейного программирования
- •2.4. Решение задач линейного программирования в табличном процессоре ms Excel
- •Задачи для самостоятельного решения
- •3. Специальные задачи линейного программирования
- •3.1. Транспортная задача (задача оптимального планирования перевозок груза)
- •3.2. Целочисленное программирование
- •Задачи для самостоятельного решения
- •4. Нелинейное программирование
- •4.1. Выпуклое программирование
- •4.2. Дробно-линейное программирование
- •Задачи для самостоятельного решения
- •Библиографический список
- •Оглавление
- •Часть 1
- •400002, Волгоград, пр. Университетский, 26.
4. Нелинейное программирование
Нелинейное программирование - это раздел математического программирования, объединяющий теорию и методы решения таких задач отыскания экстремальных значений, в которых целевая функция и/или система ограничений содержит выражения, нелинейные относительно искомых величин.
В общем виде задача нелинейного программирования записывается следующим образом:
(4.1)
(4.2)
Соотношения (4.2) включают в себя условия неотрицательности переменных, если такие условия имеются. Хотя ограничения на неотрицательность переменных могут быть заданы и непосредственно.
Если f, gi – линейные функции, то имеем задачу линейного программирования. Если f – квадратичная функция, a gi – линейная, то имеем задачу квадратичного программирования. Если f – отношение двух линейных функций, a gi – линейные функции, то имеем задачу дробно-линейного программирования. Если f – вогнутая (выпуклая) функция, а область допустимых решений, определяемая ограничениями (4.2), является выпуклым множеством, то имеем задачу выпуклого программирования.
В отличие от линейного программирования для задач нелинейного программирования отсутствуют универсальные методы их решения. В зависимости от вида целевой функции и системы ограничений разработаны специальные методы решения, к которым относятся методы множителей Лагранжа (п. 1.2), квадратичное и выпуклое программирование, градиентные методы, приближенные методы решения, графический метод.
4.1. Выпуклое программирование
Рассмотрим задачу выпуклого программирования:
(4.5)
(4.6)
где
является
выпуклой (вогнутой) функцией; функции
- выпуклыми.
Метод решения задачи выпуклого программирования опирается на теорему Куна-Таккера.
Функция
,
заданная на
выпуклом множестве X,
называется
выпуклой, если
для любых двух точек Х1
и Х2
из множества
X
и любого
выполняется соотношение
.
Функция , заданная на выпуклом X, называется вогнутой, если для любых двух точек Х1 и Х2 из множества X и любого выполняется соотношение
.
Множество допустимых
решений задачи (4.5)-(4.6) удовлетворяет
условию регулярности, если
существует, по крайней мере, одна точка
Xk,
принадлежащая области допустимых
решений, такая, что
.
Функцией Лагранжа задачи выпуклого программирования (4.5), (4.6) называется функция
где
- множители
Лагранжа.
Теорема
Куна-Таккера.
Для задачи
выпуклого программирования (4.5), (4.6),
множество допустимых решений которой
обладает свойством регулярности,
является
оптимальным решением тогда и только
тогда, когда существует такой вектор
,
где
,
что точка
является седловой точкой функции
Лагранжа.
Если функции и непрерывно дифференцируемы, то теорема Куна-Таккера может быть дополнена аналитическими выражениями, определяющими необходимые и достаточные условия того, чтобы точка была седловой точкой функции Лагранжа, а - оптимальным решением задачи выпуклого программирования. Эти условия имеют следующий вид:
(4.7)5
(4.7)6
где
и
- значения
соответствующих частных производных
функции
Лагранжа, вычисленных
в седловой
точке.
Алгоритм решения задач выпуклого программирования
Шаг 1. Составляют функцию Лагранжа.
Шаг 2. Записывают необходимые и достаточные условия существования седловой точки для функции Лагранжа (4.7)56.
Шаг 3. Находят решение системы (4.7)56 и из него получают оптимальное решение задачи выпуклого программирования.
Пример 2. Найти оптимальное решение следующей задачи выпуклого программирования:
Решение.
Функция f(xl,x2)
является
вогнутой, поскольку представляет собой
сумму линейной функции 2х1+4x2
(которую можно рассматривать как
вогнутую) и квадратичной формы
,
которая является
отрицательно-определенной и, следовательно,
также вогнутой. Система ограничений
задачи включает только линейные
неравенства, поэтому область допустимых
решений выпуклая. Следовательно, можно
воспользоваться теоремой Куна-Таккера.
Составим функцию Лагранжа
и запишем, используя (4.7)56, необходимые и достаточные условия существования седловой точки построенной функции:
(4.8)7
(4.9)8
Систему линейных неравенств (4.8)7 перепишем следующим образом:
(4.10)9
Введем теперь дополнительные неотрицательные переменные v1, v2, w1 и w2, обращающие неравенства (4.10)9 в равенства:
(4.11)10
С учетом дополнительных переменных соотношения в системе (4.9)8 можно записать в виде:
(4.12)11
Для нахождения базисного решения системы линейных уравнений (4.11)10 с учетом выполнения равенств (4.12)11 воспользуемся методом искусственного базиса. В первое и второе уравнения системы (4.11)10 введем дополнительные неотрицательные переменные z1 и z2 соответственно и рассмотрим задачу линейного программирования:
Чтобы решить эту задачу, сначала находим ее допустимое базисное решение (таблица 4.1).
Из таблицы 4.1 получаем:
Таблица 4.1
ci |
БП |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
- M |
- M |
bi |
x1 |
x2 |
1 |
2 |
v1 |
v2 |
w1 |
w2 |
z1 |
z2 |
|||
- М |
z1 |
2 |
0 |
1 |
2 |
-1 |
0 |
0 |
0 |
1 |
0 |
2 |
- М |
z2 |
0 |
4 |
2 |
-1 |
0 |
-1 |
0 |
0 |
0 |
1 |
4 |
0 |
w1 |
1 |
2 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
8 |
0 |
w2 |
2 |
-1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
12 |
|
j |
-2 |
-4 |
-3 |
-1 |
1 |
1 |
0 |
0 |
-1 |
-1 |
-6 |
- М |
z1 |
2 |
0 |
1 |
2 |
-1 |
0 |
0 |
0 |
1 |
|
2 |
0 |
x2 |
0 |
1 |
1/2 |
-1/4 |
0 |
-1/4 |
0 |
0 |
0 |
|
1 |
0 |
w1 |
1 |
0 |
-1 |
1/2 |
0 |
1/2 |
1 |
0 |
0 |
|
6 |
0 |
w2 |
2 |
0 |
1/2 |
-1/4 |
0 |
-1/4 |
0 |
1 |
0 |
|
13 |
|
j |
-2 |
0 |
-1 |
-2 |
1 |
0 |
0 |
0 |
-1 |
|
-2 |
0 |
x1 |
1 |
0 |
1/2 |
1 |
-1/2 |
0 |
0 |
0 |
|
|
1 |
0 |
x2 |
0 |
1 |
1 |
-1/2 |
0 |
-1/2 |
0 |
0 |
|
|
1 |
0 |
w1 |
0 |
0 |
-3/2 |
-1/2 |
1/2 |
1/2 |
1 |
0 |
|
|
5 |
0 |
w2 |
0 |
0 |
-1/2 |
-3/4 |
1 |
-1/4 |
0 |
1 |
|
|
11 |
|
j |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
|
|
0 |
Так как
,
заключаем, что точка (
)
является
седловой точкой функции Лагранжа для
исходной задачи. Следовательно,
- оптимальное решение исходной задачи,
fmax
= 3.
