Разложение булевой функции по переменным. Принцип двойственности

Выделим переменную x 1 и рассмотрим функцию f относительно нее.

Все множество наборов таблицы истинности разбивается на два подмножества, в каждом из которых по четыре набора <0, a 2 , a 3 > и <1, a 2 , a 3 >.

Тогда функцию f(x 1 ,x 2 ,x 3) можно представить в виде дизъюнкции двух функций от двух переменных и эта формула будет иметь вид:

Рассмотрим следующие формулы:

Левая часть первой формулы эквивалентна правой, поскольку для x 1 =0 и в соответствии с операцией конъюнкции. Аналогично можно показать справедливость второй формулы. Таким образом, поставив эти формулы в предыдущую дизъюнкцию, получим:

Это выражение называется разложением функции f(x 1 ,x 2 ,x 3) по переменной x 1 .

Теперь аналогично можно разложить функции f(0,x 2 ,x 3) и f(1,x 2 ,x 3) по переменной x 2 . Получим

Подставляя эти формулы в предыдущие получим

Внесем в соответствии с дистрибутивностью операции & переменную x 1 и ее инверсию в скобки, получим

В общем виде для функции f(x 1 ,x 2 ,..,x n) от n переменных разложение по m переменным (m£n) имеет вид

где дизъюнкция берется по всем 2 m наборам переменных x 1 ,x 2 ,..,x m .

Рассмотрим разложение (*4) при крайнем случае, когда m=n. (см. пример (*3)).

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

Проделаем все это для примера (*3).

После удаления из (*3) конъюнкций с нулевыми значениями функции f на заданных наборах, получим:

Так как в соответствии с таблицей истинности

f(0,0,0) = f(0,1,0) = f(1,1,0) = f(1,1,1)=1

то из конъюнкций уберем сомножители функций, после чего получим:

Это и есть совершенная дизъюнктивная нормальная форма булевой функции f.

Лемма. Любая булева функция (кроме константы "0") имеет СДНФ, при том только одну.

Аналогично можно ввести конъюнктивную форму,

Построение СДНФ для функции, заданной таблицей

Данное следствие носит конструктивный характер, т.к. оно по таблице функции позволяет построить формулу, являющуюся СДНФ (если ).
СДНФ функции f содержит ровно столько конъюнкций, сколько единиц в таблице f ; каждому “единичному” набору (d 1 ,…,d n), т.е. набору, на котором значение функции равно 1, соответствует конъюнкция всех переменных, в которой x i взято с отрицанием, если d i=0 , и без отрицания, если d i =1 .

Разложение Шеннона Рассмотрим разложение булевой функции f (x 1, x 2, . . . , xn) по переменной xi. Разложение Шеннона: f (x 1, x 2, . . . , xn)= xi f(x 1, . . . , xi 1, 1, xi+1, . . . , xn) xi f(x 1, . . . , xi 1, 0, xi+1, . . . , xn). Доказательство (не умоляя общности, для i =1). Если x 1 = 0, то f(0, x 2, . . . , xn) = 0 f (1, x 2, . . . , xn) 1 f(0, x 2, . . . , xn) = f (0, x 2, . . . , xn). Если x 1 = 1, то f(1, x 2, . . . , xn) = 1 f(1, x 2, . . . , xn) 0 f(1, x 2, . . . , xn) = f(0, x 2, . . . , xn). ЧТД Пример. Булеву функцию f (x, y, z) = x y / y z , разложим по переменной z: f (x, y, z) = z(x y / y 1) z (x y / y 0)= [по свойствам 0 и 1] = z z (x y / y). Сомножитель f (x 1, . . . , xi -1, 1, xi+1, . . . , xn) в формуле Шеннона называется коэффициентом разложения функции f (x 1, x 2, . . . , xn) по переменной xi при xi, а сомножитель f (x 1, . . . , xi -1, 0, xi+1, . . . , xn) - коэффициентом разложения функции f (x 1, x 2, . . . , xn) по xi при xi. Пример. f (x, y, z) = x y / y = y (x 1 / 0) y (x 0 / 1). x 1 / 0 - коэффициент разложения функции f (x, y, z) по y при y ; x 0 / 1 - коэффициент разложения функции f (x, y, z) по y при y.

