русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

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


Дата добавления: 2015-07-23; просмотров: 823; Нарушение авторских прав


Класс функций, сохраняющих константу 0

Обозначим через T0 класс всех булевых функций f(x1,x2,...,xn), сохраняющих константу 0, то есть функций, для которых выполнено равенство f(0,0,...,0)=0. Очевидно, что функции 0, x, x1& x2, x1Ú x2, x1Å x2 принадлежат классу T0, а функции 1, , x1® x2 в него не входят.

Поскольку таблица для функций f(x1,x2,...,xn) из класса T0 в первой строке содержит фиксированное значение 0, то в T0 попадает ровно половина всех булевых функций: .

Покажем, что T0 - замкнутый класс. Так как он содержит тождественную функцию, то для обоснования его замкнутости достаточно показать, что функция Ф=f(f1,...,fm) принадлежит классу T0, если только f, f1,..., fm принадлежат этому классу.

 Ф(0,0,...,0)= f(f1(0,0,...,0),...,fm(0,0,...,0))= f(0,0,...,0)=0. 

 

Класс функций, сохраняющих константу 1

Обозначим через T1 класс всех булевых функций f(x1,x2,...,xn), сохраняющих константу 1; для них выполнено равенство f(1,1,...,1)=1. Этому классу принадлежат функции 1, x, x1& x2, x1Ú x2, x1® x2 и не принадлежат функции 1, , x1Åx2.

Покажем, что класс T1 состоит из функций, двойственных функциям из класса T0 (говорят, что класс T1 двойственен классу T0).

 Пусть f(x1,x2,...,xn) принадлежит T1, т.е. выполняется равенство f(1,1,...,1)=1. Тогда, воспользовавшись определением двойственной функции, получим: f*(0,0,...,0)= ( , ,..., )= (1,1,...,1)=0. Это значит, что f*(x1,x2,...,xn) принадлежит классу T0. 

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

 

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

Класс S включает в себя все самодвойственные функции, то есть такие функции, для которых выполняется равенство: f(x1,x2,...,xn)=f*(x1,x2,...,xn). Очевидно, что функции x и самодвойственные (см. табл. 1.7). Менее тривиальным примером самодвойственной функции является функция h(x1,x2,x3)=x1x2 Ú x1x3 Ú x2x3. Составив двойственную к h функцию h* и преобразовав h*, легко убедиться, что это так. Для самодвойственной функции имеет место тождество:



f(x1,...,xn); (*)

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

Навесим отрицания на (*) слева и справа:

`f(x1,...,xn); (**)

Отсюда следует, что самодвойственная функция полностью определяется своими значениями на первой половине строк, которых для n переменных будет 0.5×2n. Поэтому число самодвойственных функций, зависящих от переменных x1,...,xn, равно .

Докажем, что класс S замкнут. Поскольку он содержит тождественную функцию, достаточно показать, что функция Ф=f(f1,...,fm) является самодвойственной, если функции f, f1,..., fm самодвойственны. Последнее устанавливается непосредственно:

 Ф*(x1,...,xn) =`Ф =`f (f1 ,...,fm ) = по (**)

=`f (`f1(x1,...,xn),...,`fm (x1,...,xn)) = `f (`f1,...,`fm) = по (*)

= f(f1,...,fm) =Ф(x1,...,xn). 

Так как функции x и самодвойственные, а функции 0 и 1 самодвойственными не являются, то несамодвойственная функция одного переменного - это просто константа.

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

Если функция f(x1,...,xn) не принадлежит классу S, то из нее путем подстановки функций x и можно получить несамодвойственную функцию одного переменного, то есть константу.

 Так как f(x1,...,xn) Ï S, то найдется хотя бы один набор (a1,...,an), такой, что выполняется равенство f =f (a1,...,an). Используя этот набор, составим функцию одной переменной y(x)=f . Вычислим значение этой функции в нуле:

y(0) = f( ) = f( ) = f(a1,...,an) = f( ) = y(1).

Так как y(0)= y(1), то y(x) - это константа. 

Пример. Пусть f(x1,x2) = x1 | x2 . Тогда (a1,a2)=(0,1); y(x)=x0|x1=`x | x = 1.

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

Для двух наборов =(a1,...,an) и =(b1,..., bn), выполнено отношение предшествования , если a1£b1, ..., an£bn и хотя бы в одной координате i выполнено условие ai < bi.

Пример. (0, 1, 0, 1) (1, 1, 0, 1), а наборы (0, 1) и (1, 0) не сравнимы.

