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

В логика и Информатика, то Проблема логической выполнимости (иногда называют проблема пропозициональной выполнимости и сокращенно УДОВЛЕТВОРЕНИЕ, СИДЕЛ или же B-SAT) - проблема определения, существует ли интерпретация который удовлетворяет данный Булево формула. Другими словами, он спрашивает, могут ли переменные заданной логической формулы быть последовательно заменены значениями ИСТИНА или ЛОЖЬ таким образом, чтобы формула оценивается как ИСТИНА. Если это так, формула называется удовлетворительный. С другой стороны, если такого присвоения не существует, функция, выражаемая формулой, имеет вид ЛОЖНЫЙ для всех возможных назначений переменных и формула неудовлетворительный. Например, формула "а И НЕТ б"выполнимо, потому что можно найти значения а = ИСТИНА и б = FALSE, что делает (а И НЕТ б) = ИСТИНА. В отличие, "а И НЕТ а"неудовлетворительно.

SAT - первая проблема, которая оказалась НП-полный; видеть Теорема Кука – Левина. Это означает, что все задачи класса сложности НП, который включает в себя широкий спектр естественных задач решения и оптимизации, решить не хуже, чем SAT. Не существует известного алгоритма, который бы эффективно решал каждую проблему SAT, и обычно считается, что такого алгоритма не существует; однако это убеждение не было доказано математически, и решение вопроса о том, есть ли у SAT полиномиальное время алгоритм эквивалентен P против проблемы NP, которая является известной открытой проблемой в теории вычислений.

Тем не менее, по состоянию на 2007 год эвристические SAT-алгоритмы способны решать экземпляры проблем, включающие десятки тысяч переменных и формулы, состоящие из миллионов символов,[1] чего достаточно для решения многих практических задач SAT, например, из искусственный интеллект, схемотехника,[2] и автоматическое доказательство теорем.

Основные определения и терминология

А логика высказываний формула, также называемый Логическое выражение, построен из переменные, операторы И (соединение, также обозначается ∧), OR (дизъюнкция, ∨), НЕ (отрицание, ¬) и круглых скобок. Формула называется удовлетворительный если его можно сделать ИСТИННЫМ путем присвоения соответствующего логические значения (т.е. ИСТИНА, ЛОЖЬ) в свои переменные. Проблема логической выполнимости (SAT) дает формулу для проверки ее выполнимости. проблема решения имеет центральное значение во многих областях Информатика, включая теоретическая информатика, теория сложности,[3][4] алгоритмика, криптография и искусственный интеллект.[5][требуется дополнительная ссылка (и) ]

Существует несколько частных случаев проблемы булевой выполнимости, в которых требуется, чтобы формулы имели определенную структуру. А буквальный либо переменная, называемая положительный буквальный, или отрицание переменной, называемой отрицательный буквальный.A пункт представляет собой дизъюнкцию литералов (или одного литерала). Предложение называется Оговорка о роге если он содержит не более одного положительного литерала. формула находится в конъюнктивная нормальная форма (CNF), если это сочетание предложений (или одно предложение). Например, Икс1 положительный литерал, ¬Икс2 отрицательный литерал, Икс1 ∨ ¬Икс2 это пункт. Формула (Икс1 ∨ ¬Икс2) ∧ (¬Икс1Икс2Икс3) ∧ ¬Икс1 находится в соединительной нормальной форме; его первое и третье предложения являются предложениями Хорна, а его второе предложение - нет. Формула выполнима, если выбрать Икс1 = ЛОЖЬ, Икс2 = ЛОЖЬ и Икс3 произвольно, поскольку (FALSE ∨ ¬FALSE) ∧ (¬FALSE ∨ FALSE ∨ Икс3) ∧ ¬FALSE оценивается как (FALSE ∨ TRUE) ∧ (TRUE ∨ FALSE ∨ Икс3) ∧ ИСТИНА и, в свою очередь, ИСТИНА ∧ ИСТИНА ∧ ИСТИНА (т.е. ИСТИНА). Напротив, формула CNF а ∧ ¬а, состоящий из двух предложений одного литерала, невыполнимо, так как для а= ИСТИНА или а= FALSE, он принимает значение TRUE ∧ ¬TRUE (т. Е. FALSE) или FALSE ∧ ¬FALSE (т. Е. Снова FALSE), соответственно.

Для некоторых версий задачи SAT полезно определить понятие обобщенная конъюнктивная нормальная форма формула, а именно. как соединение произвольно многих общие положения, последнее имеет вид р(л1,...,лп) для некоторого логического оператора р и (обычные) литералы ля. Различные наборы допустимых логических операторов приводят к разным версиям проблемы. В качестве примера, рИкс,а,б) является обобщенным предложением, и рИкс,а,б) ∧ р(б,у,c) ∧ р(c,dz) - обобщенная конъюнктивная нормальная форма. Эта формула используется ниже, с р быть тернарным оператором, который имеет значение ИСТИНА только тогда, когда имеет значение ровно один из его аргументов.

Используя законы Булева алгебра каждая формула пропозициональной логики может быть преобразована в эквивалентную конъюнктивную нормальную форму, которая, однако, может быть экспоненциально длиннее. Например, преобразовав формулу (Икс1у1) ∨ (Икс2у2) ∨ ... ∨ (Икспуп) в конъюнктивную нормальную форму дает

(Икс1 ∨ Икс2 ∨ … ∨ Иксп) ∧
(у1 ∨ Икс2 ∨ … ∨ Иксп) ∧
(Икс1 ∨ у2 ∨ … ∨ Иксп) ∧
(у1 ∨ у2 ∨ … ∨ Иксп) ∧ ... ∧
(Икс1 ∨ Икс2 ∨ … ∨ уп) ∧
(у1 ∨ Икс2 ∨ … ∨ уп) ∧
(Икс1 ∨ у2 ∨ … ∨ уп) ∧
(у1 ∨ у2 ∨ … ∨ уп);

в то время как первый представляет собой дизъюнкцию п конъюнкции 2 переменных, последняя состоит из 2п статьи п переменные.

Сложность и ограниченные версии

Неограниченная выполнимость (SAT)

SAT был первым известным НП-полный проблема, как доказано Стивен Кук на Университет Торонто в 1971 г.[6] и независимо Леонид Левин на Национальная Академия Наук в 1973 г.[7] До этого времени даже не существовало концепции NP-полной задачи. Доказательство показывает, как каждая проблема решения в класс сложности НП возможно уменьшенный к задаче SAT для CNF[примечание 1] формулы, иногда называемые CNFSAT. Полезным свойством сокращения Кука является то, что он сохраняет количество принимаемых ответов. Например, решение о том, график имеет 3-раскраска еще одна проблема в НП; если график имеет 17 допустимых 3-раскрасок, формула SAT, полученная редукцией Кука – Левина, будет иметь 17 удовлетворительных назначений.

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