Разложение функции по k переменным Доказательство. Подставим в левую и правую части равенства произвольный набор a 1 a 2. . . an: Упростим правую часть, рассуждая следующим образом. Нетрудно проверить, что 1, если и только если ai = 0 = 1, 11 = 1, но 0 1 = 0 и 10 = 0), ci (в самом деле: 0 поэтому конъюнкция равна единице лишь в единственном случае, когда наборы a 1 a 2. . . ak и с1 с2. . . сk совпадают. А это значит, что она не обращает в ноль лишь одно слагаемое правой части - то, для которого a 1 a 2. . . ak = с1 с2. . . сk и в котором сама обращается в единицу. Подставив в ставшееся слагаемое a 1 a 2. . . ak вместо с1 с2. . . сk , получим

Совершенная дизъюнктивная нормальная форма (Сов. ДНФ) Применив формулу разложения булевой функции f (x 1, x 2, . . . , xn) по k переменным при k = n, получим: Поскольку коэффициентами разложения f (c 1, c 2, . . . , cn) в этой формуле являются значения функции f (x 1, x 2, . . . , xn) на всевозможных наборах c 1 c 2. . . cn, то возможны два случая: если набор c 1 c 2. . . cn M 0 (f), то f (c 1, c 2, . . . , cn) = 0 и поэтому обращается в 0 соответствующее слагаемое правой части; если набор c 1 c 2. . . cn M 1 (f), то f(c 1, c 2, . . . , cn)=1 и слагаемое упрощается. В результате имеем: Совершенная дизъюнктивная нормальная форма булевой функции, или Сов. ДНФ, - это формула вида:

Утверждение о единственности Сов. ДНФ Любая булева функция, кроме константы 0, представима cовершенной дизъюнктивной нормальной формой, и она единственна для данной функции. Алгоритм построения Сов. ДНФ (по таблице истинности) вытекает из определения Сов. ДНФ и состоит в циклическом выполнении следующего шага: в векторе столбце значений функции выбирается очередная 1 и по набору значений аргументов этой строки формируется конъюнкция всех аргументов с соблюдением следующего правила: если i‑я компонента набора равна 0, то переменная xi входит в конъюнкцию в степени 0 (с инверсией), иначе в степени 1 (без инверсии); полученная конъюнкция добавляется в формулу как очередное слагаемое. Пример. Обратим внимание на тот факт, что нам впервые удалось от табличного способа задания функции перейти к формульному!

Утверждение о единственности Сов. КНФ Любая булева функция, кроме константы 1, представима cовершенной конъюнктивной нормальной формой, и она единственна для данной функции. Алгоритм построения Сов. КНФ по таблице истинности вытекает из определения Сов. КНФ и состоит в циклическом выполнении следующего шага: в векторе столбце значений функции выбирается очередной 0 и по набору значений аргументов этой строки формируется дизъюнкция всех аргументов с соблюдением следующего правила: если i‑я компонента набора равна 0, то переменная xi входит в дизъюнкцию в степени 1 (без инверсии), иначе в степени 0 (с инверсией); полученная дизъюнкция добавляется в Сов. КНФ как очередной сомножитель. Пример.

Элементарная конъюнкция и ДНФ Рассмотрим множество переменных x 1, x 2, . . . , xn. Элементарной конъюнкцией назовем конъюнкцию, в которую каждая переменная входит не более одного раза (с инверсией или без инверсии). Примеры. x 1 x 2 x 3 x 4, x 1 x 2 x 4 , x 3 - элементарные конъюнкции, x 1 x 2 x 4, x 1 x 3 - неэлементарные. В частности, 1 - это элементарная конъюнкция, не содержащая ни одной переменной. Число переменных, образующих элементарную конъюнкцию, назовем ее рангом. Пример. Ранг элементарной конъюнкции x 1 x 2 x 4 равен трем. Полной конъюнкцией назовем элементарную конъюнкцию, состоящую из всех переменных, т. е. конъюнкцию ранга n. Пример. При n = 4 конъюнкция x 1 x 2 x 3 x 4 - полная. Дизъюнктивной нормальной формой (ДНФ) назовем дизъюнкцию различных элементарных конъюнкций. Пример. x 1 x 2 x 4 x 1 x 2 x 3 x 4 x 3 - ДНФ. Очевидно, что совершенная ДНФ является частным случаем ДНФ. Длиной ДНФ назовем число конъюнкций в данной ДНФ. Рангом ДНФ назовем сумму рангов ее конъюнкций. Пример. Длина ДНФ из предыдущего примера равна трем, а ранг - восьми.

Множество В, на котором определены две бинарные операции (конъюнкция и дизъюнкция) и одна унарная операция (отрицание) и выделены два элемента 0 и 1 называется булевой алгеброй.

Причем для этих операций необходимо выполнение следующих свойств:

Ассоциативность

Коммутативность

Дистрибутивность конъюнкции относительно дизъюнкции

Дистрибутивность дизъюнкции относительно конъюнкции

Идемпотентность

Двойное отрицание

Свойства констант

Правила де Моргана

Закон противоречия

Закон исключенного третьего

В алгебре логики эти законы называются равносильностями.

Совершенные нормальные формы

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

Введем обозначения:

; А А =1; Х А =1, если Х=А, Х А =0, если ХА.

Формула Х А 1…… Х А n , где А=- какой-либо двоичный набор, а среди переменных Хi могут быть совпадающие называется элементарной конъюнкцией.

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

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

Например: 1) (значок конъюнкции в данном случае опущен).

