- •Теория принятия решений
- •Часть 2 нелинейное программирование, теория игр, многокритериальные задачи принятия решений
- •Введение
- •4. Нелинейное программирование
- •4.1. Характеристика задач
- •4.2. Условия оптимальности
- •4.3. Квадратичное программирование
- •4.4. Сепарабельное программирование
- •4.5. Задачи дробно-линейного программирования
- •4.6. Методы спуска
- •4.7. Методы одномерной минимизации
- •4.7.3. Метод деления интервала пополам
- •4.7.4. Метод золотого сечения
- •4.7.6. Метод первого порядка
- •4.8. Многомерный поиск безусловного минимума
- •4.8.1. Метод Гаусса – Зейделя (покоординатного спуска)
- •4.8.2. Метод Хука – Дживса (метод конфигураций)
- •4.8.3. Симплексный метод
- •4.8.4. Градиентные методы
- •4.8.6. Методы сопряженных направлений
- •4.8.7. Методы случайного поиска
- •Алгоритм с возвратом при неудачном шаге
- •Алгоритм с обратным шагом
- •Алгоритм наилучшей пробы
- •Алгоритм статистического градиента
- •4.8.8. Генетические алгоритмы
- •Исходная популяция
- •Результаты работы оператора скрещивания
- •Популяция первого поколения
- •4.9. Методы условной оптимизации
- •4.9.2. Метод проектирования градиента
- •4.9.3. Метод штрафных функций
- •Минимизация по методу Ньютона
- •4.9.4. Метод барьерных функций
- •Результаты поиска алгоритмом барьерных функций
- •4.9.5. Другие методы условной оптимизации
- •5. Методы теории игр в управлении
- •5.1. Теория игр в контексте теории принятия решений
- •5.2. Матричные игры с нулевой суммой
- •Использование линейной оптимизации при решении матричных игр. Пусть игра не имеет оптимального решения в чистых стратегиях, т.Е. Седловая точка отсутствует .
- •5.3. Игры с природой
- •5.4. Критерии, используемые для принятия решений
- •В играх с природой. Критерии, основанные
- •На известных вероятностях стратегий природы
- •Иногда неопределенность ситуации удается в некоторой степени ослабить с помощью нахождения вероятностей состояний на базе данных статистических наблюдений.
- •5.5. Оценка необходимости эксперимента
- •6. Многокритериальные задачи принятия решений
- •6.1. Основы многокритериальный оптимизации
- •6.2. Принцип оптимальности Парето.
- •6.3. Принцип равновесия по Нэшу
- •6.4. Конфликты, переговоры и компромиссы
- •6.5. Краткий обзор методов решения задачи векторной оптимизации
- •Значения компонентов вектор-функции
- •1. Оптимальность по Парето
- •Исходные данные для задачи оптимизации по Парето
- •Эффективность операции
- •2. Принятие решений в условиях неопределенности
- •Исходные данные для задачи принятия решения в условиях неопределенности
- •3. Многокритериальная оптимизация
- •Заключение
- •Библиографический список
- •Оглавление
- •Теория принятия решений
4.1. Характеристика задач
Методы нелинейного программирования применяются для решения задач с нелинейными функциями переменных.
В общем случае задача математического программирования записывается в виде
(4.1)
Если хотя бы одна функция в модели (4.1) нелинейна, имеем задачу нелинейного программирования (НП). Размерность задачи характеризуется размерностью вектора переменных n и числом условий m1 + m2. Однако сложность задачи определяется не столько размерностью, сколько свойствами функций цели и ограничений.
Разнообразие задач НП очень велико. Универсальных методов решения таких задач не существует. Имеется весьма ограниченное число точных методов и намного больше приближенных.
Наиболее развиты методы решения задач выпуклого программирования. К этому классу относятся задачи НП с выпуклым допустимым множеством и выпуклой целевой функцией при минимизации или вогнутой при максимизации. Допустимое множество выпуклое, если все функции линейные и выпуклы при неравенстве «меньше или равно» либо вогнуты при неравенстве «больше или равно». Например, условие x12 + x22 r2 порождает выпуклое множество, пересечение которого с прямой x1 + x2 = 0 дает тоже выпуклое множество. Очевидно, что задачи ЛП относятся к этому классу. Главная особенность задач выпуклого программирования в том, что они унимодальны, т.е. любой их локальный оптимум является глобальным. Для ряда задач выпуклого программирования с дифференцируемыми функциями разработаны точные методы. Наибольшие сложности возникают при решении многоэкстремальных задач, которые по определению не относятся к классу выпуклых.
Важным классом НП являются задачи квадратичного программирования. В них целевая функция представляет собой сумму линейной и квадратичной форм, а все условия линейные. При выпуклости (вогнутости) квадратичной формы они представляют собой частный случай задач выпуклого программирования.
В нелинейном программировании выделяют также задачи сепарабельного программирования. Это задачи, в которых все функции сепарабельны. Функция сепарабельна, если она представляется в виде сумы функций отдельных переменных. Линейная функция – частный случай сепарабельной. Сепарабельная задача может быть одновременно и задачей выпуклого программирования.
Задачи геометрического программирования составляют отдельный класс НП. Все функции в таких задачах являются позиномами. В общем виде позиномом называется функция
,
в которой kj – любые действительные числа.
Задачи геометрического программирования ставятся только на минимум:
Такие задачи чаще возникают в конструкторских разработках. Для них созданы специальные методы.
Пример 4.1. Спроектировать открытый контейнер с прямоугольными стенками и днищем для перевозки из карьера гравия объемом V, если стоимость одной перевозки С не зависит от объема контейнера, а стоимость 1 м2 днища равна a, передней и задней стенок – b, боковых стенок – d.
Пусть x – ширина, y – глубина и z – высота контейнера (рис. 4.1). Тогда целевая функция – суммарные затраты – запишется в виде
Получили типичный позином.
Кусочно-линейное программирование включает специальные методы решения задач с кусочно-линейными функциями. В частности, такими являются функции
f(x) = fi(x) и f(x) = fi(x),
если всеfi(X) – линейные функции. Первая из них – выпуклая (рис. 4.2), вторая – вогнутая. Задачи с такими функциями могут входить в класс задач выпуклого программирования. Их решение строится на преобразовании модели к линейному виду с последующим применением методов ЛП.
К линейным сводятся также задачи дробно-линейного программирования. Они отличаются от линейных только дробной целевой функцией, числитель и знаменатель которой – линейные функции.