домашняя библиотека
Поиск в библиотеке
Навигация по предметам
Последние добавленные новости
Реклама

Дискретная математикаДискретная математика – пособие (Часть 5 из 5). Алгебра логики

4.6. Совершенная дизъюнктивная нормальная форма

 

Как уже указывалось, логическая функция n-переменных f(x1, x2, ..., xn) может быть задана таблицей истинности, в которой значение функции fi принимает значение 0 или 1.

Логическую функцию n аргументов, которая принимает значение, равное единице, только на одном наборе аргументов называют конституентой единицы. Конституенту единицы выражают через логическое произведение (конъюнкцию) всех аргументов xi, каждый из которых входит в это произведение со знаком инверсии (отрицания), если xi = 0, или без него, если xi =1.

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

СДНФ функции f содержит ровно столько конъюнкций, сколько единиц в таблице истинности f ; каждому единичному набору (x1, x2, ..., xn) соответствует конъюнкция всех переменных, в которой xi взято с отрицанием, если xi = 0, и без отрицания, если xi = l. Таким образом, существует взаимно-
-однозначное соответствие между таблицей функции
f(x1, x2, ..., xn) и ее СДНФ, и, следовательно, СДНФ для всякой логической функции единственна (точнее, единственна с точностью до порядка букв и конъюнкций: это означает, что ввиду коммутативности дизъюнкции и конъюнкции, формулы, получаемые перестановкой конъюнкций и букв в конъюнкции, не различаются и считаются одной и той же СДНФ).

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

Из сказанного выше следует, что всякая логическая функция может быть представлена булевой формулой, т.е. как суперпозиции конъюнкции, дизъюнкции и отрицания.

Действительно, для всякой функции, кроме константы 0, таким представлением может служить ее СДНФ. Константу 0 можно представить булевой формулой`хх.

Пример 4.2.

Представим в совершенной дизъюнктивной нормальной форме функцию штрих Шеффера из табл. 4.3: f14(x,y) = x | y.

Таблица 4.4

Номер набора аргументов (i)

Значения аргументов

Значение функции fi (x,y)

Конституенты единицы Ki

yi

xi

0

0

0

 

f0 = 1

 

K0 =`x`y

1

0

1

 

f1 = 1

 

K1 =`x  y

2

1

0

 

f2 = 1

 

K2 = x`y

3

1

1

 

f3 = 0

 

K3 = x y

Подставив конституенты единицы через конъюнкцию аргументов, получим

Таким образом, для того чтобы записать совершенную дизъюнктивную нормальную форму логической функции, необходимо выбрать те наборы аргументов, на которых логическая функция принимает значение 1. Представить каждый такой набор в виде произведения всех переменных, заменив в наборах значения 1 на значение соответствующей переменной, а значение 0 – на инверсное (отрицание), и соединить эти логические произведения переменных знаками дизъюнкции. Это правило еще называют правилом записи логической функции по единицам.

 

4.7. Совершенная конъюнктивная нормальная форма

Если рассматриваемая логическая функция n-переменных принимает значение 1 на большинстве из 2n наборов аргументов, то ее представление в совершенной дизъюнктивной нормальной форме будет достаточно громоздким. В этих случаях удобнее использовать другую форму представления логической функции – совершенную конъюнктивную нормальную форму (СКНФ). Для представления логической функции в СКНФ используется понятие конституенты нуля.

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

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

То есть чтобы записать конституенту нуля, равную нулю на i-том наборе переменных, следует в дизьюнкции всех аргументов расставить отрицания над теми переменными, которые в этом наборе принимают значения, равные единице. Таким образом, в конституенте нуля отрицания ставятся над теми переменными, над которыми в конституенте единицы с тем же индексом отрицания нет.

В связи с тем, что число различных наборов от n переменных равно 2n, число различных конституент нуля равно 2n.

Обозначим конституенты нуля буквой Z с индексом, равным номеру набора, на котором конституента обращается в нуль.

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

Любая логическая функция n-переменных f(x1, x2, ..., xn) (кроме константы 1) может быть представлена в совершенной конъюнктивной нормальной форме:

При этом любая логическая функция имеет единственную совершенную конъюнктивную нормальную форму.

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

Пример 4.3.

Представим в совершенной конъюнктивной нормальной форме функцию стрелка Пирса из табл. 4.3: f8(x,y) = x ¯ y.

Таблица 4.5

Номер набора

аргументов (i)

Значения аргументов

Значение функции fi (x,y)

Конституенты нуля Zi

yi

xi

0

0

0

 

f0 = 1

 

Z0 = x Ú y

1

0

1

 

f1 = 0

 

Z1 =x Ú`y

2

1

0

 

f2 = 0

 

Z2 =`x Ú y

3

1

1

 

f3 = 0

 

Z3 =`x Ú`y

 

Таким образом, для того чтобы записать совершенную конъюнктивную нормальную форму логической функции, необходимо выбрать те наборы аргументов, на которых логическая функция принимает значение 0. Представить каждый такой набор в виде логической суммы всех n переменных, заменив в наборах значение 1 на инверсное значение соответствующей переменной, а значение 0 – на прямое значение соответствующей переменной, и соединить эти логические суммы переменных знаком конъюнкции. Это правило называют правилом записи логической функции по нулям.

Пример 4.4.

Представим функцию штрих Шеффера в СДНФ и СКНФ.

Таблица 4.6

Номер набора аргументов (i)

Значения аргументов

Значение функции fi (x,y)

Конституенты единицы Ki

Конституенты нуля Zi

yi

xi

0

0

0

 

f0 = 1

 

K0 =`x`y

 

Z0 = x Ú y

1

0

1

 

f1 = 1

 

K1 =`x  y

 

Z1 =x Ú`y

2

1

0

 

f2 = 1

 

K2 = x`y

 

Z2 =`x Ú y

Продолжение таблицы 4.6

3

1

1

 

f3 = 0

 

K3 = x y

 

Z3 =`x Ú`y

СДНФ ® f14(x,y) = f0 × K0 Ú f1 × K1 Ú f2 × K2 Ú f3 × K3 = 1× K0 Ú 1× K1 Ú 1× K2 Ú 0× ×K3 = K0 Ú K1 Ú K2 =`x`y Ú`x y Ú x`y.

СКНФ ® f14(x,y) = (f0 Ú Z0) × (f1 Ú Z1) × (f2 Ú Z2) × (f3 Ú Z3) = (1Ú Z0) × (1 Ú Z1) × ×(1 Ú Z2) × (0 Ú Z3) =1×1×1×Z3 = Z3 = `x Ú`y.

Получаем эквивалентные выражения для функции f14 штрих Шеффера:

f14(x,y) = `x`y Ú`x y Ú x`y = `x Ú`y.

   
 
  • Добавлен: 19-09-2010, 23:47 | Просмотров: 20933

    support: admin@sdb.su