Функция f(x1,...,xn) называется монотонной, если для любых двух наборов и таких, что , имеет место неравенство: f( f( ). Например, функции 0, 1, x, x1&x2, x1Ú x2 монотонные, а функции , x1® x2, x1Åx2 монотонными не являются.

Обозначим через M множество всех монотонных функций. Покажем, что класс М замкнут. Поскольку тождественная функция принадлежит множеству M, то достаточно показать, что функция Ф=f(f1,...,fm) является монотонной, если функции f, f1,..., fm монотонны.

 Пусть и - два набора длины n значений переменных x1,...,xn, причем . Так как функции f1,..., fm монотонны, то выполняются соотношения fi( fi( ) при 1 £ i £ m, , поэтому набор (f1( ),..., fm( )) предшествует набору (f1( ),..., fm( )) или они совпадают. В обоих случаях в силу монотонности функции f справедливо неравенство:

f (f1( ),..., fm( )) £ f (f1( ),..., fm( )),

откуда следует, что Ф ( ) £ Ф ( ), т.е. Ф - функция монотонная. 

Наборы и называются соседними по i-й координате, если

=(a1,..., ai-1, ai, ai+1,... an), = (a1,..., ai-1, , ai+1,... an).

 

Лемма 1.2 (о немонотонной функции).

Если функция f(x1,...,xn) не принадлежит классу M, то из нее путем подстановки констант 0 и 1 и функции x можно получить функцию .

 Так как f(x1,...,xn) - немонотонная функция, то найдутся такие два набора и , что и при этом f( )>f( ). Если наборы и не являются соседними, то отличается от в t>1координатах. Так как предшествует , то такое различие означает, что эти t координат в наборе имеют значение 0, а в наборе - значение 1. Поставим между наборами и (t-1) промежуточных наборов так, чтобы выполнялось отношение предшествования . Наборы, стоящие в этой цепочке рядом, являются соседними. (Например, если =(0, 0, 0), а =(1, 1, 1), то получится цепочка (0, 0, 0) (0, 0, 1) (0, 1, 1) (1, 1, 1)).

Так как f( )>f( ), то, по крайней мере, на одной из этих пар соседних наборов - обозначим их через и ( ) - окажется, что f( )>f( ). Для определенности будем считать, что данные наборы имеют соседство по i-й координате и, следовательно,

=(a1,..., ai-1,0, ai+1,... an), = (a1,..., ai-1,1, ai+1,... an).

Используя эти наборы, составим функцию одной переменной

j(х) =f(a1,..., ai-1, x, ai+1,... an)

и вычислим ее значения в нуле и единице:

j(0) = f(a1,..., ai-1,0, ai+1,... an)= f( )>f( )=f(a1,..., ai-1,1, ai+1,... an)= j(1).

Итак, j(0) > j(1). Это возможно только в том случае, когда j(0)=1, j(1)=0, т.е. j(х) = . 

Пример. Пусть f(x1,x2) = x1 ­ x2 . Тогда =(0,0), =(0,1); y(x) = 0 ­ x =`x.

 

Класс L линейных функций содержит функции 0, 1, x, , x1Åx2 и не содержит функций x1&x2 и x1Ú x2. Выше было показано, что этот класс также замкнут.

 

Лемма 1.3 (о нелинейной функции).

Если функция f(x1,...,xn) не принадлежит классу L, то из нее путем подстановки констант 0 и 1 и функций x и , а также, быть может, путем навешивания отрицания над f можно получить функцию x1&x2.

 Составим полином Жегалкина для функции f(x1,...,xn).

Так как f(x1,...,xn) - нелинейная функция, в полиноме Жегалкина найдется слагаемое, содержащее не менее двух множителей. Без ограничения общности можно считать, что среди этих множителей присутствуют x1 и x2. Тогда соответствующий полином можно представить в виде:

x1x2g12(x3,...,xn) Å x1g1(x3,...,xn) Å x2g2(x3,...,xn) Å g0(x3,...,xn),

причем в силу единственности полинома g12(x3,...,xn)¹0. Значит, найдется хотя бы один набор (a3,...,an) такой, что g12(a3,...,an)=1.

Введем обозначения a= g1(a3,...,an), b= g2(a3,...,an), c= g0(a3,...,an)

и составим вспомогательную функцию 2 переменных: f(x1,x2)=f(x1,x2,a3,...,an)= x1x2 Å ax1 Å bx2 Å c.

Рассмотрим функцию

Y(x1,x2)= f(x1Åb, x2Åa) Å ab Å c.

Преобразуем ее с учетом определения функции f(x1,x2):

Y(x1,x2)= f(x1Åb, x2Åa) Å ab Å c=(x1Åb)(x2Åa) Å a(x1Åb) Å b(x2Åa) Å c Å ab Å c=

= = x1x2.

Таким образом, с помощью нелинейной функции удалось построить конъюнкцию Y(x1,x2)= x1&x2. 

Пример. Пусть f(x1, x 2, x3) = x1 x 2 x3 Å x1 x3 Å x 2 = x 2Ú x1 x3.

Тогда f(x1,x2) = x1 x 2 Å x1 Å x 2. Y(x1,x2) = x1x2.

 

Таблица 1.10
f T0 T1 S M L
+ - - + +
- + - + +
x + + + + +
- - + - +
x1&x2 + + - + -
x1Ú x2 + + - + -

Таблица 1.10 не содержит двух одинаковых столбцов. Это хорошо иллюстрирует тот факт, что замкнутые классы T0, T1, S, M и L попарно различны (знак “+” здесь показывает, что функция содержится в классе, а “-” обозначает обратную ситуацию).

 



<== предыдущая лекция | следующая лекция ==>
Замыкание и его свойства | Теорема о функциональной полноте


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.007 сек.