1),4) - правильные элементарные конъюнкции;

2)- переменная х входит один раз сама и второй раз под знаком отрицания;

Переменная y входит трижды: один раз сама и два раза под знаком отрицания.

Правильная элементарная конъюнкция называется полной относительно переменных х 1 …..х n , если в нее входит каждая их этих переменных причем только один раз (может быть и пол знаком отрицания).

Например: из перечисленных в предыдущем примере конъюнкций полной является только 4) относительно переменных x,y,z,t; а относительно переменных x,y,z полной является только 1).

Совершенной дизъюнктивной нормальной формой (СДНФ) относительно переменных х 1 …..х n называется дизъюнктивная нормальная форма, в которой нет одинаковых элементарных конъюнкций и все элементарные конъюнкции правильны и полны относительно переменных х 1 …..х n

Разложение по переменным

Теорема 1. Всякая логическая функция может быть представлена в СДНФ:

где m, а дизъюнкция берется по всем 2 m наборам значений переменных х 1 ,…х m . Функция f разложена по первым n-переменным. Данное равенство называется разложением по переменным. х 1 ,…х m . Например при n=4, m=2 разложение имеет вид:

теорема доказывается подстановкой в обе части равенства (1) произвольного набора (b 1 ,…,b m , b m+1 ,…,b n) всех n-переменных.

При m = 1 из (1) получаем разложение функции по одной переменной:

Очевидно, что аналогичное разложение справедливо для любой из n- переменных.

Другой важный случай когда n=m. При этом все переменные в правой части (1) получают фиксированные значения и функции в конъюнкции правой части становятся равными 0 или 1, что дает:

где дизъюнкция берется по всем наборам (b 1 …b n), на которых f=1. При f=0 множество конъюнкций в правой части пусто. Такое разложение называется совершенной дизъюнктивной нормальной формой. СДНФ функции f содержит ровно столько конъюнкций, сколько единиц получается в таблице истинности f. Каждому единичному набору (b 1 ,…, b n) соответствует конъюнкция всех переменных, в которой x i взято с отрицанием, если b i =0 b ,и без отрицания, если, b i =1. Таким образом существует взаимно однозначное соответствие между таблицей истинности функции f и ее СДНФ, и,следовательно, СДНФ для всякой логической функции единственна. Единственная функция не имеющая СДНФ - это константа 0.

Теорема 2 . Всякая логическая функция может быть представлена в виде булевой формулы.

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

Пусть G - параметр, равный 0 или 1.

Введем обозначение:

Проверкой легко установить, что x G = 1, тогда и только тогда, когда
x = G. Отсюда следует, конъюнкция равна 1 (здесь G равен 0 или 1) тогда и только тогда, когда . Например, конъюнкция (в которой G 2 = G 1 = 0, G 3 = G 4 = 1) равна 1 только в случае, когда x 1 = x 2 = 0, x 3 = x 4 = 1.

Теорема 1. Всякая булева функция f(x 1 , x 2 , x n) может быть представлена в следующей форме:

где 1 ≤ k ≤ n, в дизъюнкции берется по всем наборам значений переменных.

Это представление носит название разложения функции по переменным . Например, при n = 4, k = 2 разложение (3.1) имеет вид:

.

Докажем справедливость разложения (3.1). Для этого возьмем произвольный набор значений переменных . Покажем, что левая и правая части соотношения (3.1) принимают при нем одно и то же значение. Действительно, так как x G = 1 тогда и только тогда, когда x = G, то среди 2 К конъюнкции правой части (3.1) в единицу обращается только одна, в которой . Все остальные конъюнкции равны нулю.

Поэтому . В качестве следствия из разложения (3.1) получаем следующие два специальных разложения.

Разложение по переменной x n:

Если булева функция не есть константа 0, то справедливо разложение

Разложение по всем переменным:

, (3.3)

где дизъюнкция берется по всем наборам , при которых значение функции равно 1.

