- •1. Задачи оптимизации
- •1.1. Основные понятия
- •1.2. Постановка задачи оптимизации
- •1.2.1 Задача безусловной оптимизации
- •1.2.2. Задача условной оптимизации
- •1.2.3. Классическая задача на условный экстремум
- •1.2.4. Понятия выпуклого множества и выпуклой функции
- •1.2.5. Выпуклая задача оптимизации
- •1.2.6. Задача математического программирования
- •1.2.7. Задачи выпуклого программирования
- •1.2.8. Задачи линейного и квадратичного программирования
- •1.2.9. Задача дискретной оптимизации
- •1.2.10. Задачи оптимального управления
- •2.Начальные сведения о численных методах оптимизации
- •2.1. Понятие о численных методах оптимизации
- •2.2. Сходимость методов оптимизации
- •2.3. Условия остановки (критерии окончания счета)
- •2.4. Направление убывания и методы спуска
- •2.5. Выбор длины шага из условия минимизации функции вдоль заданного направления
1.2.8. Задачи линейного и квадратичного программирования
Задачей линейного программирования (ЛП) называется задача минимизации или максимизации линейной функции при линейных ограничениях. Так, задача (1.21) является задачей ЛП, если f, gi, ..., gm – линейные функции, а Р – полиэдр, т.е. множество, само задаваемое линейными условиями (см. (1.17)).
Задачей квадратичного программирования называется задача минимизации при линейных ограничениях квадратичной функции вида
f(x)= Cx, x + d, x,
где С – симметрическая неотрицательно определенная матрица размера пп, d – вектор из Rn. Стало быть, задача квадратичного программирования – это частный случай задачи выпуклого программирования, а задача ЛП – частный случай их обеих (С = 0). Эти два подкласса задач выпуклого программирования в настоящее время наиболее хорошо изучены.
В литературе принят ряд специальных форм записи задачи ЛП, каждая из которых удобнее других в том или ином круге вопросов. Задача ЛП в форме
,
, i =1, …, k,
, i = k+1, …, m,
xj 0, j = 1, …, s.
называется общей, в форме
, , i = 1, …, m, (1.23)
– основной, в форме
, , i = 1, …, m, xj 0, j = 1, …, n. (1.24)
– стандартной, в форме
, , i = 1, …, m, xj 0, j = 1, …, n. (1.25)
– канонической. Здесь сj, аij, bi – заданные числа.
Часто прибегают к векторно-матричной записи тех же задач. Например, задачу (1.23) можно записать в виде
c, x min, ai, x bi, i = 1, …, m, (1.26)
или в виде
c, x min, Ax b,
где c = (ci, ..., сn) Rn, b = (bi, ..., bm) Rm, A – матрица размера тп со строками a1, ..., am и элементами аij.
1.2.9. Задача дискретной оптимизации
В дальнейшем будем называть конечные множества и счетные множества без предельных точек дискретными. Задача (1.1) (или (1.4)) называется задачей дискретной оптимизации, если либо само допустимое множество Х Rn дискретно, либо лишь некоторые из координат вектора х = (x1, ..., xп) пробегают дискретные множества на числовой оси, когда х пробегает X.
Часто допустимое множество задачи дискретной оптимизации имеет вид
,
где D = D1 ... Dn, причем Dj {0, ±1, ±2, ...} для j J и Dj = R для j J. Здесь J – некоторое подмножество множества {1, ..., п}. В качестве Dj (j J) могут выступать, например, Dj ={0, ±1, ±2,...}, Dj = {0, 1, 2,...}, Dj = {0, 1}. Это соответственно означает, что координата xj вектора х может принимать лишь целые, натуральные, булевые значения.
Задачу (1.1) (или 1.4)) с указанным множеством Х называют задачей дискретного программирования, а при J = {1,..., п} – также задачей целочисленного программирования.
Как мы видим, по своей постановке задача дискретного программирования отличается от общей задачи математического программирования специальным заданием прямого ограничения. Здесь также используется запись типа (1.21), т. е.
f(x) min,
gi(x) 0, i = 1, …, k, (1.30)
gi(x)= 0, i = k+1, …, т, x D.
Если функции f, g1, ..., gm линейны, то задачу (1.30) при J = {1, ..., п} называют целочисленной задачей линейного программирования (ЛП), а при J {1, ..., п} – частично целочисленной задачей ЛП. Если Dj = {0, 1}, то иногда говорят о {частично} булевой задаче ЛП.