Jump to content

Алгоритм ДПЛЛ

ДПЛЛ
После 5 бесплодных попыток (красный) выбор присвоения переменной a =1, b =1 приводит после распространения единицы (внизу) к успеху (зеленый) : верхняя левая формула CNF выполнима.
Сорт Проблема логической выполнимости
Структура данных Бинарное дерево
Худшая производительность
Лучшая производительность (постоянный)
Наихудшая пространственная сложность (базовый алгоритм)

В логике и информатике алгоритм Дэвиса-Патнэма-Логеманна-Лавленда ( DPLL ) полный представляет собой алгоритм обратного отслеживания на основе поиска для определения выполнимости формул пропозициональной логики в конъюнктивной нормальной форме , то есть для решения проблемы CNF-SAT .

Он был представлен в 1961 году Мартином Дэвисом , Джорджем Логеманом и Дональдом У. Лавлендом и представляет собой усовершенствование более раннего алгоритма Дэвиса-Патнэма , который представляет собой процедуру, основанную на разрешении, разработанную Дэвисом и Хилари Патнэм в 1960 году. Особенно в старых публикациях алгоритм Алгоритм Дэвиса-Логеманна-Лавленда часто называют «методом Дэвиса-Патнэма» или «алгоритмом DP». Другими распространенными именами, сохраняющими различие, являются DLL и DPLL.

Реализации и приложения [ править ]

Проблема SAT важна как с теоретической, так и с практической точки зрения. В теории сложности это была первая задача, которая оказалась NP-полной и может возникать в самых разных приложениях, таких как проверка моделей , автоматическое планирование и составление графиков , а также диагностика в искусственном интеллекте .

Таким образом, написание эффективных решателей SAT уже много лет является темой исследований. GRASP (1996–1999) был ранней реализацией с использованием DPLL. [1] На международных соревнованиях SAT реализации, основанные на DPLL, такие как zChaff [2] и МиниСат [3] были на первых местах соревнований в 2004 и 2005 годах. [4]

Другое приложение, которое часто использует DPLL, — это автоматизированное доказательство теорем или теории выполнимости по модулю (SMT), которые представляют собой задачу SAT, в которой пропозициональные переменные заменяются формулами другой математической теории .

Алгоритм [ править ]

Базовый алгоритм поиска с возвратом работает путем выбора литерала, присвоения ему значения истинности , упрощения формулы и затем рекурсивной проверки выполнимости упрощенной формулы; если это так, то исходная формула выполнима; в противном случае выполняется та же рекурсивная проверка, предполагающая противоположное значение истинности. Это известно как правило разделения , поскольку оно разбивает проблему на две более простые подзадачи. Шаг упрощения по существу удаляет из формулы все предложения, которые становятся истинными при присваивании, и все литералы, которые становятся ложными, из оставшихся предложений.

Алгоритм DPLL превосходит алгоритм обратного отслеживания за счет активного использования следующих правил на каждом этапе:

Распространение единицы
Если предложение является единичным предложением , т.е. оно содержит только один неназначенный литерал, это предложение может быть выполнено только путем присвоения необходимого значения, чтобы сделать этот литерал истинным. Таким образом, никакого выбора не требуется. Распространение единицы состоит в удалении каждого предложения, содержащего литерал предложения единицы, и в отбрасывании дополнения к литералу предложения единицы из каждого предложения, содержащего это дополнение. На практике это часто приводит к детерминированным каскадам модулей, что позволяет избежать значительной части наивного пространства поиска.
Чисто буквальное исключение
Если пропозициональная переменная встречается в формуле только с одной полярностью , ее называют чистой . Чистый литерал всегда можно присвоить таким образом, чтобы все содержащие его предложения стали истинными. Таким образом, когда оно назначено таким образом, эти пункты больше не ограничивают поиск и могут быть удалены.

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

Алгоритм DPLL можно резюмировать в следующем псевдокоде, где Φ — формула CNF :

