
- •Раздел 5. Основы теории игр
- •Раздел 1. Структура оптимизационной модели. Классификация моделей.
- •Раздел 2. Линейное программирование
- •Характеристика линейной оптимизационной модели. Примеры задач линейного программирования и графический метод их решения.
- •2 .2. Симплекс-метод
- •2.3. Теория двойственности в линейном программировании
- •Раздел 3. Нелинейное программирование.
- •3.1.Общая характеристика нелинейной оптимизационной модели.
- •3.2.Способы решения задач нелинейного программирования.
- •Раздел 4. Динамическое программирование.
- •4.1. Общая характеристика метода динамического программирования.
- •4.2. Задача транспортировки груза по сети дорог.
- •4.3.Задача распределения ресурсов.
- •4.4. Задача определения оптимальной политики замены оборудования.
- •Раздел 5. Основы теории игр.
- •5.1.Основные понятия теории игр. Парные матричные игры с нулевой суммой.
- •5.2. Методы решения матричных игр.
- •5.3. Статистические игры.
- •6. Основы теории управления запасами.
- •6.1.Основные понятия теории управления запасами.
- •6.2. Детерминированные модели управления запасами.
- •6.3. Стохастические модели управления запасами.
- •Раздел 7. Основы теории систем массового обслуживания.
- •7.1. Основные понятия теории систем массового обслуживания.
- •7.2. Основные характеристики функционирования смо с отказами.
- •7.3. Основные характеристики функционирования смо с очередью.
- •Нелинейное программирование
Раздел 3. Нелинейное программирование.
3.1.Общая характеристика нелинейной оптимизационной модели.
Количественные зависимости между факторами, как правило, имеют нелинейный вид. В этой связи уместно напомнить, что существует два отличительных признака нелинейности функций: а) наличие в формуле функции, по крайней мере, одной переменной, степень которой отличается от первой; б) наличие в формуле функции хотя бы одного произведения переменных. Данные признаки определяют принадлежность модели к категории задач нелинейного программирования.
Нелинейные
функции можно характеризовать посредством
такого свойства как выпуклость или
вогнутость. Проиллюстрируем данное
свойство с помощью графика нелинейной
функции от одной переменной
.
Ниже приведены два условных графика
нелинейной функции от одной переменной
(рис. 4 и рис. 5).
Рис. 4. График выпуклой функции .
Вторая производная выпуклой функции положительна, экстремум (если он существует) - минимум.
Рис. 5. График вогнутой функции
Вторая производная вогнутой функции отрицательна, экстремум (если он существует) – максимум.
Для определения выпуклости (вогнутости) функции от нескольких переменных можно использовать следующий метод:
- определить вторые частные производные функции;
- сформировать из данных производных матрицу;
- определить знаки главных миноров матрицы вторых частных производных.
Если все главные миноры положительны, то функция строго выпукла; если знаки чередуются в последовательности
-\+ , то функция строго вогнута.
Рассмотрим применение метода на примере.
Требуется
исследовать функцию
на выпуклость (вогнутость).
Определим сначала первые частные производные этой функции:
. Затем - вторые
частные производные:
Сформируем
из вторых частных производных матрицу
( матрица Гёссе):
.
Определим знаки ее главных миноров.
Минор первого порядка
.
Минор второго порядка
.
Таким образом, функция строго вогнута.
Рассмотрим общую запись задачи нелинейного программирования:
В отличие от задач линейного программирования, области допустимых решений (ОДР) которых всегда выпуклы, ОДР задач нелинейного программирования могут быть выпуклыми (рис. 6) и невыпуклыми (рис. 7).
Рис. 6. ОДР задачи нелинейного программирования – выпуклое множество.
Рис. 7. ОДР задачи нелинейного программирования –невыпуклое множество
Кроме того, ОДР задачи нелинейного программирования может иметь разрывы (рис. 8).
Рис. 8. ОДР задачи нелинейного программирования – два подмножества.
Если оптимальное решение задачи линейного программирования всегда находится на границе ОДР (по крайней мере, в одной из ее крайних точек), то точка оптимума задачи нелинейного программирования может принадлежать либо внутренней части ОДР, либо ее границе.
В данном пособии рассматриваются задачи, в которых ОДР выпукла и не имеет разрывов.
3.2.Способы решения задач нелинейного программирования.
3.2.1..Графоаналитический метод.
Рассмотрим задачу нелинейного программирования следующего содержания.
Предприятие
выпускает изделия двух видов, используя
два вида сырья, запасы которого
в рассматриваемом периоде ограничены.
Известны нормы расхода сырья
;
цены изделий
;
плановая себестоимость единицы изделия
.
Известно также, что фактическая
себестоимость единицы изделия отклоняется
от плановой из-за несоответствия объемов
выпуска мощности предприятия. Связь
между фактической и плановой себестоимостью
характеризуется следующим выражением:
,
где
- фактическая себестоимость,
- коэффициент отклонения фактической
себестоимости от плановой,
- объем выпуска изделия.
Требуется: составить план выпуска двух изделий, максимизирующий прибыль предприятия.
Если использовать инструментальные переменные для обозначения объемов выпуска изделий, то модель задачи будет иметь следующий вид:
при ограничениях
Наличие в модели всего лишь двух инструментальных переменных открывает возможность использовать для решения задачи метод, основанный на построении графической схемы. Схема должна отображать как область допустимых решений, так и целевую функцию задачи. Поскольку ограничения задачи линейны, способ отображения ОДР прост и очевиден. Однако для изображения целевой функции потребуется несколько видоизменить запись ее формулы.
Приведем формулу
целевой функции к узнаваемому виду с
помощью выделения полных квадратов
двучлена относительно переменных
и
.
В формуле целевой функции проведем
преобразования так, чтобы в результате
уравнение целевой функции приняло вид:
,
где
- числа.
Стало
очевидным, что мы располагаем записью
уравнений окружностей с общим центром,
имеющим координаты
.
Данные окружности являются линиями
уровня целевой функции задачи.
Строим графическую схему, нанося на координатную плоскость линии ограничений и линии уровня целевой функции. Цель графического анализа – определить приблизительное местонахождение точки оптимума.
На рисунке 9 приводится условная графическая схема задачи.
О
Рис. 9. Графическая схема задачи.
На основе схемы можно сделать вывод, что оптимальное решение нашей задачи принадлежит линии первого ограничения.
Для получения координат точки оптимума необходимо решить систему 2-х уравнений, одно из которых – уравнение линии первого ограничения, а другое – уравнение линии, проходящей через точку А и перпендикулярной линии первого ограничения. Первое уравнение известно, а второе необходимо вывести.
Для выведения второго уравнения запишем формулу пучка прямых, проходящих через точку А:
,
где
– угловой коэффициент линии. Коэффициенты
перпендикулярных прямых противоположны
по знаку и обратны по величине, что
позволяет определить значение
. Найдем коэффициент линии первого
ограничения, выражая
через
:
.
Откуда
получаем
.
Составляем систему из двух уравнений, решением которой являются координаты точки оптимума. Подставив найденные значения и в целевую функцию, мы определим ее максимальное значение.
3.2.2.Метод множителей Лагранжа.
Если
ограничения задачи НЛП являются
равенствами, то для ее решения можно
использовать метод множителей Лагранжа.
Основой метода является введение в
решение вспомогательной функции
Лагранжа. Функция Лагранжа образована
двумя слагаемыми. Первое слагаемое –
сама целевая функция, второе слагаемое
– сумма произведений особых переменных
(множителей Лагранжа) на разности
.
.
Решение задачи основано на следующих действиях:
- определение частных производных функции Лагранжа по переменным и ;
- определение координат стационарных точек функции Лагранжа;
- анализ функции Лагранжа на выпуклость-вогнутость по переменным ;
-
получение выводов: вогнутость функции
Лагранжа по переменным
означает, что в данной точке функция
достигает максимума на области допустимых
решений задачи; выпуклость
означает, что в этой точке
достигает минимума на области допустимых
решений задачи.
Для определения координат стационарных точек функции Лагранжа следует приравнять частные производные функции первого порядка к нулю и сформировать из данных уравнений систему. Решения данной системы и есть стационарные точки функции Лагранжа.
Рассмотрим
применение метода на примере. Предположим,
требуется найти
при ограничении
без требования неотрицательности
переменных.
Составим функцию Лагранжа:
.
Определим ее частные производные:
Найдем координаты стационарных точек функции путем решения следующей системы уравнений:
Решения данной системы:
и
.
Они представляют собой координаты двух
стационарных точек функции Лагранжа.
Проведем анализ функции Лагранжа на
выпуклость-вогнутость по переменным
с помощью вторых частных производных.
Вторые частные производные по
:
.
Составим из них матрицу
.
Определяем значения компонент матрицы
в первой стационарной точке
.
Выпуклость функции очевидна, поскольку
.
Таким образом, в первой стационарной
точке целевая функция
достигает наименьшего значения на ОДР
задачи. Определяем значения компонент
матрицы во второй стационарной точке
.
Очевидна вогнутость функции, так как
.
Таким образом,
во второй стационарной точке достигает
максимального значения. Минимальное и
максимальное значение целевой функции
определяется путем подстановки в ее
формулу значений
в
данных стационарных точках.
Метод, основанный на использовании множителей Лагранжа, достаточно распространен при решении задач нелинейного программирования.
3.3.3.Градиентный метод.
Наибольшей универсальностью при решении задач нелинейного программирования характеризуется градиентный метод. Градиентный метод основан на использовании градиента целевой функции и имеет различные модификации.
Рассмотрим основные шаги процедуры градиентного метода.
Выбираем в ОДР начальную точку
.
Записываем общее выражение градиента (или антиградиента) целевой функции
или
.
Определяем значение компонент градиента или антиградиента в точке .
Записываем выражение для перехода в точку
Для вычисления длины шага
записываем выражение
Вычисляем длину
шага по уравнению
Находим координаты .
Находим
или кратный ему вектор
.
Воспроизводим действия до тех пор, пока в очередной точке
градиент ( или антиградиент) функции не обращается в ноль
.
Примечание. Необходимо проверить данную точку на принадлежность ОДР.
Последующие шаги характеризуют решение для случаев, когда оптимум находится не внутри ОДР, а на ее границе.
Возвращаемся на границу ОДР. С этой целью выясним, какому ограничению не удовлетворяет очередная точка
. Из точки
Мы попали в нее с
помощью выражения
.
Для каждой отдельной координаты это
выражение записываем в виде
.
Очевидно, для возвращения на границу
ОДР нам необходимо изменить длину шага
.
Запишем
-ое
ограничение, которому не удовлетворяет
точка
.
Чтобы выйти
на требуемую длину шага
перепишем
выражение
. Откуда получим
.
Если таких ограничений несколько, то среди нескольких
выбираем наименьшее.
Определяем
. Данная точка принадлежит границе ОДР.
На границе ОДР определяем направление желательного изменения целевой функции. С этой целью возьмем в найденной точке
производную по направлению
.
Записываем выражение для точки оптимума
, кроме того, воспользуемся вспомогательной записью
. Для получения длины шага
используем уравнение
.
Вычисляем координаты точки оптимума и экстремальное значение целевой функции.