Разложение (3.3) называется совершенной дизъюнктивной нормальной формой (сокращенная запись СДНФ) функции.

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

Таким образом, существует взаимно однозначное соответствие между таблицей истинности функции и ее СДНФ. А это значит, что СДНФ для булевой функции единственна.

Единая булева функция, не имеющая СДНФ, есть константа 0.

Пример 1. Найти совершенную дизъюнктивную форму для функции .

Составим таблицу истинности для данной функции:

Отсюда получаем: = = .

Важную роль в алгебре логики играет следующее разложение булевых функций.

Теорема 2. Всякая булева функция может быть представлена в следующей форме:

где 1≤k≤n, а конъюнкция берется по всем 2 k наборам значений переменных.


Действительно, пусть - произвольный набор значений переменных. Покажем, что левая и правая части соотношения (3.4) принимают при нем одно и то же значение. Так как только тогда, когда , то среди 2 k дизъюнкций правой части (3.4) в 0 обращается только одна, в которой . Все остальные дизъюнкции равны 1.

Поэтому = = .

Непосредственно из разложения (3.4) следуют разложения булевых функций:

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

Единственная булева функция, не имеющая СКНФ, есть константа 1.

Пример 2. Найти совершенную конъюнктивную нормальную форму для функции .

Составим таблицу истинности для данной функции.

Отсюда получаем СКНФ

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

В силу приведенного определения ДНФ будут, например, выражения: , .

Как отмечено в пункте 2.2, все логические операции можно свести к трем: конъюнкции, дизъюнкции и отрицания. Причем, ввиду закона
де Моргана, знак отрицания можно предполагать отнесенным только к переменным.

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

Теорема 3. Для любой формулы алгебры логики существует равносильная ей дизъюнктивная нормальная форма.

Доказательство данной теоремы дает способ построения дизъюнктивной нормальной формы для любой формулы алгебры логики.

Пример 3. Найти дизъюнктивную нормальную форму для следующей формулы: .

Исключая знак по закону и применяя законы де Моргана и двойного отрицания, получаем:

Затем, применяя закон дистрибутивности, раскроем скобки

Последнее выражение есть дизъюнктивная нормальная форма.

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

Такими являются, например, выражения:

, .

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

Итак, справедлива следующая теорема.

Теорема 4. Для любой формулы алгебры логики существует равносильная ей конъюнктивная нормальная форма.

Доказательство данной теоремы дает способ построения конъюнктивной нормальной формы для любой формулы алгебры логики.

Пример 4. Найти дизъюнктивную и конъюнктивную нормальные формы для следующей формулы: .

Используя закон , исключаем знак . Получаем формулу .

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

.

Чтобы получить конъюнктивную нормальную форму, применим к формуле дистрибутивный закон, получаем:

Последнее выражение является конъюнктивной нормальной формой. Так как и , то полученная КНФ равносильна следующей КНФ:

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

1) все конъюнкции попарно различны;

2) каждая конъюнкция содержит ровно n переменных;

3) в каждой конъюнкции встречаются все n переменных.

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

Пример 5. Найти совершенную дизъюнктивную форму формулы .

Используя, что , получаем . Ввиду законов
де Моргана и двойного отрицания имеем получили дизъюнктивную нормальную форму . Данная ДНФ равносильна формуле .

Раскрывая скобки, получаем: .

Используя закон идемпотентности, получаем требуемую СДНФ:

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

1) все дизъюнкции попарно различны;

2) каждая дизъюнкция содержит ровно n членов;

3) в каждой дизъюнкции встречаются все n переменных., если она при всех значениях входящих в нее переменных принимает значение истинно .

Примерами тождественно истинных формул являются формулы:

тождественно ложной , если она при всех значениях, входящих в нее переменных, принимает значение ложь.

Примерами тождественно ложных формул являются формулы:

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

Примерами выполнимых формул являются следующие формулы:

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

Рассмотрим следующие два способа решения этой задачи.

Способ 1. (табличный) Для того, чтобы определить, является ли данная формула тождественно истинной или нет, достаточно составить ее таблицу истинности.

Однако данный способ, хотя и дает принципиальное решение проблемы разрешимости, он довольно громоздкий.

Способ 2. основан на приведении формул к нормальной форме.

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

Действительно, если каждая дизъюнкция в конъюнктивной нормальной форме содержит переменную вместе с ее отрицанием, то все дизъюнкции равны 1, ибо , . Отсюда следует, что КНФ является тождественно истинной.

