Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Примеры и Задание к контрольной работе по дискр....doc
Скачиваний:
30
Добавлен:
17.12.2018
Размер:
2.06 Mб
Скачать
    1. Полнота и замкнутость систем функций алгебры логики

      1. Полные системы функций алгебры логики

Система функций алгебры логики F={f1f2,…, fs,…} P2 называется полной или функционально полной, если любая функция алгебры логики может быть записана в виде формулы через функции этой системы (или, как говорят, выражена формулой над F).

В соответствии с этим определением системы функций {Ø,&,Ú}, {Ø,&}, {Ø,Ú}, {Ø,®}, а также {¯} и {} являются функционально полными.

Имеются и другие полные системы функций. Определить полноту некоторой системы функций можно с помощью следующей теоремы.

Теорема. О полных системах функций алгебры логики

Пусть имеются две системы функций алгебры логики: F={f1f2,…, fp,…} и G={g1g2,…, gr,…}, относительно которых известно, что система F полна и каждая её функция может быть выражена формулой через функции системы G. Тогда система функций G – является полной.

Пример: покажем функциональную полноту следующих систем: (1) G1={,,}, (2) G2={,&,} и (3) G3={1,·,}, где «·» – это обычное умножение.

(1) Известно, что система функций {Ø,Ú} является полной. Поскольку «Ú» имеется в G1, а «Ø» выражается формулой , то G1 тоже полна.

(2) Известно, что система функций {Ø,&} является полной. Поскольку «&» имеется в G2, а «Ø» выражается формулой , то G2 тоже полна.

(3) Т.к. система {Ø,&} является полной и х·у х&у, а , то G3 – полная система функций. Система G3 играет особую роль в алгебре логики, т.к. формула, сконструированная из функций {1,·,} и скобок, после раскрытия скобок и несложных алгебраических преобразований переходит в полином Жегалкина (СПНФ).

Другой важный критерий полноты системы функций алгебры логики связан с понятием замыкания и замкнутого класса.

Пусть М  Р2 – некоторое подмножество множества всех функций алгебры логики. Замыканием М называется множество тех истинностных функций, которые могут быть выражены формулой над М.

Замыкание М обозначается [M].

Класс функций М называется функционально замкнутым или просто замкнутым, если его замыкание совпадает с ним самим, т.е. [M] = М.

Определение полной системы функций можно сформулировать в терминах замыканий: система функций М является функционально полной, если её замыкание совпадает с множеством всех функций алгебры логики, т.е. [M]=P2.

      1. Важнейшие замкнутые классы

1) Класс функций, сохраняющих ноль. Обозначение: Т0.

Т0={f(x1,x2,…,xn)P2: f(0,0,…,0)=0}, таким образом, этот класс состоит из тех функций алгебры логики, которые на наборе, состоящем из одних нулей, имеют значение ноль. Или, что то же самое, в верхней строке таблицы истинности значение этих функций равно нулю. И поскольку, ровно половина всех функций в верхней строке равны нулю, то число функций от n переменных, относящихся к классу Т0, равно . Из элементарных функций к этому классу относятся следующие: 0, х, &, , . А такие, как 1, , ,  не принадлежат классу Т0.

2) Класс функций, сохраняющих единицу. Обозначение: Т1.

Т1={f(x1,x2,…,xn)P2: f(1,1,…,1)=1}, таким образом, этот класс состоит из тех функций алгебры логики, которые на наборе, состоящем из одних единиц, имеют значение 1. Или, что то же самое, в нижней строке таблицы истинности значение этих функций равно единице. И, поскольку, ровно половина всех функций в нижней строке равны единице, то число функций от n переменных, относящихся к классу Т1, равно . Из элементарных функций к этому классу относятся следующие: 1, х, &, , , . А такие, как 0, ,  не принадлежат классу Т1.

3) Класс самодвойственных функций. Обозначение: S.

