УДК 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 эквивалентным набором Ci трёхлитеральных дизъюнкций на множестве U исходных переменных и множестве Ui некоторых дополнительных переменных, причём переменные из Ui будут использоваться только в дизъюнкциях из Ci . То есть U=U m Ui i=1 и C= m Ci . i=1 Пусть c i задаётся множеством {z1, z2, …, zk}, где z i литералы на множестве U. Способ образования Ci и Ui зависит от значения k. Рассмотрим четыре случая: Случай 1. k=1. Тогда Ui {y1i , yi2 } Ci {{z1 , y1i , yi2 },{z1 , y1i , yi2 },{z1 , y1i , yi2 },{z1 , y1i , yi2 }} Случай 2. k=2. Тогда Ui {y1i } Ci {{z1 , z 2 , y1i },{z1 , z 2 , y1i }} Случай 3. k=3. Тогда Ui Ci {{ci }} Случай 4. k>3. Тогда Ui {yij :1 j k-3} Ci {{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