
- •Дискретная математика
- •Глава 1. Элементы теории множеств.
- •1.1. Множества.
- •1.2. Отношения.
- •1.3. Отображение. Функция.
- •Глава 2. Математическая логика
- •2.1. Булевы функции.
- •2.2. Нормальные формы.
- •2.3. Минимизация нормальных форм.
- •2.4. Контактные схемы.
- •2.5. Логика предикатов.
- •2.6. Решение логических задач с помощью булевых функций.
- •Глава 3. Комбинаторика.
- •3.1.Основные правила комбинаторики.
- •3.2.Перестановки.
- •3.3.Размещения.
- •3.4. Сочетания.
- •Глава 4. Теория графов.
- •4.1. Основные понятия теории графов.
- •4.2 . Задача определения кратчайшего пути.
- •4.3. Задача о кратчайшем пути между двумя пунктами.
- •4.4.Построение коммуникационной сети минимальной длины.
- •Задача определения максимального потока.
- •Литература
2.3. Минимизация нормальных форм.
В виду того, что формулы СКНФ и СДНФ довольно громоздки, есть необходимость в их упрощении. Для этого существует алгоритм их минимизации. Но прежде нужно знать некоторые термины.
Функция g называется импликантом для функции f, если из равенства g=1 следует равенство f=1 при одном и том же наборе значений, входящих в них переменных.
Пример: Для функции
импликантом является функция
.
Действительно, при x=0,y=1,z=0,
значения обеих функций равны 1.
Функция
не
является импликантом, т.к. при x=1,y=1,z=0
значения g=1,а f=0.
Импликант называется простым, если отбрасывание любой его переменной приводит к тому, что полученная функция перестает быть импликантом.
Пример:1) проверим импликант на простоту.
При исключении в нем переменной x
получим функцию
,
которая принимает значение 1 при y=1,z=0.
При этом функция f может
принимать и нулевое значение (например,
f(1,1,0)=0).
Исключив переменную y,
получим функцию
,
которая принимает значение 1 при x=0,
z=0. Но при этом f
может принимать и нулевые значения :
f(0,0,0)=0.
Исключив z, получим функцию
,
которая принимает значение 1 при x=0,y=1.
При этом f может в том
числе принимать и нулевое значение (
например,
).
Так как при исключении любой переменной функция перестает быть импликантом функции f, то она является простым импликантом f.
2) Функция
является импликантом для f,
но не является простым, т.к. исключив из
него x, снова получим
импликант для f.
Выделив все простые импликанты и объединив их дизъюнкцией, получим сокращенную ДНФ (сокр. ДНФ f).
Для всякой функции (кроме тождественно-ложной) существует единственная сокращенная ДНФ.
Алгоритм построения сокр. ДНФ:
По таблице истинности построить СКНФ функции f.
В СКНФ раскрыть скобки и удалить дублирующие элементы, используя законы логики.
Пример: для функции f из примера 1 глава 3 построить сокр. ДНФ.
1) из таблицы истинности по известным правилам построили
СКНФf=
;
2) раскрываем скобки, используя законы
умножения и закон коммутативности
(умножать лучше скобки, которые отличаются
одной переменной). Поэтому меняем местами
2-ю и 3-ю скобки:
.
Перемножим сначала 1-ю и 2-ю, затем 4-ю и
5-ю скобки, затем все остальное. Используем
законы:
.
В результате получена сокр. ДНФ f
=
.
Сокр. ДНФ f называется тупиковой (ТДНФ), если из дизъюнкции простых импликантов функции f нельзя отбросить ни одного слагаемого.
ТДНФ f, содержащая минимальное количество переменных и их отрицаний, называется минимальной ДНФ (МДНФ) функции f.
Алгоритм построения ТДНФ и МДНФ функции f:
По таблице истинности строим СДНФ f.
Строим сокр. ДНФ из СКНФ f.
Каждому слагаемому сокр. ДНФ ставим в соответствие свой номер (в любом порядке).
Составляем таблицу покрытий. Слагаемые СДНФ в 1-й строке, слагаемые сокр. ДНФ – в 1-м столбце. Если слагаемое сокр. ДНФ целиком содержится в слагаемом СДНФ, то в клетке на пересечении пишем соответствующий номер из п.3.
Составляем решеточное выражение. В каждом столбце числа соединяем знаком дизъюнкции и окончательно получаем конъюнкцию этих дизъюнкций.
Раскрываем скобки конъюнкции, используя закон поглощения.
Заменяем номера на соответствующие слагаемые сокр. ДНФ. Полученное выражение называется ТДНФ.
ТДНФ с минимальным числом переменных и их отрицаний являются МДНФ функции f.
Пример: Построить ТДНФ и МДНФ для f из примера 1 гл.3.
Из предыдущих примеров СДНФ
Сокр. ДНФ f = .
Строим таблицу покрытий:
-
(1)
1
(2)
2
2
Решеточное выражение равно:
=ТДНФ.
Поскольку в решеточном выражении
слагаемое одно, то ТДНФ является и МДНФ
функции f.
Для построения минимальной
конъюнктивной нормальной формы (МКНФ)
функции f нужно построить
МДНФ функции
и в полученной МДНФ заменить знак
на знак
и наоборот, а над каждой переменной
поставить знак отрицания. Это и будет
МКНФ функции f.
Для получения минимальной нормальной формы (МНФ) функции f строят все МДНФ и МКНФ . Из них выбирают форму с наименьшим числом переменных и отрицаний переменных. Это и есть МНФ функции f.
Задачи.
Показать, что для функции f из примера (*) функция y= является импликантом.
Для функции из задачи 1 главы 3 построить сокращенную ДНФ.
Используя данные предыдущей задачи построить тупиковую и минимальную ДНФ функции f.
Используя данные задачи 2 построить минимальную КНФ функции f.
Построить минимальную нормальную форму функции f из примера (*).