Модуль I·Статья II·~5 мин чтения

Нормальные формы и алгоритм DPLL

Пропозициональная логика

Превратить статью в подкаст

Выберите голоса, формат и длину — AI запишет аудио

Нормальные формы и алгоритм DPLL

Мотивация: автоматическая проверка выполнимости

Задача SAT (SATisfiability) — проверить, выполнима ли пропозициональная формула — NP-полна, но на практике решается за секунды для миллионов переменных с помощью современных SAT-солверов. Они работают с формулами в конъюнктивной нормальной форме (КНФ) и используют алгоритм DPLL и его расширения. SAT — «рабочая лошадка» формальной верификации, планирования и синтеза.

Нормальные формы

Литерал: переменная p или её отрицание ¬p.

Дизъюнкт: дизъюнкция литералов: (l₁ ∨ l₂ ∨ ... ∨ lₖ). Единичный дизъюнкт: дизъюнкт из одного литерала.

КНФ (конъюнктивная нормальная форма): конъюнкция дизъюнктов: D₁ ∧ D₂ ∧ ... ∧ Dₘ. Любая пропозициональная формула приводима к КНФ (равновыполнимой, если использовать трансформацию Цейтина).

Алгоритм приведения к КНФ:

  1. Устранить → и ↔: p→q ≡ ¬p∨q; p↔q ≡ (¬p∨q)∧(p∨¬q)
  2. Загнать ¬ внутрь (законы де Моргана, двойное отрицание)
  3. Применить дистрибутивность ∨ над ∧

ДНФ (дизъюнктивная нормальная форма): дизъюнкция конъюнктов. Выполнима ⟺ хотя бы один конъюнкт не содержит p ∧ ¬p.

Задача SAT и алгоритм DPLL

DPLL (Davis–Putnam–Logemann–Loveland, 1960/62): рекурсивный алгоритм поиска выполняющей оценки:

  1. Распространение единиц (Unit Propagation): если дизъюнкт содержит ровно один незначенный литерал l → l = 1; удалить все дизъюнкты с l; удалить ¬l из остальных дизъюнктов. Повторять до фиксированной точки.

  2. Чистые литералы (Pure Literal Elimination): если литерал l встречается только положительно (не встречается ¬l) → l = 1; удалить все дизъюнкты с l.

  3. Выбор переменной: выбрать незначенную p; рекурсивно попробовать p=1, затем p=0.

  4. Возврат (Backtrack): при пустом дизъюнкте — противоречие, возврат.

Современные CDCL-солверы: при конфликте добавляют «усвоенный дизъюнкт» (clause learning), исключающий данный конфликт. Решают задачи с миллионами переменных (криптографические схемы, верификация процессоров).

Численный пример

Задача: Применить DPLL к формуле: (p ∨ q) ∧ (¬p ∨ r) ∧ (¬q ∨ ¬r) ∧ (p ∨ ¬r).

Шаг 1. Unit Propagation. Нет единичных дизъюнктов. Нет чистых литералов (p и ¬p оба встречаются; q и ¬q; r и ¬r).

Шаг 2. Выбор: p = 1.

  • (p ∨ q): удалить (содержит p = 1) ✓
  • (¬p ∨ r): удалить ¬p из дизъюнкта → (r)
  • (¬q ∨ ¬r): остаётся
  • (p ∨ ¬r): удалить ✓ Остаток: (r) ∧ (¬q ∨ ¬r).

Шаг 3. Unit Propagation: (r) → r = 1.

  • (¬q ∨ ¬r): удалить ¬r → (¬q) Остаток: (¬q).

Шаг 4. Unit Propagation: (¬q) → q = 0. Все дизъюнкты удовлетворены.

Решение: p = 1, q = 0, r = 1. Формула выполнима ✓.

Проверка: (1∨0)∧(0∨1)∧(1∨0)∧(1∨0) = 1∧1∧1∧1 = 1 ✓.

Второй вариант (если бы DPLL зашёл в тупик): если r = 0 → (¬q ∨ 0) = (¬q) → q = 0 → (0∨0) = 0 — противоречие! Возврат.

Реальное приложение