Пусть теперь данная формула является тождественно истинной, и пусть есть некоторая дизъюнкция в КНФ данной формулы. Допустим, что данная дизъюнкция не содержит переменной вместе с ее отрицанием. В таком случае мы можем каждой переменной, не стоящей под знаком отрицания, дать значение 0, а каждой переменной, стоящей под знаком отрицания - значение 1. После указанной подстановки все дизъюнкции станут равны 0, следовательно, формула не является тождественно истинной. Получили противоречие.

Пример 7. Выяснить, будет ли тождественно истинной формула

Используя, что , получаем .

Применяя закон дистрибутивности, получаем КНФ:

Так как каждая дизъюнкция содержит некоторую переменную вместе с ее отрицанием, то формула тождественно истинна.

Аналогично предыдущей теореме доказывается теорема:

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

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

БИЛЕТ 25

Понятие двойственности. Принцип двойственности.

Опр. Для заданной булевой функции двойственной к ней называют: ).

Замечания.

Пусть задана булева функция .

Замечание. В функциях f i , i=1,…,m некоторые переменные могут быть фиктивными.

= = = =

Следствие. Если задана булева функция формулой F в базисе Б 0 =(x&y,x˅y,-,0,1), то для получения двойственной функции достаточно сделать замену:

БИЛЕТ 26

Разложение булевых функций по переменным.

Т. о разложении булевой функции по переменным.

Для любой булевой функции f=f(x 1 ,…,x n) и V 1≤k≤n справедливо представление f(x1,…,xn)=, где x 1 =x, x 0 = ̚ x.

Возьмем произвольный набор Z=(α1,…,αn) и подставим в левую и правую части формулы:

Л.Ч.=f(α1,…,αn)

П.Ч.= =

{ 1 0 ==0; 0 1 =0; 1 1 =1; 0 0 ==1; }

Правая часть совпала с левой.

Следствие1. Формула разложения булевой функции по переменным:

Положим k=1. Возьмем разложение по последней переменной.

Следствие2. Разложение функции в совершенную дизъюнктивную нормальную формулу (СДНФ).

V справедливо =.

=1.

Возьмем в теореме случай k=n, т.е. разложение по всем переменным.

Следствие3. О представимости любой функции в классическом базисе.

Любую булеву функцию можно представить в виде формулы над базисом.

Б 0= {x&y,x˅y,}

Замечание. Для любой булевой функции существует представление в виде СДНФ и это представление является единственной.

БИЛЕТ 27

Совершенные дизъюнктивные нормальные формы (СДНФ)[сумма произведений ˅&].

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

включает следующие действия:

·для каждого набора значений переменных x 1 , x 2 ,..., x n , на котором функция f (x 1 , x 2 ,..., x n) равна 1, выписываются конъюнкции всех переменных;

·над теми переменными, которые на этом наборе равны 0, ставятся отрицания;

·все такие конъюнкции соединяются знаками дизъюнкции.

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

Для каждой функции СДНФ единствена.

Таким образом, СДНФ функции f (x 1 , x 2 ,..., x n) представляет собой дизъюнкцию элементарных конъюнкций: D = K 1 ˅ K 2 ˅ ... ˅ K m , где все конъюнкции имеют одинаковое число сомножителей, равное числу логических переменных, а число конъюнкций равно числу наборов значений переменных x 1 , x 2 ,..., x n , на которых функция f (x 1 , x 2 ,..., x n) равна 1. Любые другие записи логической функции, вида D = K 1 ˅ K 2 ˅ ... ˅ K m , не отвечающие этим условиям, называются

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

БИЛЕТ 28

Совершенные конъюнктивные нормальные формы (СКНФ)[произведение сумм &˅].

Утверждение. Для любой булевой функции f=f(x1,…,xn),f1 справедливо представление

Имеем: f* 0. Теперь построим СДНФ для f*.

Возьмем двойственную от обеих частей уравнения.

Делаем замены: .

= .

Замечание. Для каждой булевой функции 1 существует представление в виде СКНФ и это представление является единственным.

БИЛЕТ 29

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

В алгебре логики обычно выделяют 3 кононические формы представления функции в виде формулы:

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

Моном – формула вида 0,1, .

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

P=M 1 ⊕M 2 ⊕…⊕M k , M i – моном.

Все мономы попарно различны.

Теорема. Любую булеву функцию можно представить в виде полинома Жегалкина и это представление является единственным.

I . Доказываем представимость функции в виде полинома Жегалкина.

Рассмотрим 2 случая

  1. f 0, тогда

Можем заменить ˅ на ⊕, т.к. никакие два слагаемых в СДНФ≠1.

