Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
матлог / avtomat / GLAVA-1.doc
Скачиваний:
61
Добавлен:
16.04.2015
Размер:
924.16 Кб
Скачать

1.19

Глава 1. Реализация конечных функциональных преобразователей

Целью главы является ознакомление с систематическим подходом к построению комбинационных схем - преобразователей, реализующих функциональное отображение конечных множеств, и математическими основами этого подхода: теорией двоичных (булевых) функций и ее обобщением - булевой алгеброй. В результате изучения материала этой главы читатель должен освоить:

  • основы теории булевых функций, свойства и методы преобразования таких функций;

  • теорию базисов булевых функций и методы представления функций в различных базисах;

  • простейшие методы минимизации булевых функций;

  • методы представления булевых функций.

Содержание главы 1:

1.1 Постановка проблемы

1.2 Булевы функции

  1. Свойства булевых функций

  2. Нормальные формы представления булевых функций

Преобразование в нормальную форму

1.5 Реализация булевых функций

  1. Минимизация булевых функций

  2. Функциональная полнота

Алгебра Жегалкина и линейные функции

Замкнутые классы булевых функций

Теорема Поста

  1. Формы представления булевых функций

Семантические деревья

Бинарные диаграммы решений (Binary Decision Diagrams)

1.9 Булевы алгебры

Задачи

ЛИТЕРАТУРА

  1. Постановка проблемы

В данной главе рассматриваются проблемы построения преобразователей информации. Пусть А - некоторое множество элементов информации, представленных тем или иным образом, В - другое множество элементов информации, а Ф - функция преобразования. Преобразователь информации можно представить себе схематически как устройство, реализующее отображение Ф:AB одного множества на другое (рис.1.1, а). Мы рассмотрим систематические методы построения таких преобразователей. Трудно предложить какое-то решение в общем случае, когда множества А и В имеют произвольную природу, а о самом отображении Ф ничего не известно. Однако, если множества А и В являются конечными (т.е. преобразователь, который мы хотим построить, является “конечным функциональным преобразователем”), существует систематический метод решения этой проблемы, состоящий в том, что элементы множеств А и В предварительно кодируют двоичными кодами и строят преобразование одного множества двоичных векторов в другое (рис.1.1, б).

Двоичное кодирование состоит просто во взаимно однозначном сопоставлении всем элементам конечного множества некоторых двоичных векторов одной и той же длины. При таком подходе проблема реализации преобразователя Ф сводится к построению трех преобразователей: кодировщика К:АХ, собственно функционального преобразователя F:ХУ и декодировщика D:YB, причем эти отображения должны быть выбраны так, что КFD=Ф (рис.1.1, б). Рассмотрим проблемы построения этих трех преобразователей поочередно.

Рис 1.1. Реализация конечного функционального преобразователя

Число двоичных векторов длины n равно 2n, и если все элементы множества S закодировать двоичными векторами одной и той же длины n, то для однозначности кодирования n должно быть не меньше, чем log2|S|. Пусть m и n - длины двоичных векторов для кодирования соответственно множеств А и В входных и выходных информационных элементов конечного функционального преобразователя Ф. Тогда кодирование - это построение некоторого отображения К:А{0, 1}m, декодирование - построение отображения D:{0, 1}nB, а функциональное отображение F сопоставляет каждому вектору из :{0, 1}m некоторый вектор из {0, 1}n, причем так, чтобы КFD=Ф.

Пример 1.1. Пусть множество А={a1, a2, a3, a4, a5}, a множество B={b1, b2, b3 }, и отображение Ф задается таблицей 1.1.

Тaблица 1.1

Ф:AB

А

В

a1

b2

a2

b3

a3

b2

a4

b1

a5

b2

Понятно, что в данном примере m должно быть не меньше 3, n должно быть не меньше 2. Мы можем выбрать произвольно функции кодирования и декодирования (например, Таблицы 1.2 и 1.4). Отображение F строим таким образом, чтобы соотношение КFD=Ф выполнялось:

Устройство кодирования должно преобразовать элементы информации множества А заданной природы в двоичные вектора (представленные тем или иным удобным нам способом), причем преобразование это должно быть взаимно однозначно. Аналогично, устройство декодирования должно преобразовать двоичные вектора (представленные тем или иным способом) в элементы информации множества В. Проблема построения конечного функционального преобразователя теперь сводится к реализации произвольного преобразователя F:{0, 1}m{0, 1}n, который может быть задан, например, таблично, поскольку исходное множество А конечно.

Проблема построения произвольного преобразователя F:{0, 1}m{0, 1}n имеет более четкую математическую формулировку, однако решить ее непросто. Для упрощения решения этой проблемы удобен следующий простой прием: вместо одной функции F:{0, 1}m{0, 1}n построить n функций fi:{0,1}m{0,1} так, что реализация совокупности этих более простых функций даст искомый преобразователь F. Этот прием представлен на рис.1.1, в). На рис. 1.1, г) функции fi выделены явно.

Определение 1.1 Функции вида f:{0, 1}m{0, 1}, сопоставляющие двоичным векторам двоичные значения, называются двоичными (или булевыми) функциями.

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

Соседние файлы в папке avtomat