Разработка чипов (Intel, AMD): перед выпуском процессора сотни тысяч свойств проверяются SAT-солверами (аппаратная верификация). Планирование миссий (NASA): задача планирования кодируется в SAT за полиномиальное время, солвер находит последовательность действий.

Дополнительные аспекты

Алгоритм DPLL (Davis–Putnam–Logemann–Loveland) — основа всех современных SAT-решателей. Его улучшения CDCL добавляют обучение клауз: при каждом конфликте формируется новая клауза, исключающая повторение того же тупика. Это даёт экспоненциальный прирост на структурированных задачах. CNF-нормализация Цейтлина вводит вспомогательные переменные для подформул, благодаря чему сохраняет линейный размер преобразования (наивная дистрибутивная нормализация может дать экспоненциальный взрыв). DNF, наоборот, удобна для автоматов и таблиц истинности. Примечательно, что разрешение CNF-формулы в DNF — экспоненциально трудная задача.

Связь с другими разделами математики

Логические нормальные формы неожиданно близки к классическим разделам алгебры. Уже у Гильберта и Акермана логика трактуется как часть универсальной алгебры: булевы формулы — элементы свободной булевой алгебры, а КНФ соответствует представлению этих элементов через пересечение (конъюнкцию) идеалов, задаваемых дизъюнктами. Теорема Стоуна о представлении булевых алгебр через топологические пространства ультрафильтров фактически интерпретирует множество моделей КНФ-формулы как открытое множество в стоуновском пространстве, что связывает SAT с топологией.

В теории вероятностей КНФ возникает в виде логических схем событий: вероятность выполнимости заменяется оценкой вероятности, что хотя бы один дизъюнкт в каждой конъюнкции выполняется. Подходы типа вероятностных методов Ловаса и Эрдёша позволяют оценивать размеры случайных КНФ, почти наверняка невыполнимых, что перекликается с фазовыми переходами в случайных SAT-моделях и методами статистической физики (спин-стеклянные модели Мезара и Паранжина).

Численные методы и дифференциальные уравнения связаны с SAT через гибридные методы оптимизации. С начала 2000‑х годов развиваются дифференциальные приближения к дискретным задачам: траектории динамических систем аппроксимируют процессы поиска; анализ устойчивости стационарных точек опирается на идеи Ляпунова. В вариациях SMT-солверов (Satisfiability Modulo Theories) логические ограничения в КНФ комбинируются с линейной алгеброй и системами дифференциальных уравнений, а проверка выполнимости превращается в смешанную задачу дискретно-непрерывной оптимизации.

С точки зрения вычислительной сложности алгоритм DPLL реализует экспоненциальное дерево поиска, тесно связанное с теоремой Кука–Левина о NP-полноте SAT. Методы резолюции (Рабин, Робинсон) дают логический аналог метода исключения Гаусса, а результаты Харлау–Разборова, Бенаса и других по нижним оценкам длины резолюционных доказательств интерпретируются как пределы для производительности любых DPLL-подобных солверов.

Историческая справка и развитие идеи

Представления логических формул в стандартных нормальных формах появились уже в работах Бооля и Джевонса во второй половине XIX века, однако систематическая теория была оформлена в начале XX века школой Гильберта. В книге «Grundzüge der theoretischen Logik» (1928) Гильберт и Акерман формализовали преобразование формул к эквивалентным КНФ и ДНФ. Вопрос о выполнимости формул впервые был поставлен в контексте общей теории решений логических уравнений (работы Чёрча, Тарского). В 1930‑х Мозес Шёнфинкель и последующие логики рассматривали нормальные формы как инструмент для автоматизации вывода. Переломным моментом стала статья Мартина Дэвиса и Гилберта Патнэма 1960 года в Journal of the ACM, где был предложен алгоритм на основе резолюции и систематического исключения переменных. Через два года Дэвис, Логеман и Лавленд модифицировали подход, введя рекурсивную схему ветвления по литералам с упрощением формулы по ходу поиска; именно этот вариант стал известен как DPLL. Мотивирующими задачами были автоматизация доказательств теорем и проверка корректности программ в ранних системах формальной верификации. В 1971 году Кук, а затем независимо Левин показали NP-полноту SAT, сделав его центральной задачей теории сложности.

§ Акт · что дальше