- •Содержание
- •Введение
- •1. Функции алгебры логики и их свойства
- •1.1. Функции одной переменной
- •1.2. Функции двух переменных
- •1.4. Обратные и инверсные логические функции
- •1.4.1. Обратные функции
- •Прямое соответствие (рис. 2,а)
- •Обратное соответствие (рис. 2,б)
- •1.4.2. Инверсные функции
- •1.5. Приоритеты операций
- •1.6. Законы и тождества булевой алгебры
- •1.7. Вопросы для самоконтроля
- •2. Формы задания логических функций
- •2.1. Словесная форма
- •2.2. Табличная форма
- •2.3. Задание формулой
- •2.3.1. Совершенная дизъюнктивная нормальная форма
- •Выводы:
- •Правила составления сднф
- •2.3.2. Совершенная конъюнктивная нормальная форма
- •Правила составления скнф
- •2.3.3. Дизъюнктивные и конъюнктивные нормальные формы
- •2.3.4. Минтермы, макстермы и их свойства
- •2.4. Другие формы задания логических функций
- •2.5. Вопросы для самоконтроля
- •3. Функционально полные системы функций
- •Штрих Шеффера
- •Стрелка Пирса
- •Импликация и «0»
- •3.1. Теорема Поста–Яблонского
- •3.1.1. Определение минимального базиса
- •3.1.2. Функции, не сохраняющие 0 и 1
- •3.1.3. Двойственная функция
- •3.1.4. Монотонная функция
- •3.3. Вопросы для самоконтроля
- •4. Минимизация логических функций
- •4.1. Расчетный метод
- •4.1.1. Склеивание
- •4.1.2. Поглощение
- •4.1.3. Развертывание
- •4.2. Карты Карно
- •4.3. Минимизация систем логических уравнений
- •4.4. Частично определенная логическая функция
- •4.5. Вопросы для самоконтроля
- •5. Синтез и анализ логических схем
- •5.1. Схемы на переключателях, диодах и транзисторах
- •5.2. Схемы на логических элементах
- •5.2.1. Реализация функции на элементах и, или, не
- •5.2.2. Реализация функции на элементах и–не
- •5.2.3. Реализация функции на элементах или–не
- •5.3. Анализ схем
- •5.4. Оценка качества схем
- •5.5. Вопросы для самоконтроля
- •6. Булева производная
- •6.1. Контроль работоспособности логических схем
- •6.2. Построение тестов методом булевой производной
- •6.2.1. Свойства булевой производной
- •6.3. Вопросы для самоконтроля
- •7. Примеры преобразований логических функций
- •7.1. Представление логических функций в системе и, или, не
- •7.2. Построение таблиц истинности
- •7.3. Преобразование кнф в днф и днф в кнф Преобразование кнф в днф
- •Преобразование днф в кнф
- •7.4. Доказательства равенства логических функций
- •7.5. Разложение логических функций по переменным
- •7.5.1. Последовательное разложение по всем переменным Разложение по п. 1.6.13 (1)
- •Разложение по п. 1.6.13 (2)
- •7.5.2. Параллельное разложение по всем переменным разложение по п. 1.6.13 (1)
- •Разложение по п. 1.6.13 (2)
- •8. Домашняя работа
- •8.1. Задание
- •8.2. Выполнение
- •Проверить двумя способами эквивалентность формул
- •С помощью эквивалентных преобразований привести формулу к днф, кнф, сднф, скнф, получить полином Жегалкина.
- •С помощью карт Карно найти все минимальные днф функции трех переменных ƒ(X,y,z).
- •С помощью карт Карно найти все минимальные днф и кнф булевой функции четырех переменных , заданной вектором своих значений.
- •Является ли полной система функций? Образует ли она минимальный базис?
- •9. Список литературы
- •Введение в булеву алгебру
- •Гоу впо “Московский государственный университет приборостроения и информатики”
- •107996, Москва, ул. Стромынка, 20
3.1.1. Определение минимального базиса
Рассмотрим на примере системы И, ИЛИ, НЕ удаление «лишних» функций из заданной системы логических функций, т.е. получение минимального базиса.
Обозначим:
– функцию НЕ символом a,
– функцию И символом b,
– функцию ИЛИ символом c.
Отсутствие свойств, заданных табл. 16, обозначим в табл. 17 символом 1.
Таблица 17 |
|||||
Свойства функций, входящих в систему |
|||||
Функция |
Не сохраняющая «0» |
Не сохраняющая «1» |
Не само–двойственная |
Не монотонная |
Не линейная |
а (НЕ) |
1 |
1 |
|
1 |
|
b (И) |
|
|
1 |
|
1 |
c (ИЛИ) |
|
|
1 |
|
1 |
Анализируя табл. 17, отмечаем:
Обеспечить свойство «не сохранять 0» может только функция a. На это указывает символ 1 в графе «Не сохраняющая 0» строки a и отсутствие 1 в этой графе в строках b и c.
Обеспечить свойство «не сохранять 1» может только функция a. На это указывает 1 в графе «Не сохраняющая 1» строки a и отсутствие 1 в этой графе в строках b и c .
Обеспечить свойство «не быть самодвойственной» может функция b или функция c. Помечено символами 1 в строках b и c.
Обеспечить свойство «не быть монотонной» может только функция a. Помечено символом 1 в строке a.
Обеспечить свойство «не быть линейной» может функция b или функция c. Помечено символами 1.
Приняв такие обозначения, условия полноты системы логических функций на основе табл. 17 можно сформулировать следующим образом.
Чтобы система функций была функционально полна, необходимо наличие всех пяти свойств:
1. «не сохранять 0», и
2. «не сохранять 1», и
3. «не быть самодвойственной», и
4. «не быть монотонной», и
5. «не быть линейной».
Используя номера свойств как логические переменные и заменив союз И символом конъюнкции, условие полноты системы функций можно записать так
= «1».
Если в таблице, аналогичной табл. 17, со свойствами функций, входящих в систему, в каком либо столбце нет 1, то это означает, что заданная система логических функций не является полной.
Для выявления «лишних» функций, заменив в рассуждениях союз ИЛИ символом логической операции, а логические функции их обозначениями, запишем условие полноты рассматриваемой системы логических функций в виде формулы
=
= «1»
и проведем ее преобразование
= «1».
Здесь «1» означает «истину».
В
результате преобразований получено
тождество, левая часть которого содержит
исходную формулу, а правая часть
представляет собой дизъюнкцию двух
конъюнкций, содержащих по две переменных.
Правая часть будет равна 1 при равенстве
1 хотя бы одной любой конъюнкции, что
происходит только тогда, когда в строках
таблицы, соответствующих парам функций
(
)
и (
)
имеются 1 во всех пяти столбцах.
Следовательно, в качестве функционально
полной системы можно рассматривать
функции НЕ и И (
)
или НЕ и ИЛИ (
).
Каждая пара этих функций покрывает
единицами все столбцы табл. 17, т.е.
обладает всеми необходимыми свойствами.
Здесь мы рассмотрели типичную задачу о покрытии, которая в общем виде формулируется следующим образом:
Имеется таблица нулей и единиц, содержащая m строк и n столбцов.
Строки имеют имена ai, i = 1,m, столбцы имеют имена bj, j = 1,n.
Требуется определить минимальное число строк (и какие строки), единицы в которых покрывают все столбцы (содержатся во всех столбцах).
Решение этой задачи ищется следующим образом.
Составляется логическая формула в виде конъюнкции n дизъюнкций.
Если дизъюнкций меньше n, то покрытия (решения) не существует.
Каждая дизъюнкция соответствует отдельному столбцу таблицы и состоит из имен строк, имеющих единицы в данном столбце, соединенных символом дизъюнкции.
После раскрытия скобок и минимизации получается дизъюнктивная нормальная форма в виде дизъюнкции конъюнкций. Каждый терм этой формулы представляет решение задачи.
В нашем примере таблица получилась достаточно простой и никаких затруднений работа с ней не вызвала. При решении других задач, например, при построении тестов логических схем методом таблиц функций неисправностей приходится иметь дело с таблицами большой размерности, что заставляет искать средства для их сокращения.
Сокращение таких таблиц (их называют таблицами покрытий) производится из следующих соображений:
Исключаются столбцы, содержащие единицы во всех строках, – эти столбцы будут покрыты в любом случае.
Исключаются строки, не содержащие единиц, – эти строки не покрывают никаких столбцов.
Строка с единицами во всех столбцах – это решение задачи покрытия, поэтому все остальные строки можно исключить.
Из групп одинаковых столбцов оставить только по одному представителю.
Из групп одинаковых строк оставить только по одному представителю.
Строка, в которой в каком–либо столбце имеется единица, единственная в этом столбце, должна войти в решение, так как только она покрывает этот столбец; после ее включения в решение, исключаем другие столбцы, имеющие единицы в этой строке.
Перенося идею предыдущего пункта на множество единиц в столбцах, приходим к возможности исключения столбца j, множество единиц которого покрывает множество единиц столбца i. (Какая либо из строк с единицей в столбце i войдет в решение, но в этой же строке имеется единица и в столбце j.)
Количество единиц в строке может служить мерой ее эффективности. Если единицы какой–либо строки j покрываются единицами строки i, то строку j можно исключить, так как строка i более эффективна.
Если таблицу 16 преобразовать к виду таблицы 17, то окажется, что
– в строках функций f1 и f7 единицы во всех столбцах, следовательно, каждая из них является решением – полной системой функций;
– в строках функций f10, f12 нет ни одной единицы и их можно исключить;
– из пар функций f2 – f4 , f3 – f5, f11 – f13 и f8 – f14 следует оставить по одной функции, так как у функций каждой пары строки одинаковы.
В результате в таблице останется только 8 функций: f0, f4, f5, f6, f9, f13, f14, f15, (см. табл. 18) из которых можно получить 8 полных систем из двух функций.
Вот они: f0 – f13 , f4 – f5, f4 – f9, f4 – f13, f4 – f15 , f5 – f13, f5 – f14 и f6 – f13.
Таблица 18 |
|||||
Свойства функций двух переменных, разбивающие их на классы |
|||||
Функция |
Не сохраняет «0» |
Не сохраняет «1» |
Не само–двойственная |
Не монотонная |
Не линейная |
|
+ |
1 |
1 |
+ |
+ |
|
+ |
1 |
1 |
1 |
1 |
|
1 |
1 |
+ |
1 |
+ |
|
+ |
1 |
1 |
1 |
+ |
|
1 |
+ |
1 |
1 |
+ |
|
1 |
+ |
1 |
1 |
1 |
|
+ |
+ |
1 |
+ |
1 |
|
1 |
+ |
1 |
+ |
+ |
(С учетом «двойников» можно получить 24 полных системы из двух функций двух переменных.)
