
- •Математические основы теории систем
- •Введение. Прикладные возможности методов оптимизации
- •Тема1. Общие сведения о методах оптимизации
- •1.1. Основные понятия и определения. Постановка задачи
- •Тема2. Математическое программирование
- •2.1. Постановка задачи математического программирования. Виды экстремума функций многих переменных
- •2.2. Определение выпуклости
- •2.3. Типы задач математического программирования
- •2.4. Связь между задачей математического программирования и задачей оптимального управления
- •Тема3. Линейное программирование
- •3.1. Математическая формулировка и основные особенности задачи линейного программирования
- •3.2. Геометрическая интерпретация задач линейного программирования
- •3.3. Симплекс-метод решения задач линейного программирования
- •3.4. Симплекс-таблицы
- •3.5. Метод искусственного базиса
- •3.6. Информационные технологии линейного программирования
- •3.7. Двойственная задача линейного программирования
- •3.8.Двойственный симплекс-метод
- •3.9. Целочисленное линейное программирование
- •Тема4. Экстремальные задачи без ограничений
- •4.1. Одномерная минимизация унимодальных функций
- •4.2. Поиск безусловного экстремума функций многих переменных
- •Тема5. Экстремальные нелинейные задачи с ограничениями
2.2. Определение выпуклости
Одним
из важнейших понятий, используемых в
математическом программировании,
является понятие выпуклости. Точечные
множества Sназываются
выпуклыми, если для любых двух точек
и
следует, что
,
где
.
Геометрически это означает, что если
две точки принадлежат множествуS,
то и весь отрезок, соединяющий эти точки,
принадлежитS.
На рис. 2.2, а показано несколько примеров выпуклых, а на рис. 2.2, б – несколько невыпуклых множеств.
Рис. 2.2. Примеры выпуклых и невыпуклых множеств:
a – выпуклые множества; б – невыпуклые множества
Аналогично
дается определение выпуклой функции.
Функция
является выпуклой на выпуклом множествеS, если для любых двух
точек
выполняется соотношение
,
(2.2)
где
.
Если в
(2.2) знак «»
можно заменить на знак строгого
неравенства « < »,
то функция
будет строго выпуклой.
На рис
2.3 показана геометрическая интерпретация
определения выпуклой функции одной
переменной, откуда следует, что выпуклая
функция
всегда расположена ниже любой прямой,
соединяющей две точки не её поверхности.
Если
знак неравенства (2.2) изменить на обратный,
то
будет вогнутой или выпуклой вверх
функцией.
Из
определения следует, что если
выпуклая (или строго выпуклая), то
– вогнутая или строго вогнутая функция
или наоборот. Для выпуклой функции
,
а для вогнутой –
.
Рис.
2.3. Выпуклая функция
В отличие от невыпуклых функций, которые
могут иметь любое число локальных
минимумов, выпуклая функция имеет только
глобальный минимум. Задача нахождения
минимального значения выпуклой функции
в случае, когда область допустимых
значений переменных определяется
системой выпуклых неравенств
,
называется задачей выпуклого
программирования. Любой локальный
минимум задачи выпуклого программирования
является глобальным минимумом. Это
свойствозадач выпуклого программированиязначительно облегчает поиск их решения.
2.3. Типы задач математического программирования
В зависимости от вида функций цели и типа ограничений задачи математического программирования подразделяются на ряд более частных задач.
Линейное
программирование– функция цели
и ограничения являются линейными
функциями переменных
,
.
Нелинейное программирование– функция цели и (или) ограничения являются нелинейными.
Квадратичное
программирование– функция цели
является квадратичной функцией, а
ограничения – линейные функции переменных
,
.
Сепарабельное
программирование– функция цели
и ограничения являются сепарабельными
функциями, т.е. представлены в виде сумм
функций, каждая из которых зависит
только от одной переменной.
Геометрическое
программирование– функция цели
и ограничения представлены с помощью
положительных полиномов вида
где
– постоянные положительные коэффициенты,
;
– произвольные действительные числа,
.
Целочисленное
программирование– это задача
математического программирования, в
которой переменные
могут принимать только целые значения.
Стохастическое программирование– коэффициенты в целевой функции или в ограничениях являются случайными величинами.
2.4. Связь между задачей математического программирования и задачей оптимального управления
Как уже
отмечалось, задача оптимального
управления заключается в отыскании
такого алгоритма управления
,
который переводит ОУ из заданного
начального состояния
в конечное
и обеспечивает экстремум выбранному
критерию оптимальности при соблюдении
заданных ограничений. Рассмотрим задачу
оптимального управления, в которой
необходимо обеспечить экстремум
функционалу
,
(2.3)
представляющему собой сумму интегральной
и терминальной составляющей. Здесь
– терминальная функция, она не зависит
от управляющего воздействия, а определяется
только состоянием объекта в конечный
момент времени. При этом должны
удовлетворяться уравнения состояния
системы
2.4)
и ограничения
.
(2.5)
Задача оптимального управления фактически является задачей оптимального программирования [8]. Чтобы пояснить это, надо задачу оптимального управления представить несколько иначе.
Представим
интеграл (2.3) в виде суммы, разбив интервал
на
временных подинтервалов
.(2.6)
Уравнения состояния (2.4) при таком разбиении можно представить следующим образом
,
(2.7)
а ограничения (2.5) в виде
.
(2.8)
Другими
словами интегрирование заменяется
конечным суммированием, а дифференциальные
уравнения заменяются разностными
уравнениями. Объединим (2.6)–(2.8),
вводя обозначения
.
При этом получим задачу математического
программирования
(2.9)
в которой неизвестными являются
,
.
Число переменных в (2.9) бесконечно, т.е. задача оптимального управления для непрерывной системы образует бесконечномерную задачу математического программирования. При решении практических задач число переменных может быть уменьшено до приемлемой величины. Большая часть работ, посвященных решению задач оптимального управления методами математического программирования, относится к линейным системам. При этом задача оптимального управления сводится к решению задачи линейного программирования.