О ПОДХОДЕ К РЕШЕНИЮ ПРОБЛЕМЫ РАВЕНСТВА P И NP ЗАДАЧИ ВЫПОЛНИМОСТИ

advertisement
О ПОДХОДЕ К РЕШЕНИЮ
ПРОБЛЕМЫ РАВЕНСТВА P И NP
КЛАССОВ В РАМКАХ РЕШЕНИЯ
ЗАДАЧИ ВЫПОЛНИМОСТИ
БУДЕВЫХ ФУНКЦИЙ
Романова М.А., Тисовский Д.Ю.
СПФ МГУ ИТРЭ (МГУПИ) (Сергиево-Посадский филиал Московского
Государственного Университета Информационных технологий,
Радиотехники и Электроники (бывший Московский Государственный
Университет Приборостроения и Информатики)) Романова М. А.,
Тисовский Д. Ю. – студенты 2 курса кафедры СПФ-1 группы ИТ4-230100,
научные руководители - старший преподаватель Смирнов А.М.,
кандидат технических наук , доцент Зайцев Е.И.
Постановка задачи
• В теории алгоритмов классом P называют множество задач, время
работы которых полиномиально зависит от размера входных
данных, а классом NP - множество задач, решение которых при
наличии некоторых дополнительных сведений можно за время,
не превосходящее полинома от размера данных проверить на
недетерминированной машине Тьюринга.
• Из определения классов P и NP сразу вытекает следствие: P C NP
Однако, до сих пор ничего не известно о строгости этого
включения, то есть, существует ли задача, лежащая в NP, но не
лежащая в P.
• Задача выполнимости булевых формул: узнать по данной булевой
формуле, существует ли набор входящих в неё переменных,
обращающий её в 1. Сертификат — такой набор.
Данные
•
•
Пусть А - входной алфавит некоторой формулы Ф;
А= {К, О}, где элемент О = { v, ʌ , ¬, (, ) } - множество допустимых
операций; элемент К = { Q , Z} - это множество всех переменных,
входящих в формулу Ф, где Q = { x1, x2, ... xn }, - множество элементов
без отрицания: а Z={ ¬х1, ¬х3, ... ¬хm} - множество элементов с
отрицанием: при том, |Q|+|Z|=|K|, где |Q|, |Z|, |K| - мощности
множеств Q, Z, К; |Q| может быть как равна |Z|, так и не равна, m и n
є N , но хотя бы n или m > 0, т.е. по крайней мере, одно множество
должно быть не пустым.
Преобразуем К а К' , такое, что |Q|=|Z|, а
именно, элементы множества примут
вид упорядоченных двоек:
K'={ х1, ¬х1, х2, ¬х2, ... хn, ¬хn }.
Составим матрицу М, такую, что
М= (х1, ¬х1, х2, ¬х2, ... хn, ¬хn), где х взяты из
К'.
Рассчёт параметров для матрицы М
1) Горизонтальный коэффициент l = 2^(|К|) , где |К| мощность множества K;
2) Частота появления 0 относительно первого столбца
матрицы: f ' = 2^(|К| - 1), где |К| - мощность множества К;
Частота появления 0 будет изменяться следующим
образом: f '=^(|K| - 1), f '' = 2^(|К| - 2) ... f ^ s = 1, где s - номер
столбца
Это означает, что в последнем случае, 0 будет
встречаться после каждой 1 и частота примет вид:
(010101...01), в следующем случае, что 0 будет встречаться
два раза, после двух единиц: (001100110011...0011) и так
далее, до первого столбца.
Универсальная матрица
1. С = (х1, х2, ... , хn, ¬х1, ¬х2, … , ¬хn)
2. С = (f ', f '' , ..., f ^ s , - f ', - f '', ... , - f ^ s )
3. С = (f ', f '' , ... , f , -f ', -f '' , ... , -f ^ s , х1 v х2, х1 v х3, … , х1 v
xn, x2 v х3, … , х2 v xn, … , x n-1 v xn, ¬ х1 v ¬х2, ¬ х1 v ¬х3, … ,
¬ х1 v ¬xn, ¬x2 v ¬х3, … , ¬ х2 v ¬xn, … , ¬x n-1 v ¬xn, х1 v ¬ х1,
х1 v ¬х2, … , х1 v ¬xn, х2 v ¬ х2, х2 v ¬х3… , х2 v ¬xn, … , x n-1 v
¬xn,
х1 ʌ х2, х1 ʌ х3, … , х1 ʌ xn, x2 ʌ х3, … , х2 ʌ xn, … , x n-1
ʌ xn, ¬ х1 ʌ ¬х2, ¬ х1 ʌ ¬х3, … , ¬ х1 ʌ ¬xn, ¬x2 ʌ ¬х3, … , ¬ х2 ʌ
¬xn, … , ¬x n-1 ʌ ¬xn, х1 ʌ ¬ х1, х1 ʌ ¬х2, … , х1 ʌ ¬xn, х2 ʌ ¬
х2, х2 ʌ ¬х3… , х2 ʌ ¬xn, … , x n-1 ʌ ¬xn)
Формула с 4 переменными и их
отрицаниями (как наглядный
пример)
Метод деревьев
Метод частот
• Преобразуем матрицу М= (х1, ¬х1, х2, ¬х2, ... хn, ¬хn) к виду М’=
(х1, х2,... хn,) и запишем, как множество М’=(х1, х2,... хn,).
• Пусть i= 2^|М’|, – кол-во строк в фактической матрице и
рассчитывается по формуле j - кол-во столбцов матрицы С,
соответствующее количеству всевозможных комбинаций
операций конъюнкции, которое можно выразить с помощью
ряда вида:
I - количество переменных, |K| - мощность множества К, а n номер столбца матрицы М.
(a v b) ʌ c
(a ʌ b) v c
(a v b) ʌ (c v d)
(a ʌ b) v (c ʌ d)
Преобразование матрицы к виду
ряда и дельтафункции Дирака
• Пусть = Cij, при том:
• Тогда, матрицу С можно выразить с
помощью интеграла:
• или с помощью суммы:
• Можно различать одномерную и
многомерные ∂-функции, по этому выразим
нашу матрицу в двумерной системе, где n строка матрицы, а m - столбец:
Вывод:
Спасибо за внимание!
Download