S={f(x1,x2,…,xn)P2: f(x1,x2,…,xn)=*(x1,x2,…,xn) }, таким образом, этот класс состоит из тех функций алгебры логики, которые совпадают с двойственными к ним. Заметим, что такие функции на противоположных наборах принимают противоположные значения, т.к. f(x1,x2,…,xn)=. Таблицы истинности этих функций имеют зеркальную симметрию верхней половины строк таблицы и инвертированной нижней половины строк относительно середины всех строк таблицы. Тем самым, самодвойственные функции полностью определяются своими значениями на первой половине строк таблицы. Число таких строк для функций от n переменных равно =2n-1 и, следовательно, число функций от n переменных, относящихся к классу S, равно . Из элементарных функций самодвойственными являются только тождественная функция х и отрицание .

Лемма о несамодвойственной функции

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

4) Класс монотонных функций. Обозначение: М.

Функция f(x1,x2,…,xn)P2 называется монотонной, если для любых двух наборов =(1,2,…,n) и =(1,2,…,n) таких, что i  i, где i=1,2,…,n, следует f()  f(). Про такие наборы говорят, что набор предшествует набору , и обозначают   . Из элементарных функций монотонными являются 0, 1, тождественная функция х, , . А функции , , , , ,  монотонными не являются.

Лемма о немонотонной функции

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

5) Класс линейных функций. Обозначение: L.

L={f(x1,x2,…,xn)P2: f(x1,x2,…,xn)=c0c1x1c2x2…cnxn, где c0,c1,c2,…,cn равны 0 или 1}. Таким образом, этот класс состоит из тех функций алгебры логики, которые представимы линейным выражением. Различные линейные функции от n переменных отличаются друг от друга составом слагаемых, входящих в их линейные выражения. Этот состав определяется значением коэффициентов: если соответствующий коэффициент равен нулю, то слагаемое отсутствует. И так как число коэффициентов равно n+1, то число функций от n переменных, относящихся к классу L, равно 2n+1. Из элементарных функций линейными являются тождественная функция х, отрицание , константы 0 и 1, а также  и .

Лемма о нелинейной функции

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

Т0

Т1

S

M

L

0

+

+

+

1

+

+

+

+

+

Таблица 8

Отметим, что все замкнутые классы попарно различны. Это хорошо видно из таблицы 8, где знаком «+» отмечена принадлежность функций 0, 1 и к классу, а знаком «–» отсутствие соответствующей функции в классе.

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

Теорема Поста о полноте

Система функций алгебры логики является полной тогда, и только тогда, когда она целиком не содержится ни в одном из пяти замкнутых классов: Т0, Т1, S, M и L. Иными словами среди функций этой системы обязательно имеются функции, не сохраняющие ноль и единицу, а также несамодвойственная, немонотонная и нелинейная функции.

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

Следствие 2: всякий замкнутый класс функций алгебры логики, не совпадающий с множеством всех функций алгебры логики, содержится по крайней мере в одном из классов Т0, Т1, S, M или L.

В этом смысле классы Т0, Т1, S, M и L являются максимальными или предполными, поскольку добавление к любому из них любой истинностной функции, не принадлежащей классу, приводит к полной системе функций.

Следствие 3: в алгебре логики существует только пять предполных классов: Т0, Т1, S, M и L.

Полная система функций алгебры логики называется базисом в Р2, если никакая её собственная подсистема не является полной. Иными словами базис – это минимальная по числу функций полная система. Важно, что любая из функций алгебры логики записывается формулой через функции базиса.

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

Пусть имеется система функций: {0, 1,   }. Очевидно, что эта система является функционально полной, поскольку полна её собственная подсистема {, }. Понятно также, что исходная система функций не является базисом, т.к. из неё можно удалить функции 0, 1 и  и оставшиеся функции все ещё составляют полную систему. Выясним теперь, имеются ли в заданной системе другие полные подсистемы, образующие базис. Для этого составим таблицу принадлежности функций {0, 1,   } пяти замкнутым классам.

Т0

Т1

S

M

L

0

+

+

+

1

+

+

+

+

+

+

+

+

Таблица 9

Из таблицы 9 видно, что базисами являются следующие множества функций: {, }, {0, }, { }. Других базисов в данной системе нет.