Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие 3000507.doc
Скачиваний:
29
Добавлен:
30.04.2022
Размер:
7.92 Mб
Скачать

2.3.8. Монотонные функции алгебры логики

Упорядочим множество {0,1}, полагая 0 < 1. Так как нам придется иметь дело с функциями от нескольких переменных, введем частичное упорядочение двоичных наборов одной длины.

Определение 1. Пусть и - двоичные наборы. Говорят, что предшествует (младше) (обозначается: < ), если для всех i, причем, по крайней мере, для одного i имеет место строгое неравенство.

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

Определение 2. Булева функция f(x1, ..., xn) называется монотонной, если для всяких наборов и таких, что < , имеем

.

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

Пример 1. монотонна ли функция ху?

Да, так как она равна 1 лишь на наборе (1,1), которому предшествуют все остальные наборы.

Пример2. - немонотонна, так как при = (0), = (1) имеем < , но > .

2.3.9. Функционально замкнутые классы

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

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

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

В общем виде задача ставится следующим образом:

Имеется некоторое множество F функций алгебры логики (f1, f2, ..., fn). Для всякой ли булевой функции существует равносильная ей суперпозиция из множества F.

Замечание. Для простоты обычно рассматриваются конечные системы функций, хотя это и не существенно.

Пусть F = {f1,f2, ..., fn}, n – множество булевых функций от n переменных).

Определение. Замыканием F (обозначается ) называется множество всех булевых функций, реализуемых формулами над F: .

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

Определение. Класс (множество) функций F называется замкнутым, если [F] = F.

Т.е. функционально замкнутым классом называется всякая совокупность F булевых функций, замкнутая относительно суперпозиции.

Рассмотрим некоторые замкнутые классы функций. Для того, чтобы доказать, что некоторый класс F – замкнутый, достаточно показать, что если функция представима в виде суперпозиций функций из F, то она предлежит F.

Доказать можно по индукции.

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

I. Класс функций, сохраняющих 0: T0= {f| f(0,0,0,..,0) = 0}. Пусть f, f1, f2, ..., fn и Ф = f(f1(x1, ..., xn), ..., fn(x1, ..., xn)), тогда подставим в Ф нулевой набор. Так как fi сохраняет нуль, то при этом в f подставляется нулевой набор, а так как f тоже сохраняет 0, то получим, что и Ф сохраняет нуль:

Ф(0, …,0) = f(f1 (0, ...,0), ..., fn(0, ...,0)) = f (0, ..., 0) = 0, т.е. .

II. Класс функций, сохраняющих 1: Т1 = {f|f(1, ..., 1) = 1}.

Пусть f, f1, f2, ..., fn и Ф = f(f1(x1, ..., xn), ..., fn(x1, ..., xn)).

Тогда Ф(1, …,1) = f(f1 (1, ...,1), ..., fn(1, ...,1)) = f (1, ..., 1) = 1, т.е. .

III. Класс самодвойственных функций: Т* : {f|f = f*}.

Пусть f, f1, f2, ..., fn и Ф = f(f1(x1, ..., xn), ..., fn(x1, ..., xn)). Тогда по закону двойственности:

Ф* = f*(f1*(x1, ..., xn), ..., fn*(x1, ..., xn)) =

= f(f1(x1, ..., xn), ..., fn(x1, ..., xn)) = Ф. Следовательно, Ф .

IV. Класс монотонных функций:

, где

, , .

Пусть f, f1, f2, ..., fn и Ф = f(f1(x1, ..., xn), ..., fn(x1, ..., xn)). Тогда

т.е. .

V. Класс линейных функций: TL = {f|f = c0 + c1x1+...+cnxn}, где + означает сложение по модулю 2, а знак конъюнкции опущен.

Пусть f, f1, f2, ..., fn и Ф = f(f1(x1, ..., xn), ..., fn(x1, ..., xn)). Тогда

f = c0 + c1x1+...+cnxn,

f1= c01 + c11x1+...+cn1xn,

.......................................,

.

Подставим эти формулы в Ф. Имеем:

Ф(х1, …,хn) = c0 + c1 (c01 + c11x1+...+cn1xn,) + ... + = d0 + d1x1 + +dnxn.

Следовательно, .

Таким образом, доказано, что классы Т0, Т1, Т*, , ТL функционально замкнуты.

Рассмотренные классы попарно различны, не пусты и не совпадают с Pn

ПримерL. Является ли объединение функционально замкнутых классов функционально замкнутым классом?

Решение. Нет

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

0

+

-

-

+

+

1

-

+

-

+

+

-

-

+

-

+

х1^x2

+

+

-

+

-


Выпишем таблицу принадлежности некоторых булевых функций рассмотренным замкнутым классам:

Т0

Т1

Т*

ТL


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