Algorithm DPLL
    Input: A set of clauses Φ.
    Output: A truth value indicating whether Φ is satisfiable.
function DPLL(Φ)
    // unit propagation:
    while there is a unit clause {l} in Φ do
        Φ ← unit-propagate(l, Φ);
    // pure literal elimination:
    while there is a literal l that occurs pure in Φ do
        Φ ← pure-literal-assign(l, Φ);
    // stopping conditions:
    if Φ is empty then
        return true;
    if Φ contains an empty clause then
        return false;
    // DPLL procedure:
    lchoose-literal(Φ);
    return DPLL {l}) or DPLL {¬l});
  • « ←» означает присвоение . Например, « самый большой элемент » означает, что значение самого большого изменяется на значение элемента .
  • « return » завершает алгоритм и выводит следующее значение.

В этом псевдокоде unit-propagate(l, Φ) и pure-literal-assign(l, Φ) — это функции, которые возвращают результат применения единичного распространения и правила чистого литерала соответственно к литералу l и формула Φ. Другими словами, они заменяют каждое появление l с «истиной» и каждым появлением not l с «ложью» в формуле Φ, и упростим полученную формулу. or в return оператор является оператором короткого замыкания . Φ {l} обозначает упрощенный результат замены «истина» на l в Φ.

Алгоритм завершается в одном из двух случаев. Либо формула КНФ Φ пусто, т. е. не содержит никаких предложений. Тогда оно удовлетворяется любым присвоением, поскольку все его положения бессмысленно истинны. В противном случае, когда формула содержит пустое предложение, это предложение является бессмысленно ложным, поскольку для того, чтобы общее множество было истинным, для дизъюнкции требуется хотя бы один член, который является истинным. В этом случае существование такого предложения подразумевает, что формула (рассчитываемая как совокупность всех предложений) не может быть истинной и должна быть невыполнимой.

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

Алгоритм Дэвиса-Логеманна-Лавленда зависит от выбора литерала ветвления , который является литералом, рассматриваемым на этапе обратного отслеживания. В результате это не совсем алгоритм, а скорее семейство алгоритмов, по одному для каждого возможного способа выбора литерала ветвления. На эффективность сильно влияет выбор литерала ветвления: существуют случаи, для которых время выполнения является постоянным или экспоненциальным в зависимости от выбора литералов ветвления. Такие функции выбора также называются эвристическими функциями или эвристиками ветвления. [5]

Визуализация [ править ]

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

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

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

Связанные алгоритмы [ править ]

(пониженно упорядоченные) двоичные диаграммы решений . С 1986 года для решения SAT также используются [ нужна ссылка ]

В 1989–1990 годах был представлен и запатентован метод Стольмарка для проверки формул. Он нашел некоторое применение в промышленности. [6]

DPLL был расширен для автоматического доказательства теорем для фрагментов логики первого порядка с помощью алгоритма DPLL(T) . [1]

В течение десятилетия 2010-2019 годов работа над улучшением алгоритма позволила найти более эффективные стратегии выбора литералов ветвления и новых структур данных, чтобы сделать алгоритм быстрее, особенно в части распространения единиц . Однако основным улучшением стал более мощный алгоритм, Conflict-Driven Clause Learning (CDCL), который похож на DPLL, но после возникновения конфликта «изучает» коренные причины (присвоения переменным) конфликта и использует эту информацию. выполнить нехронологический возврат назад (также известный как возврат назад ), чтобы избежать повторного возникновения того же конфликта. По состоянию на 2019 год большинство современных решателей SAT основаны на платформе CDCL. [7]

Связь с другими понятиями [ править ]

Прогоны алгоритмов на основе DPLL на невыполнимых экземплярах соответствуют доказательствам опровержения разрешения дерева . [8]

См. также [ править ]

Ссылки [ править ]