Значит, существует j ()

Сделаем преобразования

Раскрываем скобки, приводим подобные по правилу АА=0.

В итоге получим полином Жегалкина для каждой функции существует полином Жегалкина.

II . Доказываем единственность.

Воспользуемся принципом Дирихле.

Подсчитаем количество полиномов Жегалкина.

. То есть 2 n отличных от нуля.

Пустой моном=1.

Образуем полином:

Мономов = N=2 n

Полиномов = 2 N =

Если ничего не включили, то 0.

БИЛЕТ 30

Понятие функциональной полноты системы булевых функций. Полнота системы {И, ИЛИ, НЕ}.

Определение. Множество функций алгебры логики А называется полной системой (в Р2), если любую функцию алгебры логики можно выразить формулой над А. Теорема. Система А = {v, &, ─} является полной.

Доказательство. Если функция алгебры логики f отлична от тождественного нуля, то f выражается в виде совершенной дизъюнктивной нормальной формы, в которую входят лишь дизъюнкция, конъюнкция и отрицание. Если же f≡ 0, то f = x*(─x). Теорема доказана.

БИЛЕТ 31

Замыкание и замкнутые классы.

1°. Понятие замкнутого класса.

Определение 1. Пусть A ⊆ P2. Тогда замыканием A называется множество всех функций алгебры логики, которые можно выразить формулами над A.

Обозначение: [A].

Имеют место следующие свойства:

2) A ⊇ B ⇒ [A] ⊇ [B], причём, если в левой части импликации строгое вложение, то из него вовсе не следует строгое вложение в правой части - верно лишь A ⊃ B ⇒ [A] ⊇ [B];

Определение 2. Система функций алгебры логики A называется полной, если [A] = P2.

Определение 3. Пусть A ⊆ P2. Тогда система A называется замкнутым классом, если замыкание A совпадает с самим A: [A] = A.

2°. Примеры замкнутых классов.

Класс T 0 = {f (x 1 , …, x n) | f (0, …, 0) = 0}.

Классу T 0 принадлежат, например, функции 0, x, xy, x ∨ y, x ⊕ y.

Классу T 0 не принадлежат функции 1, x , x → y, x | y, x ↓ y, x ~ y.

Класс T 1 = {f (x 1 , …, x n) | f (1, 1, …, 1) = 1}.

Классу T 1 принадлежат функции 1, x, xy, x ∨ y, x → y, x ~ y.

Классу T 1 не принадлежат функции 0, x , x ⊕ y, x | y, x ↓ y.

Класс L линейных функций.

Определение 4. Функция алгебры логики f (x 1 , …, x n) называется линейной, если

f (x 1 , …,x n) = a 0 ⊕ a 1 x 1 ⊕ … ⊕ a n x n , где a i ∈ {0, 1}.

Иными словами, в полиноме линейной функции нет слагаемых, содержащих конъюнкцию.

Классу L принадлежат функции 0, 1, x = x⊕1, x ~ y, x ⊕ y.

Классу L не принадлежат функции xy, x ∨ y, x → y, x | y, x ↓ y.

Класс S самодвойственных функций.

Определение 2. Функция алгебры логики f (x 1 , …, x n) называется самодвойственной, если f (x 1 ,…, x n) = f* (x 1 ,…,x n).

Иначе говоря, S = {f | f = f*}.

Определение 2. Функция алгебры логики f (x 1 ,…,x n) называется монотонной, если для любых двух сравнимых наборов ~α и ~β выполняется импликация ~α≤ ~ β ⇒f(~α) ≤ f (~ β)

Класс M всех монотонных функций.

Классу M принадлежат функции 0 , 1 , x , xy , x ∨ y, m (x, y, z) = xy ∨ yz ∨ zx.

Классу M не принадлежат функции x , x | y , x ↓ y , x ⊕ y , x ~ y , x → y

БИЛЕТ 32

Классы Поста.

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

Булева функция - это функция типа , где , а - арность. Количество различных функций арности равно , общее же количество различных булевых функций бесконечно. Вместе с тем, очевидно, что многие функции могут быть выражены через другие с использованием оператора суперпозиции. Например, давно известно, что из дизъюнкции и отрицания можно, используя законы де Моргана, получить конъюнкцию. Кроме того, любая булева функция (за исключением тождественного нуля) может быть представлена в виде ДНФ, то есть, в терминах конъюнкции, дизъюнкции и отрицания. Возникает естественный вопрос: как определить, будет ли данный набор функций достаточным, чтобы представить любую булеву функцию? Такие наборы называются функционально полными . Теорема Поста даёт ответ на этот вопрос. Поскольку условие теоремы является необходимыми и достаточным, её называют также критерием .

