Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Diskretnaya_matematika.pdf
Скачиваний:
1253
Добавлен:
12.03.2015
Размер:
2.47 Mб
Скачать

72

f(x1, x2,…, xn)=

&

( x1−a1

x1−a2

… x1−an )

( a1

,a2 ,...,an ),

1

2

n

 

 

 

f ( a1

,a2 ,...,an )=0

 

 

 

называется совершенной конъюнктивной нормальной формой (с.к.н.ф.) для f.

Очевидно, что совершенная к.н.ф. (с.к.н.ф.) определяются в терминах, двойственных к с.д.н.ф.

С.к.н.ф. функции f(x1,x2,…,xn), очевидно, является к.н.ф. этой функции, удовлетворяющая следующим условиям:

-нет одинаковых множителей;

-в каждый множитель входят все переменные x1,x2,…,xn один и только один раз (и только они) с отрицанием, либо без отрицания.

С.к.н.ф. для функции f можно построить по таблице истинности этой функции. Для этого выбираем строки, где f=0. Для каждой строки, где f=0, строим конституенту нуля K0 следующим образом. Если в выбранной строке переменная xj принимает значение 1, то в K0 она входит с отрицанием, если xj=0, то xj входит в K0 без отрицания. Конъюнкция построенных конституент нуля и будет с.к.н.ф.

Пример. Для функции f(x,y,z) предыдущего примера найдем с.к.н.ф. Нужно выбрать строки, где f=0. Это строки с номерами: 4, 6 и 7. В результате получим с.к.н.ф.:

(x y z)&( x y z)&( x y z).

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

формула А тавтология и с.к.н.ф. не существует.

 

12.

Полином Жегалкина

 

 

Теорема 3.16 (Жегалкина). Любую булеву функцию f(х1, х2,...,хn) можно

единственным образом представить в виде:

 

f(x1, x2, ..., xn)=а0

+ а1&x1 +a2&x2+...+аn&xn +

аn+1&x1&x2+

аn+2&x1&x3+…+am&x1&xn+аm+1&x1&x2&x3+...+аr&xn-2&xn-1&xn+

...+

аk&x1&x2&...&xn,

 

 

где ai (0 ik) являются постоянными, равными нулю или единице. Правая часть записанного равенства называется полиномом Жегалкина.

Доказательство. Если функция тождественно равна нулю, то, очевидно, f(x1, x2,..., xn)=а0, а0 = 0. Пусть f(x1,x2,..., xn) не тождественно равна нулю. Рассмотрим сумму всех собственных конституент единицы функции:

73

 

К1 + К2 +... +Кs.

(3.21)

Покажем, что сумма (3.21) представляет нашу функцию. Пусть f(b1, b2,...

bn)= 1, тогда на наборе (b1, b2,..., bn) одна из собственных конституент единицы принимает значение 1, положим, Кj. Остальные собственные конституенты единицы на этом наборе равны нулю. Тогда сумма (3.21) обращается в единицу. Если f(b1, b2,..., bn)=0, то на наборе (b1, b2,..., bn) все собственные конституенты Кi (1≤ i≤ s) обращаются в нуль, следовательно, и сумма (3.21) тоже равна нулю. Итак, доказано, что

f(x1, x2,..., xn) ~ К1 + К2 +... +Кs.

Вконституентах единицы исключим отрицание, используя соотношение:

x ~1+ x.

Появившиеся при этом скобки раскроем, используя дистрибутивность конъюнкции относительно сложения по модулю два. Далее приведем подобные члены, используя соотношения: x + x +...+ x ~ 0, когда имеем четное число слагаемых, и x + x +...+ x ~ x, когда имеем нечетное число слагаемых.

В результате получим требуемый полином Жегалкина.

Теперь докажем единственность. Максимальное возможное число слагаемых в полиноме Жегалкина равно числу подмножеств множества {x1, x2,..., xn}, следовательно, равно 2n. Различные полиномы Жегалкина получаются, если некоторые аi = 0, другие аj = 1. Таким образом, число

полиномов Жегалкина равно 22n . Число различных булевых функций от n

переменных, как известно, тоже равно 22n , причем каждая функция (по доказанному) имеет свой полином. Отсюда и следует единственность полинома Жегалкина для данной функции.

§ 13. Сокращенные дизъюнктивные нормальные формы

Прежде чем ввести сокращенные дизъюнктивные нормальные формы (сокращенные д.н.ф.), проведем вспомогательные рассуждения.

Импликантой булевой функции f называется булева функция ϕ, которая обращается в нуль на всех тех наборах значений аргументов, на которых равна нулю функция f. Обозначение ϕ f применяется для высказывания: «функция ϕ является импликантой функции f», если ϕ не импликанта для f, то записываем: ϕ f. Если ϕ f, то всюду, где f принимает значение 0, функция ϕ тоже принимает значение 0, там же, где f принимает значение 1, ϕ может быть как 0, так и 1. Следовательно, функция ϕ имеет не меньшее количество значений 0, чем функция f.

