Рис. 6.1. Контрпример к приближенному алгоритму разд. 5.4.
Шаг 4. Повторять шаги 2 и 3 до тех пор, пока все вершины из
не будут опробованы. Эта процедура оформляется как цикл. Если при выполнении последнего цикла совсем не будет замещений вершин на шаге
то перейти к шагу 5. В противном случае, т. е. если осуществлено некоторое замещение, назвать все вершины «неопробованными» и вернуться к шагу 2.
Шаг 5. Стоп. Текущее множество
является подходящей аппроксимацией
-медианного множества
Очевидно, что приведенный выше алгоритм не во всех случаях дает оптимальный ответ [18]. Действительно, рассмотрим неориентированный граф, изображенный на рис. 6.1. Числа, стоящие около ребер, равны соответствующим реберным стоимостям. Считаем, что все вершины имеют единичные веса. Если искать
-медиану и в качестве начального множества
взять
с передаточным числом
то никакое замещение только одной вершины не приводит к множеству с меньшим передаточным числом. Однако множество
не является
-медианой данного графа. Существуют два
-медианных множества:
и
с передаточными числами
Алгоритм, описанный в настоящем разделе, является в действительности лишь одним из целого семейства алгоритмов, базирующихся на локальной оптимизации и на идее
-оптимальности, впервые введенной Лином [22] для задачи коммивояжера, а впоследствии развитой и использованной в других работах [3, 4, 19] при исследовании различных комбинаторных проблем.
Вернемся к нашей задаче. Множество
из
вершин называется
-оптимальным
если замена любых
вершин из
множества
любыми
вершинами, не принадлежащими
не может породить нового множества с передаточным числом, меньшим, чем
Очевидно, что если
является
-медианным множеством
рассматриваемого графа, то S
-оптимально. Совершенно очевидно также, что если
является
-оптимальным множеством и S" -
-оптимальное множество, то
при
Согласно приведенным выше определениям решение, полученное с помощью алгоритма из разд. 5.4.1, можно назвать
-опти-мальным. Подобные алгоритмы можно дать и для порождения
-оптимальных,
-оптимальных и т. д. решений. Чтобы убедиться в
-оптимальности множества
нужно выполнить
возможных замещений
следовательно, и вычислений передаточных чисел
Это число довольно быстро растет с ростом
а поэтому такие алгоритмы практически нельзя использовать для значений
больших 3.
6. Задачи
(см. скан)