SAT тривиален, если формулы ограничиваются формулами в дизъюнктивная нормальная форма, то есть они представляют собой дизъюнкцию соединений литералов. Такая формула действительно выполнима тогда и только тогда, когда выполнима хотя бы одна из ее конъюнкций, а конъюнкция выполнима тогда и только тогда, когда она не содержит обоих Икс и нет Икс для какой-то переменной Икс. Это можно проверить за линейное время. Кроме того, если они ограничены пребыванием в полная дизъюнктивная нормальная форма, в котором каждая переменная появляется ровно один раз в каждом соединении, они могут быть проверены в постоянное время (каждое соединение представляет одно удовлетворительное присвоение). Но для преобразования общей задачи SAT в дизъюнктивную нормальную форму могут потребоваться экспоненциальные время и пространство; например, замените "∧" и "∨" в над пример экспоненциального разрушения конъюнктивных нормальных форм.

3-выполнимость

Экземпляр 3-SAT (ИксИксу) ∧ (¬Икс ∨ ¬у ∨ ¬у) ∧ (¬Иксуу) сводится к проблема клики. Зеленые вершины образуют 3-клику и соответствуют выполняемому заданию Икс= ЛОЖЬ, у= ИСТИНА.

Как и проблема выполнимости для произвольных формул, определение выполнимости формулы в конъюнктивной нормальной форме, где каждое предложение ограничено не более чем тремя литералами, также является NP-полным; эта проблема называется 3-СБ, 3CNFSAT, или же 3-выполнимость.Чтобы уменьшить неограниченную задачу SAT до 3-SAT, преобразуйте каждое предложение л1 ∨ ⋯ ∨ лп к соединению п - 2 статьи

(л1л2Икс2) ∧
Икс2л3Икс3) ∧
Икс3л4Икс4) ∧ ⋯ ∧
Иксп − 3лп − 2Иксп − 2) ∧
Иксп − 2лп − 1лп)

куда Икс2, ⋯ , Иксп − 2 являются новыми переменными, нигде больше не встречающимися. Хотя эти две формулы не логически эквивалентный, они есть равноправный. Формула, полученная в результате преобразования всех клозов, не более чем в 3 раза длиннее оригинальной, то есть рост длины полиномиален.[8]

3-SAT - один из 21 NP-полная задача Карпа, и он используется в качестве отправной точки для доказательства того, что другие проблемы также NP-жесткий.[заметка 2] Это делается редукция за полиномиальное время от 3-СБ к другой проблеме. Примером проблемы, в которой использовался этот метод, является проблема клики: дана формула CNF, состоящая из c статьи, соответствующие график состоит из вершины для каждого литерала и ребра между каждыми двумя непротиворечивыми[заметка 3] литералы из разных предложений, ср. рисунок. На графике есть c-clique тогда и только тогда, когда формула выполнима.[9]

Из-за Шёнинга (1999) существует простой рандомизированный алгоритм, работающий во времени (4/3)п куда п - количество переменных в предложении 3-SAT, и с высокой вероятностью удастся правильно решить 3-SAT.[10]

В гипотеза экспоненциального времени утверждает, что ни один алгоритм не может решить 3-SAT (или действительно k-СБ для любого k> 2) в ехр (о (п)) времени (т.е. существенно быстрее, чем экспоненциальное по п).

Селман, Митчелл и Левеск (1996) приводят эмпирические данные о сложности случайно генерируемых формул 3-SAT в зависимости от их параметров размера. Сложность измеряется количеством рекурсивных вызовов, сделанных Алгоритм DPLL.[11]

3-выполнимость можно обобщить до k-выполнимость (k-SAT, также k-CNF-SAT), когда рассматриваются формулы в CNF с каждым предложением, содержащим до k литералы.[нужна цитата ]Однако поскольку для любого k ≥ 3, эта задача не может быть ни легче, чем 3-SAT, ни сложнее, чем SAT, а последние два являются NP-полными, поэтому должно быть k-SAT.

Некоторые авторы ограничивают k-SAT формулами CNF с ровно k литералов.[нужна цитата ] Это также не приводит к другому классу сложности, поскольку каждое предложение л1 ∨ ⋯ ∨ лj с j < k литералы могут быть дополнены фиксированными фиктивными переменными, чтобыл1 ∨ ⋯ ∨ лjdj+1 ∨ ⋯ ∨ dk. После заполнения всех предложений, 2k-1 лишний пункт[примечание 4] должны быть добавлены, чтобы гарантировать, что только d1 = ⋯ = dk= ЛОЖЬ может привести к удовлетворительному заданию. С k не зависит от длины формулы, лишние предложения приводят к постоянному увеличению длины. По той же причине не имеет значения, повторяющиеся литералы разрешены в статьях, как в ¬Икс ∨ ¬у ∨ ¬у.

Точно-1 3-выполнимость

Оставили: Сокращение Шефера предложения 3-SAT Иксуz. Результат р является ИСТИНА (1) если ровно один из его аргументов ИСТИНА, и ЛОЖЬ (0) иначе. Все 8 комбинаций значений для Икс,у,z рассматриваются по одному в каждой строке. Свежие переменные а,...,ж можно выбрать, чтобы удовлетворить все пункты (ровно один зеленый аргумент для каждого р) во всех строках кроме первой, где Иксуz ЛОЖНО. Правильно: Более простая редукция с такими же свойствами.

