Научная статья на тему 'Алгоритм поиска запретов булевых функций'

Алгоритм поиска запретов булевых функций Текст научной статьи по специальности «Математика»

CC BY
731
75
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАПРЕТ БУЛЕВОЙ ФУНКЦИИ / ГРАФ ДЕ БРЁЙНА / PROHIBITION OF BOOLEAN FUNCTION / DE BRUIJN GRAPH

Аннотация научной статьи по математике, автор научной работы — Рябоконь Денис Владимирович

Предложен алгоритм поиска запрета булевой функции, основанный на методе ветвей и границ и позволяющий находить некоторый запрет булевой функции, запрет минимальной длины или все запреты до заданной длины.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по математике , автор научной работы — Рябоконь Денис Владимирович

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Algorithm for searching prohibitions of boolean functions

An algorithm for search of prohibitions of Boolean function based on the branch and bound method is proposed. It allows to find a prohibition of Boolean function, a prohibition of minimum length or all prohibitions under a specified length.

Текст научной работы на тему «Алгоритм поиска запретов булевых функций»

возможности минимальной. Элементы Бг соответствуют каскадам в заданной схеме. Предлагается алгоритм получения решения данной задачи, близкого к оптимальному.

ЛИТЕРАТУРА

1. Каган Б. М., Каневский М. М. Цифровые вычислительные машины и системы. М.: Энергия, 1973.

2. Кухарев Г. А., Шмерко В. П., Зайцева Е. Н. Алгоритмы и систолические процессоры для обработки многозначных данных. Минск: Навука 1 тэхнжа, 1990.

3. Кнут Д. Искусство программирования для ЭВМ. Т. 1. Основные алгоритмы. М.: Мир, 1976.

УДК 519.7

АЛГОРИТМ ПОИСКА ЗАПРЕТОВ БУЛЕВЫХ ФУНКЦИЙ

Д. В. Рябоконь

Предложен алгоритм поиска запрета булевой функции, основанный на методе ветвей и границ и позволяющий находить некоторый запрет булевой функции, запрет минимальной длины или все запреты до заданной длины.

Ключевые слова: запрет булевой функции, граф де Брёйна.

Будем обозначать Р2(п) множество всех булевых функций от п переменных.

Определение 1. Говорят, что булева функция f еР2(п) имеет запрет у1... ут Е Е {0,1}т, если система булевых уравнений

f (хг,... ,хп+г-г) = уг, г =1,...,т, (1)

несовместна. Если для любых т Е N и у1.. .ут Е {0,1}т система (1) совместна, то функция f называется функцией без запрета.

Определение 2. Графом де Брёйна Gn(f) функции f Е Р2(п) называют граф, у которого вершины — это все булевы векторы длины п — 1, а дуги поставлены во взаимно однозначное соответствие всевозможным булевым векторам длины п так, что вектору Ь1Ь2 ... Ьп соответствует дуга, направленная от вершины Ъ\Ъ2 ... Ьп-1 к вершине Ь2Ь3 ... Ьп и помеченная значением f (Ь\Ь2 ... Ьп).

Вершину графа Gn(f) назовём особой вершиной типа 5 Е {0,1}, если обе исходящие из неё дуги помечены значением 5. Будем говорить, что вектор у\у2 ... уп является продолжением вектора х1х2 ... хп, если у1... уп-1 = х2 ... хп.

Утверждение 1. В графе де Брёйна Gn(f) функции f Е Р2(п), п > 1, имеющей запрет, есть хотя бы одна особая вершина.

Доказательство. Среди всех запретов функции f выберем любой запрет минимальной длины т. Пусть это есть е1... ет. Так как т — минимальная длина запрета, граф Gn(f) является (т — 1)-полным графом де Брёйна, т. е. для любой последовательности у1 ...ут-1 Е {0,1}т-1 существует путь, её несущий. Рассмотрим последовательность е1 ...ет-1. Для неё в Gn(f) есть несущий путь, пусть он оканчивается в вершине V. Так как е1... ет — запрет, из вершины V нет дуги, помеченной ет, т. е. обе исходящие из V дуги имеют значение ет и, следовательно, V — особая вершина. ■

Задача 1. Предлагается следующий алгоритм поиска некоторого запрета функции f ЕР2(п). Пусть М0, М1 — множества булевых векторов длины п, на которых функция f принимает значения 0 и 1 соответственно; через £(У) для V С {0,1}п будем обозначать множество всевозможных продолжений векторов из V.

Работу алгоритма можно представить как построение следующего двоичного дерева. Вершинам дерева соответствуют множества булевых векторов длины п, дугам — значения 0 и 1. Корню дерева сопоставим множество {0,1}п. На каждом последующем шаге выбирается вершина ветвления, которой приписано множество V наименьшей мощности, если таких вершин несколько, то выбираем любую из них. Из выбранной вершины порождаются два потомка: левому (правому) потомку приписывается множество М0ПБ^) (соответственно М1ПБ(V)) и ведущая к нему дуга помечается нулём (соответственно единицей).

