Учебное пособие 800647
.pdfИзвестно [14], что поляризация БФ по каким-либо переменным приводит к перестановке ее значений. Поляризуем функцию F(x, y, z) по переменной z (табл. 16).
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 16 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
x |
y |
z |
|
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
z |
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||
0 |
0 |
0 |
1 |
(f0) |
|
|
|
f1 |
|
|
|
|
|
0 |
0 |
1 |
0 |
(f1) |
|
|
|
f0 |
|
|
|
|
|
0 |
1 |
0 |
1 |
(f2) |
|
|
|
f3 |
|
|
|
|
|
0 |
1 |
1 |
0 |
(f3) |
|
|
|
f2 |
|
|
|
|
|
1 |
0 |
0 |
0 |
(f4) |
|
|
|
f5 |
|
|
|
|
|
1 |
0 |
1 |
1 |
(f5) |
|
|
|
f4 |
|
|
|
|
|
1 |
1 |
0 |
1 |
(f6) |
|
|
|
f7 |
|
|
|
|
|
1 |
1 |
1 |
0 |
(f7) |
|
|
|
f6 |
|
|
|
|
|
|
|
|
|
|
|||||||||
|
Перестановка |
|
F F |
z |
обусловлена |
изменением |
полярности переменной z, как следствие изменения порядка следования входных наборов.
Алгоритм преобразования БФ на основе метода конечных разностей представлен на рис. 3. Исходными данными для алгоритма А5 являются: n – число аргументов БФ, вектор F размерности 2n, содержащий значения БФ на соответствующих наборах входных переменных [15].
39
Рис. 3. Алгоритм А5 полиномиального преобразования булевой функции на основе метода конечных разностей
40
ЗАДАНИЕ:
1.Доказать, что полученное выражение (48) верно.
2.Найти все остальные виды (51) – (56) полинома (48).
3.Изучить представленный в лабораторной работе алгоритм А5 и оценить возможность его распараллеливания, предложить вариант программно-аппаратных средств, необходимых для параллельной реализации алгоритма А5. Дать оценку параллельной и последовательной реализации алгоритма.
Лабораторная работа №5
АЛГОРИТМ ФРАКТАЛЬНОГО ПОЛИНОМИАЛЬНОГО РАЗЛОЖЕНИЯ БУЛЕВЫХ ФУНКЦИЙ
ЦЕЛЬ: изучение метода, базирующегося на преобразовании вектора значений функции и алгоритма полиномиального преобразования n – аргументных БФ на его основе.
В [8], интересующий нас подход, называется «метод, базирующийся на преобразовании вектора значений функции». Однако такое название метода, по нашему мнению, не раскрывает его отличительной сути. По этой причине в дальнейшем будем называть этот метод «методом фрактальных преобразований». Предпосылки выбора такого названия поясним позже.
Алгоритм метода фрактальных преобразований, представленный в [8], описан следующим образом: «…для построения вектора ~p коэффициентов полинома P(~xn), реализующего функцию f (~xn), имеющую вектор значений ~f не-
обходимо следующее. Пусть
~f2n |
( 0 , 1, 2,..., 2i , 2i 1, 2n 2, 2n 1) |
Разбиваем вектор ~2f n на двумерные наборы:
41
~0 ( 0, 1), ~1 ( 2, 3) , …,
~i ( 2i , 2i 1) , …, ~2n 1 1 ( 2n 2 , 2n 1)
К каждому из них применим операцию Т:
T(~0) ( 0, 0 1) , T(~1) ( 1, 1 2 ),
…T(~i) ( 2i, 2i 2i 1), … T(~2n 1 1) ( 2n 2, 2n 2 2n 1)
Используя построенные наборы, конструируем такие че-
тырехмерные наборы, которые получаются в результате при-
менения операции Т к наборам, выделяемым из вектора ~2f n :
T( 0, 1, 2, 3) T(~0,~1) (T(~0 ),T(~0) T(~1)),
.........
T( 4 j , 4 j 1, 4 j 2, 4 j 3) T(~2 j ,~2 j 1) (T(~2 j ),T(~2 j ) T(~2 j 1))
.........
T( 2n 4, 2n 3, 2n 2, 2n 1) T(~2n 1 2,~2n 1 1) (T(~2n 1 2,~2n 1 2 ~2n 1 1))
Затем от четырехмерных наборов переходим (аналогичным образом) к восьмимерным и т.д., пока не построим 2n- мерный набор. Он и будет искомым вектором коэффициентов полинома P(~xn).
Замечание. 2n-мерный вектор изображается следующим способом: «расщепляем» его на «последовательные» двумерные, четырехмерные, восьмимерные и т.д. наборы. Например, для вектора ( 0, 1, 2 , 3, 4, 5, 6 , 7 ) применяются такие записи:(( 0, 1),( 2, 3),( 4, 5 ),( 6, 7 )), (( 0, 1, 2, 3),( 4, 5, 6 , 7 )). Сумма ~ ~ наборов (векто-
ров) одинаковой длины понимается нами обычным образом:
это |
покомпонентная |
|
сумма |
по |
модулю |
2, |
т.е. |
||||||||
~ |
~ |
|
,..., |
|
|
|
), |
если |
~ |
,..., |
|
) |
и |
||
( |
1 |
n |
n |
( |
n |
||||||||||
|
|
|
1 |
|
|
|
1 |
|
|
|
|
||||
~ ( ,..., |
n |
)…». |
|
|
|
|
|
|
|
|
|
|
|
||
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
Рассмотрим данный метод на примере булевой функции F(a, b, c)=(10100110). Так как число переменных булевой функции n=3, то вектор значений функции равен:
42
~8f ( 0 , 1, 2 , 3, 4 , 5 , 6 , 7 ) =(10100110).
Разбиваем вектор ~8f |
на двумерные наборы: |
||||||||
~ |
( |
0 |
, ) (1,0), ~ |
( |
2 |
, |
3 |
) (1,0) , |
|
0 |
|
1 |
1 |
|
|
|
|||
~2 ( 4, 5) (0,1), ~3 ( 6, 7) (1,0) |
|||||||||
К |
каждому из |
них |
применим операцию Т. Так как |
||||||
T(~0) ( 0, 0 1) , то: |
|
|
|
|
|
T(~0) ( 0, 0 1) (1,1 0) (1,1),
T(~1) ( 1, 1 2) (1,1 0) (1,1),
T(~2) ( 4, 4 5) (0,0 1) (0,1) ,
T(~3) ( 6, 6 7) (1,1 0) (1,1)
Используя построенные наборы, конструируем четырехмерные наборы, которые получаются в результате применения
операции Т к наборам, выделяемым из вектора ~8f :
T( 0, 1, 2, 3) T(~0,~1) (T(~0),T(~0) T(~1))
((1,1),(0,0)) (1,1,0,0)
T( 4, 5, 6, 7) T(~2,~3) (T(~2),T(~2) T(~3))
((0,1),(1,0)) (0,1,1,0)
Затем от четырехмерных наборов переходим (аналогичным образом) к восьмимерному набору. Он и будет искомым вектором коэффициентов полинома P(~x8).
T( 0, 1, 2, 3, 4, 5, 6, 7) (T(~0,~1),T(~2,~3)) ((1,1,0,0),(1,0,1,0))
(1,1,0,0,1,0,1,0)
Формализованный алгоритм А6 полиномиального преобразования n-аргументных булевых функций на основе метода фрактальных преобразований представлен на рис. 4. В представленном алгоритме используются переменные i –индекс fi ; j – группы при k-разбиениях компонент вектора F; s – количество групп разбиений на каждом проходе алгоритма; p – ве-
43
личина группы при разбиении компонент; r – количество проходов алгоритма [16].
Рис. 4. Алгоритм А6 полиномиального разложения булевых функций на основе метода фрактальных преобразований
44
ЗАДАНИЕ: изучить представленный в лабораторной работе алгоритм А6 и оценить возможность его распараллеливания, предложить вариант программно-аппаратных средств, необходимых для параллельной реализации алгоритма А6. Дать оценку параллельной и последовательной реализации алгоритма.
Лабораторная работа №6
НАХОЖДЕНИЕ ОЦЕНОК ВЫЧИСЛИТЕЛЬНОЙ СЛОЖНОСТИ ДИСКРЕТНЫХ АЛГОРИТМОВ ПРЕОБРАЗОВАНИЯ БУЛЕВЫХ ФУНКЦИЙ К ПОЛИНОМУ ЖЕГАЛКИНА
ЦЕЛЬ: научиться оценивать вычислительную сложность алгоритмов на примере одной задачи
В табл. 17 – 22 представлены табличные интерпретации рассмотренных в ходе изучения дисциплины «Вычислительные системы» алгоритмов полиномиального преобразования булевых функций, позволяющие найти теоретические оценки их вычислительной сложности: табл. 17 – 19 позволяют получить оценку вычислительной сложности алгоритмов А1 – А3, разработанных на основе метода неопределенных коэффициентов; табл. 20 позволяет получить оценку вычислительной сложности алгоритма полиномиального преобразования булевых функций на основе метода частных полиномиальных нормальных форм; табл. 21 – на основе метода конечных разностей и табл. 22 – на основе метода фрактального преобразования БФ.
45
Таблица 17
g0 |
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
|
||||||||||
f0 |
f0 |
f0 |
f0 |
f0 |
f0 |
f0 |
f0 |
|
||||||||||
|
|
f1 |
|
0 |
|
f1 |
0 |
|
f1 |
0 |
|
f1 |
|
|||||
|
|
|
|
|
f2 |
f2 |
0 |
|
0 |
|
f2 |
|
f2 |
|
||||
|
|
|
|
|
|
|
f3 |
0 |
|
0 |
|
0 |
|
f3 |
|
|||
|
|
|
|
|
|
|
|
|
f4 |
f4 |
f4 |
|
f4 |
|
||||
|
|
|
|
|
|
|
|
|
|
|
f5 |
0 |
|
f5 |
|
|||
|
|
|
|
|
|
|
|
|
|
|
|
|
f6 |
|
f6 |
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 19 |
|||||||
|
|
|
|
|
|
|
|
|
|
|
||||||||
|
g0 |
|
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
|||||||||
|
f0 |
|
g0 |
g0 |
g1 |
g0 |
g1 |
g2 |
g3 |
|||||||||
|
|
|
|
f1 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
f2 |
|
f2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f3 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f4 |
|
f4 |
f4 |
|
f4 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
f5 |
|
|
|
f5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f6 |
|
f6 |
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
f7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 18
g0 |
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
|
f0 |
f0 |
f0 |
f0 |
f0 |
f0 |
f0 |
f0 |
|
|
f1 |
|
f1 |
|
f1 |
|
f1 |
|
|
|
f2 |
f2 |
|
|
f2 |
f2 |
|
|
|
|
f3 |
|
|
|
f3 |
|
|
|
|
|
f4 |
f4 |
f4 |
f4 |
|
|
|
|
|
|||||
|
|
|
|
|
f5 |
|
f5 |
|
|
|
|
|
|
|
f6 |
f6 |
|
|
|
|
|
|
|
|
f7 |
|
|
|
|
|
Таблица 20 |
x2 |
x1 |
x0 |
g0 |
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
|
1 |
|
1 |
|
1 |
|
1 |
0 |
1 |
0 |
|
|
1 |
1 |
|
|
1 |
1 |
0 |
1 |
1 |
|
|
|
1 |
|
|
|
1 |
1 |
0 |
0 |
|
|
|
|
1 |
1 |
1 |
1 |
|
|
|
|
|||||||
1 |
0 |
1 |
|
|
|
|
|
1 |
|
1 |
1 |
1 |
0 |
|
|
|
|
|
|
1 |
1 |
1 |
1 |
1 |
|
|
|
|
|
|
|
1 |
46
Таблица 21
g0 g1 g2 g3 g4 g5 g6 g7
f0 ∆11 ∆12 ∆13 ∆14 ∆15 ∆16 ∆17
f1 ∆21 ∆22 ∆23 ∆24 ∆25 ∆26
f2 ∆31 ∆32 ∆33 ∆34 ∆35
f3 ∆41 ∆42 ∆43 ∆44
f4 ∆51 ∆52 ∆53
f5 ∆61 ∆62
f6 ∆71
f7
Таблица 22
g0 |
g1 |
g2 |
g3 |
g4 |
g5 |
g6 |
g7 |
|
f0 |
f1 |
f2 |
f3 |
f4 |
f5 |
f6 |
f7 |
|
|
f0 |
|
f2 |
|
f4 |
|
f6 |
|
|
|
|
|
|||||
|
|
g0 |
g1 |
|
|
g4 |
g5 |
|
|
|
|
|
g0 |
g1 |
g2 |
g3 |
|
|
|
|
|
|
|
|
|
Например, вывод оценки вычислительной сложности для алгоритма А1 (табл. 17) базируется на следующих посылках: главная диагональ табл. 1 содержит 2n клеток. При этом, если исключить клетки главной диагонали, то вся таблица, состоящая из 22n клеток, разобьётся на два равных треугольника, каждый из которых будет содержать по (22n – 2n):2 клеток. Тогда верхний треугольник, содержащий значения булевой функции, будет состоять из клеток, общее число которых соответствует величине S(A1) (22n 2n ):2 22n 1 2n 1. Эта величина и есть оценка вычислительной сложности алгоритма А1.
ЗАДАНИЕ: воспользовавшись статьей [18] (доступен электронный вариант статьи), найти оценки вычислительной сложности (S(A2) – S(A6)) алгоритмов полиномиального преобразования булевых функций А2 – А6, воспользовавшись их табличными интерпретациями (табл. 18 – табл. 22).
БИБЛИОГРАФИЧЕСКИЙ СПИСОК
47
1.Пятибратов А.П. Вычислительные системы, сети и телекоммуникации [Текст] / А.П. Пятибратов, Л.П. Гудыно, А.А. Кириченко. – М.: Финансы и статистика, 2004. – 512 с.
2.Закревский А.Д. Полиномиальная реализация частичных булевых функций и систем [Текст] / А.Д. Закревский, Н.Р. Торопов. – М.: Едиториал УРСС, 2003. – 200 с.
3.Выхованец В.С. Полиномиальная факторизация спектральных базисов [Текст] / В.С. Выхованец //Автоматика
ителемеханика. – 2005. – №12. – С.5-18
4.Hirayama T. Double Fixed-Polarity Reed-Muller
Expressions: A New Class of AND-EXOR Expressions for Compact and Testable Realization / T. Hirayama, K. Nagasawa, Y. Nishitani, K. Shimizu // IPSJ Journal. – 2001. – Vol. 42. –№ 4. –
P.983-991.
5.Акинина Ю.С. Альтернативный подход к обеспечению диагностируемости двухуровневых программируемых пользователем логических матриц [Текст] / Ю.С. Акинина, С.В. Тюрин // Вестник Воронежского государственного технического университета. – 2003. – Вып. 8.3. – С. 31 – 34.
6.Тюрин С.В. Способ тестопригодного проектирования логических преобразователей [Текст] / С.В. Тюрин, С.Л. Подвальный, Ю.С. Акинина // IV Всероссийская Научнотехническая конференция «Проблемы разработки перспективных микро- и наноэлектронных систем 2010»: сб. науч. трудов под общ. ред. А.Л. Спемпковского. – М.: ИППМ РАН. – 2010.
– С. 36-41.
7.Алехина М.А. Об одном методе построения полинома Жегалкина [Текст] / М.А. Алехина, П.Г. Пичугина // Дискретная математика для инженера. – 2006. – № 2. – C. 4951.
8.Акинин А.А. Автоматизация полиномиального разложения булевых функций на основе метода неопределенных коэффициентов [Текст] / А.А. Акинин, Ю.С. Акинина, С.Л. Подвальный, С.В. Тюрин // Системы управления и информационные технологии. – 2011. – Т. 44. – №2. – С. 4-8.
48