Автор: Пользователь скрыл имя, 21 Февраля 2012 в 01:26, реферат
Цель работы: показать некоторые особенности методов нелинейного программирования.
Объект исследования: нелинейное программирование
Предмет исследования: методы решения задача нелинейного программирования.
Введение 3
Глава I. Постановка задачи. Методы решения 5
1.1. Постановка задачи математического программирования 5
1.2. Методы решения 7
1.2.1. Градиентные методы 7
1.2.2 Методы Монте-Карло 8
1.2.3. Методы выпуклого программирования 9
1.2.4. Теорема Куна-Таккера 10
1.2.5. Квадратичное программирование. Метод Вулфа-Фрэнка 12
1.2.5. Дробно-линейное программирование 17
Глава II. Решение задачи нелинейного программирования средствами электронных таблиц 20
2.1. Постановка задачи 20
2.2. Решение задачи методом Франка-Вульфа 21
2.3. Решение задачи средствами электронных таблиц MS Excel 25
Заключение 27
Список литературы 28
Рассмотрим простой пример.
Минимизировать
F(X1, X2) = -4X1-6X2+X12+3X22
при условиях
X1 + 2 X2 £ 4,
X1, X2 ³ 0.
Ставим задачу минимизации до нуля функции
g(X1, X2, l, Y, V1, V2) = X1V1 + X2V2 + lY
при условиях (8), где
Ищем начальный опорный план, методом искусственного базиса (не обращая внимания на коэффициенты, меньшие M):
Находим начальный опорный план исходной задачи
X1 = X2 = V1 = 0, V2 = 2, Y = 4, l = 4,
для которого g(W) = 0´0 + 0´2 + 4´4 = 16 > 0
Отыскиваем градиент grad g(W) = {0, 2, 4, 4, 0, 0} и берем его компоненты в качестве коэффициентов "линейной формы" (нормали к поверхности, определяемой функцией g(W), в выбранной точке).
Получен оптимальный план X = (2, 1).
Заметим, что при ограничениях AX = B , X ³ 0 исчезнет переменная Y, снимутся условия неотрицательности на l и потребуется минимизировать XTV при условиях:
2 D X + ATl - V = -C
AX = B
X, V ³ 0.
При других отклонениях постановки задачи от выбранного здесь стандарта можно элементарными приемами прийти к нему (вместо максимизации F(X) искать минимум F(X), условие AX ³B заменить на B - AX£0 и т.п.).
1.2.5. Дробно-линейное программирование
Пусть стоит задача максимизации дробно-линейной функции
при линейных ограничениях
Предположим, что знаменатель в (1) положителен при всех X, удовлетворяющих (2)-(3).
Если обозначить
то задача сведется к линейной программе максимизации
при условиях
Рассмотрим в качестве примера задачу максимизации
при условиях
С учетом (4) получаем задачу максимизации
- 3R + 2Z1 + 4Z2 - 5Z3
при условиях 5R + 3Z1 - Z2 = 1
Z1 - Z2 ³ 0
-15 R + 5 Z1 + 3 Z2 + 10 Z3 £ 0
R > 0, Z1, Z2, Z3 ³ 0.
Отсюда Z1 = Z2 = 3/14, Z3 = 0, R = 4/35 и соответственно Xopt = (15/8, 15/8, 0), max Q(X) = 33/35.
Заметим, что дробно-линейное программирование используется достаточно часто; например, некорректная задача, преследующая взаимно противоположные цели типа максимизации прибыли при минимальных капиталовложениях, сводится к максимизации прибыли на единицу затрат.
Глава II. Решение задачи нелинейного программирования средствами электронных таблиц
2.1. Постановка задачи
Предприятие выпускает электронные изделия двух типов
(изделия A и B). На выпуск изделий расходуется платина и палладий. На одно изделие A требуется 13 г платины и 8 г палладия, на одно изделие B - 6 г платины и 11 г палладия. Предприятие имеет возможность использовать не более 90 г платины и не более 88 г палладия.
Изделия A продаются по цене 12 тыс. ден.ед., изделия B – по 10 тыс. ден.ед. Величины себестоимости изделий (т.е. затраты на их выпуск) зависят от объема их производства и приближенно описываются следующими формулами:
• себестоимость одного изделия A: 7+0,2X1, где X1 - объем производства изделий A;
• себестоимость одного изделия B: 8+0,2X2, где X2 - объем производства изделий B.
Требуется составить план производства, обеспечивающий предприятию максимальную прибыль.
Как отмечено выше, объемы производства изделий A и B обозначены через переменные X1 и X2.
Составим целевую функцию задачи, выражающую прибыль от производства изделий. Будем считать, что прибыль от продажи одного изделия представляет собой разность его цены и себестоимости. Прибыль от продажи одного изделия A можно выразить следующей формулой: 12-(7+0,2X1) = 5-0,2X1. Аналогично выразим прибыль от продажи одного изделия B: 10-(8+0,2X2) = 2-0,2X2. Таким образом, целевая функция задачи (прибыль от продажи всех изделий A и B) имеет следующий вид:
E = (5-0,2X1)X1 + (2-0,2X2)X2 = 5X1 - 0,2X12 + 2X2 - 0,2X22→ max.
Приведем математическую модель задачи:
13X1 + 6X2 ≤ 90
8X1 + 11X2 ≤ 88
X1, X2 ≥ 0
X1, X2 - целые
E = 5X1 - 0,2X12 + 2X2 - 0,2X22→ max.
Здесь ограничения устанавливают предельный расход платины и палладия.
В этой задаче система ограничений линейная, а целевая функция - нелинейная (квадратичная). Таким образом, данная задача представляет собой задачу нелинейного квадратичного программирования.
2.2. Решение задачи методом Франка-Вульфа
Предварительно найдем градиент целевой функции:
Найдем также начальное допустимое решение. В качестве такого решения можно использовать любой набор значений X1 и X2, удовлетворяющий системе ограничений. Начальное допустимое решение можно найти, например, следующим образом: исключить из целевой функции все нелинейные элементы и решить симплекс-методом полученную задачу линейного программирования. Для рассматриваемой задачи такая задача будет следующей:
13X1 + 6X2 ≤ 90
8X1 + 11X2 ≤ 88
X1, X2 ≥ 0
E = 5X1 + 2X2 → max.
Решив эту задачу, получим начальное допустимое решение: X1(0)=6,923,
X2(0)=0. Найдем значение целевой функции для этого решения: E(0) = 5·6,923 - -0,2·6,9232 + 2·0 - 0,2·02 = 25,03.
Необходимо также задать требуемую точность решения задачи (ε). Зададим ее равной 500 ден.ед., т.е. будем считать, что решение найдено, если переход к новому решению приводит к увеличению целевой функции не более чем на 500 ден.ед. В данной задаче целевая функция выражается в тысячах ден.ед., поэтому ε=0,5.
Решим задачу, используя итерационный алгоритм на основе метода Франка-Вульфа.
Итерация 1
1. Определяется градиент целевой функции в точке ОДР, соответствую-
щей текущему решению:
grad E (X(0))= (5-0,4·6,923; 2-0,4·0) = (2,2; 2).
2. Определяется
угловая точка ОДР,
13X1 + 6X2 ≤ 90
8X1 + 11X2 ≤ 88
X1, X2 ≥ 0
W = 2,2X1 + 2X2 → max.
Решение этой задачи следующее: X1*=4,863, X2*= 4,463. Это означает,
что поиск нового решения будет выполняться в направлении от точки X(0) =
= (6,923; 0) к точке X*= (4,863; 4,463).
3. Составляются
уравнения для перехода к
X1(1) = X1(0) +λ(X1* − X1(0) ) ;
X2(1) = X2(0) +λ(X2* − X2(0) ) ,
где λ – коэффициент, задающий величину перемещения от текущего решения к новому решению в направлении точки X*. Этот коэффициент определяется на следующем шаге.
Для рассматриваемого примера эти уравнения имеют следующий вид:
X1 (1) = 6,923 + λ(4,863-6,923) = 6,923 – 2,06λ;
X2 (1) = 0 + λ(4,463-0) = 4,463λ.
4. Определяется
коэффициент λ. Этот
E = 5(6,923 – 2,06λ) - 0,2(6,923 – 2,06λ)2 + 2·4,463λ - 0,2(4,463λ)2 =
= -4,8 λ2 + 4,3 λ + 25.
Значение λ находится из условия экстремума целевой функции, т.е. из условия dE/dλ=0: dE/dλ=-9,6λ + 4,3 = 0. λ=0,448.
5. Из уравнений, составленных на шаге 3, определяется новое решение:
X1 (1) = 6,923 – 2,06·0,448 = 6;
X2 (1) = 4,463·0,448 = 2.
Определяется значение целевой функции для полученного решения:
E(1) = 5·6 - 0,2·62 + 2·2 - 0,2·22 = 26.
6. Проверяется
условие окончания поиска
Итерация 2
1. Определяется
градиент целевой функции в
точке ОДР, соответствующей
2. Определяется
угловая точка ОДР,
13X1 + 6X2 ≤ 90
8X1 + 11X2 ≤ 88
X1, X2 ≥ 0
W = 2,6X1 + 1,2X2 → max.
Решение этой задачи следующее: X1*=4,863, X2*= 4,463.
3. Составляются
уравнения для перехода к
X1 (2) = 6 + λ(4,863-6) = 6 – 1,137λ;
X2 (2) = 2 + λ(4,463-2) = 2 + 2,463λ.
4. Определяется
коэффициент λ из условия
E = 5(6 – 1,137λ) - 0,2(6 – 1,137λ)2 + 2(2 + 2,463λ) - 0,2(2 + 2,463λ)2 =
= -1,5λ2 + 26.
7 6dE/dλ=-3λ = 0.
λ=0.
5. Из уравнений, составленных на шаге 3, определяется новое решение:
X1(2) = 6 – 1,137·0 = 6;
X2(2) = 2 + 2,463·0 = 2.
Определяется значение целевой функции для полученного решения:
E(2) = 5·6 - 0,2·62 + 2·2 - 0,2·22 = 26.
6. Проверяется
условие окончания поиска
ΔE = E(2) −E(1) =0. Так как ΔE ≤ ε, оптимальное решение найдено: X1=6, X2=2. Оптимальное значение целевой функции E=26.
Таким образом, предприятию следует выпустить 6 изделий типа A и 2 изделия типа B. Такой план производства обеспечит предприятию максимальную прибыль в размере 26 тыс ден.ед.
2.3. Решение задачи средствами электронных таблиц MS Excel
Предположим, что желательно получить результаты (значения переменных X1 и X2) в ячейках B2 и C2. В ячейке B3 введем формулу целевой функции: =5*B2-0,2*B2^2+2*C2-0,2*C2^2
В ячейке B4 введем формулу первого ограничения (на расход платины): =13*B2+6*C2
В ячейке D4 введем правую часть этого ограничения: 90.
Аналогично в ячейке B5 введем формулу ограничения на расход палладия: =8*B2+11*C2, в ячейке D5 – правую часть этого ограничения 88.
Укажем также некоторые поясняющие надписи и обозначения (хотя это и необязательно). Рабочий лист будет иметь примерно такой вид, как показано на рис.1.
Примечание. Значения 0 в ячейках B3-B5 получены автоматически для начальных значений переменных, равных нулю.
Для решения задачи из меню “Сервис” выберем элемент “Поиск решения”. В поле “Установить целевую ячейку” указывается ячейка B3, где находится формула целевой функции. Используя переключатели, необходимо указать, что требуется установить ячейку B3 “равной максимальному значению” (так как целевая функция в этой задаче подлежит максимизации). В поле “Изменяя ячейки” указываются ячейки, в которых должны находиться значения переменных: B2:C2.
В области
“Ограничения” указываются
Для решения задачи следует нажать кнопку “Выполнить”. Рабочий лист с результатами решения показан на рис. 2.
В ячейках B2 и C2 получены оптимальные значения переменных, в ячейке B3 – оптимальное значение целевой функции. Эти величины совпадают с результатами, полученными по методу Франка-Вульфа.
Рис.1. Рабочий лист Excel для решения задачи
Рис.2. Рабочий лист Excel с результатами решения
В ячейках B4 и B5 находятся значения левых частей ограничений. Видно, что на выпуск изделий будет израсходовано 90 г платины и 70 г палладия.
Заключение
Таким образом,
нелинейное программирование – это
раздел математического
Целью данной
работы было показать некоторые особенности
методов нелинейного
В практической части работы было рассмотрено решение задачи нелинейного программирования средствами MS Excel.
Список литературы
1. Кузнецов Ю.Н. и др. «Математическое программирование» Москва, «Высшая школа», 1980 г.
2. Максимей И.В., Серёгина В.С. «Задачи и модели исследования операций» Гомель, 1999 г.
3. Солодовников А.С. «Введение в линейную алгебру и линейное программирование» Москва, «Просвещение», 1996 г.
4. Уолш Б. «Программирование на Бейсике» Пер. с анг. – Москва: Радио и связь, 1998 г.
5. Фиакко А., Маккормик Г. «Нелинейное программирование» Пер. С анг. – Москва: Мир, 1988 г.
6. Д.Хедли. Нелинейное и динамическое программирование. -М.: Мир, 1967.
7. Г.П.Кюнци, В.Крелле. Нелинейное программирование. -М. : Сов. радио, 1965.
Информация о работе Особенности задач нелинейного программирования