Введение

Алгоритм локального поиска Табу-поиск (ТП) — это метаэвристический метод поиска, использующий методы локального поиска для математической оптимизации. Он был разработан Фредом Гловером в 1986 году и формализован в 1989 году. Локальные (соседние) поиски берут потенциальное решение задачи и проверяют его непосредственных соседей (то есть решения, которые похожи, за исключением небольшого числа незначительных деталей) в надежде найти улучшенное решение. Методы локального поиска склонны застревать в субоптимальных областях или на плато, где множество решений имеют одинаковую пригодность. Табу-поиск повышает эффективность локального поиска, ослабляя его базовое правило. Во-первых, на каждом шаге могут приниматься ухудшающие ходы, если нет доступных улучшающих ходов (например, когда поиск застрял в строгом локальном минимуме). Кроме того, вводятся запреты (отсюда и термин «табу»), чтобы предотвратить возврат поиска к ранее посещенным решениям. Реализация табу-поиска использует структуры памяти, описывающие посещенные решения или наборы правил, заданные пользователем. Табу-поиск — это метаэвристический алгоритм, который можно использовать для решения задач комбинаторной оптимизации (задач, где требуется оптимальное упорядочение и выбор вариантов). Современные области применения ТП охватывают планирование ресурсов, телекоммуникации, проектирование ВЛСИ, финансовый анализ, составление расписаний, пространственное планирование, распределение энергии, молекулярную инженерию, логистику, классификацию образов, гибкое производство, управление отходами, геологоразведку, биомедицинский анализ, охрану окружающей среды и многие другие. В последние годы журналы в различных областях публикуют учебные статьи и вычислительные исследования, документирующие успехи табу-поиска в расширении границ решаемых задач — предоставляя решения, качество которых часто значительно превосходит результаты, полученные ранее применявшимися методами. Полный список применений, включая краткое описание достижений, полученных в результате практической реализации, можно найти в

Основное описание

Поиск табу использует процедуру локального или соседнего поиска для итеративного перехода от одного потенциального решения к улучшенному решению в его окрестности, пока не будет выполнен какой-либо критерий остановки (обычно, ограничение на количество попыток или пороговое значение оценки). Процедуры локального поиска часто застревают в областях с плохой оценкой или в областях, где оценка стабилизируется. Чтобы избежать этих проблем и исследовать области пространства поиска, которые остались бы неисследованными другими процедурами локального поиска, поиск табу тщательно исследует окрестность каждого решения по мере продвижения поиска. Решения, допускаемые в новую окрестность, определяются с помощью структур памяти. Используя эти структуры памяти, поиск продвигается путем итеративного перехода от текущего решения к улучшенному решению в.

Поиск табу имеет несколько сходств с имитацией отжига, поскольку оба допускают возможные переходы к худшим решениям. Фактически, имитацию отжига можно рассматривать как частный случай поиска табу, в котором используется "постепенный срок запрета", то есть, переход становится табу с определенной вероятностью. Эти структуры памяти формируют так называемый список табу – набор правил и запрещенных решений, используемых для фильтрации решений, которые будут допущены в окрестность для исследования. В своей простейшей форме список табу представляет собой краткосрочный набор решений, которые были посещены в недавнем прошлом (менее чем итераций назад, где – количество предыдущих решений, которые необходимо сохранить, также называемое сроком запрета). Чаще всего список табу состоит из решений, которые изменились в процессе перехода от одного решения к другому. Для удобства описания полезно понимать, что "решение" кодируется и представляется с помощью определенных атрибутов.