Конечные функциональные преобразователи
Конечные функциональные преобразователи
Пусть
А – некоторое множество элементов информации, представленных тем или иным образом;
В – другое множество элементов информации;
Ф – функция преобразования.
Преобразователь информации можно представить себе схематично как устройство, реализующее отображение Ф:А→В одного множества в другое.
Решение задачи построения таких преобразователей для множеств А и В произвольной природы достаточно трудное, т.к. о самом отображении Ф ничего
Ф |
В |
А |
не известно. Однако, если А и В являются конечными (т.е. преобразователь, который хотим построить, явлется «конечным функциональным преобразователем») и дискретными (т.е. преобразования осуществляются в дискретные моменты времени), существует систематический метод решения этой задачи. Он состоит в том, что элементы множеств А и В предварительно кодируют двоичными кодами и строят преобразование одного множество двоичных векторов в другое.
При таком подходе проблема реализации преобразователя Ф сводится к построению 3-х преобразователей:
К: А→Х – кодировщика;
F: X→Y – функционального преобразователя;
D: Y→B - декодировщика.
Причём отображения К, F, D должны быть выбраны так, чтобы реализовывать Ф, т.е. КºFºD=Ф.
K |
Х |
А |
F |
Y |
D |
B |
. . . |
. . . |
Двоичное кодирование состоит во взаимно однозначном сопоставлении всем всем элементам коне- исло элементов множествачного множества некоторых двоичных векторов одной и той же длины.
Если - число элементов множества А, - число векторов длины , то для однозначности кодирования .
Предположим, что , , тогда и - длины двоичных векторов для кодирования множеств А и В соответственно. Если Ф:А→В, то проблема реализации преобразователя Ф сводится к построению:
- устройства кодирования
,
которое взаимно однозначно преобразовывает элементы информации множества А в двоичные вектора длины ;
- функционального преобразователя
;
- устройства декодирования
,
которое взаимно однозначно преобразовывает двоичные векторы длины в элементы информации множества В.
Таким образом, проблема построения конечного функционального преобразователя Ф сводится к реализации произвольного преобразователя , который может быть задан, например, таблично.
Пример. Пусть , . Отображение Ф:А→В задано таблицей
А | |||||
В |
В этом случае , , следовательно, , . Произвольно выбираем функции кодирования и декодирования:
А | |||||
В | — |
Отображение F строим таким образом, чтобы отношение КºFºD=Ф выполнялось.
А | В | ||
— | — | — | |
— | — | — | |
— | — | — |
В результате, проблема построения произвольного преобразователя теперь имеет более чёткую математическую формулировку. Для решения этой задачи используют следующий приём: вместо одной функции строят 2 булевы функции , , таким образом, чтобы реализациясовокупности этих более простых функций давала искомый преобразователь . Для рассматриваемого примера имеем:
— | — | |
— | — | |
— | — |
Схема отображения имеет три двоичных входа и два двоичных выхода:
F |
f2 |
x |
y |
z |
f1 |
Здесь и неполностью определённые булевы функции, которые представляют соответствующие разряды результата отображения . чтобы найти минимальные ДНФ этих фунций надо заменить их подходящими полностью определёнными булевыми функциями. Для этого используют карты Карно для и , в которых неопределённые значения заменяют 0 или 1, чтобы покрыть таблицы минимальным числом максимальных прямоугольников и получить минимальные ДНФ уже определённых функций.
Для функции имеем:
.
Для функции получим:
.
Система полностью определённых булевых функций есть отображение .