Идея теоремы состоит в том, чтобы рассматривать множество всех булевых функций как алгебру относительно операции суперпозиции. Сейчас она носит имя алгебра Поста . Эта алгебра содержит в качестве своих подалгебр множества функций, замкнутых относительно суперпозиции. Их называют ещё замкнутыми классами . Пусть - некоторое подмножество .Замыканием множества называется минимальная подалгебра , содержащая . Иными словами, замыкание состоит из всех функций, которые являются суперпозициями . Очевидно, что будет функционально полно тогда и только тогда, когда . Таким образом, вопрос, будет ли данный класс функционально полон, сводится к проверке того, совпадает ли его замыкание с .

БИЛЕТ 33

Критерий полноты.

Теорема 12 (теорема Поста). Система функций алгебры логики A = {f1, f2, …} является полной в P2 тогда и только тогда, когда она не содержится целиком ни в одном из следующих классов: T0, T1, S, L, M.

Доказательство. Необходимость. Пусть A - полная система, N - любой из классов T 0 , T 1 , S, L, M и пусть A ⊆ N. Тогда [A] ⊆ [N] = N ≠ P2 и [A] ≠ P2. Полученное противоречие завершает обоснование необходимости.

Достаточность. Пусть A ⊄ T 0 , A ⊄ T 1 , A ⊄ M, A ⊄ L, A ⊄ S. Тогда в A существуют функции f 0 ∉ T 0 , f 1 ∉ T 1 , f m ∉ M,

f l ∉ L, f s ∉ S. Достаточно показать, что [A] ⊇ = P2. Разобьём доказательство на три части: получение отрицания, констант и конъюнкции.

a) Получение ─x . Рассмотрим функцию f 0 (x 1 , …, x n) ∉ T0 и введём функцию φ 0 (x) =f 0 (x, x, …, x). Так как функция f 0 не сохраняет нуль, φ 0 (0) = f (0, 0, …, 0) = 1. Возможны два случая: либо ϕ 0 (x) = ─x , либо φ0 (x) ≡ 1. Рассмотрим функцию f 1 (x 1 , …, x n) ∉ T 1 и аналогичным образом введём функцию φ 1 (x) = f 1 (x, x, …, x). Так как функция f 1 не сохраняет единицу, φ 1 (1) = f (1, 1, …, 1) = 0. Возможны также два случая: либо ϕ 1 (x) = ─x , либо φ1 (x) ≡ 0. Если хотя бы в одном случае получилось искомое отрицание, пункт завершён. Если же в обоих случаях получились константы,

то согласно лемме о немонотонной функции, подставляя в функцию f m ∉ M вместо всех переменных константы и тождественные функции, можно получить отрицание.

Отрицание получено.

b) Получение констант 0 и 1. Имеем f s ∉ S. Согласно лемме о несамодвойственной функции, подставляя вместо всех переменных функции f s отрицание (которое получено в пункте a) и тождественную функцию, можно получить константы: ∋ . Константы получены.

c) Получение конъюнкции x · y. Имеем функцию f l ∉ L. Согласно лемме о нелинейной функции, подставляя в функцию f l вместо всех переменных константы и отрицания (которые были получены на предыдущих шагах доказательства), можно получить либо конъюнкцию, либо отрицание конъюнкции. Однако на первом этапе отрицание уже получено, следовательно, всегда можно получить конъюнкцию:

∋ . Конъюнкция получена.

В результате получено, что ⊇ [ ─x,xy] = P 2 . Последнее равенство следует из пункта 2 теоремы 4. В силу леммы 2 достаточность доказана.

БИЛЕТ 34

Реализация булевых функций схемами из функциональных элементов.

*учебник*

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

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

Сложностью схемы из функциональных элементов называется число функциональных элементов в схеме.

Дизъюнктор, инвектор.

СФЭ – схемы из функциональных элементов.

F=(f 1 , f 2 , …, f m)

L(S) – сложность – количество функциональных элементов в схеме.

L(S) = minL(S) – наименьшее количество элементов, с помощью которых можно построить схему.

L A (f) = L(S A (f)) – сложность схемы.

L A (n) = maxL A (f), f ϵ . Макс.берется по всем переменным.

Функция Шеннона для А.

Пусть в СДНФ l (эль) слагаемых.

f = k 1 ˅k 2 ˅…˅k l

Обозначим полученную схему S, тогда

