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

advertisement
УДК 004 (06) Информационные технологии
Е.В. САЛАЕВ
Научный руководитель – Р.Т. ФАЙЗУЛЛИН, д.т.н.
Омский государственный университет им. Ф.М. Достоевского
СВЕДЕНИЕ ЗАДАЧИ «ВЫПОЛНИМОСТЬ»
К «3-ВЫПОЛНИМОСТЬ»
И ПОИСК ВЫПОЛНИМОГО НАБОРА
Описывается метод решения проблемы SAT на основе алгоритма перехода к 3КНФ и метода нахождения выполнимого набора DPLL.
Алгоритм шифрования можно представить в терминах КНФ (конъюнктивная нормальная форма) и интерпретировать задачу криптоанализа, как задачу нахождения решающего набора, где решающим набором
является секретный ключ.
Пример:
z = x  y , где z, x, y – однобитовые слова
Запишем это в виде КНФ так, чтобы высказывание было истинным  x, y
(z  x  y)(z  x)(z  y)
Данная задача известна как задача ВЫПОЛНИМОСТИ или SAT (Satisfiability). Задача 3ВЫПОЛНИМОСТЬ есть просто ограниченный вариант задачи ВЫПОЛНИМОСТЬ, в котором каждая индивидуальная задача имеет ровно три литерала в каждой дизъюнкции. Задача 3-ВЫПОЛНИМОСТЬ принадлежит классу NP-полных задач[2]. Пусть U={u1, u2, …, un} – множество переменных и C={c1, c2, …, cm} – произвольный набор дизъюнкций. Построим набор C трёхлитеральных дизъюнкций на некотором множестве
переменных U такой, что C выполним тогда и только тогда, когда выполним С. Набор C будет строиться
путём замены каждой отдельной дизъюнкции ci  C эквивалентным набором Ci трёхлитеральных дизъюнкций на множестве U исходных переменных и множестве Ui некоторых дополнительных переменных,
причём переменные из Ui будут использоваться только в дизъюнкциях из Ci . То есть
U=U
m

 Ui 
 i=1 
и
C=
m
Ci .
i=1
Пусть c i задаётся множеством {z1, z2, …, zk}, где z i литералы на множестве U. Способ образования
Ci и Ui зависит от значения k.
Рассмотрим четыре случая:
Случай 1. k=1. Тогда
Ui  {y1i , yi2 }
Ci  {{z1 , y1i , yi2 },{z1 , y1i , yi2 },{z1 , y1i , yi2 },{z1 , y1i , yi2 }}
Случай 2. k=2. Тогда
Ui  {y1i }
Ci  {{z1 , z 2 , y1i },{z1 , z 2 , y1i }}
Случай 3. k=3. Тогда
Ui  
Ci  {{ci }}
Случай 4. k>3. Тогда
Ui  {yij :1  j  k-3}
Ci  {{z1 , z 2 , y1i }} {{yij ,z j+2 , y ij+1}:1  j  k  4} {{yik-3 ,z k-1 , z k }}
Для доказательства того, что
здесь имеет место сводимость, необходимо показать, что набор дизъюнкций Ñ выполним тогда и только
тогда, когда выполним набор дизъюнкций С.
В основе алгоритма, который искал выполнимый набор полученной КНФ лежал метод DPLL. Алгоритм
перехода от SAT к 3SAT с последующим поиском решающего набора был реализован в виде программы.
Список литературы
_______________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 15
1
УДК 004 (06) Информационные технологии
1.
2.
3.
Гэри М., Джонсон Д. Вычислительные машины и труднорешаемые задачи. М.: Мир, 1982 С. 67-69.
Пападмитриу Х., Стайглиц К. Комбинаторная оптимизация. М.:Мир, 1985. С. 363-383.
Daniel Rolf. Improving Randomized Local Search by Initializing Strings of 3-Clauses.
_______________________________________________________________________
ISBN 5-7262-0633-9. НАУЧНАЯ СЕССИЯ МИФИ-2006. Том 15
2
Download