Современные
информационные технологии/1.Компьютерная инженерия
К.т.н. Ткаченко В.Г., аспирант Кокорев
А.В.
Одесская
национальная академия связи
Исследование
монотонных булевых функций
с малым количеством переменных
В настоящее время значительно расширилась
сфера применения цифровых схем. В
области телекоммуникаций эти схемы широко используются при сжатии и кодировании
передаваемой информации, при цифровой коммутации, в маршрутизаторах и шлюзах. В
связи с этим возникает проблема синтеза надежных цифровых схем. В частности это
могут быть цифровые схемы, построенные на основе монотонных булевых функций
(МБФ). Такие схемы являются более надежными [1], чем схемы, построенные на
основе всех булевых функций.
В [2,3] разработана классификация МБФ на типы и перечисление максимальных
типов МБФ. Здесь же показано, что для синтеза цифровых схем на основе МБФ
необходимо сначала перебрать типы, а затем исследовать все МБФ, принадлежащие
определенному типу. В [4] доказано выражение о перечислении типов МБФ в виде произведения
матриц.
Покажем
на примере простых МБФ, с количеством переменных не более 3, классификацию и исследование этих функций.
Вектор P = (an,…, ai,…, a1, a0), компоненты которого принимают значения из множества
{0,1}, будем называть входным набором булевой
функции от n переменных. Множество всех таких входных наборов
образует булев куб [3] ранга n. Сами
входные наборы P являются вершинами булева куба. Любую булеву функцию
можем определить множеством вершин булева куба, на которых эта функция равна
единицы. Любое множество несравнимых вершин булева куба называется антицепью. Для задания МБФ
достаточно указать некоторую антицепь в булевом кубе.
Будем
говорить, что две МБФ от n переменных принадлежат одному типу, если
соответствующие этим МБФ антицепи для любого i от 0 до n содержат одинаковое число наборов с i единицами.
В этом случае для каждого i в минимальных дизъюнктивных формах [1] этих МБФ
содержится одинаковое число конъюнкций, в которые входят i переменных. В [2] определен тип МБФ, как вектор Т=(a0, a1,…,ai,…,an) из n+1-й компоненты, которые нумеруются слева направо от 0
до n, причем i-я компонента вектора ai равна числу входных наборов данной МБФ, содержащих по
i единиц. Число n называется
рангом типа Т, число v ненулевых
компонент – весом типа Т, номер i первой
слева ненулевой компоненты – левой границей типа Т, номер j первой
справа ненулевой компоненты – правой границей типа Т, сумму m всех
компонент типа Т – мощностью типа Т. Тип Т называется максимальным, если при
увеличении любой компоненты соответствующего ему вектора на 1, полученный
вектор не соответствует никакому типу.
Имеется
всего две МБФ ранга 0. Это f0(0)
тождественно равная 0 и f1(0)
тождественно равная 1. Первая имеет тип (0), а вторая (1). Максимальным
является только тип (1).
Имеется
три МБФ ранга 1. Это f0(1)
тождественно равная 0, f1(1)
тождественно равная 1 и f2(1) = x1. Первая имеет тип (0,0), а вторая (1,0), а третья
(0,1). Максимальными являются только два последних типа.
Имеется
шесть МБФ ранга 2. Это f0(2) тождественно
равная 0, f1(2)
тождественно равная 1, f2(2) = x1, f3(2) = x2, f4(2) = x1x2 и f5(2) = x1
x2. Эти МБФ
имеют типы (0,0,0), (1,0,0), (0,1,0), (0,1,0), (0,0,1) и (0,2,0)
соответственно. Тип (0,1,0) имеют 2 МБФ. Максимальными являются типы (1,0,0),
(0,0,1) и (0,2,0).
Имеется
двадцать МБФ ранга 3. Это f0(3)
тождественно равная 0, f1(3)
тождественно равная 1, f2(3) = x1, f3(3) = x2, f4(3) = x3, f5(3) =x1x2, f6(3) = x1x3, f7(3) = x2x3, f8(3) =x1
x2, f9(3) = x1
x3, f10(3) = x2
x3, f11(3) = x1x2
x1x3, f12(3) = x1x2
x2x3, f13(3) = x1x3
x2x3, f14(3) = x1
x2
x3, f15(3) = x1x2
x1x3
x2x3, f16(3) = x1x2x3, f17(3) = x1
x2x3, f18(3) = x2
x1x3 и f19(3) = x3
x1x2. МБФ f0(3), f1(3), f14(3), f15(3) и f16(3)
имеют типы (0,0,0,0), (1,0,0,0), (0,3,0,0), (0,0,3,0), и (0,0,0,1)
соответственно. Тип (0,1,0,0) имеют МБФ f2(3), f3(3) и f4(3). Тип (0,0,1,0) имеют МБФ f5(3), f6(3) и f7(3). Тип
(0,2,0,0) имеют МБФ f8(3), f9(3) и f10(3). Тип (0,0,2,0) имеют МБФ f11(3), f12(3) и f13(3). Тип
(0,1,1,0) имеют МБФ f17(3), f18(3) и f19(3). Максимальными являются типы (1,0,0,0), (0,0,0,1),
(0,3,0,0), (0,0,3,0), и (0,1,1,0).
Относительно
операций дизъюнкции и конъюнкции все МБФ одного ранга образуют дистрибутивную
решетку. Такие решетки R0, R1, R2 и R3 для
рангов МБФ от 0 до 3 изображены на рис.1.

