Чому існує величезна різниця між розв'язниками SAT?


25

Розв'язувачі SAT дуже важливі при алгебраїчних атаках , наприклад, уолксат і мінісат .

Однак при вирішенні базових проблем, наявних тут, існує величезна різниця в роботі між ними - Walksat набагато швидше, ніж minisat для цих проблем. Чому це?

Ця реалізація walksat, схоже, має деякі покращення продуктивності - чи є причина, що вона не була включена до міжнародних змагань SAT ?


Ваше друге запитання про те, чому певний алгоритм був виключений з певної конкуренції, мабуть, поза межами цього веб-сайту. Ваше перше запитання про те, що робить один алгоритм часто швидшим за інший, я думаю, що це чесна гра, але, можливо, знадобиться певна перефразовування, щоб зробити його більш теоретичним.
Лев Рейзін

Коротка примітка: Minisat досить старий, не здається підтримуваним, а також не брав участі у змаганнях. Крім того, що ви маєте на увазі під "величезним" та який трек ви маєте на увазі (випадковий / пророблений / додаток)?
Раду ГРИГо

5
@Radu: MiniSAT 2.2.0 вийшов у липні 2010 року. Я б не сказав, що він не підтримується. Крім того, код досить стабільний і чистий, тому нечасті оновлення можуть не бути проблемою. Я згоден, хоча новіші вирішувачі краще відображають сучасний стан.
Vijay D

1
Питання крос відправлений з Crypto.SE crypto.stackexchange.com/questions/153 / ... .
М. Алаган

Відповіді:


33

Так, між MiniSAT і WalkSAT є велика різниця. Спочатку давайте уточнимо - MiniSAT - це специфічна реалізація загального класу алгоритмів DPLL / CDCL, які використовують зворотне відстеження та навчання клаузам, тоді як WalkSAT - це загальна назва алгоритму, який чергує жадібні та випадкові кроки.

Взагалі DPLL / CDCL набагато швидше на структурованих екземплярах SAT, тоді як WalkSAT швидше на випадковому k-SAT. Промислові та застосовані примірники SAT, як правило, мають велику структуру, тому DPLL / CDCL є домінуючим у більшості сучасних рішень SAT. Однак, наприклад, одна техніка може виграти, що є однією з причин того, що вирішення портфоліо стало популярним.

Я дуже сумніваюся з вашим твердженням, що WalkSAT набагато швидше, ніж MiniSAT, на примірниках на цій сторінці. По-перше, там є гігабайти екземплярів SAT - скільки ви спробували порівнювати їх? WalkSAT взагалі не є конкурентоспроможним у більшості структурованих примірників, тому його не часто бачать на змаганнях.

Зі сторони - Віяй прав, що MiniSAT все ще актуальний. Насправді, оскільки він є відкритим кодом і добре написаний, MiniSAT - це вирішувач, який потрібно обіграти, щоб показати, що дана оптимізація має багато обіцянок. Багато людей налаштовують MiniSAT, щоб продемонструвати свої оптимізації - погляньте на категорію "MiniSAT hack" на останніх змаганнях SAT.


17

АХYБYХ

Хороший документ, який можна прочитати на цю тему, - це Nudelman et al . Вся справа в роботі полягає у визначенні простих у обчисленні особливостей екземплярів SAT, які дозволять вам сказати, які алгоритми, ймовірно, працюють добре, а які - ні. За допомогою цієї методики можна побудувати алгоритм на основі портфеля, який швидко проаналізує проблемний екземпляр, а потім вирішить екземпляр за допомогою найбільш відповідного алгоритму. Існує прогрес паперів, що випливає з цього; googling SATzilla з’явиться багато читацького матеріалу.

АБ

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.