Серия «Математика»
2009. Т. 2, № 2, С. 136-157
Онлайн-доступ к журналу: http://isu.ru/izvestia
УДК 519.7
Сложность проверяющих тестов для бесповторных булевых функций *
Л. В. Рябец
Восточно-сибирская государственная академия образования
Аннотация. В работе рассматривается вопрос сложности проверяющих тестов относительно бесповторной альтернативы для бесповторных булевых функций, существенно зависящих от своих переменных. Известно, что большинство неисправностей в схемах функциональных элементов, реализующих бесповторные булевы функции, приводит к новой схеме, реализующей также бесповторную функцию. Построение проверяющих тестов относительно бесповторной альтернативы для бес-повторных булевых функций осуществляется на основе квадратов существенности. В работе получено точное значение функции Шеннона для тестов относительно бесповторной альтернативы в базисе , V, &, ®}. Также представлен алгоритм по-
лучения проверяющего теста для любой бесповторной булевой функции, имеющий сложность 0(п3).
Ключевые слова: бесповторные булевы функции, тестирование схем, проверяющие тесты, тесты относительно бесповторной альтернативы.
Задача построения проверяющих тестов для бесповторных булевых функций рассмотрена А.А. Вороненко в [1]. В этой работе предложен метод построения тестов и получены оценки на длину проверяющего теста.
Теорема 1 ([1]). Для функции Шеннона для тестов относительно бесповторной альтернативы при п > 2 выполняются соотношения
В настоящей работе найдено точное значение функции Шеннона для указанных тестов. При изложении результатов мы будем придерживаться терминологии из [1] и [3].
В работе бесповторными называются булевы функции, выразимые бесповторными формулами в базисе {—, V, &, ф}.
* Работа выполнена при финансовой поддержке РФФИ, грант 09-01-00476-а.
n(n + 11 + 1 < T(n) < 2n(n - 1).
Проверяющим тестом М для некоторой булевой функции / (Ж1, ..., жп) называется такое множество входных наборов, что для любой функции неисправности $(ж1,... , жп), не равной тождественно /, в М найдется хотя бы один набор <г такой, что д(<г) = /(ёг) [4].
Задача тестирования бесповторных булевых функций рассматривается в следующей постановке. Пусть /(ж1,...,жп) существенно зависит от всех своих переменных. Требуется построить проверяющий тест для функции / на множестве всех бесповторных булевых функций, у которых среди переменных Ж1,... , жп допускаются фиктивные. Такой проверяющий тест называется тестом относительно бесповторной альтернативы. Данное уточнение задачи тестирования связано с тем, что для функции /(Ж1, ... , жп) с фиктивными переменными проверяющий тест может содержать все наборы [1].
Пусть М — некоторый проверяющий тест относительно бесповтор-ной альтернативы для функции /(ж1,...,жп), существенно зависящей от всех своих переменных. Под сложностью проверяющего теста М для функции / понимается количество наборов в тесте.
Функция Шеннона Т(п) для класса бесповторных функций вводится обычным образом:
Т(п) = тах тт |М| ,
/ м€Те^(/)
где — множество всех бесповторных булевых функций размерно-
сти п, существенно зависящих от всех своих переменных, Тез£(/) — множество всех тестов относительно бесповторной альтернативы для функции /.
Пусть /(ж1, ... , жп) существенно зависит от всех своих переменных, и для некоторого набора (а1,..., а^-1, а^+1,..., а^1, а^+1,..., ап) остаточная функция
/ (а1, . . . , аг— 1, ж^ аг+1, . . . , а^ — 1, ж^, а^+1, . . . , ап)
является существенной. Тогда множество наборов
(а1 . . . , аг—1, 0, . . . , а^ —1, ° . . . , аП)
(а1, . . . , аг—1, 0, аг+Ъ . . . , ^7 —Ъ . . . , ап)
(а1, . . . , аг—1, 1 аг+Ъ . . . , ^7 —Ъ 0, . . . , ап)
(а1, . . . , аг—1, l, аг+Ъ . . . , ^7 —Ъ . . . , ап)
называется квадратом существенности переменных ж^ и ж^ для функции / и обозначается б^ж^ж^). Множеством квадратов существенности функции / называется произвольное множество наборов, которое содержит квадрат существенности для любой пары переменных функции /. Это множество обладает следующим важным для построения проверяющих тестов свойством, сформулированном А.А. Вороненко в следующей теореме.
Теорема 2 ([1]). Множество квадратов существенности произвольной бесповторной булевой функции является проверяющим тестом относительно бесповторной альтернативы.
Очевидно, что в базисе {—, V, &, ф} любая булева функция может быть представлена в виде формулы, в которой использованы только тесные отрицания. Такое формульное представление бесповторной булевой функции удобно рассматривать в виде корневого бинарного дерева, вершины которого помечены символами бинарных операций, а листья — символами переменных или их отрицаний. У каждой вершины, не являющейся листом, имеется две нижних вершины: левая и правая. Ребра, соединяющие эту вершину с левой и правой вершинами будут называться левым и правым ребрами соответственно. У каждой вершины, не являющейся корнем, имеется единственная верхняя вершина.
Поддеревом Т1 с корнем V бинарного дерева Т будет называться часть дерева Т, содержащая все листья Т, путь из которых до корня Т проходит через вершину V.
Будем говорить, что в бинарном дереве некоторый лист является правым, если путь от корня до этого листа проходит только по правым ребрам вершин дерева.
Остальные определения будут введены в тексте по мере необходимости. Дальнейшее изложение будет проходить по следующему плану:
а) построение теста относительно бесповторной альтернативы;
б) нахождение сложности построенного теста.
Согласно результатам из [1], тест относительно бесповторной альтернативы может представлять из себя множество квадратов существенности. Однако, в общем случае квадрат существенности не является единственным. Наша дальнейшая задача — построить квадраты существенности регулярным способом [5]. Квадраты существенности будут строиться по бинарному дереву. Для регулярности их построения необходимо сделать разметку ребер дерева, представляющего бесповторную булеву функцию /(ж1,..., жп). Разметка ребер осуществляется для каждой пары переменных ж^ж^. Каждое ребро помечается символом из множества {-1, 0,1, 2}.
В начале алгоритма разметки дерева для каждой из двух выбранных переменных от соответствующего ей листа до корня дерева строится путь, все ребра которого помечаются символом 2; все остальные ребра дерева помечаются символом -1.
Для каждой вершины будем рассматривать упорядоченную тройку (Ь; Я; и), где Ь — пометка левого ребра, Я — пометка правого ребра и и — верхнего. Считается, что корневая вершина бинарного дерева функции всегда имеет верхнее ребро с пометкой -1. На каждом шаге алгоритма выполняется один из пяти пунктов, причем пункт с
большим номером рассматривается только при условии невыполнения пункта с меньшим номером. Первой текущей вершиной алгоритма является вершина, лежащая над листом, соответствующим одной из двух выбранных переменных.
Рассмотрим г-й шаг разметки дерева. Пусть текущей является вершина и> с символом о и ей соответствует тройка (Ьад, Яад, иш). Для вершины и> левой вершиной является -Ш1, правой — -Ш2 и верхней — -ш;.
1. Если Ьад = -1, то значение Ьад изменяется в соответствии с таблицей 1. Если -Ш1 является листом, то текущей вершиной для следующего шага алгоритма остается вершина -ш. Если -Ш1 не является листом, то текущей вершиной для следующего шага алгоритма становится вершина эдь
2. Если Лад = -1, то значение Яад изменяется в соответствии с таблицей 2. Если -Ш2 является листом, то текущей вершиной для следующего шага алгоритма становится вершина ад;. Если ^2 не является листом, то текущей вершиной для следующего шага алгоритма становится вершина ^2.
3. Если Ьад = 2, Лад =2 и иад = -1, то производится анализ пометок (Ьад1, Яад1, иш1) и (Ьад2 ,Лад2 , иад2) у вершин -ш 1 и -ш2, соответственно.
a) Если Ьад1 = -1 или Яад1 = -1, то текущей вершиной для следующего шага алгоритма становится вершина эдь
b) Если Ьад2 = -1 или Лад2 = -1, то текущей вершиной для следующего шага алгоритма становится вершина -Ш2.
4. Если Ьад = 2 или Лад = 2, то производится анализ пометок (Ьад1, Яад1, иШ1) и (Ьад2, Яад2, иад2) у вершин ад1 и -ш2, соответственно.
a) Если ЬШ1 = -1 или ЯТО1 = -1, то текущей вершиной для следующего шага алгоритма становится вершина эдь
b) Если Ьад2 = -1 или Лад2 = -1, то текущей вершиной для следующего шага алгоритма становится вершина ^2.
c) Если ЬШ1 = -1, ЯТО1 = -1, Ьад2 = -1 и Лад2 = -1, то текущей вершиной для следующего шага алгоритма становится вершина -ш;.
5. Если Ьад = -1 и Лад = -1, то текущей вершиной для следующего шага алгоритма становится вершина -ш;.
Алгоритм заканчивает свою работу, когда ребра, инцидентные п - 2 листьям дерева, будут помечены значениями из множества {0,1}, т.е. когда получен набор а1,..., а^-1, а^+1,..., а^-1, а^+1,..., ап.
Несколько замечаний по алгоритму разметки дерева:
- в таблицах 1 и 2 символы {V, &, ф} обозначают символы соответствующих бинарных операций. Это сокращение корректно, поскольку в при реализации этих случаев пометки ребер (операнды) принадлежат множеству {0, 1};
пометка (2, 2, -1) соответствует только корневой вершине; ребра, соответствующие вершинам с символами V и ф, помечаются одинаковым образом.
Таблица 1.
Правила изменения пометки левого ребра
Пометка Символ
Ь И и Ф V &
-1 -1 0 Ь = 0 Ь 0 Ь = 1
-1 -1 1
-1 2 -1 Ь = 0 0 Ь= Ь = 1
-1 2 2
Таблица 2.
Правила изменения пометки правого ребра
Пометка
Ь К и
0 -1 0
1 -1 0
0 -1 1
1 -1 1
2 -1 -1
2 -1 0
2 -1 1
2 -1 2
Символ
Ф
V
&
К = Ь Ф и
К = Ь уи
К = Ь & и
К = 0
К = 0
К = 1
Для пары переменных ж^ж^- в конце работы алгоритма внутренние вершины дерева могут иметь следующие пометки (рис. 1).
Разметка дерева осуществляется таким образом, что после завершения работы алгоритма разметки остаточная функция
/ (а1, . . . , аг— 1, жг, аг+1, * • • , а^ — 1, , а,?+1, * * * , ап)
является существенной, что позволяет построить квадрат существенности
(«1, * * *, Од-1,0, од+1, * * *, 0^-1,0, а^+1, * * *, ап)
(«1, * * *, Од-1,0, а^+1, * * *, 0^-1,1, а^+1, * * *, ап)
(01 * * * , аг-1, 1, аг+Ъ * * * , ^7-Ъ 0, aj+1, * * * , ап)
(а1, * * * , аг-1, 1, аг+1, * * * , а^-1, 1, а^+1, * * * , ап)*
Полученные наборы добавляются в тест функции /(ж1,***,жп). Этот алгоритм повторяется для каждой пары переменных /, и таким образом строится проверяющий тест относительно бесповторной альтернативы.
111)
IV)
1х) х)
Рис. 1. Типы пометок вершин бинарного дерева
Пример построения проверяющего теста относительно бесповторной альтернативы для функции
/(Ж1, Ж2, Жз, Ж4) = Ж1 ф ((Ж2 V Жз)&Ж4)*
На рисунке 2 приведена разметка бинарного дерева для переменных Ж1,Ж3.
Ж2 Жз
Рис. 2. Разметка бинарного дерева для переменных Х1, х3
Квадрат существенности для этих переменных имеет вид
(0, 0, 0, 1)
5(ж1,ж3) =
(0, 0, 1, 1) (1, 0, 0, 1) (1,0,1,1)*
Проверяющий тест V/ для функции / равен объединению всех квадратов существенности:
V/ = {(0001),(0101),(1001),(1101),(0011), (1011),(0010),(1010),(0111),(0000),(0100)}*
Будем говорить, что некоторому листу бинарного дерева ж^ соответствует пометка а, если ребро, инцидентное этому листу, имеет пометку а € {0,1}* Поддерево бинарного дерева будем называть полностью помеченным, если всем его ребрам и листьям соответствуют пометки из множества {0,1}* Полностью помеченные поддереревья обладают следующим свойством.
Лемма 1. Пусть некоторое поддерево Т' бинарного дерева Т является полностью помеченным и имеет корневую вершину ад. Верхнее ребро корня ад помечено константой а и листьям поддерева сопоставлен набор констант ^1^2 * * * вз-1вз-
Тогда, если при некоторой другой пометке бинарного дерева Т пометка верхнего ребра ад изменится на а, то набор констант, соответствующий листьям Т', примет вид ^1^2 * * * А^вз*
Доказательство. Пусть поддерево Т' состоит из одной вершины и> — корня поддерева и двух листьев. В данном случае набор констант ^1^2 для листьев совпадает с пометками левого и правого ребер вершины ад. Пусть верхнее ребро корня помечено константой а. Так как Т' является полностью помеченным, то ад может иметь пометки следующих типов
1), 11), у) или у1) (рисунок 1). В этом случае а = ^2. Следовательно, при смене значения а изменится и значение константы правого листа поддерева.
Пусть у поддерева Т' корневой вершиной является вершина ад. Вершины ад! и ад2 являются левой и правой вершинами для ад. Вершина ад! является корнем для поддерева Тъ и ад2 — корнем поддерева Т2. Пусть вершине ад соответствует тройка (а1,а2,а). В соответствии с индуктивным предположением для поддеревьев Т1 и Т2 выполняется утверждение леммы и их листьям сопоставлены наборы констант в * * * в и 71 * * * 7к соответственно.
Поскольку все внутренние вершины Т' имеют пометки типов 1), 11), у) или у1), то для ад выполняется а = а2. Это означает, что при смене значения а изменится и значение а2* Таким образом, по предположению индукции следует, что листьям поддерева Т' будет сопоставлен набор констант в1* * * в«71* * * 7к *
Лемма доказана. □
Пусть /(Ж1, * * *, жп) — бесповторная булева функция, существенно зависящая от всех своих переменных. При п > 2 не ограничивая общности
можно полагать, что любая бесповторная булева функция представима в виде
/(Ж1, *** ,Жп) = #(Ж1, * * *,Жт) О Н(жт+Ь * * *,Жп),
для некоторых т и к = п — т и о € {V, & , ф}. Функция д бесповторна и существенно зависит от т переменных, функция Н также бесповторна и существенно зависит от к переменных.
Дальнейшие рассуждения будут направлены на доказательство следующего неравенства:
Т(п) < Т(т) + Т(к) — 1 + тк*
Воспользуемся описанным алгоритмом получения квадратов существенности и рассмотрим строение проверяющего теста V/ для функции /, полученного с помощью этого алгоритма. Поскольку переменные функции / разделены на два непересекающихся множества, то выделяются три группы пар переменных, по которым строятся квадраты существенности:
1. Обе выбранные переменные принадлежат множеству переменных функции д.
2. Обе выбранные переменные принадлежат множеству переменных функции Н.
3. Одна из переменных принадлежит множеству переменных функции д, а другая — множеству переменных функции Н.
Пусть и проверяющие тесты, построенные на основе квадратов существенности для функций д и Н соответственно. Для функции / через У1 обозначено объединение квадратов существенности б^ж^ж^), где переменные Жг, Ж^ принадлежат множеству переменных функции д, У2 — объединение квадратов существенности 5(жг,ж^), где переменные жг,ж^ принадлежат множеству переменных функции Н и У3 — объединение квадратов существенности 5(жг,ж^), где переменная Жг принадлежит множеству переменных функции д, а переменная ж^ — множеству переменных функции Н. Тогда проверяющий тест для функции / можно представить в виде следующего объединения:
V/ = У1 и У> и Уз*
Лемма 2. Пусть /(ж1 , * * *, жп) — бесповторная булева функция, существенно зависящая от всех своих переменных, и /(ж1,***,жп) = д(ж1,***,жт) о Н(жт+1, * * *, жт+к), где т, к > 1. Тогда множество У состоит из наборов вида (*,***, *, въ * * *, вк), и множество У2 — из наборов вида (а1, * * *, ат, *,***, *), где * — любой символ из множества {0,1}, а а1, * * *, ат, въ * * *, вк — некоторый набор констант.
Доказательство. Рассмотрим вид наборов, входящих в множество У1. Согласно алгоритму разметки, листья, соответствующие переменным
из множества {жт+1, * * * , Жт+к}, не изменяют своих пометок для любой пары переменных из множества {ж1, * * * ,жт}. Это означает, что им соответствует некоторый набор констант въ * * * ,вк * Тогда все наборы из У1 имеют вид (*,***, *, в1, * * *, вк)* Аналогично, наборы из У2 имеют вид (а1, * * *, ат, *,***, *)*
Лемма доказана. □
Зафиксируем значения постоянных частей наборов въ***,вк и
а1, *** , ат.
Лемма 3. Пусть /(ж1 , * * *, жп) — бесповторная булева функция, существенно зависящая от всех своих переменных, и /(ж1,***,жп) = д(ж1,***,жт) о Н(жт+1, * * *, жт+к), где т, к > 1. Тогда для множеств У1 и У2 выполняется равенство:
|У. и У>| = |Ух| + |У>| — 1*
Доказательство. Для доказательства леммы покажем, что набор (а1, * * *, ат, в1, * * *, вк) является единственным набором, принадлежащим одновременно множествам У и У2. Иначе говоря, покажем, что всегда можно выбрать такие Жг и ж^-, где 1 < *,_/ < т, что 5(жг,ж^-) содержит набор а1, * * *, ат, въ * * *, вк *
Пусть имеется бинарное дерево Т, представляющее функцию / и полностью помеченное поддерево Т1 , корень которого является левой вершиной для корня Т. Листьям рассматриваемого поддерева сопоставлены значения а1,***,ат* Мы хотим изменить разметку поддерева Т1 так, чтобы для некоторых двух его листьев Жг, Ж^- функция д(а1, * * *, аг-1, Жг, аг+1, * * *, а^-1, ж^-, а^+1, * * *, ат) была существенной.
Изменение разметки осуществляется от корня по следующему правилу. Пусть (Ь, Л, и) — пометка корневой вершины Т1. Тогда новая пометка будет иметь вид (Ь, 2, 2). Для каждой внутренней вершины, имеющей пометку (Ь, Л, 2), измененная пометка будет иметь вид (Ь, 2, 2).
Согласно этому правилу изменение разметки осуществляется от корня к вершине таким образом, чтобы пометкой 2 были помечены только правые ребра поддерева Тъ Изменение производится до тех пор, пока не будет найдена некоторая вершина ад, правой вершиной которой является лист. В этом случае пометка вершины ад становится (2, 2, 2).
Если вершина ад такова, что для нее левой вершиной также является лист, то изменение разметки закончено. Если для нее левой вершиной является внутренняя вершина V, то изменение разметки продолжается в поддереве с корневой вершиной V по указанному выше правилу: пометка (Ь, Я, 2) заменяется на (Ь, 2, 2). В этом случае изменение разметки заканчивается на вершине, правой вершиной которой является лист.
Легко видеть, что изменение разметки поддерева Т1 произведено таким образом, что только два его листа жг,ж^ имеют пометку 2, а
пометка остальных листьев не изменилась. В самом деле, в полностью помеченном поддереве Т1 встречаются только вершины с пометками типа 1), и), у), у1) (рисунок 1.). Согласно правилу изменения разметки дерева новыми пометками вершин становятся пометки типа ш) или уп), и единственная вершина имеет пометку типа 1х) или х).
Обратно, пусть необходимо построить квадрат существенности для выбранных переменных Жг, ж^- . Согласно алгоритма разметки дерева для функции д оставшиеся т — 2 листа будут помечены константами
01 *** , аг—^ * * *., О^ —^ * **., ат*
Функция д(а1, * * *, аг-1, Жг, аг+1, * * *, а^-1, ж^-, а^+1, * * *, ат) является существенной. Отсюда следует, что содержит набор а^,* * *, ат, а, значит, У содержит набор (а^, * * *, ат, въ * * *, вк). Аналогичные рассуждения показывают, что и У2 содержит набор (а^, * * *, ат, в1, * * *, вк). Таким образом, для первых двух групп квадратов существенности выполняется равенство
|У. и У2| = |У| + |У2| — 1*
Лемма доказана. □
Для третьей группы квадратов существенности достаточно показать, что V/ содержит не более тк наборов этой группы, не входящих в первые две группы. Пусть 5(жг,ж^-) — квадрат существенности из Уз. Наборы из этого квадрата существенности имеют следующий вид:
1 : (тЪ * * * , тг— Ъ аг, ^г+Ъ * * * , Тто Тт,+ Ъ * * * , — 1, в, тj+1, * * * , тга);
2 : (тЪ * * * , тг—Ъ аг, Тг+Ъ * * * , Тто Тт,+ Ъ * * * , — 1, в^', тj+1, * * * , тга);
3 : (Tl, * * * , тг—Ъ Тг+Ъ * * * , Тто тт+1, * * * , — 1, в, Т’.у+Ъ * * * , тга);
4 : (Tl, * * * , тг— Ъ ^г+Ъ * * * , Тто тт+1, * * * , — 1, в^', тj+1, * * * , тга)*
Через У4 обозначим множество наборов таких, что для любого квадрата существенности 5(Жг,Ж^-) из третьей группы множество У4 содержит набор типа 4.
Лемма 4. Пусть /(ж1 , * * *, жп) — бесповторная булева функция, существенно зависящая от всех своих переменных, и /(ж1,***,жп) = д(ж1, * * * ,Жт) О Н(жт+1, * * * ,жт+к), где т,к > 1. Тогда У4 = УД(У1 и У2) и |У4| < тк*
Доказательство. Рассмотрим г = Т1, * * *, тт, тт+1, * * *, тп — один из четырех наборов, составляющих квадрат существенности переменных Жг и ж^- , где 1 < г < т < ^ < п* Дальнейшие рассуждения разбиваются на 4 пункта в зависимости от вида набора Г.
Пункт I. Пусть п, * * *, тт = «1, * * *, ат. Покажем, что в этом случае Г € У2* Для этого достаточно показать, что существует переменная Жг, т < I < п, такая что Г € 5(ж^-, Жг).
Пусть имеется бинарное дерево Т, представляющее функцию / и поддерево Т2, корень которого является правой вершиной корня Т. Лист, соответствующий переменной Ж^- принадлежит Т2, и в Т2 помечен путь от этого листа до корня дерева. Изменим разметку поддерева Т2. Пусть и> — вершина, являющаяся верхней для листа ж^- . Пометка ад может быть (Ь, 2, 2) или (2, Я, 2). Новая пометка и> станет (2, 2, 2).
Если вершина и> такова, что для нее левой (правой) вершиной также является лист Жг, то изменение разметки закончено. Если для нее левой (правой) вершиной является внутренняя вершина V, то изменение разметки продолжается в поддереве с корневой вершиной V по следующему правилу: пометка (Ь, Я, 2) заменяется на (Я, 2, 2). В этом случае изменение разметки заканчивается на вершине, правой вершиной которой является лист.
Изменение разметки поддерева Т2 произведено таким образом, что только два его листа ж^-, Жг имеют пометку 2, а пометка остальных к —
2 листьев не изменилась. Это означает, что квадрат существенности £(ж^ , Жг) содержит набор Г = а1, * * *, ат, тт+1, * * *, тп* Следовательно, Г € У2*
Пункт II. Пусть тт+1, * * *, тп = въ * * *, вк. Тогда рассуждениями аналогичными пункту I нетрудно показать, что наборы вида Т1, * * *, тт, въ * * *, вк из квадрата существенности 5(жг, Ж^)
принадлежат У1*
Пункт III. Пусть Г — некоторый набор типа 2 из квадрата существенности 5(жг,ж^). Покажем, что такой набор содержится либо в У2, либо в У4. Первые т компонент Т1, * * * , тт набора Г могут либо совпадать с «1, * * *, ат, либо отличаться хотя бы в одной компоненте.
В первом случае в соответствии с пунктом I набор Г принадлежит У2* Во втором случае найдется номер I такой, что тг = аг* Для этого случая покажем, что набор Г принадлежит У4*
Будем говорить, что два листа Жг и ж^- являются удаленно-смежными по вершине V, если выполняется 2 условия:
1) вершина V является первой общей вершиной, встречающейся на путях от листьев Жг и ж^ до корня;
2) лист ж^- является правым в поддереве с корнем в вершине V;
Рассмотрим возможные варианты пометок вершины ад, являющейся
верхней для листа Жг, г < т, и возможные варианты пометки аг листа Жг. Пометки представлены в таблицах 3 и 4, где первый столбец содержит положение листа относительно верхней вершины ад и значение аг. Второй столбец содержит пометку верхнего ребра для вершины ад, а третий — возможные варианты принадлежности множествам У2 или У4.
Покажем справедливость приведенных таблиц. Рассмотрим вариант, при котором смежная вершина ад помечена символом V(ф) (таблица 3). Пусть Т1 — полностью размеченное поддерево дерева Т функции / с корнем, являющимся левой вершиной для корня Т. Листья под-
дерева помечены константами из набора а. Мы хотим изменить разметку поддерева Т1 так так, чтобы для некоторого листа Жг функция д(т1, * * *, тг—1, Жг, тг+1, * * *, тт) была существенной.
Таблица 3.
Возможные варианты принадлежности множествам У2 или У4 наборов для вершины V(ф)
Положение Верх Варианты
Ь, 0 0 1) т1, * * * , тт — а1, * * * , ат; 2) Г € 5(жг,ж^),т = аг, где жг и Жг удаленносмежные по вершине V(ф) с пометкой (0,1,1).
Ь, 0 1 Г € 5(жг,ж^-),тг = аг, где жг и Жг удаленносмежные по вершине ад.
Я, 0 0 1) т1, * * * , тт — а1, * * * , ат; 2) Г € 5(жг,ж^),тг = аг, где жг и Жг удаленносмежные по вершине V(ф) с пометкой (0,1,1).
Я, 1 1 Г € 5(жг,ж^-),тг = аг, где жг и Жг удаленносмежные по вершине & с пометкой (1,0,0).
Таблица 4.
Возможные варианты принадлежности множествам У2 или У4 наборов для вершины &
Положение Верх Описание
Ь, 1 0 Г € 5(жг,ж^-),тг = аг, где жг и Жг удаленносмежные по вершине ад.
Ь, 1 1 1) т1, * * * , тт — а1, * * * , ат; 2) Г € 5(жг,ж^),тг = аг, где жг и Жг удаленносмежные по вершине & с пометкой (1,0,0).
Я, 0 0 Г € 5(жг,ж^-),тг = аг, где жг и Жг удаленносмежные по вершине V(ф) с пометкой (0,1,1).
Я, 1 1 1) т1, * * * , тт — а1, * * * , ат; 2) Г € 5(жг,ж^),тг = аг, где жг и Жг удаленносмежные по вершине & с пометкой (1,0,0).
Согласно таблицы 3 пометка вершины и> разбивается на следующие варианты:
Вариант 1. Выбранный лист располагается слева, имеет пометку 0 и вершина ад помечена (0,0,0). Перед началом изменения разметки дерева рассмотрим возможные вершины, являющиеся верхними для вершины ад (рис. 3).
І0 |1 |0 І0
Г& (V)
о о>^<. 1 о 0/^4о
(V)
0/^\0 0/^\0 0/^\0 0/^ч0
/'У* ■ \ /'У* ■ \ /'У* ■ \ /'У* ■
/ 0/£ \ / 0/£ \ / 0/£ \ / 0/£ \
а Ь с ^
Рис. 3. Возможные пометки верхних вершин для варианта 1
Вершина и> располагается либо на правом ребре вершины V(ф) (случай а), либо на левом ребре вершины V(ф) (случаи Ь, !), либо на правом ребре вершины & (случай с).
Следует отметить, что в случаях а, с и ! верхние вершины имеют верхнее ребро с пометкой 0 и, следовательно, для каждой из них возможны все четыре варианта пометок верхних вершин.
Изменение разметки осуществляется от листа ж^ до корня следующим образом. Пометка вершины и> изменится на (2, 0, 2). Далее для каждой внутренней вершины, у которой Ь = 2 или Я = 2, изменение пометки вершин производится согласно таблице 5.
Таблица 5.
Правила изменения разметки поддерева для варианта 1
Символ вершины Старая пометка Новая пометка
а V (0, 2, 0) (0, 2, 2)
Ь V (2,1,1) (2,0, 2)
с & (1, 2, 0) (1, 2, 2)
(1 V (2, 0, 0) (2,0, 2)
Изменение разметки производится до тех пор, пока не будет достигнут корень поддерева или пока не реализуется случай Ь таблицы 5.
Если было произведено изменение пометки корня поддерева, то в процессе построения новой разметки реализовались варианты а, с или !. Таким образом, только один лист в поддереве Т1 имеет пометку 2, а пометка остальных листьев не изменилась. Тогда Т1,..., тт = а^,..., ат
и, следовательно, Г € У.
Если в процессе построения новой разметки найдена вершина V с символом V(ф) и пометкой (2,1,1) (случай Ь), то ее пометка изменится на (2, 0, 2) и, согласно лемме 1 о пометках листьев поддерева, изменится только пометка правого листа жг в поддереве с корнем V. Пометка листа жг станет од. Зафиксируем вершину V. Далее изменение разметки поддерева Т1 от вершины V до корня происходит следующим образом:
1. Если внутренняя вершина имеет пометку (Ь, 2, и), то она изменится на (Ь, 2, 2).
2. Если (2, Я, и) — пометка внутренней вершины, то ее новая пометка станет (2, Я;, 2), где Я' выбирается согласно типам пометки вершин (рисунок 1).
Таким образом,
Теперь осталось показать, что набор Г € 5(жг, ж,). В самом деле, пусть Т1 — полностью размеченное поддерево, корень которого является левой вершиной для корня дерева функции /. Изменим его разметку от листа жг до корня следующим образом. Пометка вершины, являющейся верхней для листа жг, изменится на (Ь, 2, 2). Для каждой внутренней вершины, имеющей пометку (Ь, 2, и), измененная пометка будет иметь вид (Ь, 2, 2). Такая разметка осуществляется до тех пор, пока не будет произведена пометка вершины V. Далее изменение разметки от вершины V до корня поддерева происходит по тем же правилам, что и изменение разметки поддерева для листа ж*. В итоге получили, что Т1,..., тт = Т1,..., а,..., тт, где т* = а*. Согласно приведенным правилам изменения разметки поддерева, новыми пометками вершин становятся пометки типов 1)—уш) (рисунок 1). Тогда функция /(Т1,..., тг-1, жг, тг+1,..., Тт, тт+1,..., т,—, ж,, Т,+1, ..., т„) является существенной, и, следовательно, Г € 5(жг,ж,). Одновременно, Г € V*, так как тг = а и т, = в,.
Вариант 2. Выбранный лист располагается слева, имеет пометку 0 и вершина и> помечена (0,1,1) (рис. 4). Перед началом изменения разметки дерева рассмотрим возможные пометки вершины, являющейся верхней для вершины ад.
Изменим разметку поддерева Т1. Пометим ад новой пометкой (2, 0, 2). Вариант 2 является частным случаем варианта 1, так как при построении новой разметки поддерева Т1 в вершине ад реализуется вариант Ь таблицы 5. Следовательно, к нему применяются проведенные ранее рассуждения для варианта 1. В таком случае получили, что Т1,..., тт = Т1,..., а,..., Тт, где Т* = а*, и Т € V*
Вариант 3. Выбранный лист располагается справа, имеет пометку 0 и вершина ад помечена (0,0,0). Рассмотрим возможные пометки вершины, являющейся верхней для вершины ад (рис. 5).
Т1, - - - , тт — Т1, . . - , , - - - , , - - - , тт •
Рис. 4. Пометка вершины ад для варианта 2
|0 |1 |о 1о
Г& (V)
о о>^<. 1 у^Со 0/^4о
(V)
о/^Со О/^Со О/^Со о/^Со
/ 'У* \ / ГГК / 'У* \ / 'У'К
/ а/%\ / О/%\ / а/%\ / ^гх
а Ь с д
Рис. 5. Возможные пометки верхних вершин для варианта 3
Вершина и> располагается либо на правом ребре вершины У(®) (случай а), либо на левом ребре вершины У(®) (случаи Ь, д), либо на правом ребре вершины & (случай с). Эти случаи почти полностью аналогичны случаям расположения вершин варианта 1 и все рассуждения проводятся аналогичным образом.
Вариант 4- Выбранный лист располагается справа, имеет пометку 1 и вершина и> помечена (0,1,1). Перед началом изменения разметки дерева необходимо рассмотреть возможные пометки вершины, являющейся верхней для вершины и> (рис. 6).
|1 10 11 |1
Г& Г& (&)
0/^А 1 1/^^\0 1/^^\1 У^'\1
(V)
0/^x1 1 0/^41 °/^\1
/ 'У* \ / / 'У* \ / 'У'К
/ а/%\ / О/%\ / а/%\ /
а Ь с д
Рис. 6. Возможные пометки верхних вершин для варианта 4
Вершина и> располагается либо на правом ребре вершины У(®) (случай а), либо на левом ребре вершины & (случаи Ь, д), либо на правом ребре вершины & (случай с).
В случаях а, с и д верхние вершины имеют верхнее ребро с пометкой
1 и, следовательно, для каждой из них возможны все четыре варианта пометок верхних вершин.
Изменение разметки осуществляется от листа ж% до корня следующим образом. Пометка вершины и> изменится на (0, 2, 2). Далее для каждой внутренней вершины, у которой Ь = 2 или Я = 2, изменение пометки вершин производится согласно таблице 6.
Изменение разметки производится до тех пор, пока не реализуется случай Ь таблицы 6.
Когда в процессе построения новой разметки поддерева найдется вершина V с символом & и пометкой (2, 0, 0) (случай Ь), то ее пометка изменится на (2,1, 2) и, согласно лемме 1, изменится пометка правого листа жг в поддереве с корнем V. Пометка листа жг станет а.
Таблица 6.
Правила изменения разметки поддерева для варианта 4
Символ вершины Старая пометка Новая пометка
а V (0, 2,1) (0, 2, 2)
Ь & (2, 0, 0) (2,1, 2)
с & (1, 2,1) (1, 2, 2)
й & (2,1,1) (2,1, 2)
Зафиксируем вершину V. Далее изменение разметки поддерева Т\ от вершины V до корня происходит следующим образом:
1. Если внутренняя вершина имеет пометку (Ь, 2, и), то она изменится на (Ь, 2, 2).
2. Если (2, Я, и) — пометка внутренней вершины, то ее новая пометка станет (2, Я;, 2), где Я' выбирается согласно типам пометки вершин (рисунок 1).
Таким образом,
Т1, • • • , Тт = Т1, • • • , аг, • • • , аЬ • • • , Тт •
Теперь осталось показать, что набор Г € 5(жг, ж,). Пусть Т — полностью помеченное поддерево, корень которого является левой вершиной для корня дерева функции /. Изменим его разметку от листа жг до корня следующим образом. Пометка вершины, являющейся верхней для листа жг, изменится на (Ь, 2, 2). Для каждой внутренней вершины, имеющей пометку (Ь, 2, и), измененная пометка будет иметь вид (Ь, 2, 2). Такое правило разметки действует до тех пор, пока не будет изменена пометка вершины V. Далее изменение разметки от вершины V до корня поддерева происходит по тем же правилам, что и изменение разметки поддерева для листа ж^. В итоге получили, что т1, • • •, тт = т1, • • •, Щ, • • •, тт, где = аг. Согласно приведенным правилам изменения разметки поддерева, новыми пометками вершин становятся пометки типов 1)—уш) (рисунок 1). Тогда функция /(Т1, • • •, тг-1, жг, тг+1, • • •, тт, тт+ь • • •, г,—, ж,, г?-+1, • • •, т„) является существенной, и, следовательно, Г € 5(жг, ж,). В то же самое время Г € У4, так как г = а и г, = в,.
В итоге мы получили, что наборы типа 2 из квадратов существенности третьей группы пар переменных могут принадлежать либо множеству У2, либо у.
Пункт IV. Пусть Г — некоторый набор типа 3, полученный из квадрата существенности 5(жг , ж,). Для Г возможны следующие варианты:
1. гт+1, • • •, тп = въ • • •, в&- Тогда в соответствии с пунктом II набор Г принадлежит множеству
2. гт+1, • • •, тп = въ • • •, вк• В этом случае существует I, что гг = вг, и рассуждения аналогичные пункту III показывают, что Г принадлежит множеству У4 •
Пункт V. Для полноты картины осталось рассмотреть набор типа 1. Пусть некоторый набор Г имеет вид
Т = ТЪ • • • , Тг— Ъ а^ Тг+Ъ • • • , Тт, Тт+Ъ • • • , — 1, в,, Т,?+Ъ • • • ,
Тогда в зависимости от строения дерева функции / имеют место следующие варианты строения набора:
1. Т1, • • •, тт = а1, • • •, ат^ В этом случае согласно пункту I набор Г содержится в множестве
2. гт+1, • • •, тп = в1, • • •, вк• В этом случае согласно пункту II набор Г принадлежит множеству
3. Т1, • • •, Тт = аь • • •, ат и гт+ъ • • •, т„ = въ • • •, вк• Тогда_существу-ют такие £ и I, 1 < £ < т < I < п, что т = а* и Тг = вг^ В этом случае из приведенных выше рассуждений пункта III следует, что Г содержится в У4 •
Это завершает доказательство равенства
У = Уз\(У1 и У2) •
Очевидно, что согласно правилу построения множества У4 количество наборов в нем не превосходит тк
Лемма доказана. □
Лемма 5. Пусть /(ж1, • • •, жп) — бесповторная булева функция, существенно зависящая от всех своих переменных, и /(жъ — ^жп) = д(жъ • • •, жт) ◦ Л(жт+ъ • • •, жт+к), где т, к > 1. Тогда
IV/1 = |У1| + |У2| - 1 + |У4| < |У1| + | | - 1 + тк
Доказательство. Доказательство этого утверждения непосредственно следует из строения проверяющего теста V/ и лемм 3 и 4. □
Отдельного рассмотрения заслуживает случай т = 1. Тогда /(ж1 • • •жп) = ^(ж1) о Л(ж2 • • •жп)
В этом случае пары переменных при переборе разбиваются на 2 группы:
1. Обе выбранные переменные принадлежат множеству переменных функции Л.
2. Одна переменная ж1 фиксирована, а другая принадлежит множеству переменных функции Л.
Так как в первой группе перебираются все пары переменных из множества переменных функции Л, то на основе квадратов существенности получается проверяющий тест для этой функции.
Пусть У1 — множество квадратов существенности 5(жг,ж,), где переменные жг,ж, принадлежат множеству переменных функции Л, У2 — множество квадратов существенности 5(ж1,ж,), и переменная ж, принадлежит множеству переменных функции Л- Тогда
V/ = У1 и У2.
Согласно лемме 2, все наборы из У1 имеют вид а, *,•••, *, где а — пометка листа ж1, который смежен по левому ребру с корнем бинарного дерева функции /.
Не умаляя общности рассуждений можно считать, что лист, соответствующий переменной жп является правым в поддереве, корень которого смежен корню бинарного дерева функции / по правому ребру. Построим квадрат существенности 5(ж1 ,жп). Зафиксируем два набора
а-1 = (а,в2, • • •,вп—1, 0)
СТ2 = (а,в2, • • • ,вп—1, !)•
Очевидно, что наборы ^1, ^2 не принадлежат множеству Уь Зафиксируем значения в2, • • •, вп—1. Положим Уз = {^1, ^2 }• Все дальнейшие рассуждения проводятся исходя из предположения, что ] = п
Пусть 5(ж1, ж,) — квадрат существенности из второй группы пар переменных:
1 : (а, Т2, • • • ,т,—1, в,,т,+1, • • • ,Тп—1,Тп);
2 : (а, Т2, • • • ,т,—1,в,,т,+1, • • • ,т„—ьтга);
3 : (а, Т2, • • • ,т,—1, в,,т,+1, • • • ,т„— ьт„);
4 : (а, Т2, • • •, т,—1, в,, т,+1, • • •, тп—1, тп)
Через У4 обозначим множество наборов таких, что для любого квадрата существенности 5 (ж1, ж,) из второй группы множество У4 содержит набор типа 4.
Лемма 6. Пусть /(ж1, • • •, жп) — бесповторная булева функция, существенно зависящая от всех своих переменных, и /(ж^^ж^) = ^(ж1) о Л(жт+1, • • •, жт+к), где к > 1. Тогда
Уз и У4 = У2\У1
и мощность множества У4 не превосходит п — 2.
Доказательство. Согласно рассмотренному ранее пункту I леммы 4 наборы типа 1 и 2 принадлежат множеству У1.
Пусть Г — некоторый набор типа 3, полученный из квадрата существенности 5(ж1,ж,)• Тогда для компонентов набора Г имеют место следующие случаи:
1) Т2, • • • ,Тп—1 = в2, • • • ,вп— 1; 2) Т2, • • • ,Тп—1 = в2, • • •,вп—Ь В первом случае набор Г принадлежит Уз, поскольку равен либо набору 01, либо набору 02 • Во втором случае найдется такой номер I, что г = вг• Для этого случая мы покажем, что Г принадлежит У4 Рассмотрим возможные варианты пометок вершины ад, являющейся верхней для листа ж,, 1 < ] < п, и возможные варианты пометки в, листа ж,. Пометки представлены в таблицах 7 и 8, где первый столбец содержит положение листа относительно верхней вершины ад и значение в,. Второй столбец содержит пометку верхнего ребра для вершины ад, а третий — возможные варианты принадлежности множеству У3 или У4.
Таблица 7.
Возможные варианты принадлежности множествам Уз или У4 наборов для вершины V(ф)
Положение Верх Описание
Ь, 0 0 1) Г = 01 или Г = 02; 2) Г € 5(ж1,жг), гг = вг, где ж, и жг удаленносмежные по вершине V(ф) с пометкой (0,1,1).
Ь, 0 1 Г € 5(ж1,жг), гг = вг, где ж, и жг удаленносмежны по вершине ад.
Я, 0 0 1) Г = 01 или Г = 02; 2) Г € 5(ж1,жг), Тг = вг, где ж, и жг удаленносмежные по вершине V(ф) с пометкой (0,1,1).
Я,1 1 Г € 5(ж1,жг), Тг = вг, где ж, и жг удаленносмежные по вершине & с пометкой (1,0,0).
Справедливость таблиц доказывается таким же образом, что и в случае разделения переменных на два множества (лемма 4) — рассматриваются различные пометки и символы вершины, являющейся верхней для вершины ад ив соответствии с этими пометками выбираются правила изменения разметки бинарного дерева функции /. Следовательно, наборы типа 3 из квадратов существенности второй группы пар переменных могут принадлежать либо множеству Уз, либо У4.
В результате рассмотрения принадлежности различным множествам всех типов наборов получаем равенство
Уз и У4 = УДУь
Для каждого квадрата существенности второй группы пар переменных в множестве У4 содержится не более одного набора и, следовательно, |У4| < п — 2^
Таблица 8.
Возможные варианты принадлежности множествам Уз или У наборов для вершины &
Положение Верх Описание
Ь, 1 0 Г £ 5(ж1,жг), тг = вг, где ж^- и жг удаленносмежные по вершине ад.
Ь, 1 1 1) Г = <г1 или Г = г2; 2) Г £ 5(ж1,жг), Тг = вг, где ж^- и жг удаленносмежные по вершине & с пометкой (1,0,0).
Я, 0 0 Г £ 5(ж1,жг), тг = вг, где ж^- и жг удаленносмежные по вершине V(ф) с пометкой (0,1,1).
Я, 1 1 1) Г = <г1 или Г = г2; 2) Г £ 5(ж1,жг), тг = вг, где ж^- и жг удаленносмежные по вершине & с пометкой (1,0,0).
Лемма доказана. □
Лемма 7. Пусть /(ж1,..., жп) — бесповторная булева функция, существенно зависящая от всех своих переменных и /(ж1,..., жп) = $(ж1) о Л,(жт+Ь... ,жт+к), где к > 1. Тогда
У | = |У1| + |Уз| + |У4| < | У1| + 2 + (п - 2).
Доказательство. Доказательство леммы непосредственно следует из леммы 6. □
Теорема 3. Функция Шеннона Т(п) для тестов относительно бес-повторной альтернативы удовлетворяет равенству
Т (п) = п(П2+1)+1.
Доказательство. Из вышеприведенных результатов работы [1] достаточно доказать, что
Т(п) < п(22+^ + 1.
Покажем, что формула верна при п = 2. Пусть /(ж1,ж2) = ж^1 о ж^2, где о £ {V, &, ®}, ж0 = ж, ж1 = ж. Очевидно, что проверяющим тестом для этой функции будет тест, состоящий из всех четырех наборов (00), (01), (10), (11). Таким образом, Т(2) < 4.
При п > 2 не ограничивая общности можно полагать, что любая бесповторная булева функция /(ж1,..., жп) представима в виде
/(жь . . . ,ж„) = #(жЬ . . . ,жт) о ^(жт+1, . . . ,ж„),
для некоторых т и к = п — т, о£ {V, &, ф}.
В силу индуктивного предположения
Т(т) < т(т2+ 1} + 1, Т(к) < к(к + 1} + 1.
Рассмотрим количество наборов в проверяющем тесте V/ для функции /. Пусть т > 1 и к > 1. Тогда согласно лемме 5 количество наборов в тесте удовлетворяет неравенству:
|У/| < |У11 + |У2|- 1 + тк.
Тогда для функции Шеннона получается следующее соотношение Т(п) < Т(т) + Т(к) — 1 + тк <
т(т + 1) (п — т)(п — т + 1)
< —^---- + 1 + -------^2---------- +1 — 1 + т(п — т) =
= п(п + 1) + 1
2 + .
В случае, если т = 1, то в соответствии с леммой 7 справедливо неравенство:
|У/| < |у1| + 2 + (п — 2).
В итоге для функции Шеннона получили соотношение
Т(п) < Т(п — 1) + 2 + (п — 2) < 2^ + 1 + п = + 1.
Учитывая нижнюю оценку для Т(п) из [1] окончательно получаем
Т (п) = ^ + 1.
Теорема доказана. □
Интересно отметить, что для элементарного базиса {0,1, &, V, —} показано, что тест относительно бесповторной альтернативы имеет линейную сложность [2].
Список литературы
1. Вороненко А. А. О проверяющих тестах для бесповторных функций / А. А. Вороненко // Математические вопросы кибернетики. — 2002. — Вып 11. — С. 163-176.
2. Вороненко А. А. О длине проверяющего теста для бесповторных функций в базисе {0,1,&, V, —} / А. А. Вороненко // Дискретная математика. — 2005. — Том 17. Выпуск 2. — С. 139-143.
3. Избранные вопросы теории булевых функций: Монография / А. С. Балюк, С. Ф. Винокуров, А. И. Гайдуков и др.; Под ред. С. Ф. Винокурова, Н. А. Перязева. — М.: Физматлит, 2001. — 192 с.
4. Редькин Н. П. Надежность и диагностика схем / Н. П. Редькин. — М.: Изд-во Моск. ун-та, 1992. — 192 с.
5. Рябец Л. В. Тестирование бесповторных булевых функций / А. С. Балюк, Л. В. Рябец // Вестник Томского государственного университета. Приложение. — 2006. — Вып 17. — С. 10-14.
L. V. Ryabets
The complexity of RF-tests for repetition-free boolean functions
Abstract. This paper contains the result of investigations in issues of testing of repetition-free Boolean functions (RF-test, for short). The target of this paper is obtaining the exact value of Shannon function for RF-tests. Our main results are: the exact value of Shannon function for RF-teststhe and the algorithm to construct fast RF-test for any repetition-free Boolean function.
Keywords: digital systems, logic gates, repetition-free Boolean functions,integrated circuit test
Рябец Леонид Владимирович, кандидат физико-математических наук, Восточно-Сибирская государственная академия образования, 664011, Иркутск, ул. Н. Набережная, 6 тел.: (3952) 240435 ([email protected])
Ryabets Leonid, East Siberian Academy of Education, 6, Nizhnyaya Naberezhnaya St., Irkutsk, 664011 Phone: (3952) 240435 ([email protected])