Рисунок 1 – Решетки МБФ R0, R1, R2 и R3.
Решетки R1, R2 и R3
отличаются от свободных дистрибутивных решеток такого же ранга добавлением
самой верхней и самой нижней вершин. Для типов и МБФ можно ввести матрицы
распределения, в которых строка соответствует левой границе, а столбец правой границе. Обозначим через Mn и
Rn матрицы распределения для максимальных типов и всех
типов, а через Gn и Fn – матрицы распределения МБФ максимальных типов и
всех МБФ ранга n. Для ранга 0 все четыре матрицы M0, R0, G0 и F0
одинаковы и имеют вид (1), т.е. состоят из одной строки и одного столбца. Для
ранга 1 также все четыре матрицы M1, R1, G1 и F1 одинаковы и имеют вид
. Для ранга 2 матрицы M2 и G2 имеют вид
, R2 =
и F2 =
. Для ранга 3 имеем M3 =
, G3 =
, R3 =
и F3 =
. В матрицах Rn и Fn не учитывается тип из всех нулей и соответствующая
ему МБФ f0(n), т.к. в
данном случае левая и правая границы не определены. В [3] показано, что типы ранга n+1 можно получать из типов ранга n с помощью
операции сдвиг-суммы. В [4] доказана рекуррентное выражение, позволяющее по
матрице Mn-1
находить матрицу Mn:
Mn =
*Mn-1
(*Tn-2
Mn-1)* . (1)
Также доказано выражение:
Rn=+(Rn-1)+(Rn-1)+++(Rn-1
Sn-2+)
(Rn-1)+. (2)
В (1) и (2) Tn-2 и Sn-2 это верхние треугольные матрицы размерности (n–1)
(n–1),
причем у матрицы Tn-2 на
главной диагонали расположены единицы, а у матрицы Sn-2 нули.
Матрица *A получается из матрицы A добавлением сверху строки и слева столбца, состоящих
из нулей, а на пересечении этих строки и столбца добавляется единица. Матрица A* получается из матрицы A добавлением снизу строки и справа столбца, состоящих
из нулей, а на пересечении этих строки и столбца добавляется единица. Матрица +A получается
из матрицы A добавлением сверху строки, а слева столбца, состоящих
из нулей. Матрица A+
получается из матрицы A
добавлением снизу строки, а справа столбца, состоящих из нулей. Таким образом M3 = *M2
(*T1
M2)*,
а R3=+(R2)+(R2)+++(R2
S1+)
(R2)+.
Если допустить, что *T-1= T-1*= =(1) и +T-1= T-1+=(0), то все матрицы
видов Mn и Rn рекуррентно порождаются выражениями (1) и (2) из
матрицы (1) размерности 1
1.
f17(3) f7(3)
В [5] на множестве МБФ любого ранга определены три
унарные операции: двойственность, дизъюнктивное дополнение и конъюнктивное
дополнение. Относительно этих операций МБФ ранга 3 распадаются на 4 блока по 5
элементов. На рис. 2 показан блок, порожденный МБФ f2(3) = x1.
f11(3)

Рисунок 2 – Блок МБФ
На
рис.2 указанные 3 операции изображены
соответственно сплошной, штриховой и штрихпунктирной линиями. Для порождения из
f2(3) остальных МБФ достаточно применять по очереди
вторую, а затем первую операции. Получаем цепочку МБФ: f2(3), f7(3), f10(3), f11(3), f17(3). Аналогично можно получить цепочку f3(3), f6(3), f9(3), f12(3), f18(3), цепочку f4(3), f5(3), f8(3), f13(3), f19(3) и
цепочку f15(3), f14(3), f16(3), f1(3), f0(3)
Литература:
1.
Ткаченко В.Г. Отказы цифровых схем и представления
монотонных булевых функций / В.Г. Ткаченко //Наукові праці ОНАЗ ім. О.С. Попова. – Одеса,
2006. – №2. – С. 45 – 69.
2.
Ткаченко В.Г.
Классификация монотонных булевых функций при синтезе цифровых схем /
В.Г. Ткаченко // Наукові праці ОНАЗ ім. О.С. Попова. – Одеса, 2008. – №1.
– С. 35 – 43.
3.
Ткаченко В.Г.
Перечисления типов монотонных булевых функций при синтезе цифровых схем /
В.Г. Ткаченко // Наукові праці ОНАЗ ім. О.С. Попова. – Одеса, 2008. – №2.
– С. 54 – 69.
4. Ткаченко В.Г. Построение корректирующего кода для криптосистем на основе типов монотонных булевых функций / В.Г. Ткаченко, О.В. Синявский // Наукові праці ОНАЗ ім. О.С. Попова. – Одеса, 2010. – №1. – С. 85– 92.
5. Ткаченко В.Г. Взаимосвязь между матроидами и монотонными булевыми функциями электрических цепей/ А.М.Иваницкий, В.Г. Ткаченко //Наукові праці ОНАЗ ім. О.С. Попова. – Одеса, 2009. – №1. – С. 18 – 26.