Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Учебное пособие 800647

.pdf
Скачиваний:
4
Добавлен:
01.05.2022
Размер:
12.84 Mб
Скачать

Известно [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