Общий

  • Дэвис, Мартин ; Патнэм, Хилари (1960). «Вычислительная процедура для количественной теории» . Журнал АКМ . 7 (3): 201–215. дои : 10.1145/321033.321034 . S2CID   31888376 .
  • Дэвис, Мартин; Логеманн, Джордж; Лавленд, Дональд (1961). «Машинная программа для доказательства теорем» . Коммуникации АКМ . 5 (7): 394–397. дои : 10.1145/368273.368557 . hdl : 2027/mdp.39015095248095 . S2CID   15866917 .
  • Оуян, Мин (1998). «Насколько хороши правила ветвления в DPLL?». Дискретная прикладная математика . 89 (1–3): 281–286. дои : 10.1016/S0166-218X(98)00045-6 .
  • Джон Харрисон (2009). Справочник по практической логике и автоматизированным рассуждениям . Издательство Кембриджского университета. стр. 79–90. ISBN  978-0-521-89957-4 .

Специфический

  1. ^ Jump up to: Перейти обратно: а б Ньювенхейс, Роберт; Оливерас, Альберт; Тинелли, Сезар (2004), «Абстрактные теории DPLL и абстрактные теории DPLL по модулю» (PDF) , Proceedings Int. Конф. « Логика программирования, искусственного интеллекта и рассуждения» , LPAR 2004 , стр. 36–50.
  2. ^ Сайт zChaff
  3. ^ «Сайт Минисат» .
  4. ^ Веб-страница международных соревнований SAT , сб! жить
  5. ^ Маркес-Сильва, Жоау П. (1999). «Влияние эвристики ветвления на алгоритмы пропозициональной выполнимости». В Бараоне Педро; Прапорщик, Хосе Дж. (ред.). Прогресс в области искусственного интеллекта: 9-я португальская конференция по искусственному интеллекту, EPIA '99, Эвора, Португалия, 21–24 сентября 1999 г., материалы . ЛНКС . Том. 1695. стр. 62–63. дои : 10.1007/3-540-48159-1_5 . ISBN  978-3-540-66548-9 .
  6. ^ Стольмарк, Г.; Сэфлунд, М. (октябрь 1990 г.). «Моделирование и проверка систем и программного обеспечения в логике высказываний». Тома трудов МФБ . 23 (6): 31–36. дои : 10.1016/S1474-6670(17)52173-4 .
  7. ^ Мёле, Сибилла; Бьер, Армин (2019). «Обратный возврат». Теория и применение тестирования выполнимости – SAT 2019 (PDF) . Конспекты лекций по информатике. Том. 11628. стр. 250–266. дои : 10.1007/978-3-030-24258-9_18 . ISBN  978-3-030-24257-2 . S2CID   195755607 .
  8. ^ Ван Бик, Питер (2006). «Алгоритмы поиска с возвратом» . В Росси, Франческа; Ван Бик, Питер; Уолш, Тоби (ред.). Справочник по программированию в ограничениях . Эльзевир. п. 122. ИСБН  978-0-444-52726-4 .

Дальнейшее чтение [ править ]

  • малайский ганай; Аарти Гупта; Доктор Аарти Гупта (2007). Масштабируемые решения для формальной проверки на основе SAT . Спрингер. стр. 23–32. ISBN  978-0-387-69166-4 .
  • Гомес, Карла П.; Каутц, Генри; Сабхарвал, Ашиш; Селман, Барт (2008). «Решатели выполнимости». В Ван Хармелен, Фрэнк; Лифшиц, Владимир; Портер, Брюс (ред.). Справочник по представлению знаний . Основы искусственного интеллекта. Том. 3. Эльзевир. стр. 89–134. дои : 10.1016/S1574-6526(07)03002-7 . ISBN  978-0-444-52211-5 .
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: ef8fc3d8b0dc607be61ce136aadab48f__1707430320
URL1:https://arc.ask3.ru/arc/aa/ef/8f/ef8fc3d8b0dc607be61ce136aadab48f.html
Заголовок, (Title) документа по адресу, URL1:
DPLL algorithm - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)