L(S) = L(Dn)+L(Vl )

L(Dn) = 2*2 n + n – 4

l 2 n

L(Vl )=l - 1≤ 2 n – 1

L(S) ≤ (2*2 n + n - 4) + (2 n - 1) = 3*2 n + n – 5.

БИЛЕТ 35

Реализация дешифратора в классе схем из функциональных элементов (схема для выборки элементов).

*учебник*

Дешифратором Qn порядка n называется схема из функциональных элементов с n входами x 1 , x 2 , …, x n и 2 n выходами z0, z 1 ,…, такая, что если |x1x2…xn| = i, то zi = 1 и zj = 0 при i ≠ j.

Заметим, что если i = (i 1 , i 2 , …, i n) 2 , то z i (x 1 ,…,x n) = .

Лемма. Существует дешифратор Qn с числом элементов, не превосходящим n2 n+1 .

Доказательство. Для реализации каждой z i достаточно взять ровно n–1 конъюнкций и не более n отрицаний, то есть всего менее, чем 2n функциональных элементов. Всего различных конъюнкций ровно 2 n , и сложность дешифратора не превосходит n 2n+1 .

Тривиальные методы основаны на автономной реализации элементарных конъюнкций.

БИЛЕТ 36

Универсальные методы синтеза схем из функциональных элементов.

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

L(S) ≤ 3*2 n + n – 5 , отсюда:

Следствие. L(n) ≤ 3*2 n + n – 5

Замечание.

БИЛЕТ 37

Реализация двоичного сумматора в классе схем из функциональных элементов.

*учебник*

Определение . Сумматором S n порядка n называется схема с 2n входами x 1 , x 2 , …, x n , y 1 , y 2 , …, y n и n + 1 выходом z 0 , z 1 , z 2 , …, z n такая, что |z | = |S n (x ,y )| = |x |+|y |.

Теорема . Существует схемный сумматор порядка n в базисе {˅, &, ̚ } с числом элементов 9n – 5. Доказательство . Построим искомый схемный сумматор. Для этого возьмём одну ячейку полусумматора, содержащую четыре элемента и n–1 ячейку сумматора, каждая из которых содержит девять элементов. Построим из этих частей сумматор.

Пусть имеются два числа, записанные в двоичном виде.

Сложность: L(Бi)=9.

Теорема. Существует метод синтеза n-разрядного двоичного сумматора такой, что L()=9n-5.

БИЛЕТ 38

Логика высказываний.

Логика высказываний - это определённая совокупность формул, т.е. сложных высказываний, записанных на специально сконструированном искусственном языке. Язык логики высказываний включает:

1. неограниченное множество переменных: А, В, С, …, А1 , В1 , С1 , …, представляющих высказывания;

2. особые символы для логических связок: & - «и», v - «или», V - «либо, либо», ? - «если, то», ? - «если и только если», ~ - «неверно, что»»

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

Формулам логики высказываний, образованным из переменных и связок, в естественном языке соответствуют предложения. К примеру, если А есть высказывание «Сейчас день», В - высказывание «Сейчас светло» и С - высказывание «Сейчас холодно», то формула:

А? В v С, или со всеми скобками: (А? (В v С)) ,

представляет высказывание «Если сейчас день, то сейчас светло или холодно». Формула:

В & С? А, или ((В & С) ? А) ,

представляет высказывание «Если сейчас светло и холодно, то сейчас день». Формула:

~ В? ~ А, или ((~ В) ? (~ А)) ,

представляет высказывание «Если неверно, что сейчас светло, то неверно, что сейчас день» и т.п. Подставляя вместо переменных другие конкретные (истинные или ложные) высказывания, получим другие переводы указанных формул на обычный язык.

Формула, которой не соответствует осмысленное предложение, построена неправильно.

Таковы, в частности, формулы:

(А?), (& В), (A v ВС), (~ &) и т.п.

Каждой формуле логики высказываний соответствует таблица истинности, показывающая, при каких подстановках конкретных высказываний в данную формулу она даёт истинное сложное высказывание, а при каких ложное. Например, формула (~ В? ~ А) даст ложное высказывание, только если вместо В подставить ложное высказывание, а вместо А - истинное.

Всегда истинная формула логики высказываний, или тавтология, - это формула, дающая истинное высказывание при любых подстановках, в неё конкретных (т.е. истинных или ложных) высказываний.

Иными словами, внутренняя структура тавтологии гарантирует, что она всегда превратится в истинное высказывание, какими бы конкретными высказываниями мы ни заменяли входящие в неё переменные.

Читайте также: