Дизъюнктивная и конъюнктивная нормальные формы

Элементарной конъюнкцией называется конъюнкция переменных или их отрицаний, в которой каждая переменная встречается не более одного раза.

Дизъюнктивной нормальной формой (ДНФ) называется формула, имеющая вид дизъюнкции элементарных конъюнкций.

Совершенная ДНФ – это ДНФ, каждая элементарная конъюнкция, которой включает все переменные с отрицанием или без.

Для получения СДНФ по таблице истинности, в ней выделяют строки, в которых функция принимает единичные значения.

Для каждой выделенной строки составляется конъюнкция всех входных переменных, причем сомножитель записывают со знаком инверсии, если переменная принимает в этой строке нулевое значение.

Таким образом, СДНФ функции f содержит ровно столько конъюнкций, сколько единиц в таблице истинности, и все полученные конъюнкции соединяются знаками дизъюнкции. Для каждой функции СДНФ единственна (с точностью до перестановок переменных или конъюнкций).

Конъюнктивной нормальной формой (КНФ) называется логическое произведение элементарных сумм, в каждую из которых аргумент или его отрицание входят один раз.

КНФ также называется совершенной, если каждая элементарная сумма содержит все переменные с инверсией или без.

КНФ может быть получена из таблицы истинности: для каждого набора аргументов на котором функция равна «0» составляют элементарную сумму, причем переменные, значение которых равно «1», записываются с отрицанием.

Пример 8:Составим СДНФ для функции из примера 6.

Рассмотрим алгоритм составления СДНФ:

1. Построить таблицу истинности

2. Выбрать все строки таблицы, в которых f=1.

3. Каждой такой строке поставить в соответствие конъюнкцию всех аргументов.

· При этом аргумент, принимающий значение 0, берем с отрицанием, а значение 1 – без отрицания.

4. Образуем дизъюнкцию всех полученных функций. Количество элементов должно совпадать с количеством единиц логической функции.

Таблицу истинности мы ранее построили, теперь выберем нужные строки и запишем конъюнкции:

x y z F Конъюнкция
-
0
-
0
1
-
-
-

Образуем СДНФ:

Синтез логических схем

Задача синтеза:

· По заданной функции f требуется построить схему, реализующую данную функцию

Этапы синтеза:

1. Составляется таблица истинности;

2. По таблице истинности составляется совершенная дизъюнктивная нормальная форма;

3. Используя карты Карно функция (если возможно) упрощается;

4. Составляем и зарисовываем логическую схему

Пример 9: Составить логическую схему, реализующую функцию из примера 6

Изначально у нас была функция , которую мы упростили до вида при помощи карты Карно .

Для начала определим количество входов логической схемы, число входов определяет число переменных. В нашем случае - 3

Теперь определим количество блоков с схеме:

1. Блок f – дизъюнкция функций f1 и f2

2. Блок f1- конъюнкция переменной z и блока инверсии переменной x

3. Блок f2 – конъюнкция переменной х и блоков инверсии переменной y и переменной z

Анализ логических схем

Задача анализа:

• По заданной схеме требуется определить функцию f, реализующуюся данной схемой.

Этапы анализа:

1. Разбиваем схему на ярусы.

2. Начиная с последнего, выходы каждого элемента обозначаем новыми функциями в зависимости от яруса, к которому относится элемент.

3. Записываем выходные функции каждого элемента в виде формул в соответствии с введенными обозначениями.

4. Производим подстановку одних выходных функций через другие, используя входные переменные.

5. Записываем получившуюся булеву функцию через входные переменные.

Пример 10: По заданной логической схеме составить булеву функцию.

Этапы 1и 2. Согласно приведённой выше последовательности действий, произведём разбиение схемы на ярусы. Пронумеровав получившиеся ярусы, введём обозначения для каждой выходной функции:

Этап 3. Запишем все функции, начиная с 1-го яруса:

Этап 4: Теперь запишем все функции, подставляя входные переменные x1, ..., x4:

В итоге, получим выходную функцию:

Этап 5:

Наши рекомендации