Вариантом задачи 3-выполнимости является один из трех 3-СБ (также известный как 1-на-3-СБ и ровно-1 3-СБЕсли задана конъюнктивная нормальная форма с тремя литералами на каждое предложение, проблема состоит в том, чтобы определить, существует ли истинное присвоение переменных, чтобы каждое предложение имело точно один ИСТИННЫЙ литерал (и, следовательно, ровно два ЛОЖНЫХ литерала). Напротив, обычный 3-SAT требует, чтобы в каждом пункте по меньшей мере один ИСТИННЫЙ литерал. Формально, задача 3-SAT один из трех задается как обобщенная конъюнктивная нормальная форма со всеми обобщенными предложениями с использованием тернарного оператора р это ИСТИНА, если только один из его аргументов верен. Когда все литералы формулы 3-SAT один из трех положительны, проблема выполнимости называется каждый третий положительный результат 3-SAT.

Один из трех 3-SAT, вместе с его положительным случаем, перечислен как NP-полная задача "LO4" в стандартной справке, Компьютеры и непреодолимость: руководство по теории NP-полнотык Майкл Р. Гарей и Дэвид С. Джонсон. Один из трех 3-SAT был доказан NP-полным Томас Джером Шефер как частный случай Теорема дихотомии Шефера, который утверждает, что любая проблема, обобщающая булеву выполнимость определенным образом, либо принадлежит классу P, либо является NP-полной.[12]

Шефер дает конструкцию, позволяющую легко за полиномиальное время сократить 3-SAT до 3-SAT один из трех. Позволять "(Икс или же у или же z) "быть предложением в формуле 3CNF. Добавьте шесть новых логических переменных а, б, c, d, е, и ж, который будет использоваться для имитации этого предложения, а не другого. Затем формула р(Икс,а,d) ∧ р(у,б,d) ∧ р(а,б,е) ∧ р(c,d,ж) ∧ р(z,c, FALSE) выполнима при некоторой установке новых переменных тогда и только тогда, когда хотя бы одна из Икс, у, или же z ВЕРНО, см. рисунок (слева). Таким образом, любой экземпляр 3-SAT с м статьи и п переменные могут быть преобразованы в равноправный один из трех экземпляров 3-SAT с 5м статьи и п+6м переменные.[13]Еще одно сокращение включает всего четыре новых переменных и три предложения: рИкс,а,б) ∧ р(б,у,c) ∧ R (c,dz), см. рисунок (справа).

Не все равно 3-выполнимость