74

Пример. Легко убедиться, что функция f(x,y)=x&y является импликантой для f(x,y)=x≡ y. Также легко видеть, что функция x y - импликанта для f(x,y,z)=( y x) z.

Функция ϕ(x,y)=x не является импликантой для f(x,y)=x&y, ибо f(1,0)=0,

а ϕ(1,0)=1.

Очевидно, что функция, тождественно равная нулю (противоречие), является импликантой каждой булевой функции. Также очевидно, что каждая булева функция является импликантой функции, тождественно равной единице (тавтологии).

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

Простыми импликантами булевой функции f называются такие элементарные произведения, которые сами являются импликантами функции f, но никакая собственная часть этих произведений не является импликантой этой функции. Например, если:

x&y&z& t f(x,y,z,t), y&z f(x,y,z,t), y f(x,y,z,t), z f(x,y,z,t),

то y&z будет простой импликантой функции f(x,y,z,t).

Выясним, как найти импликанты и простые импликанты для заданной функции f(x1,x2,...,xn). Ясно, что можно рассмотреть все функции от переменных x1,x2,...,xn и среди них выделить импликанты и простые импликанты для функции f. Этот метод громоздкий и требует большого счета. Другой метод заключается в следующем.

Построим для f(x1,x2,...,xn) таблицы истинности. Если f тождественна равна нулю, то ее импликантой является только функция, тождественно равная нулю. Если f тождественно равна единице, то любая булева функция - импликанта для нее. Пусть f не тождественно равна нулю, тогда она обращается в единицу, например, в строках k1 ,k2 ,...,ks таблицы истинности. Для каждой из этих строк построим собственные конституенты единицы функции f. По построению каждая собственная конституента единицы Кi равна единице на наборе значений аргументов, записанных на ki-й строке, где f =1 и Кi = 0 на всех остальных наборах, в частности, и там, где f = 0.

Следовательно, каждая собственная конституента единицы функции f является импликантой для нее.

Далее для каждой из строк с номерами m1,m2,...,mr (r=2n - s), отличными от k1,k2,...,ks, построим по тем же правилам, что и ранее, конституенты единицы К'j (1≤ j≤ r). Каждая такая конституента К'j обращается в 1 на наборе, записанном в строке mj, а функция f при этом равна 0, следовательно, ни одно из К'j не является импликантой для f.

Таким образом, только собственная конституента единицы Кi (1≤ i≤ r) функции f является импликантой для f, и эта собственная конституента сама

75

либо ее некоторая часть является простой импликантой для f. Отсюда следует, что каждая простая импликанта совпадает с одной из собственных конституент единицы функции f или является частью какой-либо из этих конституент. Поэтому, чтобы найти простые импликанты для f, можно рассматривать собственные конституенты единицы функции, всевозможные их части и среди них отыскивать простые импликанты. Данный способ тоже громоздкий. Существуют и другие методы, один из них (метод Квайна) рассмотрим в следующем параграфе.

Сокращенной д.н.ф. для булевой функции f(x1, x2, ..., xn) называется дизъюнкция всех простых импликант этой функции.

Из определения следует, что для каждой функции f сокращенная д.н.ф. единственна.

Теорема 3.17. Каждая булева функция f(x1, x2, ..., xn) равносильна своей сокращенной д.н.ф.

Доказательство. Пусть для f(x1, x2, ..., xn) построена ее сокращенная

д.н.ф.:

 

В1 В1 ... Вm

(3.22)

где Вi - простые импликанты функции. Покажем, что на каждом наборе значений переменных x1, x2, ..., xn значения функции и суммы (3.22) совпадают.

Пусть на каком-то наборе значений переменных x1, x2, ..., xn функция f=0. Каждое Вi является импликантой для f, поэтому на выбранном наборе Вi =0 (1im), следовательно, и вся сумма (3.22) обращается в нуль.

Далее, пусть f(a1, a2, ..., an)=1. Тогда на наборе a1, a2, ..., an равна 1 некоторая собственная конституента единицы функции f. Обозначим эту конституенту через К. Как уже показано, каждая конституента единицы функции f либо сама является простой импликантой, либо будет простой импликантой ее некоторая собственная часть. Следовательно, некоторое Вi из (3.22) совпадает с К, либо с её некоторой собственной частью. Если Вi = К, то на наборе a1, a2, ..., an имеем Вi(a1, a2, ..., an) = К(a1, a2, ..., an) =1, если же Вi

является собственной частью К, то, очевидно, Вi =1 на этом наборе. Тогда сумма (3.22) примет значение 1 на наборе a1, a2, ..., an. Теорема доказана.

§ 14. Метод Квайна получения сокращенной д.н.ф.

Метод Квайна основан на преобразовании совершенной д.н.ф. с помощью операций неполного склеивания и поглощения.

Операция склеивания (полного) определяется соотношением

 

x&y x& y ~ x.

(3.23)

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]