В табл. 26 приведен пример частично определенной логической функции y, с помощью которой сделана попытка закодировать рабочие дни недели информационно–расчетного центра с учетом видов работы.
Прием посетителей производится по понедельникам, вторникам, четвергам и субботам. В среду и пятницу проводится работа с организациями. Воскресенье – выходной день.
Таблица 26
|
| №
| c
| b
| a
| y
| y0
| y1
| y2
| y3
|
|
|
|
|
| *
|
|
|
|
|
Пн
|
|
|
|
|
|
|
|
|
|
Вт
|
|
|
|
|
|
|
|
|
|
Ср
|
|
|
|
|
|
|
|
|
|
Чт
|
|
|
|
|
|
|
|
|
|
Пт
|
|
|
|
|
|
|
|
|
|
Сб
|
|
|
|
|
|
|
|
|
|
Вс
|
|
|
|
| *
|
|
|
|
|
Два набора входных переменных 000 и 111 не используются, т.е. они никогда не будут подаваться на устройство кодирования, поэтому функция y на наборах 0 и 7 может принимать любые значения. В графах y0, y1, y2, y3 табл. 26 показаны все четыре возможных варианта значений этой функции.
Для определения наиболее простого варианта кодирования дней недели проведем минимизацию функций y0, y1, y2, y3 с помощью карт Карно (см. табл. 27, где звездочкой отмечены доопределенные значения функции).
В результате получаем
,
,
,
.
Как видим, y2 оказалась самой простой функцией.
Другой пример частично определенной функции дает логический узел ЭВМ – шифратор, таблица истинности которого приведена в табл. 28.
Таблица 28
Входы СD
| Выходы CD
|
y0
| y1
| y2
| y3
| a
| b
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шифратор (полный) имеет в общем случае 2n входов и n выходов и выполняет преобразование единичных сигналов на отдельных входах в двоичные наборы на выходах. При 2n входах возможно входных наборов, а используется только 2n набора, поэтому функции на выходах шифратора являются частично определенными. Например, при n = 2, когда число входов равно 4 (входы yi), выходные функции a и b определены только на четырех наборах из 16 возможных.
Формулы для выходных функций a и b определяются по картам Карно, показанным в табл. 29 и табл. 30.
В картах Карно не используемые наборы помечены символом *, а в выделенных прямоугольниках символы * заменяются 1.
Таблица 29
a
|
y0y1\y2y3
|
|
|
|
|
| *
|
| 1*
|
|
|
| 1*
| 1*
| 1*
|
| 1*
| 1*
| 1*
| 1*
|
|
| 1*
| 1*
| *
|
Таблица 30
b
|
y0y1\y2y3
|
|
|
|
|
| *
| 1
| 1*
|
|
|
| 1*
| 1*
| 1*
|
| *
| 1*
| 1*
| 1*
|
|
| 1*
| 1*
| 1*
|
Рекомендация: Если имеем дело с частично определенной функцией, то на наборах, на которых функция не определена, можно ставить либо «0», либо «1», и выбирать вариант, при котором функция получается самой простой. Причем заключение о лучшем варианте, как правило, можно сделать непосредственно по картам функций, не составляя выражений для функций.
Вопросы для самоконтроля
1. Какие методы минимизации логических функций Вы знаете?
2. Поясните понятие Склеивание. Приведите пример.
3. Поясните понятия «соседние конъюнкции», «соседние дизъюнкции».
4. Поясните понятие Поглощение. Приведите пример.
5. Поясните понятие Развертывание. Приведите пример.
6. Как получить с помощью развертывания СДНФ?
7. Как получить с помощью развертывания СКНФ?
8. Поясните понятия «конституента единицы» и «конституента нуля».
9. Каков порядок минимизации логических функций, заданных в СДНФ, при расчетном методе?
10. Что такое карта Карно? Как она получается?
11. Как проводится минимизация логических функций с помощью карт Карно?
12. Какие элементы карты Карно являются соседними?
13. Каковы особенности минимизации систем логических уравнений?
14. Каковы особенности минимизации частично определенных функций?