Нормальные формы логических функций
Определение. Полной конъюнкцией n переменных называется конъюнкция состоящая из n переменных или их отрицаний, в которой каждая переменная встречается только один раз.
Например, x1 2 x3, 1 x2 3 - полные конъюнкции трех переменных.
Определение. Совершенной дизъюнктивной нормальной формой (СДНФ) логической функции называется формула, представляющая данную функцию, и имеющая вид дизъюнкции полных конъюнкций, которые формируются для наборов переменных при которых функция равна 1.
Для функции n переменных СДНФ имеет вид:
f( x1,x2,…,xn ) = x x … x , (1.7)
где s – равно значению переменной x в любом наборе значений переменных, для которого значения функций равно 1, причем
для любой логической функции существует единственное представление ее в виде (1.7). Покажем, как найти СДНФ на следующем примере.
Пример. Представить функцию f( x1,x2,x3 ), заданную табл. 1.15 в СДНФ.
Таблица 1.15
x1 | x2 | x3 | f |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
Из табл.1.15 видно, что f( x1,x2,x3 ) = 1 будет для второй, третьей, пятой и восьмой строк.
Для второй строки x1 = 0, x2 = 0, x3 = 1,
поэтому s1 = 0, s2 = 0, s3 = 1.
Значит, полная конъюнкция для второй строки будет иметь вид:
= x1º x2º x3¹ = x3.
Для третьей, пятой и восьмой строк полные конъюнкции соответственно будут имеет вид:
x1º x2¹ x3º , x1¹ x2º x3º , x1¹ x2¹ x3¹ .
Тогда согласно (1.7) СДНФ данной функции будет иметь вид:
f( x1,x2,x3 ) = x3 x2 x1 x1 x2 x3.
Определение. Полной дизъюнкцией n переменных называется дизъюнкция состоящая из n переменных или их отрицаний, в которой каждая переменная встречается только один раз.
Например, x1 x3, x2 x3 - полные дизъюнкции трех пере-менных.
Определение. Совершенной конъюнктивной нормальной формой (СКНФ) логической функции называется формула, представляющая данную функцию, и имеющая вид конъюнкции полных дизъюнкций, которые формируются для наборов переменных при которых функция равна нулю.
Для функции n переменных СКНФ имеет вид:
f( x1, x2, …, xn ) = & ( ), (1.8)
f(s , …, s )=0
где i – равно противоположному значению переменной xi , в любом наборе перемен-
ных, для которого значение функции равно нулю.
для любой логической функции существует единственное представление ее в виде (1.8). Покажем, найти СКНФ на следующем примере.
Пример. Представить функцию f( x1, x2, x3 ), заданную табл. 1.15 в СКНФ.
Из табл.1.15 видно, что f( x1, x2, x3 ) = 0 будет для первой, четвертой, шестой и седьмой строк.
Для первой строки x1 = 0, x2 = 0, x3 = 0,
поэтому = 1, = 1, = 1.
Следовательно, полная дизъюнкция для первой строки будет иметь вид:
= x1¹ x2¹ x3¹ = x1 x2 x3.
Для четвертой, шестой и седьмой строк полные дизъюнкции соответственно будут иметь вид:
x1¹ x2º x3º , x1º x2¹ x3º ,
x1º x2º x3¹ .
Тогда согласно (1.8) СКНФ данной функции будет иметь вид:
f( x1, x2, x3 ) = ( x1 x2 x3 )( x1 2 3 )( 1 x2 3 )( 1 2 x3 ).
Переход от СДНФ к СКНФ
Этот переход можно сделать по следующему правилу:
1) Образовать логическую сумму дизъюнктивных членов, не входящих в СДНФ функции;
2) В полученном выражении заменить символы дизъюнкций на символы конъюнкций и наоборот, аргументы xi на их отрицания , а на .
Пример. Для данной функции
f( x1,x2,x3 ) = 1 x2 3 x1 2 x3 x1 x2 3,
представленной в форме СДНФ, составить СКНФ.
Обозначим через Кi полную конъюнкцию трех переменных для i-ой строки таблицы задания функции.
Например, для второй строки К2 = x1º x2º x3¹ = .
Тогда заданную функцию можно записать в следующем виде:
f( x1, x2, x3 ) = x1º x2¹ x3º x11 xº2 x13 x11 x12 xº3 = K3 K6 K7.
Образуем логическую сумму дизъюнктивных членов, не входящих в СДНФ функции. Эта сумма будет иметь вид:
K1 K2 K4 K5 K8 = x1º xº2 xº3 xº1 xº2 x13 xº1 x12 x13 x11 xº2 xº3 x11 x12 x13=
= x3 x2 x3 x1 x1 x2 x3.
Меняя в данном выражении символы на & и наоборот, а аргументы на их отрицания и наоборот, получим искомую СКНФ для заданной функции:
f( x1,x2,x3 ) = ( x1 x2 x3 )( x1 x2 )( x1 )( x2 x3 )( ).
Переход от СКНФ к СДНФ
Этот переход осуществляется аналогично по следующему правилу:
1) Образовать логическое произведение конъюктивных членов, не входящих в СКНФ функции.
2) В полученном выражении нужно заменить символы & на , на &, аргументы xi на , на xi.
Пример. Для функции предыдущего примера составить СДНФ по найденной СКНФ.
Обозначим через Di полную дизъюнкцию для i-ой строки таблицы задания данной функции.
Например, для третьей строки таблицы значения переменных ( 0,1,0 ). Следовательно, 1 = 1, 2 = 0, 3 = 1.
Тогда полная дизъюнкция для третьей строки будет такая:
D3 = = x1 2 x3.
Учитывая сделанное обозначение, запишем найденную в предыдущем примере СКНФ в следующем виде:
f(x1,x2,x3) = (x1¹ x2¹ x3¹)( x1¹ x2¹ x3º )( x1¹ x2º x3º )( x1º x2¹ x3¹ )( x1º x2º x3º).
Учитывая, что верхние индексы при переменных в этом выражении, согласно (1.8) равны противоположному значению переменной, то получим следующие наборы значений переменных, входящие в это выражение:
( 0, 0, 0 ), ( 0, 0, 1 ), ( 0, 1, 1 ), ( 1, 0, 0 ) и ( 1, 1, 1 ).
Эти наборы переменных соответствуют 1, 2, 4, 5 и 8 строкам таблицы задания функции. Следовательно, СКНФ функции можно переписать так:
f( x1,x2, x3 ) = D1∙ D2 ·D4 ·D5 ·D8.
Из этой записи видно, что в СКНФ не входят полные дизъюнкции 3, 6 и 7 строк.
Образуем логическое произведение из этих дизъюнкций:
D3∙D6 D7 = ( x1¹ x2º x3¹ )( x1º x2¹ x3º )( x1º x2º x3¹ ) =
= ( x1 2 x3 )( X )( 2 x3 ).
Меняя в этом выражении & на , на & а аргументы на их отрицания и наоборот, получим СДНФ для заданной функции:
f( x1, x2,x3 ) = x2 3 x1 2 x3 x1 x2 3.
Сравнивая это выражение с СДНФ функции предыдущего примера, видим, что они одинаковые, что и должно быть т.к. f( x1,x2,x3 ) – одна и та же для этих примеров.
Определение. Дизъюнктивной нормальной формой (ДНФ) логической функции называется дизъюнкция разных конъюнкций, которые не все являются полными.
Например, f( x,y,z) = x x z x z y.
Любую ДНФ можно привести к СДНФ “ расщеплением” конъюнкций, которые не являются полными.
Пример. Привести к СДНФ следующую ДНФ функции: x y x z.
В данной ДНФ конъюнкция xy не является полной, т.к. не содержит переменной z . Учитывая, что z = 1 преобразуем ДНФ следующим образом:
xy(z ) x z = xyz xy x z.
Полученная форма и есть искомая СДНФ.
Yandex.RTB R-A-252273-3
- Двузначная логика ………………………………………………5
- 2.5. Полнота и замкнутость……. ……………………………………….........50
- Комбинаторика…………………………………………………….87
- 1. Двузначная логика
- 1.1. Функции алгебры логики
- 1.2. Суперпозиция и формулы алгебры логики
- 1.3. Булева алгебра
- 1.4. Алгебра Жегалкина
- Нормальные формы логических функций
- Приведение логической формулы к днф
- Приведение днф функции к кнф
- Приведение кнф функции к днф
- 1.6. Минимизация функций
- 1.7. Полнота и замкнутость
- Закон двойственности
- 2.1. Элементарные функции
- 2.2. Основные свойства элементарных функций
- 2.3. Основные формы функций k – значных логик
- 2.4. Представление функций полиномами
- 2.5. Полнота и замкнутость
- 3. Элементы теории графов
- 3.1. Способы задания графов
- 3.2. Изоморфизм. Плоские графы. Реализуемость в r
- 3.3. Пути. Цепи. Циклы. Расстояния
- 3.4. Подграфы. Связность
- 3.5. Поиск путей в графах и минимальных путей в орграфах
- 3.6. Деревья и леса
- 3.7. Взвешенные графы
- Алгоритм Форда-Белмана.
- 4. Комбинаторика
- 4.1. Мощность множества. Правила суммы, произведения, степени
- 4.2. Размещения. Перестановки. Сочетания
- 4.3. Производящие функции