Вы находитесь на странице: 1из 3

Попытка доказательства конечности

процедуры релаксации
Казанцев Максим
15 декабря 2009 г.

Дополненная и исправленная версия

Описание процедуры релаксации

𝑓 (𝑥) → max (1)


𝑥∈𝑋

𝜙𝑖 (𝑥) ≤ 0 ∀𝑖 (2)

Идея принципа релаксации состоит в том, чтобы свести решение за-


дачи 1—2 к решению серии задач вида 3—4:

𝑓 (𝑥) → max (3)


𝑥∈𝑋

𝜙𝑖 (𝑥) ≤ 0 𝑖 ∈ 𝑆 (4)
Будем считать, что:

1. Любая релаксированная задача имеет оптимальное решение если


она допустима и ограничена;

2. Известно начальное множество 𝑆 0 , с которым релаксированная за-


дача разрешима оптимально.

Шаг 1
𝑓 := ∞ — верхняя граница,
𝑆 := 𝑆 0 .

1
Шаг 2
Решить релаксированную задачу. Если она неразрешима, то алгоритм
завершается — исходная задача тоже неразрешима. Иначе: пусть 𝑥𝑆 —
оптимальное решение релаксированной задачи. Если 𝜙𝑖 (𝑥𝑆 ) ≤ 0 𝑖 ∈
/ 𝑆,
то алгоритм завершается — 𝑥𝑆 оптимальное решение исходной задачи,
иначе переход на Шаг 3.

Шаг 3
Обозначим за 𝑉 множество индексов, содержащее индекс хотя бы
одного нарушенного ограничения, т.е. ∃𝑖 ∈ 𝑉 : 𝜙𝑖 (𝑥𝑆 ) > 0. Если 𝑓 (𝑥𝑆 ) <
𝑓 , то 𝑓 := 𝑓 (𝑥𝑆 ), 𝑆 := 𝑉 ∪ 𝐸, где 𝐸 — активные ограничения из S:

𝐸 = {𝑖 ∈ 𝑆 : 𝜙𝑖 (𝑥𝑆 ) = 0}

Иначе, 𝑆 := 𝑆 ∪ 𝑉 .
Переход на Шаг 2.

Несколько слов о конечности процедуры ре-


лаксации
Можно говорить о конечности процедуры релаксации, если в резуль-
тате выполнения конечного числа шагов алгоритма либо будет найдено
решение, либо алгоритм сообщит нам, что решения не существует.

Стоит заметить, что число ограничений 𝜙𝑖 (𝑥) — конечно.

0. На нулевой итерации решение задачи на множестве 𝑆 0 всегда су-


ществует (как следует из допущений, принятых выше). Следовательно,
на Шаге 2 найдется 𝑥0 , являющееся решением релаксированной задачи
для множества 𝑆 0 и осуществится переход на Шаг 3.

На Шаге 3 происходит сравнение значения фукнции на полученном


решении 𝑓 (𝑥0 ) и текущего 𝑓 . Для нулевой итерации 𝑓 (𝑥0 ) < 𝑓 = ∞ (ина-
че бы 𝑥0 не было решением), а значит значение 𝑓 изменяется на новое.
При этом множество 𝑆 := 𝑉 ∪ 𝐸 формируется таким образом, что поис-
ки решения на следующей итерации будут происходить в другой части
множества 𝑋, в крайнем случае граничащей с текущим 𝑆.

В общем случае, если новое значение функции меньше предыдуще-


го, можно считать, что в множестве {𝑥 ∈ 𝑋 : 𝜙𝑖 (𝑥) ≤ 0 𝑖 ∈ 𝑆} поиски

2
оптимального решения исчерпаны и пора переходить к другим частям
множества X. Если же больше или равно, то это множество считается
перспективным, и зажимается оставшимися ограничениями.

n. Если решение на текущем S найти не удалось, алгоритм сообщает


об этом и выходит на Шаге 2. Если решение снова найдено, переход на
Шаг 3.
Пусть на некоторой итерации 𝑘, где 𝑘 < 𝑛, было получено решение 𝑥𝑘
такое, что на 𝑛-й итерации 𝑓 (𝑥𝑘 ) = 𝑓 . На Шаге 3 возможны два случая
продолжения процесса.
Во-первых, если 𝑓 (𝑥𝑛 ) ≥ 𝑓 — тогда обнаружено лучшее решение и 𝑆 :=
𝑆 ∪ 𝑉 , т.е. происходит уточнение области поиска решения, оставаясь в
пределах того же перспективного множества 𝑆.
Во-вторых, если 𝑓 (𝑥𝑛 ) < 𝑓 — тогда обнаружено худшее решение и 𝑆 :=
𝑉 ∪ 𝐸, т.е. происходит переход в другую область пространства 𝑋. В этом
случае возможно, что новое 𝑆 — именно то множество, которое было
рассмотрено на 𝑘-й итерации. Если так, то после перехода в 𝑆, на итера-
ции 𝑛 + 1, алгоритм останется в множестве S, уточнив его как минимум
одним дополнительным ограничением

В общем случае, если алгоритм возвращается на множество 𝑆, уже


рассмотренное им ранее, это означает, что он из него ушел. Раз ушел,
значит на некотором шаге 𝑘 выполнилось условие 𝑓 (𝑥𝑘 ) < 𝑓 и значение
𝑓 было переписано. Раз вернулся на 𝑆, значит на других множествах бо-
лее оптимального решения найдено не было, и 𝑓 переписывалось только
в худшую сторону. Следовательно, в этот раз на множестве 𝑆 на Шаге
3 алгоритм выберет режим работы, при котором 𝑆 := 𝑆 ∪ 𝑉 . Иными
словами, алгоритм останется в множестве S, уточнив его как минимум
одним одполнительным ограничением.

Таким образом, в самом худшем случае, до своего конца алгоритм


проверяет по (𝑁 −1) подмножеств множества X на каждое 𝑁 -е добавлен-
ное в 𝑆 ограничение, проходя на каждой итерации одно подмножество. А
поскольку количество ограничений конечно, количество итераций тоже
будет конечным.