Изучение оговорок, обусловленных конфликтами - Conflict-driven clause learning - Wikipedia

В Информатика, изучение оговорок, обусловленных конфликтами (CDCL) - алгоритм решения Проблема логической выполнимости (СИДЕЛ). Для булевой формулы задача SAT требует присвоения переменных, чтобы вся формула была истинной. Внутренняя работа решателей CDCL SAT была вдохновлена Решатели DPLL.

Изучение клаузулы, основанное на конфликте, было предложено Marques-Silva и Sakallah (1996, 1999).[1][2] и Баярдо и Шраг (1997).[3]

Фон

Чтобы иметь четкое представление об алгоритме CDCL, необходимы базовые знания по следующим вопросам.

Проблема логической выполнимости

Проблема выполнимости состоит в нахождении удовлетворительного задания для данной формулы в конъюнктивная нормальная форма (CNF).

Пример такой формулы:

( (не А) или (нет C) )   и   (B или C),

или, используя общепринятые обозначения:[4]

куда А,B,C являются логическими переменными, , , , и буквальные, и и статьи.

Удовлетворительное назначение для этой формулы, например:

так как он делает первое предложение истинным (поскольку верно), а также второй (поскольку правда).

В этом примере используются три переменные (А, B, C), и для каждого из них есть два возможных назначения (Истина и Ложь). Итак, есть возможности. В этом небольшом примере можно использовать перебор чтобы попробовать все возможные назначения и проверить, удовлетворяют ли они формуле. Но в реалистичных приложениях с миллионами переменных и предложений перебор непрактичен. Задача решателя SAT - эффективно и быстро находить удовлетворительное назначение, применяя различные эвристики для сложных формул CNF.

Правило предложения единицы (распространение единицы)

Если в невыполненном предложении все литералы или переменные, кроме одного, имеют значение False, то свободный литерал должен быть True, чтобы предложение было True. Например, если нижеследующее неудовлетворенное предложение оценивается с помощью и мы должны иметь для того, чтобы пункт быть правдой.

Распространение логических ограничений (BCP)

Итеративное применение правила предложения единицы называется распространением единицы или распространением логических ограничений (BCP).

Разрешение

Рассмотрим два пункта и .Положение , полученный путем слияния двух предложений и удаления обоих и , называется резольвентой двух клозов.

Алгоритм DP

Алгоритм DP был представлен Дэвисом и Патнэмом в 1960 году. Неформально алгоритм итеративно выполняет следующие шаги до тех пор, пока в формуле не останутся переменные:

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

Алгоритм DPLL

Дэвис, Патнэм, Логеманн, Лавленд (1962) разработали этот алгоритм. Некоторые свойства этого алгоритма:

  • Он основан на поиске.
  • Это основа почти всех современных решателей SAT.
  • Он использует хронологический возврат без обучения.

Пример с визуализацией алгоритма DPLL с хронологическим возвратом:

CDCL (изучение положений, обусловленных конфликтами)

Основное различие между CDCL и DPLL заключается в том, что прыжки назад CDCL не хронологические.

Изучение оговорок, обусловленных конфликтами, работает следующим образом.

  1. Выберите переменную и присвойте ей значение True или False. Это называется состоянием принятия решения. Запомните задание.
  2. Примените логическое распространение ограничения (единичное распространение).
  3. Постройте граф импликации.
  4. Если есть конфликт
    1. Найдите разрез в графе импликации, который привел к конфликту
    2. Вывести новый пункт, который отрицает задания, которые привели к конфликту.
    3. Не хронологически возврат ("прыжок назад") к соответствующему уровню принятия решения, где была назначена первая назначенная переменная, участвующая в конфликте.
  5. В противном случае продолжайте с шага 1, пока не будут присвоены все значения переменных.

Пример

Наглядный пример алгоритма CDCL:

Полнота

DPLL - это надежный и полный алгоритм для SAT. Решатели CDCL SAT реализуют DPLL, но могут изучать новые предложения и возвращаться не в хронологическом порядке. Изучение статей с анализом конфликтов не влияет на надежность или полноту. Анализ конфликтов определяет новые пункты с помощью операции разрешения. Следовательно, каждое заученное предложение может быть выведено из исходных предложений и других изученных предложений с помощью последовательности шагов разрешения. Если cN - это новое заученное предложение, то ϕ выполнимо тогда и только тогда, когда ϕ ∪ {cN} также выполнимо. Более того, измененный шаг обратного отслеживания также не влияет на правильность или полноту, поскольку информация об обратном отслеживании получается из каждого нового изученного предложения.[5]

Приложения

Основное применение алгоритма CDCL находится в различных решателях SAT, включая:

  • MiniSAT
  • Zchaff SAT
  • Z3
  • Глюкоза[6]
  • ManySAT и др.

Алгоритм CDCL сделал SAT-решатели настолько мощными, что они эффективно используются в нескольких областях реальных приложений, таких как планирование ИИ, биоинформатика, создание тестовых шаблонов программного обеспечения, зависимости программных пакетов, проверка аппаратных и программных моделей и криптография.

Связанные алгоритмы

Алгоритмы, связанные с CDCL, - это алгоритмы DP и DPLL, описанные ранее. Алгоритм DP использует опровержение разрешения и имеет потенциальную проблему доступа к памяти. В то время как алгоритм DPLL подходит для случайно сгенерированных экземпляров, он плох для экземпляров, сгенерированных в практических приложениях. CDCL - более эффективный подход для решения таких проблем, поскольку применение CDCL обеспечивает меньше поиск в пространстве состояний по сравнению с DPLL.

Процитированные работы

  1. ^ J.P. Marques-Silva; Карем А. Сакаллах (ноябрь 1996 г.). "GRASP-Новый алгоритм поиска выполнимости". Дайджест Международной конференции IEEE по автоматизированному проектированию (ICCAD). С. 220–227. CiteSeerX  10.1.1.49.2075. Дои:10.1109 / ICCAD.1996.569607. ISBN  978-0-8186-7597-3.
  2. ^ J.P. Marques-Silva; Карем А. Сакаллах (май 1999 г.). "GRASP: алгоритм поиска пропозициональной выполнимости" (PDF). Транзакции IEEE на компьютерах. 48 (5): 506–521. Дои:10.1109/12.769433.
  3. ^ Роберто Х. Баярдо-младший; Роберт С. Шраг (1997). «Использование методов ретроспективного анализа CSP для решения реальных экземпляров SAT» (PDF). Proc. 14-й Нац. Конф. по искусственному интеллекту (AAAI). С. 203–208.
  4. ^ На картинках ниже "«используется для обозначения« или », а умножение - для обозначения« и ».
  5. ^ Биэр, Хеул, Ван Маарен, Уолш (февраль 2009 г.). Справочник по выполнимости (PDF). IOS Press. п. 138. ISBN  978-1-60750-376-7.CS1 maint: несколько имен: список авторов (связь)
  6. ^ https://www.labri.fr/perso/lsimon/gluosis/

Рекомендации