Главная   Онлайн инструменты по математической логике   Мат. логика теория   Как считает компьютер?   Схемы для ЭВМ    

Минимизация ДНФ методом Квайна

Определение булевой функции
Элементарные булевы функции
Задание булевых функций посредством элементарных
Существенные и несущественные переменные
Эквивалентные функции
Основные эквивалентности
Функциональная полнота
Нормальные формы
Совершенные нормальные формы
Минимизация ДНФ методом Квайна
Карты Карно
Полином Жегалкина
Высказывания
Предикаты
Кванторы
Определение формальной теории
Исчисление высказываний
Теорема о дедукции. Полнота ИВ
Автоматическое доказательство теорем
Метод резолюций в ИВ
Определение алгоритма
Машина Тьюринга
Рекурсивные функции
Алгоритмически неразрешимые задачи
Алгоритмы и их сложности




     Каждая формула имеет конечное число вхождений переменных. Под вхождением переменной понимается место, которое переменная занимает в формуле. Задача заключается в том, чтобы для данной булевой функции f найти ДНФ, представляющую эту функцию и имеющую наименьшее число вхождений переменных.
     Если х - логическая переменная, а σ∈{0,1}, то выражение

Xσ = {x если σ=1
¬x если σ=0

называется литерой. Конъюнктом называется конъюнкция литер. Например, формулы XY¬Z и XYX¬X являются конъюнктами. Элементарным произведением называется конъюнкт, в который любая переменная входит не более одного раза (либо сама, либо ее отрицание).
     Формула f1 называется импликантой формулы f, если f1 — элементарное произведение и f1&f=f1, т. е. для соответствующих формулам функций справедливо неравенство f1≤f. Импликанта f1 формулы f называется простой, если после отбрасывания любой литеры из f1 не получается формула, являющаяся импликантой формулы f.
     Пример. Найдем все импликанты и простые импликанты для формулы f=X→Y. Всего имеется 8 элементарных произведений с переменными X и Y. Ниже, для наглядности, приведены их таблицы истинности:

XYX→YXY¬XYX¬YXY¬X¬YXY
00100001100
01101001001
10000100110
11110010011

     Из таблиц истинности заключаем, что формулы ¬X¬Y, ¬XY, XY, ¬X, Y — все импликанты формулы x→y, а из этих импликант простыми являются формулы X и Y (формула ¬X¬Y, например, не является простой импликантой, поскольку, отбрасывая литеру ¬Y, получаем импликанту ¬X).
     Сокращенной ДНФ называется дизъюнкция всех простых импликант данной формулы (функции).
     Теорема. Любая булева функция, не являющаяся константой 0, представима в виде сокращенной ДНФ.
     В предыдущем примере функция, соответствующая формулe x>y представима формулой y x ? которая является ее сокращенной ДНФ.
     Сокращенная ДНФ может содержать лишние импликанты, удаление которых не меняет таблицы истинности. Если из сокращенной ДНФ удалить все лишние импликанты, то получается ДНФ, называемая тупиковой.
     Заметим, что представление функции в виде тупиковой ДНФ в общем случае неоднозначно. Выбор из всех тупиковых форм, формы с наименьшим числом вхождений переменных дает минимальную ДНФ (МДНФ).
     Рассмотрим метод Квайна, для нахождения МДНФ, представляющей данную булеву функцию. Определим следующие три операции:
     1. операция полного склеивания:
     fXvF¬X=f(Xv¬X)=f
     2. операция неполного склеивания:
     fXvf¬X=f(Xv¬X)vfXvf¬X=fvfXvf¬X
     3. операция элементарного поглощения:
     fXσvf=f,   σ∈{0,1}
     Теорема (теорема Квайна). Если исходя из СДНФ функции произвести все возможные операции неполного склеивания, а затем элементарного поглощения, то в результате получится сокращенная ДНФ, т. е. дизъюнкция всех простых импликант.
     Пример. Пусть функция f(X,Y,Z) задана совершенной ДНФ ¬XY¬Zv¬XYZvX¬YZvXY¬ZvXYZ. Тогда, производя в два этапа все возможные операции неполного склеивания, а затем элементарного поглощения, имеем:
     f=¬XY(¬ZvZ)vY¬Z(Xv¬X)vYZ(Xv¬X)vX¬Z(¬YvY)vXY(Zv¬Z)v
     v¬XY¬Zv¬XYZvX¬YZvXY¬ZvXYZ=
     =¬XYvY¬ZvYZvX¬ZvXYv¬XY¬Zv¬XYZvX¬YZvXY¬ZvXYZ=
     =Y(¬XvX)vY(Zv¬Z)v¬XYvY¬ZvYZvXZvXYv¬XY¬Zv¬XYZvX¬YZvXY¬ZvXYZ=
     =Yv¬XYvY¬ZvYZvXZvXYv¬XY¬Zv¬XYZvX¬YZvXY¬ZvXYZ=YvXZ
     Таким образом, сокращенной ДНФ функции f является формула YvXZ.
     На практике при выполнении операций неполного склеивания на каждом этапе можно не писать члены, участвующие в этих операциях, а писать только результаты всевозможных полных склеиваний и конъюнкты, не участвующие ни в одном склеивании.
     Пример. Пусть функция f{X,Y,Z) задана совершенной ДНФ
     f=¬X¬Y¬Zv¬X¬YZvX¬YZvXYZ
     Тогда, производя операции склеивания, а затем элементарного поглощения, имеем:
     f=¬X¬Y(¬ZvZ)v¬YZ(Xv¬X)vXZ(¬YvY)=¬X¬Yv¬YZvXZ
     Для получения минимальной ДНФ из сокращенной ДНФ используется матрица Квайна, которая строится следующим образом. В заголовках столбцов таблицы записываются конституенты единицы совершенной ДНФ, а в заголовках строк — простые импликанты из полученной сокращенной ДНФ. В таблице звездочками отмечаются те пересечения строк и столбцов, для которых конъюнкт, стоящий в заголовке строки, входит в конституенту единицы, являющейся заголовком столбца.
     Для примера матрица Квайна имеет вид:

импликанты¬X¬Y¬Z¬X¬YZX¬YZXYZ
¬X¬Y**  
¬YZ ** 
XZ  **

     В тупиковую ДНФ выбирается минимальное число простых импликант, дизъюнкция которых сохраняет все конституенты единицы, т. е. каждый столбец матрицы Квайна содержит звездочку, стоящую на пересечении со строкой, соответствующей одной из выбранных импликант. В качестве минимальной ДНФ выбирается тупиковая, которая имеет наименьшее число вхождений переменных.
     В предыдущем примере по матрице Квайна находим, что минимальная ДНФ заданной функции есть ¬X¬YvXZ.
     Замечание. Для построения минимальной КНФ функции f, достаточно построить минимальную ДНФ для функции f, а затем использовать f=¬(¬f) и законы де Моргана.

@ 2010 - 2017 tablica-istinnosti.ru Рейтинг@Mail.ru