УДК 004.832
А.А. Зуенко, А.А. Алмаматов
Институт информатики и математического моделирования технологических процессов Кольского НЦ РАН
ПРИМЕНЕНИЕ МЕТОДОВ ЛОКАЛЬНОГО ПОИСКА ПРИ РЕШЕНИИ ЗАДАЧ УДОВЛЕТВОРЕНИЯ ОГРАНИЧЕНИЙ*
Аннотация
В статье приводится определение задачи удовлетворения ограничений. Рассматриваются особенности методов локального поиска, которые могут быть применены при решении задачи удовлетворения ограничений. Проанализированы недостатки существующих алгоритмов систематического поиска, использующих матричное представление конечных предикатов. Сделан вывод о целесообразности исследования свойств рассматриваемых матриц с целью ускорения стандартных алгоритмов локального поиска.
Ключевые слова:
задача удовлетворения ограничений, программирование в ограничениях, методы локального поиска.
A.A. Zuenko, A.A. Almamatov
USING OF LOCAL SEARCH METHODS FOR SOLVING CONSTRAINT SATISFACTION PROBLEM
Abstract
In the article the definition of constraint satisfaction problem is given. The features of the approaches for solving constraint satisfaction problems are described. Disadvantages of existing systematic search algorithms using matrix representation of finite predicates are analyzed. It is drawn a conclusion about necessity of investigation of features of mentioned above matrices. The goal of the investigation is to accelerate typical local search algorithms.
Keywords:
constraint satisfaction problem, constraint programming, local search methods.
Введение
Задача удовлетворения ограничений (ЗУО) определяется множеством дискретных переменных V = (x1, ... , xn}, для каждой из которых задана область определения или домен Dj = [djr>, ... , djpiy} (j = 1, ..., n), и множеством ограничений.
Ограничением называется пара (R, S), где R - отношение, определенное на диапазоне S. ЗУО может рассматриваться как тройка (V, D, C), где V = (xj, ,.., xn} - множество переменных, D = {Db ..., Dn} - множество доменов переменных, C = (C1, ... , Cm} - множество ограничений. Решением ЗУО называется присваивание значений всем переменным, которое удовлетворяет всем ограничениям. Целью решения ЗУО может быть нахождение одного или всех решений.
*
Работа выполнена при финансовой поддержке РФФИ (проекты №№ 14-07-00205-а, 14-07-00256-а).
59
Рассматривая некоторую задачу в виде задачи Constraint Satisfaction Problem (CSP), можно достичь нескольких важных преимуществ. Представление состояний в задаче CSP соответствует некоторому стандартному шаблону (т. е. выражается в виде множества переменных с присвоенными значениями), поэтому функцию определения преемника и проверку цели можно записать в универсальной форме, применимой ко всем задачам CSP. Более того, могут быть разработаны эффективные, универсальные эвристические функции, для создания которых не требуются дополнительные знания о конкретной проблемной области. Наконец, для упрощения процесса решения может использоваться сама структура графа ограничений, что позволяет в некоторых случаях добиться экспоненциального уменьшения сложности.
Важную роль в решении ЗУО играют методы локального поиска, идея которых заключается в направленном исследовании многообещающих регионов пространства поиска вместо полного перебора всех возможных решений. [1].
Ниже будут рассмотрены некоторые из методов локального поиска и их основные особенности.
Г енетический алгоритм
Генетическим алгоритмом (ГА) называется следующий объект:
ГА(P, r, l, sl, Fit, cr,m,ot), (1)
где P - исходная популяция; r - количество элементов популяции; l - длина битовой строки, кодирующей решение; sl - оператор селекции; Fit - функция фитнесса (функция полезности), определяющая «пригодность» решения; cr - оператор кроссинговера, определяющий возможность получения нового решения; m - оператор мутации; ot - оператор отбора.
Пусть область поиска решения D задачи однокритериального выбора является конечным множеством решений, в котором каждое допустимое решение X е D является «-мерным векторомX = (xb x2, ..., xn).
Наименьшей неделимой единицей биологического вида, подверженной действию факторов эволюции, является особь Н[ (k - номер особи, t - момент времени эволюционного процесса). В качестве аналога особи в задаче оптимизации принимается произвольное допустимое решение X е D, которому присвоено имя Нк. Действительно, вектор X - это наименьшая неделимая единица,
характеризующая в экстремальной задаче внутренние параметры объекта оптимизации на каждом t-м шаге поиска оптимального решения, которые изменяют свои значения в процессе минимизации некоторого критерия оптимальности J(X).
Качественные признаки особи Н{ определяются как соответствующие точке X с именем Н{ (в простейшем случае битовой строке). Некоторая особь Н{ будет характеризоваться n генами, каждый из которых отвечает за формирование целочисленного кода соответствующей переменной. Тогда структуру битовой строки можно интерпретировать хромосомой, содержащей n сцепленных между собой генов. Местоположение i-го гена в хромосоме - локус, значение - аллель h.
60
При взаимодействии особи с внешней средой её генотип И{ порождает фенотип F(И к) , который можно оценить количественно с помощью функции приспособленности (функции фитнесса) к внешней среде. Фитнесс Fit(Hk) каждой особи И‘к равен численному значению функции J(X), вычисленной для допустимого решения X е D с его именем И к . Чем больше значение функции фитнесса при решении задач нахождения J(X), тем лучше особь приспособлена к внешней среде.
Основные отличия ГА от стандартных локальных (например, градиентных) и глобальных (например, случайных) алгоритмов оптимизации:
• поиск субоптимального решения основан на оптимизации не одного, а множества решений, что позволяет одновременно анализировать несколько путей приближения к экстремуму; при этом оценка получаемых результатов на каждом шаге позволяет учитывать предыдущую информацию, т. е. происходит эволюционное развитие оптимальных решений;
• решения рассматриваются как некоторые закодированные структуры (символьные модели), а не как совокупность параметров, что позволяет в некоторых случаях значительно уменьшить время преобразования данных, т. е. увеличить скорость приближения к экстремуму;
• для оценки «пригодности» решения и последующего эволюционного развития наряду с использованием целевой функции дополнительно моделируются «правила выживания», которые расширяют разнообразие множества решений и определяют эволюционное развитие;
• при инициализации, преобразовании и других видах операции с решениями используются вероятностные, а не детерминированные правила, которые вносят в направленность генетического поиска элементы случайности; тем самым решается проблема выхода из локальных оптимумов;
• отсутствует необходимость расчета производных от целевой функции (как в градиентных методах) или матрицы производных второго порядка (как в квазиньютоновских).
Стратегии формирования популяции
В настоящее время наиболее известными являются три стратегии создания начального множества решений:
1) формирование полной популяции;
2) генерация случайного множества решений, достаточно большого, но не исчерпывающего все возможные варианты;
3) генерация множества решений, включающего разновидности одного решения.
При первой стратегии должен быть реализован полный набор всевозможных решений, но это невозможно из-за чрезмерных вычислительных затрат и большой области поиска для задач высокой размерности. Стартовая популяция, созданная на основе данной стратегии, не может развиваться, т. к. в ней уже содержатся все решения, в том числе и оптимальные.
Третью стратегию применяют, когда есть предположение, что некоторое решение является разновидностью известного. В этом случае происходит выход
61
сразу в область существования экстремума, и время поиска оптимума значительно сокращается. Наиболее перспективной является вторая стратегия, так как она в результате эволюции популяции создает возможность перехода из одной подобласти области поиска D в другую и имеет сравнительно небольшую размерность задачи оптимизации.
Эффективность ГА, качество получаемого решения и успех дальнейшего развития эволюции во многом определяются структурой и качеством начальной популяции. Наиболее целесообразным представляется подход, основанный на комбинировании второй и третьей стратегии: путем предварительного анализа решаемой задачи выявляются подобласти в области поиска D, в которых могут находиться оптимальные решения, т. е. определяются особи с высоким значением фитнесса, а затем случайным образом формируются стартовые решения в этих подобластях.
Хромосома А Хромомсома В
а\ 'ьГ
«2 ь2
«3 h
0,4 X h
_а5 . .ь$.
Потомок А Потомок Е
«1 1—1 -о
«2 ь2
«3 Ьз
h 04
м. .«5.
Мутация потомка А
Мутация
Результат мутацш
Oi Ol
02 а2
аз ► 03
ь4 Ьа
kJ -Ьь.
Рис. 1. Одноточечный кроссинговер и оператор мутации
Классификация генетических операторов
Выделяют два основных способа генерации новых решений (рис. 1):
1) путем перекомпоновки (скрещивания) двух родительских решений (оператор скрещивания или кроссинговер cr);
2) путем случайной перестройки отдельных решений (оператор мутации m).
Кроссинговер cr производит структурированный и рандомизированный
обмен информацией внутри родительской пары, т. е. между двумя хромосомами, формируя новые решения. Задача создания потомков состоит в выборе такой комбинации участков хромосом, которая давала бы наилучшее решение. Таким образом, основная цель скрещивания заключается в накоплении всех лучших функциональных признаков, характеризующих отдельные участки хромосом, копируемых в конечном решении.
62
Следует отметить, что ГА - это целый класс алгоритмов, направленных на решение разнообразных задач комбинаторной оптимизации. Примерами различных ГА могут являться следующие алгоритмы [2]:
• канонический ГА;
• генитор;
• метод прерывистого равновесия;
• гибридный алгоритм;
• CHC;
• ГА с нефиксированным размером популяции.
Имитация отжига
Алгоритм имитации отжига (simulated annealing) основывается на понятии тепловой энергии, введенной С. Кирпатриком. Автор алгоритма использовал «тепловой шум» для выхода из одних локальных минимумов и для повышения вероятности попадания в более глубокие. При решении сложных задач, когда финансовые затраты на решение задачи оптимизации аналогичны энергии шарика, перемещающегося по поверхности, поиск более дешевых решений разумно начинать в ситуации с высоким уровнем «теплового шума», а в дальнейшем постепенно уменьшать его; этот процесс Кирпатрик назвал «имитацией отжига» [3].
Огромным преимуществом метода отжига является свойство избегать ловушек в локальных минимумах оптимизируемой функции, и продолжить поиск глобального минимума. Это достигается за счет принятия не только изменений параметров, приводящих к уменьшению значения функции, но и некоторых изменений, увеличивающих ее значение, в зависимости от температуры T характеристики моделируемого процесса. Чем выше температура, тем большие ухудшающие изменения допустимы, и больше их вероятность.
Еще одним преимуществом является то, что даже в условиях нехватки вычислительных ресурсов для нахождения глобального минимума, метод отжига, как правило, выдает неплохое решение (один из локальных минимумов).
Метод служит для поиска глобального минимума некоторой функции fx), заданной для х из некоторого пространства S, дискретного или непрерывного. Элементы множества S представляют собой состояния воображаемой физической системы (энергетические уровни), а значение функции f в этих точках используется как энергия системы Е = fix). В каждый момент предполагается заданной температура системы T, как правило, уменьшающаяся с течением времени. После попадания в состояние х при температуре T, следующее состояние системы выбирается в соответствии с заданным порождающим семейством вероятностных распределений g(x,T), которое при фиксированных х и T задает случайный элемент G(x,T) со значениями в пространстве S. После генерации нового состояния х' = G(x,T), система с вероятностью h(AE; T) переходит к следующему шагу в состояние х', в противном случае процесс генерации х' повторяется. Здесь ДЕ обозначает приращение функции энергии Лх') -f х). Величина h(AE; T) называется вероятностью принятия нового состояния.
63
Как правило, в качестве функции h(AE; T) выбирается либо точное значение соответствующей физической величине
ЫМЕ-т>’ <2> 1 + exp (—)
либо приближенное значение
ae
h(AE;T) = e т . (3)
Вторая формула используется наиболее часто. При ее использовании h(AE; T) оказывается больше единицы в случае AE < 0, и тогда соответствующая вероятность считается равной 1. Таким образом, если новое состояние дает лучшее значение оптимизируемой функции, то переход в это состояние произойдет в любом случае.
Итак, конкретная схема метода отжига задается следующими параметрами:
• выбором закона изменения температуры T(k), где k — номер шага;
• выбором порождающего семейства распределений g(x; T);
• выбором функции вероятности принятия варианта h(AE; T).
При некоторых комбинациях вышеперечисленных параметров могут получаться алгоритмы, эффективные при определенных условиях. Некоторые из таких комбинаций образуют схемы отжига. Ниже перечислены некоторые из них:
• больцмановский отжиг;
• отжиг Коши (быстрый отжиг);
• сверхбыстрый отжиг;
• алгоритм Ксин-Яо.
Методы тушения
Далеко не всегда хватает вычислительных ресурсов на поиск глобального минимума. Кроме того, зачастую достаточно достигнуть не глобально оптимального решения задачи, а достаточно близкого к нему. Методы тушения (simulated quenching) не гарантируют нахождения глобального минимума, но, как правило, быстро находят близкое решение, а на практике зачастую и сам оптимум. Основная идея этих методов заключается в том, чтобы скомбинировать семейство распределений G одного из предыдущих четырех методов с более быстрым законом убывания температуры.
Например, можно рассматривать нормальные распределения g из больц-мановского отжига, но при этом уменьшать температуру по закону
Тк+\ = cTk .
Как правило, в этом случае c выбирается между 0.7 и 0.99.
Такой метод очень быстро сходится, и для конкретных задач может в условиях реального времени давать весьма неплохое решение, близкое к оптимальному. Некоторые из методов тушения рассмотрены в [4, 5]. Зачастую они основаны либо на нормальном распределении, либо на распределении для сверхбыстрого отжига. Кроме того, встречаются специальные распределения, подобранные опытным путем для решения конкретных задач.
64
Методы роевого интеллекта
Методы роевого интеллекта - общее название класса алгоритмов, описывающих поведение децентрализованной самоорганизующейся системы. Термин был введён Херардо Бени и Ван Цзином в 1989 г., в контексте системы клеточных роботов [6].
Методы роевого интеллекта являются алгоритмами, использующими стратегии эволюционного моделирования и принципы природных механизмов принятия решений. Он включает в себя муравьиные алгоритмы, пчелиные алгоритмы, метод роя частиц и др.
Системы роевого интеллекта, как правило, состоят из множества агентов (боидов) локально взаимодействующих между собой и с окружающей средой. Каждый боид следует очень простым правилам и, несмотря на то, что нет какой-то централизованной системы управления поведения, которая бы указывала каждому из них на то, что ему следует делать, локальные и, в некоторой степени, случайные взаимодействия приводят к возникновению интеллектуального глобального поведения, неконтролируемого отдельными боидами.
Существует также огромное количество других алгоритмов, основанных на методах роевого интеллекта, однако наибольшую известность получили вышеперечисленные.
Муравьиный алгоритм
Муравьиные алгоритмы (Ant colony optimization, ACO) представляют собой вероятностную жадную эвристику, где вероятности устанавливаются, исходя из информации о качестве решения, полученного из предыдущих решений [7]. Муравьи относятся к социальным насекомым, живущим внутри некоторого коллектива - колонии. Основу «социального» поведения муравьев составляет самоорганизация - множество динамических механизмов, обеспечивающих достижение системой глобальной цели в результате низкоуровневого взаимодействия её элементов. Принципиальной особенностью такого взаимодействия является использование элементами системы только локальной информации. При этом исключается любое централизованное управление.
В сравнении с генетическими алгоритмами муравьиные алгоритмы имеют некоторые преимущества: опираются на память всей колонии вместо памяти только о предыдущем поколении и меньше подвержены неоптимальным начальным решениям (из-за случайного выбора пути и памяти колонии).
Ряд экспериментов показывает, что эффективность муравьиных алгоритмов растёт с ростом размерности решаемых задач оптимизации и для нестационарных систем с изменяемыми во времени параметрами.
Важным свойством муравьиных алгоритмов является неконвергентность: даже после большого числа итераций одновременно исследуется множество вариантов решения, что частично решает проблемы предварительной сходимости. Перспективным путями улучшения муравьиных алгоритмов являются их гибридизация с другими методами природных вычислений, например, генетическими алгоритмами [8]. Гибридизация может осуществляться по островной схеме, когда различные алгоритмы решают задачу параллельно и автономно, или по принципу «мастер-подмастерье» когда основной алгоритм - «мастер» -передаёт решение типовых подзадач «подмастерью».
65
Из недостатков алгоритма можно отметить затрудненность анализа работы алгоритма и неопределенное время сходимости.
ACO является метаэвристикой, в которой колония искусственных муравьев кооперируется для поиска хороших решений сложных дискретных задач оптимизации. Кооперация - ключевой компонент алгоритмов ACO: выбор отдается выделению вычислительных ресурсов группе относительно простых агентов, общающихся с помощью стигмергии - непрямого взаимодействия через окружение.
Алгоритмы ACO могут быть использованы для решения как статических, так и динамических задач оптимизации. Под статическими задачами понимаются те, в которых условия, единожды будучи заданными, не изменятся к моменту решения задачи. К таким относится, например, задача коммивояжера, где расстояния между городами не изменятся во время решения задачи. Напротив, динамические задачи определены функциями некоторых значений, которые могут определяться некоторой динамикой системы. В качестве примера можно привести задачу маршрутизации трафика, где топология сети может измениться в любой момент [9].
Существует множество вариаций и модификаций алгоритма.
Элитарная муравьиная система - суть алгоритма состоит в выделении «элитных муравьев». На каждой итерации алгоритма производится усиление лучших маршрутов путем прохода по данным маршрутам элитных муравьев.
MMAS (Max-Min Муравьиная система) - заключается в добавлении граничных условий на количество феромонов (rmax Tmin). Феромоны откладываются только на глобально лучших или лучших в итерации путях. Все ребра инициализируются Tmax.
Ранговая муравьиная система (Asrank) - в данной модификации все решения ранжируются по степени их пригодности. Количество откладываемых феромонов для каждого решения взвешено так, что более подходящие решения получают больше феромонов, чем менее подходящие.
Длительная ортогональная колония муравьев (COAC) - использует механизм откладывания феромонов, который позволяет муравьям искать решения совместно и эффективно. Используя ортогональный метод, муравьи в выполнимой области могут исследовать их выбранные области быстро и эффективно, с расширенной способностью глобального поиска и точностью [10].
Рекурсивная ACO - разбивает исходную задачу на поддомены и занимается отдельно решением каждого из них. Лучшие решения для поддоменов рассматриваются на следующем уровне и так далее.
Пчелиный алгоритм
Пчелиный алгоритм - это оптимизационный алгоритм, в основе которого лежит поведение пчел в живой природе [11, 12]. Применительно к задачам конструкторского проектирования и оптимизации в пчелином алгоритме каждое решение представляется в виде агента (пчелы), который хранит расположение (координаты или параметры многомерной функции) какого-то участка. Выделим два варианта поведения пчел.
66
В первом варианте две пчелы нашли два разных пересекающихся участка, и оба этих участка следует отметить как лучшие или выбранные. Во втором варианте будем считать, что это один участок, центр которого находится в точке, соответствующей большому значению целевой функции (ЦФ). Второй вариант поведения менее подвержен попаданию в локальные оптимумы за счет просмотра перспективных мест и их окрестностей. Причем на каждой итерации область просмотра уменьшается.
Основная идея пчелиного алгоритма заключается в том, что все пчелы на каждом шагу будут выбирать как элитные участки для исследования, так и участки в окрестности элитных, что позволит, во-первых, увеличить вероятность обнаружения близких к оптимальным решениям. После чего в окрестности остальных участков, в зависимости от их ЦФ, отправляются рабочие пчелы. Таким образом, работа алгоритма зависит от следующих основных параметров:
• общее число пчел-разведчиков;
• общее число участков;
• число элитных участков;
• число пчел-разведчиков на элитных участках;
• число пчел на остальных участках;
• начальный размер участков (вместе с их окрестностями);
• максимальное число итераций.
Приведем словесное описание алгоритма пчел [12]:
1. В соответствии с постановкой задачи проектирования и исходными данными формируется популяция пчёл (хромосом).
2. Отправка пчёл-исследователей. Определение месторасположения источников нектара. Для каждой пчелы случайным образом задается начальная позиция.
3. Оценка ЦФ пчёл в популяции. Выбор источника нектара пчелой-исследователем с определенной вероятностью, в зависимости от его качества. Для каждой пчелы определяется лучший (элитный) участок, и значение целевой функции на этом участке. Участки, на которых значения ЦФ больше, отбираются для поиска решений в их окрестностях.
4. Выбор пчёл с лучшими значениями ЦФ для каждого источника.
5. Если решение на исследуемом участке не улучшается с течением нескольких итераций, переход к п.6, иначе к п.3.
6. Отправка пчёл-разведчиков, осуществляющих случайный поиск и оценка их ЦФ.
7. Формирование новой популяции пчёл, в состав которой будут входить как пчелы с лучшими значениями ЦФ с элитных участков, так и пчёлы со случайными значениями ЦФ.
8. Проверка условий окончания алгоритма. Если они выполняются, переход к п.9, иначе к п. 2.
9. Конец работы алгоритма.
Таким образом, ключевой операцией алгоритма пчёл является совместное исследование перспективных областей и их окрестностей. Отличительной особенностью алгоритма является способность динамически разбивать поисковое пространство на области, что уменьшает время работы алгоритма. Данный алгоритм иллюстрирует стратегию поиска «Разделяй и властвуй». Главным преимуществом
67
является тот факт, что резко снижается вероятность попадания в локальный оптимум, а за счёт распараллеливания может уменьшаться время выполнения.
Пчелиный алгоритм, в отличие от ГА, имеет лишь один оператор и легко распределяется на несколько параллельных процессов, за счёт чего значительно увеличится его скорость.
Стоит отметить, что пчелиный алгоритм основывается на социальном поведении роя, а генетический алгоритм имитирует процесс эволюции и отбора. За счёт этого есть возможность комбинирования этих методов.
Табу-поиск
Табу-поиск (Поиск с запретами, Tabu-search, TS) является «высокоуровневой» эвристической процедурой для решения проблем оптимизации, разработанной для того, чтобы помогать другим методам (или составляющим их процессам) избежать ловушки локального оптимума. Термин «Табу-поиск» был придуман F. Glover в [13]. Табу-поиск достиг оптимальных и близких к ним решений в широком спектре классических и практических проблем - от планирования в телекоммуникациях до распознавания символов в нейросетях. Метод использует специализированные структуры данных, условия для выхода поиска из локального оптимума, и различные виды памяти для различных промежутков времени для интенсификации и диверсификации поиска.
Особенности памяти TS. Атрибуты ходов
TS использует атрибутивную память для направляющих целей (т. е. для вычисления множества доступных ходов N*(x)). Вместо записи полного решения, атрибутивная память базируется на записи атрибутов. Этот тип памяти записывает информацию о свойствах решения (атрибутах), которые меняются при переходе от одного решения к другому (например, индексы изменённых при шаге поиска переменных). Наиболее распространёнными типами памяти являются основанная на новизне память и основанная на частоте память. Основанная на новизне память хранит атрибуты решений, изменившиеся при самых последних поисках. Основанная на частоте память хранит соотношения между общим числом итераций и числом итераций, на которых атрибут изменился или нет (в зависимости от того, является ли это частотой пребывания или частотой перехода).
Основанная на новизне память (Recency-based memory) является наиболее часто используемой структурой памяти в реализациях TS. Как и предполагает её название, она хранит атрибуты решения, которые изменились в недалеком прошлом. Для использования этой памяти, выбранные атрибуты недавно рассмотренного решения помечаются табу-статусом, и решения, которые содержат эти элементы (или частные комбинации этих элементов), становятся запрещенными для выбора. При этом сами решения исключаются из N*(x), что предотвращает их повторное посещение. Другие решения, куда входят атрибуты со статусом табу, также не посещаются. Стоит отметить, что в отличие от классификации, запрещающей ходить только в посещенные решения, плюс хранения таких атрибутов в том, что другие ходы, ведущие к подобным решениям, также часто становятся табу.
68
Основанная на частоте память (Frequency-based memory). Как и новизна, частота часто имеет весовые значения или раскладывается на подклассы. Кроме того, информация о частоте может быть объединена с информацией о новизне с целью обеспечения композитной структуры для создания штрафов и стимулов, изменяющих оценку хода.
Определение лучшего кандидата
Определение лучшего кандидата для хода - критически важный шаг алгоритма. Сначала каждый из ходов в списке кандидатов оценивается на данной итерации поиска (вопросы касательно создания, обработки и модификации списка кандидатов, обсуждены в [14]). Во многих конфигурациях, оценка хода может базироваться изначально на изменениях, произведенных в целевой функции (то есть различие между значениями целевой функции до и после совершения хода). В иных случаях, когда ветвления не так легко определяются или не всем переменным назначены значения, оценка может базироваться на создании приблизительных решений, или просто использовать локальные критерии привлекательности. Впрочем, по мере продвижения поиска форма оценки может становиться более адаптивной, объединяя в себе улучшения, связанные с интенсификацией и диверсификацией.
Так как число ходов, запрещенных согласно табу-критерию, будет в основном малым относительно числа доступных, предполагая, что оценка в ходе не слишком вычислительно затратная, обычно предпочтительно оценивать перед проверкой статуса табу, имеет ли данный ход оценку выше, чем у его приемлемых предшественников. Проверка статуса табу - первый шаг в отборе допустимых ходов. Если ход не является табу, он немедленно принимается как допустимый; в противном случае, для преодоления статуса табу используется критерий аспирации, обеспечивая ходу второй шанс для принятия его как приемлемого.
Критерий аспирации - некоторое условие, при выполнении которого ход может быть сделан, даже если он содержит табу-атрибуты. К таким условиям может относиться, например, отсутствие не-табу ходов в списке возможных на данной итерации. Также если ход приводит к решению, которое лучше любого ранее достигнутого, он тоже часто удовлетворяет данному критерию.
Стратегии поиска
Использование основанной на новизне и частоте памяти в TS обычно исполняет функцию предотвращения циклов в процессах поиска, т. е. предотвращения бесконечного повторения одной и той же последовательности ходов.
Ключевой проблемой при использовании адаптивной памяти в TS является соблюдение баланса между интенсификацией и диверсификацией.
Интенсификационные стратегии базируются на модификации правил выбора для поощрения комбинаций ходов и особенностей решений, показавших положительные свойства. Также они могут инициировать возврат к привлекательным регионам для более тщательного их обследования.
69
Диверсификационные стратегии, напротив, пытаются найти новые атрибуты и комбинации атрибутов, которые не были включены в ранее сгенерированные решения. Эти стратегии берутся за ведение поиска в регионы, непохожие на только что исследованные. Важно помнить, что интенсификация и диверсификация являются не взаимно противоположными, а скорее взаимно дополняющими.
Диверсификация автоматически обеспечивается в TS функциями кратковременной памяти, но в частности поддерживается определёнными формами долговременной памяти. Стратегии диверсификации TS часто базируются на модификации правил выбора для того, чтобы привнести в решение редко используемые атрибуты. С другой стороны, они могут ввести такие атрибуты периодическим применением методов и сбором подмножеств данных атрибутов в кандидаты-решения для продолжения поиска, или частичным или полным перезапуском процесса решения. Стратегии диверсификации в частности полезны, когда лучшие решения могут быть достигнуты только преодолением барьеров или «холмов» в топологии пространства решений.
Стратегические осцилляции (Strategic oscillation) - модификация TS, суть которой состоит в повторяющемся движении к локальному оптимуму и от него. Без использования TS это привело бы просто к колебательному движению около локального оптимума по градиенту функции. В данном случае невозможность посещать только что посещенные решения может привести к обнаружению других лежащих рядом локальных оптимумов и т. д.
Стратегические осцилляции работают с помощью ориентирования ходов в зависимости от некоторого критического уровня, заданного выбранным интервалом значений целевой функции. Этот критический уровень или «граница осцилляции» представляет собой точку, где метод обычно останавливается. Затем поиск движется к определённой глубине сквозь границу осцилляции, и поворачивает обратно. Граница осцилляции снова приближается и пересекается, в этот раз в обратном направлении, и метод движется к новой точке разворота (рис. 2).
Процесс повторяющегося подхода и пересечения критического уровня с разных направлений создаёт колебательное поведение, которое и дало название методу.
70
Перекомпоновка пути
Перекомпоновка пути (Path relinking, PR), как стратегия прохода поиска по траектории, проложенной через высококачественные решения, была впервые предложена в связи с TS в [14]. Позже метод был проработан в деталях как средство интеграции стратегий интенсификации и диверсификации TS. PR в основном действует, начиная с некоторого решения, выбранного из подмножества качественных решений, и генерируя в пространстве решений путь через соседей к другим решениям из этого подмножества.
PR была предложена как расширение Combination method of Scatter Search [15]. Вместо прямой генерации нового решения через комбинацию двух или более оригинальных решений, PR, генерирует путь между выбранными решениями. Характер подобных путей легко специфицируем ссылкой на атрибуты решений, которые добавляются, удаляются или модифицируются иным образом, когда выполняются ходы. Примеры подобных атрибутов включают ребра и узлы графов, последовательные позиции в расписании, векторы, содержащиеся в решениях базисов задач линейного программирования и значения переменных и функции от переменных.
Использование матрицеподобных структур при моделировании качественных зависимостей
Алгебра кортежей
В работе [16] описана математическая система для моделирования многоместных отношений. В её основе лежат известные свойства декартова произведения, которые соответствуют основополагающим законам матема -тической логики.
Основные понятия
Атрибут - имя некоторого свойства системы или её части, предоставленное множеством заданных или вычисляемых значений (доменом)
Схема отношения - последовательность атрибутов, описывающая некоторое отношение. Объекты, заданные в одной схеме отношений, назы -ваются однотипными. Большая часть базовых операций доступна, прежде всего, для однотипных объектов.
Элементарный кортеж соответствует обычному кортежу элементов в многоместных отношениях.
C-кортеж - кортеж, заданный в некоторой схеме отношения. Компо-нентами этого кортежа являются подмножества соответствующих доменов атрибутов этой схемы. С-кортеж интерпретируется как множество элемен -тарных кортежей, содержащихся в декартовом произведении его компонент. Записывается как строка компонент в квадратных скобках:
[Аь ..., Ап]. (4)
С-система - объединение однотипных С-кортежей. С-система записывается как:
(5)
71
Диагональная С-система - С-система размерности n*n, у которой все недиагональные элементы равны полной компоненте (компоненте, содер-жащей все элементы своего домена; записывается как *).
D-кортеж - отношение, равное диагональной С-системе, записанное в виде кортежа диагональных компонент С-системы, ограниченного перевернутыми скобками:
A ... , Aa[. (6)
D-система - структура, эквивалентная пересечению нескольких одно-типных D-кортежей. Записывается следующим образом:
(7)
Также были определены базовые операции между вышеописанными структурами данных. К ним можно отнести обобщенное пересечение, объединение однотипных систем, преобразование систем в альтернативные классы, а также операции с атрибутами.
На основе данных структур и их свойств были разработаны схемы решения некоторых известных задач логического анализа, таких как: задача проверки правильности следствия, задача генерации возможных следствий с ограничениями на состав переменных и т. д.
Несмотря на возможность решать различные задачи с использованием матричных структур, в работах Б.А. Кулика не было предложено конкретных эффективных методов решения задач большой размерности. Был рассмотрен лишь алгоритм выполнимости КНФ, удовлетворительно работающий для формул логики высказываний. Для формул над одноместными предикатами он характеризуется большой вычислительной сложностью. Данный алгоритм реализовывал слепой поиск, то есть в нем не использовались эвристики, также сомнительным представляется и используемый принцип организации процесса ветвления, когда уровням дерева поиска сопоставляются строки (кортежи) D-системы, а узел дерева поиска соответствует некоторой компоненте выбранной строки.
Интеграция методов вычислительной логики и методов удовлетворения ограничений
Позднее А.А. Зуенко [17-19] было предложено использовать матричное представление конечных предикатов для решения более широкого класса задач, чем задача выполнимости КНФ, а именно для задач удовлетворения ограничений. Для разработки эффективных методов решения ЗУ О было предложено использовать специфические свойства матриц ограничений. Анализ этих свойств позволил существенно ускорить традиционные алгоритмы распространения ограничений. Предложенные в работах [17-19] методы и алгоритмы реализуют эвристический (интеллектуальный) поиск на основе оригинальных эвристик, обеспечивая существенное увеличение скорости и экономию памяти по сравнению с прототипами. Данные методы
72
носят систематический характер и хорошо подходят как для поиска единственного решения, так и для поиска всех возможных корней системы ограничений. Однако пространство поиска, с которым они работают, ограничено размерностью 50 , где основание степени - количество переменных, а показатель степени - максимальное количество значений в областях определения этих переменных. Поэтому, если нам требуется решить задачу поиска хотя бы одного решения, возможно, отвечающего некоторому заранее заданному критерию, а пространство поиска имеет на несколько порядков большую размерность, то необходимо привлекать алгоритмы локального поиска, которые не гарантируют при одном запуске получение требуемого решения, но серия запусков обычно довольно быстро приводит к искомому результату.
Заключение
В статье проанализированы некоторые из широко известных методов локального поиска, которые можно применять при решении ЗУО. Проанализированы недостатки существующих алгоритмов систематического поиска, использующих матричное представление конечных предикатов. Сделан вывод о целесообразности исследования свойств упомянутых логических матриц с целью ускорения стандартных алгоритмов локального поиска. Фокус наших дальнейших исследований сосредоточен именно на разработке подобных методов локального поиска, интегрирующих матричное представление ограничений и модификации известных эвристических процедур.
Литература
1. Щербина, О.А. Удовлетворение ограничений и программирование в ограничениях / О.А. Щербина // Интеллектуальные системы, 2011. - Т.15, вып. 1-4. - С.54-73.
2. Панченко, Т. В. Генетические алгоритмы / Т.В. Панченко // Издательский дом «Астраханский университет», 2007. - 28 с.
3. Kirkpatrick, S. Optimization by Simulated Annealing / S. Kirkpatrick, C.D. Gelatt, M.P. Vecchi // Science. - Vol. 220. - No. 4598. - P.671-680.
4. Ingber, L. Simulated Annealing: Practice versus theory / L. Ingber // Mathematical and Computer Modelling. -1993. - №18(11). - P.29-57.
5. Ingber, L. Adaptive simulated annealing (ASA): Lessons learned / L. Ingber // Journal «Control and Cybernetics», 1995. -Р.3-9.
6. Beni, G. Swarm Intelligence in Cellular Robotic Systems, Proceed / G. Beni, J. Wang // NATO Advanced Workshop on Robots and Biological Systems, Tuscany, Italy, June 26-30, 1898.
7. Dorigo, M. The Ant System: Optimization by a colony of cooperating objects / M. Dorigo, V. Maniezzo, A. Colorni // IEEE Trans. On Systems, Man, and Cybernetics, 1996. - № 26(1). - P.9-41.
8. Курейчик, В.В. Архитектура гибридного поиска при проектировании / В.В. Курейчик // Известия Южного федерального университета. Технические науки. - Таганрог: Изд-во ТТИ ЮФУ, 2012. - №7 (132). -С.22-27.
9. Dorigo, M. Ant Colony Optimization / M. Dorigo, T. Stuzle // Bradford Company Scituate, MA, USA, 2004. -Р.223-242.
73
10. Hu, X. Orthogonal methods based ant colony search for solving continuous optimization problems /X. Hu, J. Zhang, Y. Li // Journal of Computer Science and Technology, 23(1), 2008. -P.2-18.
11. Karaboga, D. An idea based on honey bee swarm for numerical optimization / D. Karaboga // Technical report TR06, Erciyes University, Engineering Faculty, Computer Engineering Department, 2005. -Р.2-5.
12. Запорожец, Д.Ю. Роевой алгоритм в задачах оптимизации /Д. Ю. Запорожец, В.В. Курейчик // Известия ЮФУ. Технические науки. - Таганрог: Изд-во ТТИ ЮФУ, 2010. - №7 (108). - С.28-32.
13. Glover, F. Future Paths for Integer Programming and Links to Artificial Intelligence / F. Glover // Computers and Operations Research. - 1986. - Vol.13. -P. 533-549.
14. Glover, F. Tabu Search, Part I / F. Glover // ORSA Journal on Computing, 1989. - Vol. 1, no. 3. -P.190-206.
15. Glover, F. A Template for Scatter Search and path Relinking / F. Glover // Lecture Notes in Computer Science, 2005. - Vol. 1363.
16. Кулик, Б.А Алгебраический подход к интеллектуальной обработке данных и знаний / Кулик Б.А., Зуенко А.А., Фридман А.Я. - СПб.: Изд-во Политехнического ун-та, 2010. - 235 с.
17. Зуенко, А.А. Матричное представление ограничений и основанные на нем базовые методы распространения ограничений / Теория и практика системной динамики: материалы докладов VI Всероссийской научной конф. г. Апатиты, 30 марта - 3 апреля 2015 г. - Апатиты: КНЦ РАН, 2015. - С.41-43.
18. Зуенко, А.А. Вывод на ограничениях с применением матричного представления конечных предикатов / А.А. Зуенко // Искусственный интеллект и принятие решений. - 2014. - Вып. 3. - С.21-31.
19. Зуенко, А.А. Эвристический метод удовлетворения ограничений на основе их матричного представления / А.А. Зуенко, А.А. Очинская // Открытые семантические технологии проектирования интеллектуальных систем // Open Semantic Technologies for Intelligent Systems (OSTIS-2015): материалы IV Международной научно-техн. конф., г. Минск, 19 - 12 февраля 2015 г. Минск: БГУИР, 2015. - С.297-301.
Сведения об авторах
Зуенко Александр Анатольевич - к.т.н, старший научный сотрудник,
е-mail: zuenko@iimm. ru
Alexander A. Zouenko - Ph.D. (Tech. Sci.), researcher
Алмаматов Александр Анатольевич - младший научный сотрудник,
е-mail: almamatov@iimm. ru
Alexander A. Almamatov - junior researcher
74