О ПОДХОДЕ К РЕШЕНИЮ ПРОБЛЕМЫ РАВЕНСТВА 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 - столбец: Вывод: Спасибо за внимание!