Если некоторой вершине и соответствует пустое множество, то запрет найден — это последовательность меток дуг пути из корня в вершину и.

Если вершине и соответствует одноэлементное множество {х1... хп}, то проверяем, является ли вектор х2 ... хп особой вершиной (типа 5) в графе де Брёйна функции f, и если да — запрет найден, это е1... ет-15, где е1... ет-1 —последовательность меток дуг пути от корня до вершины и. Эта проверка легко выполняется по вектору значений функции f: вычисляется к = f (х2,... , хп, 0) ф f (х2,... , хп, 1) и, если к = 0, то х2 ... хп — особая вершина типа f (х2,..., хп, 0).

После каждого ветвления проверяем, есть ли среди полученных вершин неперспективные. Вершина объявляется неперспективной (и ветвление из неё не производится), если её метка (сопоставленное ей множество векторов) совпадает с меткой какой-либо вершины, встречавшейся ранее. Стоит заметить: это не значит, что при ветвлении из неперспективной вершины не будет найден запрет; это будет повторение одних и тех же действий. Для быстрого поиска вершины с заданной меткой будем хранить пройденные вершины в списке, индексированном по мощностям меток.

Если на каком-то шаге все вершины дерева объявлены неперспективными, а запрет ещё не найден, то у функции нет запрета.

По сравнению с алгоритмом 1, приведённым в [1], этот алгоритм более пригоден для практической реализации, так как в нём все шаги детально проработаны.

Задача 2. Для поиска запрета минимальной длины в исходном алгоритме нужно при нахождении запрета не завершать работу, а запомнить запрет и продолжать построение дерева таким же образом, пока не найдётся другой запрет; если он короче имеющегося, то запоминаем его. Дерево строится до тех пор, пока не исключим все вершины. При этом меняется критерий неперспективности вершины: вершина V, метка которой совпадает с меткой встречавшейся ранее вершины и, считается неперспективной в случае, если длина пути от корня до V больше или равна длине пути от корня до и. Для этого в списке пройденных вершин наряду с меткой каждой вершины будем хранить длину пути от неё до корня. Если найден запрет длины /, то все вершины /-го яруса объявляются неперспективными.

Задача 3. Назовём запрет тупиковым, если никакое его подслово не является запретом. Задача поиска всех тупиковых запретов до заданной длины / решается так же, как задача 2, но с запоминанием всех найденных запретов. Вершина объявляется неперспективной, если её метка совпадает с меткой предка (в этом случае можем получить запрет, но он не будет тупиковым), или она находится на расстоянии / от корня.

Алгоритм поиска произвольного запрета был применён ко всем функциям от 2, 3 и 4 переменных; результаты приведены в табл. 1.

Таблица 1 Количество функций, имеющих запрет

п Кол-во функций с запретом Кол-во функций без запрета

2 10 6

3 226 30

4 64954 582

В табл. 2 приведены данные о среднем времени работы алгоритма поиска произвольного запрета для функций с количеством аргументов больше 5.

Таблица 2 Время работы алгоритма

п Среднее время, с п Среднее время, с

5 0,00019 13 0,128

6 0,0004 14 0,307

7 0,00091 15 0,698

8 0,0021 16 1,548

9 0,0047 17 3,461

10 0,011 18 7,552

11 0,025 19 16,528

12 0,061 20 33,312

21 77,999

В дальнейшем предполагается разработать и реализовать алгоритмы решения задач 1-3 с помощью обхода дерева в ширину и в глубину (поиск с возвратом) и сравнить трудоёмкости этих алгоритмов (по количеству построенных вершин дерева и сложности их обработки).

ЛИТЕРАТУРА

1. Колегов Д. Н. О булевых функциях без запрета // Вестник Томского государственного университета. Приложение. 2005. №14. С. 58-60.

УДК 519.7

ОБ ЭФФЕКТИВНОМ ПРЕДСТАВЛЕНИИ ДИЗЪЮНКТИВНЫХ НОРМАЛЬНЫХ ФОРМ ДИАГРАММАМИ СПЕЦИАЛЬНОГО ВИДА1

А. А. Семенов

Рассматриваются диаграммы нового типа, используемые для представления дизъюнктивных нормальных форм. Показано, что данный класс диаграмм можно применять для компактного представления баз конфликтных дизъюнктов, накапливаемых в процессе нехронологического БРЬЬ-вывода.

Ключевые слова: ДНФ, решающие диаграммы, БВВ, ZDD, дизъюнктивные диаграммы.

хРабота выполнена при поддержке гранта РФФИ №11-07-00377.

i Надоели баннеры? Вы всегда можете отключить рекламу.