Поиск по сайту:



Проверить аттестат

Мы принимаем Яндекс.Деньги

«Учебник по дискретной математике. Суперпозиция функций. Замыкание набора функции.Замкнутые классы функций. Полные наборы. Базисы»

Файл: 4 КБ
Поделиться:

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

можно переименовать любую переменную, входящую в функцию из K;

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

Суперпозицию еще иначе называют сложной функцией.

Пример 7.1. Если дана одна функция х|(штрих Шеффера), то ее суперпозициями, в частности, будут следующие функции x|x, x|(x|y), x|(y|z) и т. д.

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

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

Неизбыточный полный набор функций называется базисом (“неизбыточный” означает, что если какую-то функцию удалить из набора, то этот набор перестанет быть полным).

Пример 7.2. Конъюнкция, дизъюнкция и отрицание являются полным набором (в этом убедились в разд. 5), но не являются базисом, так как это набор избыточен, поскольку с помощью правил де Моргана можно удалить конъюнкцию или дизъюнкцию. Любую функцию можно представить в виде полинома Жегалкина (разд. 6). Ясно, что функции конъюнкция, сложение по модулю 2 и константы 0 и 1 являются полным набором, но эти четыре функции также не являются базисом, поскольку 1+1=0, и поэтому константу 0 можно исключить из полного набора (для построения полиномов Жегалкина константа 0 необходима, поскольку выражение “1+1” не является полиномом Жегалкина).

Легко видеть, что одним из способов проверки полноты какого-то набора К является проверка того, что через функции из этого набора выражаются функции другого полного набора (можно проверить, что через функции из К можно выразить конъюнкцию и отрицание или дизъюнкцию и отрицание.

Существуют такие функции, что одна такая функция сама является базисом (здесь достаточно проверить только полноту, неизбыточность очевидна). Такие функции называются шефферовскими функциями. Это название связано с тем, что штрих Шеффера является базисом. Напомним, что штрих Шеффера определяется следующей таблицей истинности:

Так как очевидно , т. е. отрицание является суперпозицией штриха Шеффера, а дизъюнкция тогда , штрих Шеффера сам является базисом. Аналогично, стрелка Пирса является шефферовской функцией (студенты могут проверить это сами). Для функций 3-х или более переменных шефферовских функций очень много (конечно, выражение других булевых функций через шефферовскую функцию большого числа переменных сложно, поэтому в технике они редко используются).

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

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

  • Т0 – это набор всех тех логических функций, которые на нулевом наборе принимают значение 0 (Т0 – это класс функций, сохраняющих 0);
  • Т1 – это набор всех логических функций, которые на единичном наборе принимают значение 1 (Т1 – это класс функций, сохраняющих единицу) (заметим, что число функций от п переменных принадлежащих классам Т0 и Т1 равно 22n-1);
  • L – класс линейных функций т. е. функций, для которых полином Жегалкина содержит только первые степени переменных;
  • М – класс монотонных функций. Опишем класс этих функций более подробно. Пусть имеются 2 набора из п переменных:  s1 = (x1, x2,..., xn)

s1= (х1, х2,, хп) и s 2 = (y1, y2,, yп). Будем говорить, что набор s меньше набора s (s 1 £  s 2), если все хi £ yi. Очевидно, что не все наборы из п переменных сравнимы между собой (например, при п = 2 наборы (0,1) и (1,0) не сравнимы между собой). Функция от п переменных называется монотонной, если на меньшем наборе она принимает меньшее или равное значение. Разумеется, эти неравенства должны проверяться только на сравнимых наборах. Понятно, что несравнимые наборы – это те, в которых есть некоторые координаты типа (0,1) в одном наборе и (1,0) в другом на соответствующих местах (в дискретной математике монотонные функции это только как бы “монотонно возрастающие функции”, “монотонно убывающие” функции здесь не рассматриваются).

Пример. В нижеследующей таблице функции f1, fявляются монотонными функциями, а функции f3, f4 – нет.

 

 

x

y

f1

f2

f3

f4

0

0

0

0

0

1

0

1

1

0

1

0

1

0

0

1

1

0

1

1

1

1

0

1

Естественный порядок переменных обеспечивает тот факт, что если какой-то набор меньше другого набора, то он обязательно расположен в таблице истинности выше “большего” набора. Поэтому если в таблице истинности (при естественном порядке набора переменных) вверху стоят нули, а затем единицы, то эта функция точно является монотонной. Однако возможны инверсии, т. е. единица стоит до каких-то нулейно функция является все равно монотонной (в этом случае наборы, соответствующие “верхней” единице и “нижнему” нулю должны быть несравнимы; можно проверить, что функция, задаваемая таблицей истинности при естественном порядке набора переменных (00010101), является монотонной);

  • Класс S – класс самодвойственных функций. Функция п переменных называется самодвойственной, если на противоположных наборах она принимает противоположные значения, т. е. самодвойственная функция f(x1x2,…,xn) удовлетворяет условиюf (x1,x2, ..., xn ) =. Например, функции f1, f2 являются самодвойственными, а функции f3, f4 – не являются.Нетрудно устанавливается следующий факт.

Теорема. Классы функций Т0, Т1, L, M, S замкнуты.

Это утверждение следует непосредственно из определения самих этих классов, а также из определения замкнутости.

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

Теорема Поста. Для того чтобы некоторый набор функций K был полным, необходимо и достаточно, чтобы в него входили функции, не принадлежащие каждому из классов T0, T1, L, M, S.

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

Достаточность этого утверждения доказывается довольно сложно, поэтому здесь не приводится.

Из этой теоремы следует довольно простой способ выяснения полноты некоторого набора функций. Для каждой из этих функций выясняется принадлежность к перечисленным выше классам. Результаты заносятся в так называемую таблицу Поста (в нашем примере эта таблица составлена для 4-х функций, причем знаком “+” отмечается принадлежность функции соответствующему классу, знак “–” означает, что функция в него не входит).

 

f

T0

T1

L

M

S

f1

+

+

f2

+

+

f3

+

f4

+

+

+

В соответствии с теоремой Поста набор функций будет полным тогда и только тогда, когда в каждом столбце таблицы Поста имеется хотя бы один минус. Таким образом, из приведенной таблицы следует, что данные 4 функции образуют полный набор, но эти функции не являются базисом. Из этих функций можно образовать 2 базиса: f3, f1 и f3, f2. Полными наборами будут любые наборы содержащие, какой-либо базис.

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