Другой вариант - это не все равно 3-выполнимость проблема (также называемая NAE3SATДля конъюнктивной нормальной формы с тремя литералами на каждое предложение задача состоит в том, чтобы определить, существует ли такое присвоение переменным, что ни в одном предложении все три литерала имеют одинаковое значение истинности. Эта проблема тоже является NP-полной, даже если не допускаются символы отрицания, согласно теореме о дихотомии Шефера.[12]

2-выполнимость

SAT проще, если количество литералов в предложении ограничено максимум 2, и в этом случае проблема называется 2-СБ. Эта проблема может быть решена за полиномиальное время, и на самом деле это полный для класса сложности NL. Если дополнительно все операции ИЛИ в литералах изменить на XOR операций, результат называется исключающая или 2-выполнимость, что является полной задачей для класса сложности SL = L.

Роговая выполнимость

Проблема определения выполнимости данной конъюнкции Роговые оговорки называется Роговая выполнимость, или же HORN-SAT.Ее можно решить за полиномиальное время за один шаг Распространение единицы алгоритм, который создает единую минимальную модель набора предложений Horn (относительно набора литералов, присвоенных TRUE). P-полный. Это можно рассматривать как P's версия проблемы булевой выполнимости. Кроме того, определение истинности квантифицированных формул Хорна может быть выполнено за полиномиальное время.[14]

Предложения Хорна интересны тем, что могут выражать значение одной переменной из набора других переменных. Действительно, одна такая оговорка ¬Икс1 ∨ ... ∨ ¬Икспу можно переписать как Икс1 ∧ ... ∧ Икспу, то есть если Икс1,...,Иксп все ИСТИННЫ, тогда у также должно быть ИСТИННЫМ.

Обобщением класса формул Хорна является класс переименовываемых формул Хорна, который представляет собой набор формул, которые можно преобразовать в форму Хорна, заменив некоторые переменные их соответствующими отрицаниями, например (Икс1 ∨ ¬Икс2) ∧ (¬Икс1Икс2Икс3) ∧ ¬Икс1 не является формулой Горна, но может быть переименована в формулу Горна (Икс1 ∨ ¬Икс2) ∧ (¬Икс1Икс2 ∨ ¬у3) ∧ ¬Икс1 путем введения у3 как отрицание Икс3Напротив, переименование (Икс1 ∨ ¬Икс2 ∨ ¬Икс3) ∧ (¬Икс1Икс2Икс3) ∧ ¬Икс1 приводит к формуле Хорна. Проверить существование такой замены можно за линейное время; следовательно, выполнимость таких формул находится в P, поскольку ее можно решить, сначала выполнив эту замену, а затем проверив выполнимость полученной формулы Хорна.

Формула с двумя предложениями может быть неудовлетворенной (красный), 3-удовлетворенной (зеленый), xor-3-удовлетворенной (синий) или / и 1-из-3-удовлетворенной (желтой), в зависимости от количества ИСТИННЫХ буквальных значений в 1-е (гор.) и 2-е (верт.) предложения.

XOR-выполнимость

Другой частный случай - это класс проблем, в котором каждое предложение содержит XOR (т.е. Эксклюзивный или ), а не (простые) операторы ИЛИ.[примечание 5]Это в п, поскольку формулу XOR-SAT можно также рассматривать как систему линейных уравнений по модулю 2, и ее можно решить в кубическом времени с помощью Гауссово исключение;[15] пример см. на рамке. Эта переделка основана на родство булевых алгебр и булевых колец, и тот факт, что арифметика по модулю два образует конечное поле. С а XOR б XOR c принимает значение ИСТИНА тогда и только тогда, когда ровно 1 или 3 члена {а,б,c} истинны, каждое решение задачи 1-из-3-SAT для данной формулы CNF также является решением задачи XOR-3-SAT, и, в свою очередь, каждое решение XOR-3-SAT является решением 3 -СБ, ср. рисунок. Как следствие, для каждой формулы CNF можно решить задачу XOR-3-SAT, определенную этой формулой, и на основе результата сделать вывод, что проблема 3-SAT разрешима или что 1-из-3- Проблема SAT неразрешима.

При условии, что классы сложности P и NP не равны, ни 2-, ни Horn-, ни XOR-выполнимость не является NP-полной, в отличие от SAT.

Теорема дихотомии Шефера

Приведенные выше ограничения (CNF, 2CNF, 3CNF, Horn, XOR-SAT) ограничивают рассматриваемые формулы как конъюнкции подформул; каждое ограничение устанавливает определенную форму для всех подформул: например, только двоичные предложения могут быть подформулами в 2CNF.

Теорема Шефера о дихотомии утверждает, что для любого ограничения на булевы операторы, которые могут быть использованы для формирования этих подформул, соответствующая проблема выполнимости находится в P или NP-полной. Принадлежность к P выполнимости формул 2CNF, Horn и XOR-SAT является частным случаем этой теоремы.[12]

Расширения SAT

Расширение, которое приобрело значительную популярность с 2003 года, - выполнимость по модулю теорий (SMT), которые могут обогатить формулы CNF линейными ограничениями, массивами, всевозможными ограничениями, неинтерпретированные функции,[16] и Т. Д. Такие расширения обычно остаются NP-полными, но теперь доступны очень эффективные решатели, которые могут обрабатывать многие подобные ограничения.

Проблема выполнимости становится более сложной, если и то и другое "для всех" ( ) и «существует» ( ) кванторы разрешено связывать логические переменные. Примером такого выражения может быть Иксуz (Иксуz) ∧ (¬Икс ∨ ¬у ∨ ¬z); это справедливо, поскольку для всех значений Икс и у, соответствующее значение z можно найти, а именно. z= ИСТИНА, если оба Икс и у ЛОЖНЫ, и z= FALSE else.SAT (неявно) использует только ∃ кванторов. Если вместо них разрешены только ∀ кванторов, то так называемый тавтология проблема получается, что совместно NP-полный.Если разрешены оба квантификатора, проблема называется квантифицированная задача булевой формулы (QBF), который можно показать как PSPACE-полный. Широко распространено мнение, что PSPACE-полные задачи строго сложнее любых задач в NP, хотя это еще не доказано. Использование высокопараллельного Системы P, QBF-SAT задачи могут быть решены за линейное время.[17]

Обычный тест SAT спрашивает, существует ли хотя бы одно присвоение переменной, которое делает формулу истинной. С количеством таких заданий справляются самые разные варианты:

  • MAJ-SAT спрашивает, делает ли формула ИСТИНА большинство всех присваиваний. Известно, что он завершен для PP, вероятностный класс.
  • #СИДЕЛ, проблема подсчета количества присвоений переменных, удовлетворяющих формуле, является проблемой подсчета, а не проблемой решения, и # P-complete.
  • УНИКАЛЬНАЯ СБ[18] проблема определения того, имеет ли формула ровно одно присвоение. Это завершено для нас,[19] то класс сложности описание задач, решаемых за недетерминированное полиномиальное время Машина Тьюринга который принимает, когда существует ровно один недетерминированный путь принятия, и отклоняет в противном случае.
  • UNAMBIGUOUS-SAT это имя, данное проблеме выполнимости, когда вход ограниченный формулам, имеющим не более одного удовлетворительного назначения. Проблема также называется USAT.[20] Алгоритм решения для UNAMBIGUOUS-SAT может демонстрировать любое поведение, включая бесконечный цикл, в формуле, имеющей несколько удовлетворительных назначений. Хотя эта проблема кажется проще, у Valiant и Vazirani есть показано[21] что если есть практический (т.е. рандомизированное полиномиальное время ) алгоритм его решения, то все задачи в НП решается так же легко.
  • МАКС-СБ, то проблема максимальной выполнимости, является ФНП обобщение SAT. Требуется максимальное количество предложений, которое может быть выполнено при любом назначении. Имеет эффективный аппроксимационные алгоритмы, но это NP-сложно решить точно. Еще хуже то, что это APX -полный, то есть нет схема полиномиальной аппроксимации (PTAS) для этой проблемы, если P = NP.
  • WMSAT - это проблема нахождения присвоения минимального веса, которое удовлетворяет монотонной булевой формуле (т.е. формуле без отрицания). Веса пропозициональных переменных задаются во входных данных задачи. Вес присвоения - это сумма весов истинных переменных. Эта проблема является NP-полной (см. Th. 1 из [22]).

Другие обобщения включают выполнимость для первый - и логика второго порядка, проблемы удовлетворения ограничений, 0-1 целочисленное программирование.

Самовосстановление

Проблема SAT самовосстанавливающийся, то есть каждый алгоритм, который правильно отвечает, если экземпляр SAT разрешим, может быть использован для поиска удовлетворительного назначения. Сначала задается вопрос о данной формуле Φ. Если ответ «нет», формула невыполнима. В противном случае задается вопрос о частично приведенной формуле Φ{Икс1= ИСТИНА}, т.е. Φ с первой переменной Икс1 заменено на ИСТИНА и соответственно упрощено. Если ответ «да», то Икс1= ИСТИНА, иначе Икс1= ЛОЖЬ. Таким же образом впоследствии можно найти значения других переменных. В итоге, пТребуется +1 запуск алгоритма, где п - количество различных переменных в Φ.

Это свойство самосводимости используется в нескольких теоремах теории сложности:

НПП / полиPH = Σ2   (Теорема Карпа – Липтона )
НПBPPНП = RP
п = НПFP = ФНП

Алгоритмы решения SAT

Поскольку задача SAT является NP-полной, для нее известны только алгоритмы с экспоненциальной сложностью наихудшего случая. Несмотря на это, в 2000-х годах были разработаны эффективные и масштабируемые алгоритмы для SAT, которые способствовали значительному прогрессу в нашей способности автоматически решать экземпляры проблем, включающие десятки тысяч переменных и миллионы ограничений (то есть предложений).[1] Примеры таких проблем в автоматизация проектирования электроники (EDA) включают формальная проверка эквивалентности, проверка модели, формальная проверка из конвейерные микропроцессоры,[16] автоматическая генерация тестовой таблицы, маршрутизация из ПЛИС,[23] планирование, и проблемы с расписанием, и так далее. Механизм SAT-решения теперь считается важным компонентом в EDA ящик для инструментов.

Решатель DPLL SAT использует процедуру систематического поиска с возвратом для исследования (экспоненциального размера) пространства назначений переменных в поисках подходящих назначений.Базовая процедура поиска была предложена в двух основополагающих статьях в начале 1960-х годов (см. Ссылки ниже) и теперь обычно называется Алгоритм Дэвиса – Патнэма – Логеманна – Ловленда («DPLL» или «DLL»).[24][25] Многие современные подходы к практическому решению SAT основаны на алгоритме DPLL и имеют ту же структуру. Часто они повышают эффективность только определенных классов проблем SAT, таких как экземпляры, которые появляются в промышленных приложениях или случайно сгенерированные экземпляры.[26] Теоретически доказаны экспоненциальные нижние оценки для семейства алгоритмов DPLL.[нужна цитата ]

Алгоритмы, не входящие в семейство DPLL, включают: стохастический местный поиск алгоритмы. Одним из примеров является WalkSAT. Стохастические методы пытаются найти удовлетворительную интерпретацию, но не могут сделать вывод, что экземпляр SAT неудовлетворителен, в отличие от полных алгоритмов, таких как DPLL.[26]

Напротив, рандомизированные алгоритмы, такие как алгоритм PPSZ Патури, Пудлака, Сакса и Зейна, устанавливают переменные в случайном порядке в соответствии с некоторыми эвристиками, например с ограниченной шириной разрешающая способность. Если эвристика не может найти правильную настройку, переменная назначается случайным образом. Алгоритм PPSZ имеет время выполнения[уточнить ] из для 3-СБ. Это была самая известная среда выполнения для этой проблемы до недавнего улучшения, сделанного Хансеном, Капланом, Замиром и Цвиком, которое имеет время выполнения для 3-SAT и в настоящее время самая известная среда выполнения для k-SAT для всех значений k. В ситуации с множеством удовлетворительных назначений рандомизированный алгоритм Шёнинга имеет лучшую оценку.[10][27][28]

Современные решатели SAT (разработанные в 2000-х годах) бывают двух видов: «управляемые конфликтом» и «упреждающие». Оба подхода происходят от DPLL.[26] Решатели конфликтов, такие как изучение оговорок, обусловленных конфликтами (CDCL), дополнить базовый алгоритм поиска DPLL эффективным анализом конфликтов, изучением предложений, не-хронологический возврат (a.k.a. обратный прыжок ), а также распространение единицы "два наблюдаемых литерала", адаптивное ветвление и случайные перезапуски. Эти «дополнения» к основному систематическому поиску, как было эмпирически показано, необходимы для обработки больших экземпляров SAT, которые возникают в автоматизация проектирования электроники (EDA).[29] Хорошо известные реализации включают Мякина[30] и ПОНЯТЬ.[31] Упреждающие решатели особенно усилили редукцию (выходящую за рамки распространения единичных предложений) и эвристику, и они, как правило, сильнее, чем решатели, управляемые конфликтами, в жестких экземплярах (в то время как решатели, управляемые конфликтами, могут быть намного лучше в больших экземплярах, которые действительно имеют легкий экземпляр внутри).

Современные решатели SAT также оказывают значительное влияние на области проверки программного обеспечения, решения ограничений в искусственном интеллекте и исследования операций, среди прочего. Мощные решатели доступны в виде бесплатное программное обеспечение с открытым исходным кодом. В частности, конфликтные MiniSAT, который был относительно успешным на Конкурс SAT 2005, всего около 600 строк кода. Современный решатель Parallel SAT - ManySAT.[32] Он может обеспечить сверхлинейное ускорение на важных классах задач. Пример для упреждающих решателей: march_dl, который выиграл приз на Конкурс SAT 2007.

Определенные типы больших случайных выполнимых экземпляров SAT могут быть решены с помощью распространение обзора (SP). Особенно в аппаратный дизайн и проверка применение, выполнимость и другие логические свойства данной пропозициональной формулы иногда решаются на основе представления формулы как диаграмма двоичных решений (BDD).

Почти все решатели SAT включают тайм-ауты, поэтому они прерываются в разумные сроки, даже если не могут найти решение. Разные решатели SAT найдут разные случаи легкими или сложными, и некоторые из них преуспеют в доказательстве неудовлетворительности, а другие в поиске решений. такое поведение можно увидеть в соревнованиях по решению SAT.[33]

Параллельное SAT-решение

Параллельный Решатели SAT делятся на три категории: портфолио, Разделяй и властвуй и параллельно местный поиск алгоритмы. В параллельных портфелях одновременно работают несколько различных решателей SAT. Каждый из них решает копию экземпляра SAT, тогда как алгоритмы «разделяй и властвуй» разделяют проблему между процессорами. Существуют разные подходы к распараллеливанию алгоритмов локального поиска.

В Международный конкурс SAT Solver Competition имеет параллельную дорожку, отражающую последние достижения в параллельном решении SAT. В 2016 г.[34] 2017[35] и 2018,[36] тесты проводились на Общая память система с 24 ядра обработки, поэтому решатели предназначены для распределенная память или же многоядерные процессоры мог бы потерпеть неудачу.

Портфолио

Как правило, не существует решателя SAT, который лучше всех других решает все задачи SAT. Алгоритм может хорошо работать для проблемных экземпляров, с которыми другие борются, но хуже с другими экземплярами. Кроме того, для экземпляра SAT нет надежного способа предсказать, какой алгоритм решит этот экземпляр особенно быстро. Эти ограничения мотивируют подход параллельного портфеля. Портфолио - это набор разных алгоритмов или разных конфигураций одного и того же алгоритма. Все решатели в параллельном портфеле работают на разных процессорах для решения одной и той же задачи. Если одна решающая программа завершается, решающая программа портфеля сообщает, что проблема является выполнимой или неудовлетворительной в соответствии с этим решателем. Все остальные решатели прекращают работу. Диверсификация портфелей за счет включения различных решателей, каждое из которых хорошо работает с различным набором задач, повышает надежность решателя.[37]

Многие решатели внутри используют генератор случайных чисел. Диверсифицируя свои семена это простой способ разнообразить портфель. Другие стратегии диверсификации включают включение, отключение или диверсификацию определенных эвристик в последовательном решателе.[38]

Одним из недостатков параллельных портфелей является количество повторяющейся работы. Если в последовательных решателях используется обучение предложений, совместное использование изученных предложений между параллельно работающими решателями может уменьшить дублирование работы и повысить производительность. Тем не менее, даже простой параллельный запуск портфеля лучших решателей делает его конкурентоспособным. Примером такого решателя является PPfolio.[39][40] Он был разработан для определения нижней границы производительности, которую должен обеспечивать параллельный решатель SAT. Несмотря на большой объем повторяющейся работы из-за отсутствия оптимизаций, он хорошо работал на машине с общей памятью. ОрдаСат[41] - это программа для решения параллельных портфелей для больших кластеров вычислительных узлов. В своей основе он использует по-разному настроенные экземпляры одного и того же последовательного решателя. В частности, для жестких экземпляров SAT HordeSat может обеспечить линейное ускорение и, следовательно, значительно сократить время работы.

В последние годы SAT-решатели с параллельным портфелем доминировали над параллельным курсом Международные соревнования по SAT Solver. Известные примеры таких решающих программ включают Plingeling и безболезненные решения.[42]

Разделяй и властвуй

В отличие от параллельных портфелей, параллельный «разделяй и властвуй» пытается разделить пространство поиска между элементами обработки. Алгоритмы «разделяй и властвуй», такие как последовательный DPLL, уже применяют технику разделения пространства поиска, поэтому их расширение в сторону параллельного алгоритма является прямым. Однако из-за таких методов, как распространение единиц, после разделения частичные проблемы могут значительно отличаться по сложности. Таким образом, алгоритм DPLL обычно не обрабатывает каждую часть пространства поиска за один и тот же промежуток времени, что приводит к сложной задаче. Балансировка нагрузки проблема.[37]

Дерево, иллюстрирующее этап упреждения и полученные кубики.
Фаза куба для формулы . Эвристика принятия решений выбирает, какие переменные (кружки) назначить. После того, как эвристика отсечения решает прекратить дальнейшее ветвление, частичные проблемы (прямоугольники) решаются независимо с помощью CDCL.

Из-за не хронологического поиска с возвратом распараллеливание обучения по конфликтным предложениям сложнее. Один из способов преодолеть это - Куб и завоевание парадигма.[43] Предлагается решение в два этапа. На этапе «куб» Задача делится на многие тысячи, вплоть до миллионов разделов. Это делается упреждающим решателем, который находит набор частичных конфигураций, называемых «кубами». Куб также можно рассматривать как соединение подмножества переменных исходной формулы. В сочетании с формулой каждый кубик образует новую формулу. Эти формулы могут быть решены независимо и одновременно с помощью решателей, управляемых конфликтами. Поскольку дизъюнкция этих формул эквивалент к исходной формуле, проблема считается выполнимой, если выполняется одна из формул. Упреждающий решатель подходит для небольших, но сложных задач,[44] поэтому он используется для постепенного разделения проблемы на несколько подзадач. Эти подзадачи проще, но все же большие, что является идеальной формой для решателя, управляемого конфликтами. Более того, упреждающие решатели рассматривают всю проблему, тогда как решающие программы, управляемые конфликтами, принимают решения на основе гораздо более локальной информации. В фазе куба задействованы три эвристики. Переменные в кубах выбираются эвристикой принятия решения. Эвристика направления решает, какое присвоение переменной (истинное или ложное) исследовать в первую очередь. В удовлетворительных проблемных случаях полезно сначала выбрать удовлетворительную ветвь. Эвристика отсечения решает, когда прекратить расширение куба и вместо этого перенаправить его последовательному решателю, управляемому конфликтами. Желательно, чтобы кубики были так же сложны для решения.[43]

Treengeling - это пример параллельного решателя, который применяет парадигму Cube-and-Conquer. С момента своего появления в 2012 году он добился нескольких успехов на Международный конкурс SAT Solver Competition. Cube-and-Conquer использовался для решения Проблема логических троек Пифагора.[45]

Локальный поиск

Одна из стратегий параллельного алгоритма локального поиска для решения SAT - это одновременное выполнение нескольких переворотов переменных на разных процессорах.[46] Другой - применить вышеупомянутый портфельный подход, однако совместное использование предложений невозможно, поскольку решатели локального поиска не создают предложения. В качестве альтернативы можно совместно использовать конфигурации, произведенные локально. Эти конфигурации могут использоваться для создания новой начальной конфигурации, когда локальный решатель решает перезапустить свой поиск.[47]

Смотрите также

Примечания

  1. ^ Задача SAT для произвольный формулы также являются NP-полными, поскольку легко показать, что они находятся в NP, и это не может быть проще, чем SAT для формул CNF.
  2. ^ то есть по крайней мере так же сложно, как и любая другая проблема в NP. Проблема решения является NP-полной тогда и только тогда, когда она находится в NP и является NP-сложной.
  3. ^ т.е. такой, что один литерал не является отрицанием другого
  4. ^ а именно все maxterms что может быть построено с d1,⋯,dk, Кроме d1∨⋯∨dk
  5. ^ Формально обобщенные конъюнктивные нормальные формы с тернарным булевым оператором р используются, что ИСТИННО, только если 1 или 3 из его аргументов. Предложение input с более чем 3 литералами может быть преобразовано в равно удовлетворяемое соединение предложений á 3 литерала, подобное над; т.е. XOR-SAT можно свести к XOR-3-SAT.

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

  1. ^ а б Охрименко, Ольга; Стаки, Питер Дж .; Кодиш, Майкл (2007), "Распространение = Генерация ленивых предложений", Принципы и практика программирования в ограничениях - CP 2007, Конспект лекций по информатике, 4741, стр. 544–558, CiteSeerX  10.1.1.70.5471, Дои:10.1007/978-3-540-74970-7_39, современные решатели SAT часто могут решать проблемы с миллионами ограничений и сотнями тысяч переменных.
  2. ^ Хонг, Тед; Ли, Яньцзин; Пак, Сунг-Боэм; Муи, Диана; Лин, Дэвид; Калек, Зияд Абдель; Хаким, Нагиб; Наэйми, Хелия; Гарднер, Дональд С .; Митра, Субхасиш (ноябрь 2010 г.). «QED: тесты быстрого обнаружения ошибок для эффективной проверки после кристаллизации». Международная тестовая конференция IEEE 2010 г.: 1–10. Дои:10.1109 / ТЕСТ.2010.5699215. ISBN  978-1-4244-7206-2. S2CID  7909084.
  3. ^ Карп, Ричард М. (1972). «Сводимость среди комбинаторных проблем» (PDF). В Раймонде Э. Миллере; Джеймс У. Тэтчер (ред.). Сложность компьютерных вычислений. Нью-Йорк: Пленум. С. 85–103. ISBN  0-306-30707-3. Здесь: стр.86
  4. ^ Альфред В. Ахо, Джон Э. Хопкрофт и Джеффри Д. Ульман (1974). Разработка и анализ компьютерных алгоритмов. Ридинг / МА: Эддисон-Уэсли. ISBN  0-201-00029-6. Здесь: с.403
  5. ^ Визель, Ю .; Weissenbacher, G .; Малик, С. (2015). "Решатели логической выполнимости и их приложения в проверке моделей". Труды IEEE. 103 (11): 2021–2035. Дои:10.1109 / JPROC.2015.2455034. S2CID  10190144.
  6. ^ Кук, Стивен А. (1971). «Сложность процедур доказательства теорем» (PDF). Материалы 3-го ежегодного симпозиума ACM по теории вычислений: 151–158. CiteSeerX  10.1.1.406.395. Дои:10.1145/800157.805047. S2CID  7573663.
  7. ^ Левин Леонид (1973). «Универсальные задачи перебора, Универсальные переборные задачи». Проблемы передачи информации (Русский: Проблемы передачи информации, Проблемы передачи информации). 9 (3): 115–116. (pdf) (на русском), переведено на английский язык Трахтенброт, Б.А. (1984). "Обзор российских подходов к перебор (перебором) алгоритмов ". Анналы истории вычислительной техники. 6 (4): 384–400. Дои:10.1109 / MAHC.1984.10036. S2CID  950581.
  8. ^ а б Альфред В. Ахо; Джон Э. Хопкрофт; Джеффри Д. Уллман (1974). Разработка и анализ компьютерных алгоритмов. Эддисон-Уэсли.; здесь: Thm.10.4
  9. ^ Ахо, Хопкрофт, Ульман[8] (1974); Thm.10.5
  10. ^ а б Шёнинг, Уве (октябрь 1999 г.). "Вероятностный алгоритм для k-SAT и проблемы удовлетворения ограничений " (PDF). Proc. 40-я Ann. Symp. Основы информатики. С. 410–414. Дои:10.1109 / SFFCS.1999.814612. ISBN  0-7695-0409-4. S2CID  123177576.
  11. ^ Барт Селман; Дэвид Митчелл; Гектор Левеск (1996). «Создание сложных проблем выполнимости». Искусственный интеллект. 81 (1–2): 17–29. CiteSeerX  10.1.1.37.7362. Дои:10.1016/0004-3702(95)00045-3.
  12. ^ а б c Шефер, Томас Дж. (1978). «Сложность проблемы выполнимости» (PDF). Материалы 10-го ежегодного симпозиума ACM по теории вычислений. Сан-Диего, Калифорния. С. 216–226.
  13. ^ (Schaefer, 1978), с. 222, лемма 3.5.
  14. ^ Buning, H.K .; Карпинский, Марек; Флогель, А. (1995). «Разрешение для количественных булевых формул». Информация и вычисления. Эльзевир. 117 (1): 12–18. Дои:10.1006 / inco.1995.1025.
  15. ^ Мур, Кристофер; Мертенс, Стефан (2011), Природа вычислений, Oxford University Press, стр. 366, г. ISBN  9780199233212.
  16. ^ а б Р. Э. Брайант, С. М. Герман и М. Н. Велев, Проверка микропроцессора с использованием эффективных процедур принятия решения для логики равенства с неинтерпретируемыми функциями, в Аналитических таблицах и родственных методах, стр. 1–13, 1999.
  17. ^ Алхазов, Артем; Мартин-Виде, Карлос; Пан, Линьцян (2003). «Решение проблемы PSPACE-Complete путем распознавания P-систем с ограниченными активными мембранами». Fundamenta Informaticae. 58: 67–77.
  18. ^ Бласс, Андреас; Гуревич, Юрий (1982-10-01). «О проблеме однозначной выполнимости». Информация и контроль. 55 (1): 80–88. Дои:10.1016 / S0019-9958 (82) 90439-9. ISSN  0019-9958.
  19. ^ "Зоопарк сложности: U - зоопарк сложности". сложностьzoo.uwaterloo.ca. Получено 2019-12-05.
  20. ^ Козен, Декстер К. (2006). «Дополнительная лекция F: Уникальная выполнимость». Теория вычислений. Тексты по информатике. Лондон: Springer-Verlag. п. 180. ISBN  9781846282973.
  21. ^ Valiant, L .; Вазирани, В. (1986). «NP - это просто найти уникальные решения» (PDF). Теоретическая информатика. 47: 85–93. Дои:10.1016/0304-3975(86)90135-0.
  22. ^ Булдас, Ахто; Ленин, Александр; Виллемсон, Ян; Чарнаморд, Антон (2017). Обана, Сатоши; Чида, Коджи (ред.). «Простые справки о невозможности атак на деревья». Достижения в области информационной и компьютерной безопасности. Конспект лекций по информатике. Издательство Springer International. 10418: 39–55. Дои:10.1007/978-3-319-64200-0_3. ISBN  9783319642000.
  23. ^ Ги-Джун Нам; Sakallah, K. A .; Рутенбар, Р. А. (2002). «Новый подход к подробной маршрутизации FPGA через логическую выполнимость на основе поиска» (PDF). IEEE Transactions по автоматизированному проектированию интегральных схем и систем. 21 (6): 674. Дои:10.1109 / TCAD.2002.1004311.
  24. ^ Дэвис, М .; Патнэм, Х. (1960). «Вычислительная процедура для теории количественной оценки». Журнал ACM. 7 (3): 201. Дои:10.1145/321033.321034. S2CID  31888376.
  25. ^ Дэвис, М.; Logemann, G .; Лавленд, Д. (1962). «Машинная программа для доказательства теорем» (PDF). Коммуникации ACM. 5 (7): 394–397. Дои:10.1145/368273.368557. HDL:2027 / mdp.39015095248095. S2CID  15866917.
  26. ^ а б c Чжан, Линтао; Малик, Шарад (2002), "Поиск эффективных решателей логической выполнимости", Компьютерная проверка, Springer Berlin Heidelberg, стр. 17–36, Дои:10.1007/3-540-45657-0_2, ISBN  978-3-540-43997-4
  27. ^ «Улучшенный алгоритм экспоненциального времени для k-SAT», Патури, Пудлак, Сакс, Зани
  28. ^ «Более быстрые алгоритмы k-SAT с использованием смещенной PPSZ», Хансен, Каплан, Замир, Цвик
  29. ^ Визель, Ю .; Weissenbacher, G .; Малик, С. (2015). "Решатели логической выполнимости и их приложения в проверке моделей". Труды IEEE. 103 (11): 2021–2035. Дои:10.1109 / JPROC.2015.2455034. S2CID  10190144.
  30. ^ Moskewicz, M. W .; Madigan, C.F .; Zhao, Y .; Zhang, L .; Малик, С. (2001). "Chaff: разработка эффективного решателя SAT" (PDF). Материалы 38-й конференции по автоматизации проектирования (DAC). п. 530. Дои:10.1145/378239.379017. ISBN  1581132972. S2CID  9292941.
  31. ^ Marques-Silva, J.P .; Сакаллах, К. А. (1999). «GRASP: алгоритм поиска пропозициональной выполнимости» (PDF). Транзакции IEEE на компьютерах. 48 (5): 506. Дои:10.1109/12.769433. Архивировано из оригинал (PDF) на 2016-11-04. Получено 2015-08-28.
  32. ^ http://www.cril.univ-artois.fr/~jabbour/manysat.htm
  33. ^ "Интернет-страница международных соревнований SAT". Получено 2007-11-15.
  34. ^ «SAT Competition 2016». baldur.iti.kit.edu. Получено 2020-02-13.
  35. ^ «SAT Competition 2017». baldur.iti.kit.edu. Получено 2020-02-13.
  36. ^ «SAT Competition 2018». sat2018.forsyte.tuwien.ac.at. Получено 2020-02-13.
  37. ^ а б Бальо, Томаш; Синц, Карстен (2018), «Параллельная выполнимость», Справочник по аргументам параллельных ограничений, Springer International Publishing, стр. 3–29, Дои:10.1007/978-3-319-63516-3_1, ISBN  978-3-319-63515-6
  38. ^ Бир, Армин. «Lingeling, Plingeling, PicoSAT и PrecoSAT на SAT Race 2010» (PDF). СБ 2010.
  39. ^ "решатель портфеля". www.cril.univ-artois.fr. Получено 2019-12-29.
  40. ^ «Конкурс SAT 2011: трек 32 ядра: рейтинг решателей». www.cril.univ-artois.fr. Получено 2020-02-13.
  41. ^ Бальо, Томаш; Сандерс, Питер; Синц, Карстен (2015), «HordeSat: программа для решения задач SAT с параллельным портфелем», Конспект лекций по информатике, Springer International Publishing, стр. 156–172, arXiv:1505.03340, Дои:10.1007/978-3-319-24318-4_12, ISBN  978-3-319-24317-7, S2CID  11507540
  42. ^ «SAT Competition 2018». sat2018.forsyte.tuwien.ac.at. Получено 2020-02-13.
  43. ^ а б Heule, Marijn J. H .; Куллманн, Оливер; Wieringa, Siert; Биэр, Армин (2012), «Куб и завоевание: руководство для CDCL SAT Solvers с помощью Lookaheads», Аппаратное и программное обеспечение: проверка и тестирование, Springer Berlin Heidelberg, стр. 50–65, Дои:10.1007/978-3-642-34188-5_8, ISBN  978-3-642-34187-8
  44. ^ Heule, Marijn J. H .; ван Маарен, Ханс (2009). "SAT-решатели с упреждением" (PDF). Справочник по выполнимости. IOS Press. С. 155–184. ISBN  978-1-58603-929-5.
  45. ^ Heule, Marijn J. H .; Куллманн, Оливер; Марек, Виктор В. (2016), «Решение и проверка булевой проблемы троек Пифагора с помощью куба и завоевания», Теория и приложения тестирования выполнимости - SAT 2016, Springer International Publishing, стр. 228–245, arXiv:1605.00723, Дои:10.1007/978-3-319-40970-2_15, ISBN  978-3-319-40969-6, S2CID  7912943
  46. ^ Роли, Андреа (2002), "Критичность и параллелизм в структурированных экземплярах SAT", Принципы и практика программирования в ограничениях - CP 2002, Конспект лекций по информатике, 2470, Springer Berlin Heidelberg, стр. 714–719, Дои:10.1007/3-540-46135-3_51, ISBN  978-3-540-44120-5
  47. ^ Арбелаес, Алехандро; Хамади, Юсеф (2011 г.), «Улучшение параллельного локального поиска для SAT», Конспект лекций по информатике, Springer Berlin Heidelberg, стр. 46–60, Дои:10.1007/978-3-642-25566-3_4, ISBN  978-3-642-25565-6

Список литературы отсортирован по дате публикации:

внешняя ссылка

  • SAT Game - попробуйте сами решить задачу логической выполнимости

Формат задачи SAT

Проблема SAT часто описывается в DIMACS-CNF формат: входной файл, в котором каждая строка представляет одну дизъюнкцию. Например, файл с двумя строками

1 -5 4 0-1 5 3 4 0

представляет собой формулу "(Икс1 ∨ ¬Икс5Икс4) ∧ (¬Икс1Икс5Икс3Икс4)".

Другой распространенный формат этой формулы - 7-битный ASCII представление "(x1 | ~ x5 | x4) & (~ x1 | x5 | x3 | x4)".

  • BCSAT - это инструмент, который преобразует входные файлы из удобочитаемого формата в формат DIMACS-CNF.

Онлайн-решатели SAT

  • BoolSAT - решает формулы в формате DIMACS-CNF или в более удобном для человека формате: «a, а не b или a». Работает на сервере.
  • Логические инструменты - Предоставляет различные решатели на javascript для изучения, сравнения и взлома. Работает в браузере.
  • minisat-в-вашем-браузере - Решает формулы в формате DIMACS-CNF. Работает в браузере.
  • SATRennesPA - Решает формулы, написанные в удобной для пользователя форме. Работает на сервере.
  • somerby.net/mack/logic - Решает формулы, написанные в символической логике. Работает в браузере.

Автономные решатели SAT

  • MiniSAT - Формат DIMACS-CNF и формат OPB для его сопутствующей программы решения псевдобулевых ограничений MiniSat +
  • Lingeling - выиграл золотую медаль в конкурсе SAT 2011.
    • ПикоСАТ - более ранний решатель из группы Lingeling.
  • Sat4j - Формат DIMACS-CNF. Доступен исходный код Java.
  • Глюкоза - Формат DIMACS-CNF.
  • RSat - выиграл золотую медаль на соревнованиях SAT 2007 года.
  • UBCSAT. Поддерживает невзвешенные и взвешенные предложения как в формате DIMACS-CNF. Исходный код C размещен на GitHub.
  • КриптоМиниСат - выиграл золотую медаль в конкурсе SAT 2011. Исходный код C ++ размещен на GitHub. Пытается объединить множество полезных функций ядра MiniSat 2.0, PrecoSat ver 236 и Gluosis в один пакет, добавляя множество новых функций.
  • Копье - Поддерживает арифметику бит-векторов. Может использовать формат DIMACS-CNF или Формат копья.
    • HyperSAT - Написано для экспериментов с сокращением пространства поиска B-cubing. Занял 3-е место в конкурсе SAT 2005 года. Более ранний и более медленный решатель от разработчиков Spear.
  • BASolver
  • АргоСАТ
  • Быстрый SAT Solver - на основе генетические алгоритмы.
  • zChaff - больше не поддерживается.
  • BCSAT - удобочитаемый формат логической схемы (также преобразует этот формат в формат DIMACS-CNF и автоматически подключается к MiniSAT или zChaff).
  • Джини - Перейти языковой SAT-решатель со связанными инструментами.
  • Gophersat - Программа решения SAT на языке Go, которая также может решать проблемы с псевдобулевыми значениями и MAXSAT.
  • CLP (B) - логическое программирование с ограничениями, например SWI-Prolog.

SAT заявки

  • WinSAT v2.04: Приложение SAT для Windows, созданное специально для исследователей.

Конференции

Публикации

Контрольные точки

Решение SAT в целом:

Оценка решателей SAT

Дополнительная информация о SAT:


В эту статью включены материалы из колонки в ACM SIGDA электронная рассылка к Проф. Карем Сакаллах
Доступен оригинальный текст Вот