Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Раздел 2-1_А.doc
Скачиваний:
307
Добавлен:
27.03.2016
Размер:
2.19 Mб
Скачать

1.7. Частично определенные функции. Их минимальное доопределение

При конструировании логических устройств зачастую встречаются ситуации, когда у реализуемой ими булевой функции f(хn) на некоторой части наборов переменныххn значения функции не заданы. Обычно так бывает в тех случаях, когда состояния системы, описываемые данными наборами переменных, физически не достижимы либо срабатывание управляющей системы не влияет на производственный процесс. Допустим, необходимо реализовать функцию трех переменных f = (010??001), у которой в векторе истинности на местах с номерами 3 и 4 (соответствующих наборам переменных (011) и (100)) значения не заданы и могут быть выбраны любыми (0 или 1).

Определение. Если значения функции f(хn) не определены на некотором числе p наборов ее переменныххn, то ее называют частично определенной, сокращенно – ЧОФ.

Очевидно, доопределить (то есть присвоить недостающие значения истинности функции  на p неопределенных наборах) можно 2P способами. В рассмотренном выше примере р = 2; 2P = 4. Наборам с номерами 3 и 4 могут быть присвоены значения (00), (01), (10), (11).

Определение. Функция g называется доопределением частично определенной функции , если она совпадает с ней на тех наборах, где  определена.

Например, функция g = (01000001) является одним из 4 возможных доопределений частично определенной функции  = (010??001).

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

Определение. Пусть f(хn) – частично определенная функция. Ее единичным f1(хn) (нулевым f0(хn)) доопределением называют такое доопределение, где на месте неизвестных значений  стоят только единицы (нули).

Допустим, для ЧОФ необходимо построить нормальную форму заданного типа.

Определение. Минимальным доопределением частично определенной функции f называют ее доопределение g, имеющее минимальное число символов переменных, входящих в соответствующую нормальную форму.

Для ДНФ справедлива следующая теорема.

Теорема 2.1.1 о минимальном допределении частично определенной функции.

Минимальная ДНФ ЧОФ f(хn) есть самая короткая дизъюнкция простых наборов единичного доопределения f1(хn), которые в совокупности покрываются всеми единицами нулевого доопределения f0 (хn).

Смысл утверждения теоремы заключается в следующем:

1)наиболее короткие простые наборы {P}1 имеет функция f1(хn) (так как у неё в векторе истинности максимально возможное число единиц),

2) минимально возможное число единиц в векторе значений (которые характеризуются элементарными наборами {N}0) имеет функция f0(хn), поэтому

3) минимальную ДНФ следует выбирать из всех тупиковых ДНФ, у которых простые наборы {P}1 покрываются элементарными наборами {N}0 .

Из теоремы вытекает следующий алгоритм построения минимального дополнения частично определенной функции f(х n):

1. Определяем СДНФ, СкДНФ и простые наборы {P}1 = {P1, ... , Pm }1 единичного доопределения функции f1(хn).

2. Строим элементарные наборы {N}0 = {N1, ..., Nk}0 нулевого доопределения функции f0 (х n) .

3. Формируем матрицу покрытий А простых наборов {P}1 элементарными наборами {N}0 .

4. Строим по единичным элементам столбцов j = 1, …, k матрицы А дизьюнкции Dj и решеточное выражение В = D1 & & Dk.

5. Раскрывая в В все скобки и производя сокращения, находим для заданной ЧОФ все ТДНФ аналогично обычным функциям.

6. Из множества всех ТДНФ выбираем МДНФ, которая будет равна искомому минимальному доопределению g. Неизвестные значения истинности исходной ЧОФ определяем непосредственной подстановкой соответствующих наборов переменных в полученную МДНФ либо по ее полной таблице истинности.

Пример. Найти минимальное доопределение частично определенной функции  = (1?10?1??) .

Решение. Переменные функции обозначим через x, y, z. Применим метод покрытий.

1. Вначале строим СДНФ единичного доопределения 1 = (11101111):

f1 = xy z xy z x y z xy z x y z x yz x y z.

Применяя правила алгоритма Куайна, получаем СкДНФ:

f1 = xy x z y z y z yz xy x z x z x y = xy z .

Простые наборы единичного доопределения 1 следующие: P1 = (х), P2 =(y), P3 = (z), m = 3.

2. Элементарные наборы функции нулевого доопределения f0 = (10100100):

N1 = (x,y,z), N2 = (x, y,z), N3 = (x,y, z), k=3.

3. Матрица покрытий простых наборов Р1, Р2, Р3 функции 1 элементарными наборами N1, N2, N3 функции 0 имеет вид:

N1

N2

N3

Р1

0

0

1

Р2

1

0

1

Р3

1

1

0


4. Решеточное выражение, задающее все варианты вхождения простых наборов в элементарные: В = (2 3) 3  (1 2).

5. Раскрываем скобки: В=(2333)(1 2)=3(1 2)=13 23.

6. В итоге получим две тупиковых ДНФ. В первую входят простые наборы P1 и P3, во вторую – P2 и P3:

1 = х z , 2 = y z.

Поскольку первая функция имеет только одно отрицание, примем её в качестве искомого доопределения g. Столбец истинности ее имеет вид: g = (10101111). Таким образом, в минимальном доопределении на наборах с номерами 1, 4, 6, 7 должны стоять, соответственно, значения 0, 1, 1, 1.

Алгоритмы, аналогичные рассмотренному для ДНФ, могут быть применены и для других форм.

ЗАДАЧИ

1. Найти минимальное доопределение частично определенных функций:

а) (??1011?0); б)(10??011?); в)(?1?011?0); г)(?00??11?); д) (011??1??01??0?1?); е) (?1?110?1?001?10?); ж) (?0011?0?1?0?1?11).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]