Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Vech-logics-09.doc
Скачиваний:
10
Добавлен:
20.12.2018
Размер:
697.34 Кб
Скачать

Разложение Шеннона

Теорема. Каждая булева функция f(x1,x2,…,xn) может быть представлена в виде разложения Шеннона:

Пусть. Рассмотрим разложение функции f(x1,x2, x3,x4,x5) по x1,x2:

Два предельных случая разложения Шеннона: разложение по одной переменной и разложение по всем переменным. В последнем случае получаем СДНФ.

Полнота систем функций. Базисы

Суперпозицией системы функций называется любая функция f, получаемая

  1. из S переименованием переменных,

  2. подстановкой вместо некоторых переменных функции функций jS.

  3. Многократным применением суперпозиции.

Например, . Тогда

1.

2.

3.

Замыканием [K] множества функций K алгебры логики называется множество всех функций алгебры логики, являющихся суперпозициями множества функций из K.

Множество функций K называется (функционально) замкнутым, если [K]=K. Замкнутые множества функций так же называют замкнутыми классами.

Подмножество Р замкнутого множества K называется функционально полным в K, если [P]=K. Функционально полное множество называется базисом, если никакое его подмножество функционально полным не является.

Класс Р2 – класс всех булевых функций.

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

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

Функция называется сохраняющей 0, если .

Класс функций, сохраняющих 0: К0={|}. Класс функций К0 является замкнутым классом, при любой подстановке переменных и функций, сохраняющих 0, в функцию, сохраняющую 0, получаем функцию, сохраняющую 0.

Рассмотрим функцию . Она принадлежит классу К0, т.к. . Если же проверим функцию, то , поэтому она не принадлежит классу К0.

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

Функция называется сохраняющей 1, если .

Класс функций, сохраняющих 1: К1={|}. Класс функций К1 является замкнутым классом, при любой подстановке переменных и функций, сохраняющих 1, в функцию, сохраняющую 1, получаем функцию, сохраняющую 1.

Функция принадлежит классу К1, Функция не принадлежит этому классу.

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

Функция называется двойственной к функции , если

.

Найдем функцию, двойственную к функции .

Функция называется самодвойственной, если . Рассмотренная выше функция самодвойственной не является.

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

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

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

Рассмотрим пример:

x1

x2

x3

F(x1,x2,x3)

0

0

0

1

0

0

1

0

0

1

0

1

0

1

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1

1

1

Эта функция не является самодвойственной, нарушения самодвойственности - F(0,0,0)= F(1,1,1), и F(0,0,1)= F(1,1,0).

Функция является линейной, если . Имеется в виду суммирование по модулю 2.

Класс линейных функций Кл= {|}.

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

Проверка линейности функции является довольно трудоёмкой. Можно построить полином Жегалкина для функции, и если он будет содержать нелинейные члены, то она будет нелинейной. Другой вариант проверки – предположить, что функция линейна, найти коэффициенты, для чего используются значение функции, а на оставшихся наборах проверить, имеет ли функция требуемый вид.

Предполагаем, что функция линейная, . Тогда 0. Далее, 0с1. Определяем значение по таблице истинности, и, поскольку с0 известно, определяется с1. И далее, 0сi. На оставшихся наборах проверяем, имеет ли функция предположенный вид.

Рассмотрим пример:

x1

x2

x3

F(x1,x2,x3)

0

0

0

1

0

0

1

0

0

1

0

1

0

1

1

0

1

0

0

1

1

0

1

0

1

1

0

0

1

1

1

1

Предполагаем, что функция линейна, тогда имеет вид: F(x1,x2,x3)= с0 с1 x1 с2 x2  с3x3.

F(0,0,0)= с0=1,

F(1,0,0)= с0 с1=1 с1=1, откуда с1=0.

F(0,1,0)= с0  с2 =1 с2=1, откуда с2=0.

F(0,0,1)= с0 с30  с3=0, откуда с3=1. Таким образом, получаем вид функции:

F(x1,x2,x3)= 1 x3. Проверяем значения на других наборах:

F(0,1,1)= 1 1=0, что совпадает со значением в таблице.

F(1,0,1)= 1 1=0, что совпадает со значением в таблице

F(1,1,0)= 1 0=1, что не совпадает со значением в таблице, поэтому анализируемая функция не линейна.

Класс монотонных (изотонных функций) KM:

=

где .

Класс монотонных функций является замкнутым. При подстановке монотонных функций и отождествлении переменных в монотонной функции функция остаётся монотонной.

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

Вид гиперкуба размерности 3 представлен на рисунке.

Для анализа монотонности функций в вершинах гиперкуба проставляются значение функции. Пример анализа функции на монотонность приведён на рисунке.

Перечёркнутые стрелки соответствуют нарушению монотонности функции. Таким образом, анализируемая функция монотонной не является.

Критерий Поста-Яблонского.

Система функций S является полной в Р2 тогда и только тогда, когда в S есть хотя бы одна функция, не принадлежащая классу К0, хотя бы одна функция, не принадлежащая классу К1, хотя бы одна функция, не принадлежащая классу КЛ, хотя бы одна функция, не принадлежащая классу КМ, хотя бы одна функция, не принадлежащая классу КС.

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