В информатике алгоритм взаимозаменяемости — это метод, используемый для более эффективного решения задач удовлетворения ограничений (CSP). CSP — это математическая задача, в которой объекты, представленные переменными, подчиняются ограничениям на значения этих переменных; цель CSP — назначить переменным значения, которые соответствуют ограничениям. Если две переменные A и B в CSP можно поменять местами (то есть A заменить на B , а B заменить на A ) без изменения сути проблемы или ее решений, то A и B являются взаимозаменяемыми переменными. Взаимозаменяемые переменные представляют симметрию CSP, и, используя эту симметрию, можно сократить пространство поиска решений задачи CSP. Например, если были испробованы решения с A = 1 и B = 2, то с помощью симметрии взаимозаменяемости нет необходимости исследовать решения с B = 1 и A = 2.
Концепция взаимозаменяемости и алгоритм взаимозаменяемости в задачах удовлетворения ограничений были впервые введены Юджином Фройдером в 1991 году. [1] [2] Алгоритм взаимозаменяемости сокращает пространство поиска алгоритмов поиска с возвратом , тем самым повышая эффективность NP-полных задач CSP. [3]
Определения
Полностью взаимозаменяемы
Значение a для переменной v полностью взаимозаменяемо со значением b тогда и только тогда, когда каждое решение, в котором v = a, остается решением, когда b заменяется на a и наоборот. [2]
Взаимозаменяемый район
Значение a для переменной v является окрестностно взаимозаменяемым со значением b тогда и только тогда, когда для каждого ограничения на v значения, совместимые с v = a, являются в точности теми, которые совместимы с v = b. [2]
Полностью заменяемый
Значение a для переменной v полностью заменяемо значением b тогда и только тогда, когда каждое решение, в котором v = a, остается решением при замене b на a (но не обязательно наоборот). [2]
Динамически взаимозаменяемый
Значение a для переменной v динамически взаимозаменяемо для b относительно набора A назначений переменных тогда и только тогда, когда они полностью взаимозаменяемы в подзадаче, индуцированной A. [2]
Псевдокод
Алгоритм взаимозаменяемости соседей
Находит соседние взаимозаменяемые значения в CSP. Повторите для каждой переменной:
Постройте дерево дискриминации:
Повторите для каждого значения v:
Повторите для каждой соседней переменной W:
Повторите для каждого значения w, соответствующего v:
Перейти к , если присутствует, построить, если нет, узел дерева дискриминации, соответствующий w|W [2]
К-алгоритм взаимозаменяемости
Алгоритм может быть использован для явного поиска решений проблемы удовлетворения ограничений. Алгоритм также может быть запущен для k шагов в качестве препроцессора для упрощения последующего поиска с возвратом.
Находит k-взаимозаменяемых значений в CSP. Повторите для каждой переменной:
Постройте дерево дискриминации:
Повторите для каждого значения v:
Повторите для каждого ( k − 1)-кортежа переменных
Повторите для каждого ( k − 1)-кортежа значений w , которые вместе с v составляют решение подзадачи, вызванной W :
Перейти к , если присутствует, построить, если нет, узел дерева дискриминации, соответствующий w|W [2]
Анализ сложности
В случае алгоритма взаимозаменяемых соседей, если мы назначаем наихудшую границу для каждого цикла. Тогда для n переменных, которые имеют не более d значений для переменной, то мы имеем границу : .
Аналогично, анализ сложности алгоритма k -взаимозаменяемости для наихудшего случая , с -кортежами переменных и , для -кортежей значений, тогда граница будет: .
Пример
Пример алгоритма взаимозаменяемости
На рисунке показан простой пример раскраски графа с цветами в качестве вершин, так что никакие две вершины, соединенные ребром, не имеют одинакового цвета. Показаны доступные цвета в каждой вершине. Цвета желтый, зеленый, коричневый, красный, синий, розовый представляют вершину Y и полностью взаимозаменяемы по определению. Например, замена бордового на зеленый в решении orange|X (оранжевый на X), green|Y даст другое решение.
Приложения
В компьютерных науках алгоритм взаимозаменяемости широко используется в областях искусственного интеллекта , задач раскраски графов , фреймворков абстракции и адаптации решений. [2] [4] [5] [6] [7] [8] [9]
Ссылки
^ Белаид Бенаму и Мохамед Реда Саиди «Рассуждение на основе доминирования в сетях с бинарными ограничениями «не равны», Laboratoire des Sciences de l'Information et des Systèmes (LSIS), Центр математики и информатики, Франция.
^ abcdefgh Фройдер, EC: Устранение взаимозаменяемых значений в задачах удовлетворения ограничений. В: In Proc. of AAAI-91, Anaheim, CA (1991) 227–233
^ Ассеф Чмейсс и Лахдар Саис «О взаимозаменяемости соседей в CSP», Университет Артруа, Франция. В то же время, вы с.
^ Хазельбок, А.: Использование взаимозаменяемости в задачах удовлетворения ограничений. В трудах 13-го IJCAI (1993) 282–287
^ Вайгель, Р., Фалтингс, Б.: Составление задач удовлетворения ограничений. Искусственный интеллект 115 (1999) 257–289
^ Choueiry, BY: Методы абстракции для распределения ресурсов. Кандидатская диссертация, EPFL Кандидатская диссертация № 1292 (1994)
^ Вайгель, Р., Фалтингс, Б.: Взаимозаменяемость для адаптации случая в задачах конфигурации. В трудах весеннего симпозиума AAAI98 по мультимодальным рассуждениям, Стэнфорд, Калифорния, TR SS-98-04. (1998)
^ Neagu, N., Faltings, B.: Использование взаимозаменяемости для адаптации к случаям. В материалах 4-го ICCBR01 (2001)
^ Полная динамическая заменяемость с помощью кодирования SAT Стивена Прествича, Центр вычислений ограничений Корка, Факультет компьютерных наук, Университетский колледж, Корк, Ирландия