http://vmk.ucoz.net/ -3- § 1. Булевы функции или функции алгебры логики. Пусть E = { 0,1 }, E — множество двоичных наборов n длины n. Набор ( α1 ,α 2 ,...,α n ) ∈ E n будем называть булевым ~ n . Число единиц в наборе α ~n набором и обозначать через α ~ ║). назовем весом набора (обозначение ║ α n Два ~ = ( α ,...,α , 0 ,α ,...,α ) α 1 k −1 k +1 n набора и ~ β = ( α1 ,...,α k −1 , 1 ,α k +1 ,...,α n ) , отличающиеся только в k-ой компоненте, называются соседними по k-ой компоненте. Рассмотрим булеву функцию ременных f :En →E . Набор f ( x1 , x2 ,..., xn ) от n песимволов переменных ( x1 , x2 ,..., xn ) будем обозначать также через ~ x n . Через P2 (n ) обозначим множество всех булевых функций от n переменных, {( ) xn т.е. P2 (n )= f ~ } f :En →E . Переменная xk для функции f ( x1 , x2 ,..., xn ) называется существенной, если найдется пара наборов, соседних по k-ой ~ компоненте α ~ и β таких, что значения функции на них (~ ) ~ ) ≠ f β . В противном случае переменная x различны, т.е. f (α k называется несущественной или фиктивной. -4Функция f ( x1 , x2 ,..., xn ) равна функции g ( x1 , x2 ,..., xm ) , если одна из них получается из другой с помощью введения или вычеркивания некоторых фиктивных переменных. Заметим, что для любой функции, отличной от константы 0 или 1, существует равная ей, у которой все переменные существенные. n Через B обозначим n-мерный булев (или двоичный) куб, который часто называют также единичным n-мерным кубом. n n Заметим, что B — это граф, вершины которого совпадают с E , а ребра соединяют соседние вершины. Через x обозначим отрицание от переменной x. В таблице 1 приведены основные элементарные функции алгебры логики. x y x& y x∨ y x⊕ y x → y x ↔ y x y x↓ y 0 0 0 0 0 1 1 1 1 0 1 0 1 1 1 0 1 0 1 0 0 1 1 0 0 1 0 1 1 1 1 0 1 1 0 0 Таблица 1 Эти функции носят соответственно названия: x & y — конъюнкция x и y, часто обозначают через точку или вообще опускают, читается как « x и y ». x ∨ y — дизъюнкция x и y, читается как « x или y». -5- x ⊕ y — сложение по модулю 2 x и y. x → y — импликация x и y, читается как «из x следует y». x ↔ y — эквивалентность x и y. x y — штрих Шеффера x и y, часто эту функцию называют антиконъюнкцией, читается как «не x или не y». x ↓ y — стрелка Пирса x и y, часто эту функцию называют антидизъюнкцией, читается как «не x и не y». Символы ,& ,∨ ,⊕ ,→ , ↔ , ,↓, участвующие в обозначениях элементарных функций, называются логическими связками. Основные тождества алгебры логики. 1. Функция D ∈ { & , ∨ , ⊕ , ↔ , , ↓ }, обладает x D y , где свойством коммутативности: xD y = yD x. 2. Функция x ∗ y , где ∗ ∈ { & , ∨ , ⊕ , ↔ }, обладает свойством ассоциативности: ( x ∗ y ) ∗ z = x ∗( y ∗ z ). 3. Дистрибутивные законы: ( x ∨ y ) & z = ( x & z ) ∨ ( y & z ); ( x & y ) ∨ z = ( x ∨ z ) & ( y ∨ z ); ( x ⊕ y ) & z = ( x & z ) ⊕ ( y & z ). -64. Законы де Моргана: а) x & y = x ∨ y ; б) x ∨ y = x & y . 5. Законы поглощения: а) x ∨ ( x & y ) = x ; 6. б) x & ( x ∨ y ) = x . а) x ∨ ( x & y ) = x ∨ y ; б) x & ( x ∨ y ) = x & y . 7. a) x & x = x & 0 = x ⊕ x = 0 ; б) x ∨ x = x ∨ 1 = x ↔ x = 1 . 8. Тождества, выражающие одни логические операции через другие: а) x ⊕ y = ( x & y ) ∨ ( x & y ) = ( x ∨ y ) & ( x ∨ y ) ; б) x → y = x ∨ y ; в) x ↔ y = x ⊕ y = ( x & y ) ∨ ( x & y ) = ( x ∨ y ) & ( x ∨ y ) ; г) x y = x & y = x ∨ y ; д) x ↓ y = x ∨ y = x & y . Будем считать, что операция отрицания – сильнее, чем любая двухместная связка. Конъюнкция & — самая сильная из связок ∨ , ⊕ , → , ↔ , , ↓ . В дальнейшем, знак & будем записывать в виде точки или вообще опускать. Это соглашение позволяет упрощать запись формул, не писать внешние и ряд других скобок. Например, тождество ( x ∨ y )& z = ( x & z )∨( y & z ) можно записать в виде ( x ∨ y ) z = xz ∨ yz . -7В справедливости приведенных тождеств проще всего убедиться, строя таблицы соответствующих им функций. Пример 1. По функциям f ( x1 , x2 ) и g ( x1 , x2 ) , заданным ~ = (1001), α ~ = (1110 ), построить векторное завекторно: α f g дание функции Для этой функции h( ~ x 4 ) = f ( x1 , g ( x4 , x3 )) → g ( x2 , f ( x1 , x3 )) . h построить таблицу П 2 ,2 ( h ) . f ( x1 , x2 ) и g ( x1 , x2 ) Решение. Для каждой из функций перейдём от векторного задания к табличному (см. табл.2). x1 x2 f ( x1 , x2 ) g ( x1 , x2 ) 0 0 1 1 0 1 0 1 1 0 0 1 Таблица 2 1 1 1 0 Принимая во внимание тот факт, что функция x→ y обращается в 0 только на наборе (1,0), а функция g ( x1 , x2 ) равна 0 лишь на наборе (1,1), можно упростить процедуру построения таблицы функции h( ~ x ) . В самом деле, функция 4 h( ~ x 4 ) = 0 тогда и только тогда, когда f ( x1 , g ( x4 , x3 )) = 1 и g ( x2 , f ( x1 , x3 )) = 0 . В свою очередь, g ( x2 , f ( x1 , x3 )) = 0 тогда и только тогда, когда того, что f ( x1 , x3 ) = 1 x2 = f ( x1 , x3 ) = 1, тогда в силу при x1 = x3 , заключаем, что -8- g ( x2 , f ( x1 , x3 )) = 0 либо при x1 = x2 = x3 = 1, либо при x2 = 1, x1 = x3 = 0 . Теперь f ( x1 , g ( x4 , x3 )) = 1 тогда и только тогда, когда x1 = g ( x4 , x3 ) . Замечаем, что если x1 = 0 , то g ( x4 ,0 ) = 1 при любом значении переменной x4 . Если x1 = 1, тогда g ( x4 ,1 ) = 1 при единственном значении переменной ~ = (1111111111111101) . x4 = 0 . Таким образом, получаем α h x1 x2 x3 x4 g1 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 f1 0 0 0 1 0 0 0 1 1 1 1 0 1 1 1 0 Таблица 3 В таблице 3 функция формулой, построена f2 g2 h( ~ x4 ) 1 1 0 0 1 1 0 0 0 0 1 1 0 0 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 h( ~ x 4 ) , реализуемая заданной «постепенно». Здесь используются следующие обозначения: g1 = g ( x4 , x3 ) , f1 = f ( x1 , g ( x4 , x3 )) , -9- f 2 = f ( x1 , x3 ) , булевой функции g 2 = g ( x2 , f ( x1 , x3 )) . Построим теперь для h прямоугольную таблицу П 2 ,2 ( h ) (см. табл.4). x1 x2 0 0 1 1 0 1 0 1 0 0 1 1 1 1 0 1 1 0 1 1 1 1 1 1 1 0 Таблица 4 1 1 1 1 1 1 x3 x4 Пример 2. Перечислить все существенные и фиктивные переменные у функции f(~ x 3 ) = (11110011) . x ) перейдем Решение. От векторного задания функции f ( ~ 3 к ее табличному заданию (см. табл. 5). x1 x2 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 x3 f ( x1 , x2 , x3 ) 0 1 0 1 0 1 0 1 Таблица 5 1 1 1 1 0 0 1 1 Сравнивая значения функции на всех парах наборов, соседних по переменной x3 , отметим, что f ( 0 ,0 ,0 ) = f ( 0 ,0 ,1) = 1, - 10 - f ( 0 ,1,0 ) = f ( 0 ,1,1 ) = 1, = f ( 1,1,1 ) = 1, т. е. f ( 1,0 ,0 ) = f ( 1,0 ,1 ) = 0 и f ( 1,1,0 ) = f ( x1 , x2 ,0 ) ≡ f ( x1 , x2 ,1 ) . Следовательно, переменная x3 фиктивная. Построим теперь функцию g ( ~ x ) 2 x ) фиктивной посредством операции удаления из функции f ( ~ 3 переменной x3 : вычеркнем из таблицы 5 все строки, соответствующие наборам вида ( α1 ,α 2 ,1 ) и столбец, соответствующий переменной x3 . Полученная функция g ( ~ x ) 2 x ) и f(~ x ) равны. изображена в таблице 6. Функции g ( ~ 2 x1 x2 g ( x1 , x2 ) 0 0 1 0 1 1 1 0 0 1 1 1 3 Таблица 6 Далее, так как g ( 1,0 ) = 0 , а g ( 1,1 ) = 1, заключаем, что переменная x2 существенная. Аналогично, так как g ( 0 ,0 ) = 1, а g ( 1,0 ) = 0 , то переменная x1 существенная. Итак, у функции f(~ x 3 ) переменные x1 , x2 существенные, а переменная x3 фиктивная. (Нетрудно убедиться в том, что f ( ~ x ) = x1 → x2 .) 3 - 11 ЗАДАЧИ 1.1. По функциям f ( x1 , x2 ) и g ( x1 , x2 ) , заданным векторно, построить функцию h: ~ = (1011), α ~ = (0111) , 1) α f g x 2 ) = f ( x1 , g ( x1 , x2 )); a) h( ~ b) h( ~ x 2 ) = g ( x2 , f ( x2 , x1 )); c) h( ~ x 2 ) = f ( f ( x1 , g ( x1 , x2 )), g ( x1 , x2 )); d) h( ~ x 3 ) = g ( x1 , x2 ) ⊕ f ( x3 , g ( x1 , x2 )); e) h( ~ x 3 ) = f ( x2 , g ( x3 , x1 )) ↔ g ( x1 , g( x2 , x3 )). ~ = (1010 ), α ~ = (0110 ) , 2) α f g a) h( ~ x 3 ) = f ( x3 , g ( x1 , x2 )); b) h( ~ x 3 ) = g ( g( x3 , x2 ), f ( x1 , x3 )); c) h( ~ x 3 ) = f ( f ( x3 , g ( x1 , x2 )), g ( x1 , x2 )); d) h( ~ x 3 ) = f ( f ( x1 , x2 ), g ( x3 , x1 )) → g ( x1 , g ( x1 , x2 )) . 1.2. Найти число всех функций от n переменных, которые на противоположных наборах принимают одинаковые значения. При n = 2,3 найти все функции существенно зависящие от всех переменных. - 12 1.3. Найти число всех функций от n переменных, которые на противоположных наборах принимают противоположные значения. При n = 2,3 найти все функции существенно зависящие от всех переменных. 1.4. Найти число всех функций от n переменных, которые на любой паре соседних наборов принимают противоположные значения. Найти вид этих функций. 1.5. Построив таблицы для соответствующих функций, убедиться в справедливости следующих эквивалентностей: a) x ∨ y = ( x → y ) → y ; b) x ↔ y = ( x → y ) & ( y → x ) ; c) x ↓ y = (( x x ) ( y y )) ((x x ) ( y y )); d) x ∨ ( y ↔ z ) = ( x ∨ y ) ↔ ( x ∨ z ) ; e) x & ( y ↔ z ) = (( x & y ) ↔ ( x & z )) ↔ x ; f) x → ( y ↔ z ) = ( x → y ) ↔ ( x → z ) ; g) x ∨ ( y → z ) = ( x ∨ y ) → ( x ∨ z ) ; h) x & ( y → z ) = ( x → y ) → ( x & z ) ; i) x → ( y ∨ z ) = ( x → y ) ∨ ( x → z ) ; j) x → ( y & z ) = ( x → y ) & ( x → z ) ; k) x → ( y → z ) = ( x → y ) → ( x → z ) . 1.6. Используя основные тождества алгебры логики, докажите справедливость соотношений из задачи 1.5. - 13 1.7. Показать, что x1 — фиктивная переменная у функции f, реализовав для этой цели функцию f формулой, не содержащей явно переменную x1 : a) f ( ~ x 2 ) = (x2 → x1 ) ⋅ (x2 ↓ x1 ); b) f ( ~ x 2 ) = (x1 ↔ x2 ) ∨ (x1 x2 ); c) f ( ~ x 3 ) = ((x1 ⊕ x2 ) → x3 ) ⋅ (x3 → x2 ); d) f ( ~ x 3 ) = ((x1 ∨ x2 ⋅ x3 ) ↔ (x1 → x2 ⋅ x3 ))⋅ (x2 ↓ x3 ); e) f ( ~ x 3 ) = ((x1 ∨ x2 ∨ x3 ) → (x1 x2 x3 )) ⊕ (x2 → x1 ) ⋅ x3 . 1.8. Перечислить все существенные и фиктивные переменные у следующих функций: a) f ( ~ x 2 ) = ((x1 ∨ x2 ) → x1 ⋅ x2 ) ⊕ (x1 → x2 ) ⋅ (x2 → x1 ) ; b) f ( ~ x 2 ) = (x1 ⋅ x2 ⊕ (x1 → x2 )) → (x1 ↔ x1 ⋅ x2 ); c) f ( ~ x 3 ) = ((x1 → x2 ) ⊕ (x2 → x3 )) ⊕ (x2 → x3 ); d) f ( ~ x 3 ) = ((x1 ∨ x2 ⋅ x3 ) ⊕ (x1 → x2 ⋅ x3 )) ∨ (x2 ↔ x3 ); e) f ( ~ x 3 ) = (10101010) ; x 3 ) = (10011001) ; f) f ( ~ g) f ( ~ x 3 ) = (00111100) . - 14 - § 2. Специальные представления булевых функций. Разложение по переменным. σ ⎧ x , если σ = 1, Пусть σ ∈ E . Введём обозначение x = ⎨ ⎩ x , если σ = 0. Нетрудно проверить, что x1σ1 x2σ 2 ...xk σ k = 1 ⇔ xσ = 1 ⇔ x = σ. Тогда x1 = σ1 , x2 = σ 2 ,..., xk = σk . Теорема 1 (о разложении функции). Всякую булеву функцию f ( x1 ,..., xn ) представить в виде: f ( x1 ,..., xn ) = при любом ∨ (σ1 ,..., σ k ) k ( 1 ≤ k ≤ n ) можно x1σ1 ...xk σ k f ( σ1 ,...,σ k , xk +1 ,..., xn ) , k где дизъюнкция берётся по всем наборам ( σ1 ,...,σ k ) из E . Следствие 1 (разложение по i-ой переменной). f ( x1 ,..., xn ) = xi f ( x1 ,..., xi −1 ,0 , xi +1 ,..., xn ) ∨ ∨ xi f( x1,..., xi −1,1 , xi +1,..., xn ) . (1) Следствие 2 (разложение по всем n переменным). f( ~ xn )= ∨ (σ1 ,..., σ n ) x1σ1 ...xn σ n f ( σ1 ,...,σ n ) , (2) n где дизъюнкция берётся по всем наборам ( σ1 ,...,σ n ) из E . - 15 - x n ) не равна тождественно нулю, то Если функция f ( ~ выражение (2) можно записать в виде: ∨ f ( x1 ,..., xn ) = (σ1 ,...,σ n ) x1σ1 ...xn σ n , (3) f ( σ1 ,...,σ n )=1 n где дизъюнкция берётся по всем наборам ( σ1 ,...,σ n ) из E , на которых функция f ( ~ x n ) обращается в 1. Представление функции в виде (3) называется совершенной дизъюнктивной нормальной формой (сокращённо совершенной д.н.ф. или СДНФ) функции f ( ~ x n ). Непосредственно к понятию совершенной д.н.ф. примыкает следующая теорема. Теорема 2. Всякую функцию алгебры логики можно представить в виде формулы через отрицание, конъюнкцию и дизъюнкцию. Кроме приведённых выше разложений булевых функций, широко используются также следующие разложения. Теорема 3. Всякую булеву функцию f ( x1 ,..., xn ) при любом k ( 1 ≤ k ≤ n ) можно представить в виде: f( ~ xn ) = & (σ ,...,σ 1 k) (x σ1 1 ) ∨ ... ∨ xk σ k ∨ f ( σ1 ,...,σ k , xk +1 ,..., xn ) , k где конъюнкция берётся по всем наборам ( σ1 ,...,σ k ) из E . - 16 Следствие 1 (разложение по i-ой переменной). f(~ x n ) = ( xi ∨ f( x1,..., xi −1,1 , xi +1,..., xn ))& & ( xi ∨ f( x1,..., xi −1,0 , xi +1,..., xn )). Следствие 2 (разложение по всем n переменным). f( ~ xn )= & (σ ,..., σ 1 n) (x σ1 1 (4) ) ∨ ... ∨ xn σ n ∨ f ( σ1 ,...,σ n ) , (5) n где конъюнкция берётся по всем наборам ( σ1 ,...,σ n ) из E . x n ) не равна тождественно 1, тогда Если функция f ( ~ выражение (5) можно записать в виде: f( ~ xn )= & ( σ ,..., σ ) 1 n f ( σ1 ,..., σ n ) = 0 (x σ1 1 ) ∨ ... ∨ xn σ n , (6) n где конъюнкция берётся по всем наборам ( σ1 ,...,σ n ) из E , на которых функция f ( ~ x n ) обращается в 0. Представление функции в виде (6) называется совершенной конъюнктивной нормальной формой (сокращённо совершенной к.н.ф. или СКНФ) функции f ( ~ x n ). Пример 1. Разложить по переменной x1 , применяя формулы (1) и (4), и представить в совершенных д.н.ф. и к.н.ф. функцию f (x1 , x2 ) = x1 → x2 . - 17 - Решение. f (0 , x2 ) = 0 → x2 = 1, f (1, x2 ) = 1 → x2 = x2 . Поэтому согласно (1) имеем f (x1 , x2 ) = x1 ⋅ 1 ∨ x1 ⋅ x2 , а ис- ) ( ( ) ( ) пользуя формулу (4), получаем f x1 , x2 = x1 ∨ x2 & x1 ∨ 1 . Так как f ( 0 ,0 ) = f ( 0 ,1) = f ( 1,1) = 1 и ( f ( 1,0 ) = 0 , совершен- ) 0 0 0 1 ная д.н.ф. функции f имеет вид f x1 , x2 = x1 x2 ∨ x1 x2 ∨ ∨ x11x21 = x1 x2 ∨ x1 x2 ∨ x1 x2 , а совершенная к.н.ф. такова: f (x1 , x2 ) = x11 ∨ x20 = x10 ∨ x21 = x1 ∨ x2 . Пример 2. Представить в совершенной д.н.ф. и совер- ( ) шенной к.н.ф. функцию f ~ x 3 = ( 01101011 ) . Решение. Функция принимает значение 1 на наборах (0 ,0 ,1), (0,1,0), (1,0,0), (1,1,0) и (1,1,1). Элементарные конъюнкции, 0 0 1 соответствующие этим наборам, таковы: x1 x2 x3 = x1 x2 x3 , x10 x21x30 = x1 x2 x3 , x11x20 x30 = x1x2 x3 , x11x21x30 = x1 x2 x3 и ( ) x11x21x31 = x1 x2 x3 . Значит, совершенная д.н.ф. функции f ~ x3 имеет вид: x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 . Для построения совершенной к.н.ф. рассматриваем все те наборы, на которых функция f (0,1,1) и (1,0,1). обращается в нуль. Это наборы (0 ,0 ,0 ), Элементарные дизъюнкции, соответствующие этим наборам, таковы: - 18 - x10 ∨ x20 ∨ x30 = x11 ∨ x21 ∨ x31 = x1 ∨ x2 ∨ x3 , x10 ∨ x21 ∨ x31 = x11 ∨ x20 ∨ x30 = x1 ∨ x2 ∨ x3 , x11 ∨ x20 ∨ x31 = x10 ∨ x21 ∨ x30 = x1 ∨ x2 ∨ x3 . Перемножая эти дизъюнкции, получаем совершенную к.н.ф. )( ( )( ) функции f : x1 ∨ x2 ∨ x3 ⋅ x1 ∨ x2 ∨ x3 ⋅ x1 ∨ x2 ∨ x3 . Полином Жегалкина. Теорема 4. Всякую булеву функцию f ( x1 ,..., xn ) можно представить в виде: ∑ f ( x1 ,..., xn ) = (σ1 ,..., σ n ) x1σ1 ...xn σ n , (7) f ( σ1 ,..., σ n ) =1 где сумма по mod 2 берётся по всем наборам ( σ1 ,...,σ n ) из E n , на которых функция f ( ~ x n ) обращается в 1. Нетрудно тогда x σ видеть, что x 0 = x = x ⊕ 1, x1 = x = x ⊕ 0 , = x ⊕ σ . Подставив в (7) вместо xi σ i выражение xi ⊕ σ i , получим f ( x1 ,..., xn ) = ∑ (σ1 ,..., σ n ) f ( σ1 ,..., σ n ) =1 (x1 ⊕ σ1 )...(xn ⊕ σ n ). - 19 Обычным образом раскрыв скобки и приведя подобные члены по правилу A ⊕ A = 0 , придем к представлению функции в виде полинома по mod 2: f ( x1 ,..., xn ) = ∑ {i1 ,...,i s }⊆{1,...,n} αi x ...xi , 1 ...i s i1 s (8) где коэффициенты αi ...i равны 0 или 1. Пустая конъюнкция 1 s считается равной 1, так что коэффициент, соответствующий пустому множеству индексов, представляет собой свободный член полинома. Представление функции f ( ~ x n ) в виде (8) носит название полинома Жегалкина. Для функции, тождественно равной нулю, в качестве полинома берется 0. Теорема 5. представлена в Всякая виде булева функция может быть полинома Жегалкина единственным образом. Пример 3. ( ) Построить полином Жегалкина для функции f ~ x 3 = ( 01101011 ) . Решение. В примере 2 для этой функции была построена СДНФ: x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 ∨ x1 x2 x3 , поэтому ( ) f ~ x 3 = (x1 ⊕ 1)(x2 ⊕ 1) x3 ⊕ (x1 ⊕ 1) x2 (x3 ⊕ 1) ⊕ ⊕ x1 (x 2 ⊕ 1)(x3 ⊕ 1) ⊕ x1 x2 (x3 ⊕ 1) ⊕ x1 x2 x3 . Для преобразования этого выражения могут быть - 20 использованы обычные приемы элементарной алгебры, за исключением правила A ⊕ A = 0 . В частности, применяя группировку членов и вынесение за скобки, получаем ( ) f ~ x 3 = (x1 ⊕ 1)(x2 x3 ⊕ x3 ⊕ x2 x3 ⊕ x2 ) ⊕ ( ⊕ (x3 ⊕ 1)( x1 x 2 ⊕ x1 ⊕ x1 x 2 ) ⊕ x1 x2 x3 = )( ) ( ) = x1 ⊕ 1 x2 ⊕ x3 ⊕ x3 ⊕ 1 x1 ⊕ x1 x2 x3 . Наконец, раскрывая скобки, получаем полином Жегалкина: ( ) f ~ x 3 = x1 x2 ⊕ x1 x3 ⊕ x2 ⊕ x3 ⊕ x1 x3 ⊕ x1 ⊕ x1 x2 x3 = = x1 ⊕ x2 ⊕ x3 ⊕ x1 x2 ⊕ x1 x2 x3 . Кроме Жегалкина, рассмотренного существуют и способа построения другие методы полинома построения. Рассмотрим некоторые из них. Метод неопределенных коэффициентов. Пусть ( ) P~ xn — искомый реализующий заданную функцию ( ) полином ( ) Жегалкина, f ~ x n . Запишем его в виде P~ x n = α 0 ⋅1 ⊕ α1 ⋅ x1 ⊕ ... ⊕ α n ⋅ xn ⊕ α12 ⋅ x1 ⋅ x2 ⊕ ... ⊕ ⊕ α n −1,n xn −1 ⋅ xn ⊕ ... ⊕ α1...n x1 ⋅ ... ⋅ xn . (9) Требуется найти неизвестные коэффициенты в этом ~ ∈ E n составляем разложении. Поступаем так. Для каждого α ~ ) — выражение, P( α ~ . Это дает систему из получающееся из формулы (9) при ~ x =α уравнение ~ )= f (α ~ ), P( α где - 21 - 2n уравнений с 2n неизвестными, которая имеет единственное решение. Решив систему, находим коэффициенты полинома ( ) P~ xn . Пример 4. Методом неопределенных коэффициентов найти ( ) полином Жегалкина для функции f ~ x 3 = ( 01101011 ) . ( ) Решение. P ~ x 3 = α 0 ⊕ α1 ⋅ x1 ⊕ α 2 ⋅ x2 ⊕ α3 ⋅ x3 ⊕ ⊕ α12 ⋅ x1 ⋅ x2 ⊕ α13 ⋅ x1 ⋅ x3 ⊕ α 23 ⋅ x2 ⋅ x3 ⊕ α123 ⋅ x1 ⋅ x2 ⋅ x3 . Выпишем систему уравнений для неизвестных коэффициентов: f (0 ,0 ,0 ) = 0 = α 0 , f (0 ,0 ,1) = 1 = α 0 ⊕ α 3 , f (0 ,1,0 ) = 1 = α 0 ⊕ α 2 , f (0 ,1,1) = 0 = α 0 ⊕ α 2 ⊕ α 3 ⊕ α 23 , f (1,0 ,0 ) = 1 = α 0 ⊕ α1 , f (1,0 ,1) = 0 = α 0 ⊕ α1 ⊕ α 3 ⊕ α13 , f (1,1,0 ) = 1 = α 0 ⊕ α1 ⊕ α 2 ⊕ α12 , f (1,1,1) = 1 = α 0 ⊕ α1 ⊕ α 2 ⊕ α 3 ⊕ α12 ⊕ α13 ⊕ α 23 ⊕ α123 . Решая эту систему, находим α 0 = α13 = α 23 = 0 . α1 = α 2 = α 3 = α12 = α123 = 1 , Следовательно, = x1 ⊕ x2 ⊕ x3 ⊕ x1 x2 ⊕ x1 x2 x3 . ( ) f ~ x 3 = ( 01101011 ) = - 22 Алгебраический метод построения полинома. Сначала формулу, реализующую функцию f, преобразуем в формулу над множеством связок { , &}. Затем заменяем всюду подформулы вида A на A ⊕ 1 , раскрываем скобки, пользуясь дистрибутивным законом A ⋅ ( B ⊕ C ) = A ⋅ B ⊕ A ⋅ C , и применяя тождества A ⋅ A = A, A ⋅1 = A, A ⊕ A = 0 и A ⊕ 0 = A . Пример 5. Построить полином Жегалкина для функции ( ) f ~ x 3 = x1 ∨ x1 ⋅ x2 ∨ x2 ⋅ x3 . Решение. Выразим f в виде формулы через отрицание и ( ) конъюнкцию: f ~ x 3 = x1 ∨ x1 ⋅ x2 ∨ x2 ⋅ x3 = x1 ∨ x2 ∨ x3 = = x1 ∨ x2 ∨ x3 = x1 ⋅ x2 ⋅ x3 . Заменим теперь все подформулы вида A на A ⊕ 1 : ( ) f ~ x 3 = (x1 ⊕ 1) ⋅ (x2 ⊕ 1) ⋅ x3 ⊕ 1 = = (x1 x2 ⊕ x1 ⊕ x2 ⊕ 1)x3 ⊕ 1 = x1 x2 x3 ⊕ x1 x3 ⊕ x2 x3 ⊕ x3 ⊕ 1. ЗАДАЧИ 2.1. Для следующих функций построить СДНФ и СКНФ: ( ) b) ; f (~ x 3 ) = (x1 ∨ x2 )⋅ x3 ; c) f (~ x 3 ) = x1 ∨ x1 ⋅ x2 ∨ x2 ⋅ x3 ; a) f ~ x 3 = x1 ⋅ x2 ∨ x3 ; - 23 - ( ) e) f (~ x 3 ) = (x1 → x2 ) ⊕ (x1 x2 ⋅ x3 ); f) f (~ x 3 ) = (x1 ⋅ x2 ⊕ x3 )⋅ (x1 ⋅ x3 → x2 ). d) f ~ x 3 = (x1 ∨ x2 ∨ x3 )⋅ (x1 ⋅ x2 ∨ x3 ); 2.2. Построить из заданной д.н.ф. функции ее СДНФ: ( ) b) f (~ x 3 ) = x1 ⋅ x2 ∨ x2 ⋅ x3 ∨ x1 ⋅ x3 ; c) f (~ x 3 ) = x1 ∨ x2 ⋅ x3 ∨ x2 ⋅ x3 . a) f ~ x 3 = x1 ⋅ x2 ∨ x3 ; 2.3. Построить из заданной к.н.ф. функции ее СКНФ: ( ) b) f (~ x 3 ) = (x1 ∨ x2 ) ⋅ (x2 ∨ x3 )⋅ x3 ; c) f (~ x 3 ) = (x1 ∨ x2 )⋅ (x1 ∨ x3 )⋅ (x2 ∨ x3 ) . a) f ~ x 3 = x1 ⋅ (x2 ∨ x3 ); 2.4. Выразить через полином Жегалкина все элементарные функции алгебры логики от двух переменных. 2.5. Методом неопределенных коэффициентов найти полиномы Жегалкина для следующих функций: ( ) c) f (~ x 3 ) = ( 0 0 0 0 0111 ); а) f ~ x 3 = ( 011010 01 ) ; ( ) d) f (~ x 3 ) = ( 0110 0110 ) . b) f ~ x 3 = ( 10 0 01110 ) ; 2.6. Построить полиномы Жегалкина для всех функций из задачи 2.1. – 24 – § 3. Двойственность и класс самодвойственных функций. g ( x1 ,..., xn ) Функция называется двойственной к функции f ( x1 ,..., xn ) , если g ( x1 ,..., xn ) = f ( x1 ,..., xn ) , эту функцию будем обозначать через f ∗ ( x1 ,..., xn ) т.е. f ∗ ( x1 ,..., xn ) = f ( x1 ,..., xn ) . Легко видеть, что функция 0 двойственна функции 1, функция 1 двойственна функции 0, функция x двойственна функции x, функция x двойственна функции x , функция x1 & x2 двойственна функции x1 ∨ x2 , функция x1 ∨ x2 двойственна функции x1 & x2 . Если функция f задана формулой через отрицание, & и ∨, то справедлив следующий принцип двойственности. Для того, чтобы получить формулу, реализующую функцию f ∗, достаточно заменить все операции & на ∨, все операции ∨ на &, а все константы — противоположными константами. Из принципа двойственности вытекает, что если имеет место некоторое тождество, то справедливо и двойственное к нему. Нетрудно понять, что пары а) и б) основных тождеств алгебры логики двойственными. 4 – 7, приведенные в § 1, являются – 25 – Пример1. Используя принцип двойственности, построить формулу. реализующую функцию, двойственную к функции f = x ⋅1 ∨ y ⋅ ( z ∨ 0 ) ∨ x ⋅ y ⋅ z , и убедиться в том, что полученная формула эквивалентна формуле A = x ⋅ ( y ⊕ z ) . Решение. Согласно принципу двойственности имеем: f ∗ = ( x ∨ 0 ) ⋅ ( y ∨ ( z ⋅1)) ⋅ (x ∨ y ∨ z ) = x ⋅ ( y ∨ z ) ⋅ (x ∨ y ∨ z ) = = x ⋅ ( y ∨ z ) ⋅ ( y ∨ z ) = x ⋅ ( y ⋅ z ∨ y ⋅ z ) = x ⋅ ( y ⊕ z ) . Получаем, что функция, двойственная к функции f, может быть реализована формулой A. Функция f ( x1 ,..., xn ) называется самодвойственной, если она совпадает со своей двойственной, т.е. f ( x1 ,..., xn ) = f ∗ ( x1 ,..., xn ) . Множество всех самодвойственных функций n от переменных будем обозначать через S ( n ) . Класс всех самодвойственных функций (от любого числа переменных) замкнут относительно операции суперпозиции, обозначим его через S , т. е. [S]=S. Функция самодвойственна тогда и только тогда, когда она на любых двух противоположные противоположных значения. наборах Отсюда принимает следует, что самодвойственная функция полностью определяется своими значениями на первой половине строк, поэтому S ( n ) = 2 2 n −1 . – 26 – Лемма 1 (о несамодвойственной функции). Если функция f ( x1 ,..., xn ) не является самодвойственной, то из нее с помощью подстановки x и x вместо переменных можно получить константу. Доказательство: Пусть функция f ( x1 ,..., xn ) не само- двойственна, тогда найдется пара противоположных наборов ~ = ( α , α …, α ) α 1 2 n ~ β = ( α1 , α 2 … , α n ) и таких, что ~ ~ ) = f ( β ) = с для значения функции на них совпадают, т. е. f ( α α некоторого с ∈ { 0 , 1 }. Сделаем замену x i → xi для всех i = 1 , 2 ,…, n . Вновь полученную функцию от одной переменной, обозначим через ϕ( x ) . Нетрудно проверить, что ϕ( 0 ) = ϕ( 1 ) = с , что и требовалось доказать. Проиллюстрируем эту лемму на примере. Пример1. Определить, можно ли получить константу из x 3 ) = x3 → x1 x2 . функции f ( ~ Решение. Перейдем к табличному заданию этой функции. В таблице 7 стрелками одинаковой длины указаны противоположные наборы. Замечаем, что f ∉ S , т. к. нарушается условие самодвойственности на первом и восьмом наборах: f ( 000 ) = f ( 111 ) = 1. Таким образом, константу 1 можно получить двумя способами. – 27 – x1 x2 x3 x1 x2 x3 → x1 x2 0 0 0 0 1 0 0 1 0 0 0 1 0 0 1 0 1 1 0 0 1 0 0 0 1 1 0 1 0 0 1 1 0 1 1 1 1 1 1 1 Таблица 7 Сделаем следующую замену переменных: x 0 → x1 , x 0 → x2 , x 0 → x3 , тогда f ( x , x , x ) = x → x x = 1 . Если сделать замену: x1 → x1 , x1 → x2 , x1 → x3 , тогда f ( x , x , x ) = x → x x = 1. Константу ноль из заданной функции получить нельзя, т.к. не существует двух противоположных наборов, на которых функция принимает нулевое значение. Лемма о несамодвойственной функции может быть использована для получения ряда тождеств для констант. В примере 1 мы получили следующие тождества: x → x x = 1, x → x x = 1. Эти тождества нетрудно доказать, используя тождества: x ⋅ x = x , x → y = x ∨ y , x ∨ x = 1. – 28 – ЗАДАЧИ 3.1. Используя непосредственно определение двойственности булевых функций, а также основные тождества, выяснить, является ли функция g двойственной к функции f: a) f = x ⊕ y , g = x ↔ y ; b) f = x y , g = x ↓ y ; c) f = x → y , g = x ⋅ y ; d) f = (x → y ) → ( y → x ), g = ( x → y ) ⋅ ( y → x ); e) . f = x ⋅ y ∨ z , g = x ⋅ ( y ∨ z ) ; f) f = x ⋅ y → z , g = x ⋅ y ⋅ z . 3.2. Используя принцип двойственности, построить формулу, реализующую функцию, двойственную к функции f. Полученную формулу по возможности упростить. a) f = ( x ∨ y ∨ z ) ⋅ ( y ⊕ z ) ∨ x ⋅ y ⋅ z ; ( ) b) f = ( x ∨ (1 → y )) ∨ y ⋅ z ∨ x y ↓ z ; c) f = (x ↓ y ) ⊕ (( x y ) ↓ (x ↔ y ⋅ z )); d) f = (x ∨ y ∨ ( y ⋅ z ⊕ 1)) ↓ z . 3.3. Показать, что функция x⋅ y ∨ x⋅z ∨ y⋅z является самодвойственной. 3.4. Найти все самодвойственные функции существенно зависящие от двух переменных. – 29 – ~ 3.5. Заменить прочерки в векторе α f символами 0 или 1 так, чтобы получился вектор самодвойственной функции: ~ = ( 01− 0 − 0 − −11− 0 −1− − ) ; a) α f ~ = ( − − 01− −11− − 01− −10 ) ; b) α f ~ = ( 11− − 0 0 − − 01− −10 − − ) . c) α f 3.6. Выяснить, является ли самодвойственной функция f, заданная векторно: ~ = ( 011010 01 ) ; a) α f ~ = ( 011110 01 ) ; b) α f ~ = ( 10110110 ) ; c) α f ~ = ( 101010 0 0 ). d) α f 3.7. Выяснить, является ли функция f самодвойственной. Если не является, то построить из f константу. a) f = x ⊕ y ⊕ z ⊕ 1 ; b) f = x ⊕ y ; c) f = x ⋅ y ⊕ y ⋅ z ⊕ x ⋅ z ⊕ y ⊕ z ; d) f = (x ∨ y ∨ z )⋅ t ∨ x ⋅ y ⋅ z ; e) f = x ⋅ y ∨ z ; f) f = x ⋅ y ⊕ z ⋅ ( x ∨ y ). – 30 – § 4. Монотонность и класс монотонных функций. Пусть ~ = ( α , α …, α ), α 1 2 n ~ β = ( β1 ,β 2 ,… , β n ) и выполнены неравенства: α i ≥ βi для всех i = 1, 2 , … ,n , тогда ~ = ( α , α … , α ) больше или будем говорить, что набор α 1 2 n ~ ~ равен β = ( β1 ,β2 ,… , βn ) и обозначать через α ~ β . Если для ~ и ~ ~ наборов α β выполнено одно из двух неравенств: α ~ β или ~ β ~ , то будем говорить, что наборы α ~ и ~ α β сравнимы. В ~ и ~ β несравнимы. Очевидно, что противном случае, наборы α любые два соседних набора сравнимы. Функция f ( x1 ,..., xn ) называется монотонной, если для ~ и ~ ~ любых α β , таких, что α ~ β выполнено неравенство: ~ ~ )≥ f( β f(α ) . В противном случае, функция называется немонотонной. Множество всех монотонных функций от n переменных обозначим через M(n). Класс всех монотонных функций замкнут относительно операции суперпозиции, обозначим его через M, т.е. [M ] = M . Лемма 2 (о немонотонной функции). Если функция f ( x1 ,..., xn ) не является монотонной, то из нее с помощью подстановки констант 0 , 1 и переменной x можно получить x . – 31 – Доказательство. Пусть функция f ( x1 ,..., xn ) немонотонна, тогда найдется такая пара сравнимых наборов ~ ~ = ( α , α …, α ) и β ~ α = ( β1 ,β2 ,… , βn ) , что α 1 2 n ~ )< f( ~ ~ ) = 0, f(α β ) , т. е. f ( α i ( i = 1 ,...,n ) ~ β, а ~ f ( β ) = 1. Для каждого выполнено либо α i = β i , либо α i > β i (т. к. α i ≥ β i ). В первом случае делаем замену α i вместо переменной xi , т. е. αi → xi , во втором – подставляем x вместо переменной xi , т. е. x → xi . Вновь полученную функцию, обозначим через ~ ϕ( x ). Тогда, нетрудно проверить, что ϕ(0 ) = f ( β ) = 1 , ~ ) = 0 , т. е. ϕ( x ) = x . Утверждение доказано. ϕ(1) = f ( α Замечание. Если функция не является монотонной, то найдется пара соседних наборов, на которых нарушается условие монотонности. Следствие. Если функция f ( x1 ,..., xn ) немонотонна, то из нее с помощью подстановки констант: вместо n − 1 переменной и переменной x можно получить x . Доказательство. В силу замечания, найдется пара наборов ~и~ ~ α β , соседних по i –ой компоненте, таких что α которых условие монотонности нарушается, ~ β , на т. е. ~ )< f( ~ ~ = ( α ,… ,α ,1 ,α ,...,α ) , f(α β ) . Очевидно, α 1 i −1 i +1 n ~ β = ( α1 ,… ,α i −1 , 0 ,α i +1 ,...,α n ) . Сделаем следующую – 32 – ⎧α k , если k ≠ i , подстановку xk → ⎨ для всех k = 1 , 2 , … , n . ⎩ x, если k = i , Вновь полученная функция будет зависеть от одной переменной, обозначим ее через ϕ( x ). Тогда, нетрудно проверить, что ~ ϕ(0 ) = f ( β ) = 1, ~ ) = 0, ϕ( 1 ) = f ( α т. е. ϕ( x ) = x . Утверждение доказано. Пример 1. Определить, можно ли получить функцию x из функции f ( x1 , x2 , x3 ) = x1 ⊕ x 2 x3 . Решение. f ( 100 ) = 1 , Функция f немонотонна, т. к. f ( 111 ) = 0 , значит по лемме о немонотонной функции из этой функции можно получить функцию x . Сделаем следующую замену переменных: 1 → x1 , x → x2 , x → x3 , тогда получаем, что f ( 1, x , x ) = 1 ⊕ x = x . Воспользуемся теперь следствием леммы, для этого надо выбрать пару соседних наборов, на которых нарушено условие монотонности. Имеем, f ( 110 ) = 1, а f ( 111 ) = 0 . После подстановки переменной x и константы 1, 1 → x1 , 1 → x2 , x → x3 получим, что f ( 1 ,1 , x ) = 1 ⊕ 1 ⋅ x = x . Проверку на монотонность булевой функции f(~ x n ), ~ = ( α ,α ,...,α заданной своим вектором значений α ), f 0 1 2 n −1 ~ на можно осуществить следующим образом. Разделим вектор α f – 33 – две ~ α ~ α f1 1 f1 0 равные части ~ α f1 0 = ⎛⎜ α 0 ,α1 ,...,α n −1 ⎞⎟ ⎝ 2 −1 ⎠ = ⎛⎜ α n −1 ,α n −1 ,...,α n ⎞⎟ . ⎝ 2 2 +1 2 −1 ⎠ ~ ≤α Если и отношение не выполнено, то f ( ~ x ) не является монотонной. 1 f 1 n ~ (σ ∈ { 0 ,1 }) вновь В противном случае каждый из векторов α f1 σ разделим на две равные части и проверим для них отношение предшествования. Если хотя бы одно из отношений не выполнено, то заключаем, что f ( ~ x ) ∉ M . В противном случае n вновь делим векторы пополам и т. д. Если отношение предшествования выполняется для всех пар векторов, то f(~ x n )∈ M . Пример 2. По вектору значений ~ = ( 10 011111 ) α f выяснить, является ли функция f монотонной. Решение. Поделим вектор пополам, тогда 10 01≤1111 . На следующем шаге отношение предшествования нарушается для пары 10 и 01, а 11≤11 . Таким образом, заданная функция не является монотонной. В силу замкнутости класса монотонных функций, можно утверждать, что всякая функция f, которая задана формулой, содержащей лишь связки & и ∨, монотонна. – 34 – Пример 3. Доказать, что функция f = x ∨ xy ∨ x y z является монотонной. Решение. Преобразуем f, применив тождество 6(а): f = x ∨ x y ∨ x y z = x ∨ y ∨ y z = x ∨ y ∨ z , т. о. функция f — монотонна. ЗАДАЧИ 4.1. Какие из элементарных функций алгебры логики являются монотонными? 4.2. Выяснить, является ли монотонной функция f, заданная векторно: ~ = ( 011010 01 ) ; a) α f ~ = ( 01010111 ) ; b) α f ~ = ( 0 0110110 ) ; c) α f ~ = ( 0 0 010 011 ). d) α f 4.3. Выяснить, является ли функция f монотонной. Если не является, то построить из f функцию x . a) f = x ⊕ y ⊕ z ; b) f = xz ⊕ y ; c) f = x ⋅ y ⊕ y ⋅ z ⊕ x ⋅ z ⊕ x ; d) f = ( x ⊕ y ) ⋅ ( x ↔ y ); e) f = x ⋅ y ∨ z ; f) f = x ⋅ y ⊕ z ⋅ ( x ∨ y ). – 35 – 4.4. Доказать, что функция f является монотонной: a) f = ( x ⊕ y ) ⋅ ( x ↔ y ) ; b) f = x → ( y → x ) ; c) f = x ⋅ y ⋅ z ∨ x ⋅ y ⋅ z ∨ x ⋅ y ⋅ z ∨ x ⋅ y ⋅ z ∨ x ⋅ y ⋅ z ; d) f = ( x ⊕ y ) ⋅ x ⋅ y ; e) f = x ⋅ y ⊕ y ⋅ z ⊕ z ⋅ x . 4.5. Найти все монотонные функции, которые можно ~ заменой символа «—» на 0 или 1: получить из вектора α f ~ = ( 0 − ); a) α f ~ = ( − − ); b) α f ~ = ( − 0 0 − ); c) α f ~ = ( −10 − ) ; d) α f ~ = ( − − − − − 0 0 − ); e) α f ~ = ( − − −1 − − 0 − ) ; f) α f ~ = ( 0 − − − − − −1 ) . g) α f 4.6. Найти все функции f ∈ M ∩ S , которые можно ~ заменой символа «—» на 0 или 1: получить из вектора α f ~ = ( − − ); a) α f ~ = ( − 0 − − ); b) α f ~ = ( − − −1 ) ; c) α f ~ = ( − 0 0 − 0 − − − ); d) α f ~ = ( − 01− 0 − − − ) . e) α f – 36 – § 5. Линейность и класс линейных функций. Функция f ( x1 , x2 ,… , xn ) называется линейной, если она не содержит нелинейные члены в полиноме Жегалкина, т. е. не содержит конъюнкции. Для линейной функции полином Жегалкина имеет следующий вид: f ( x1 , x2 ,… , xn ) = α 0 ⊕ α1 x1 ⊕ α 2 x2 ⊕ … ⊕ α n xn , где α i ∈ { 0 , 1 } ( i = 0 ,1,2 ,… n ). Класс всех линейных функций замкнут относительно операции суперпозиции, обозначим его через L, т. е. [L ] = L . Множество всех линейных функций от n переменных обозначим через L(n). Так как линейная функция от n пе- ременных определяется двоичным набором длины (n + 1), получаем, что L(n ) = 2 n +1 (α 0 ,α1 ,...,α n ) . Если функция f ( x1 , x2 ,… , xn ) линейная и существенно зависит от всех n переменных, то она имеет вид: f ( x1 , x2 ,… , xn ) = α 0 ⊕ x1 ⊕ x2 ⊕ … ⊕ xn , где α 0 ∈ { 0 ,1 }, т. е. таких функций только две. Лемма 3 (о нелинейной функции). Если функция f ( ~ x ) n нелинейная, то из нее с помощью подстановки констант: 0, 1, а также переменных x1 , x1 , x2 , x2 и, быть может, отрицания над всей функцией можно получить конъюнкцию x1 x2 . – 37 – Доказательство. f(~ x n ) нелинейна Пусть функция относительно переменных x1 и x2 , тогда ее можно представить в f(~ x n ) = x1 x2 f1( x3 , x4 ,… , xn ) ⊕ x1 f 2 ( x3 , x4 ,… , xn ) ⊕ виде: ⊕ x2 f3( x3 , x4 ,… , xn ) ⊕ f 4 ( x3 , x4 ,… , xn ) , где функция f1( x3 , x4 ,… , xn ) ≠ 0 (не равна тождественно нулю), т. е. существуют такие α 3 , α 4 ,… , α n , что значение функции на них равно единице, т. е. f1( α 3 ,α 4 ,… ,α n ) = 1. Подставим вместо переменных правую xi константы α i , где i = 3,4 ,… ,n , в левую и часть. Получим, x1 x2 ⊕ α x1 ⊕ β x2 ⊕ λ , что f ( x1 , x2 ,α3 ,… ,α n ) = где α = f 2 ( α 3 ,α 4 ,… ,α n ) , β = = f 3 ( α 3 ,α 4 ,… ,α n ) , λ = f 4 ( α 3 ,α 4 ,… ,α n ) . Вновь полученную функцию от двух переменных , обозначим через Ψ ( x1 , x2 ) . Нетрудно показать, что Ψ( x1 ⊕ β , x2 ⊕ α ) ⊕ αβ ⊕ λ = x1x2 . Таким образом, окончательно получаем, что f ( x1 ⊕ β , x2 ⊕ α ,α3 ,… ,α n ) ⊕ αβ ⊕ λ = x1x2 . Лемма доказана. Проиллюстрируем лемму о нелинейной функции на примере. Пример 1. Определить, можно ли получить функцию x1 x2 из функции f ( x1 , x2 , x3 ) = x1x 2 x3 ∨ x1 x 2 . – 38 – Решение. Построим полином Жегалкина для заданной функции. f ( x1 , x2 , x3 ) = x1 x 2 x3 ⋅ x x = x1 x 2 x3 ⋅ x1 x 2 ⊕ 1 = 1 2 = (x1 x 2 x3 ⊕ 1) ⋅ (x1 (x 2 ⊕1) ⊕ 1) ⊕ 1 = = x1x 2 x3 ⊕ x1x 2 x3 ⊕ x1x 2 x3 ⊕ x1x 2 ⊕ x1⊕1 ⊕ 1. Получили, что f ( x1 , x2 , x3 ) = x1x 2 x3 ⊕ x1x 2 ⊕ x1, т. е. функция f ( x1 , x2 , x3 ) нелинейна относительно переменных x1 и x2 , и по лемме о нелинейной функции из нее можно получить конъюнкцию x1 x2 . Представим ее в виде f ( x1 , x2 , x3 ) = x1x 2 (x3 ⊕ 1) ⊕ x1 . Построим функцию от двух переменных Ψ( x1 , x2 ) = = f ( x1 , x2 ,0 ) = x1x 2 ⊕ x1 . Таким образом, имеем α = 1, β = 0 и λ = 0 , тогда Ψ( x1 ⊕ β , x2 ⊕ α ) ⊕ αβ ⊕ λ = Ψ( x1 , x2 ⊕ 1 ) = = x1 (x2 ⊕ 1) ⊕ x1= x1x 2 ⊕ x1⊕ x1= x1x 2 . Заключаем, что конъюнкцию x1 x2 можно получить из функции f ( x1 , x2 , x3 ) заменой переменных x2 на x2 , x3 на 0, действительно, f ( x1 , x2 , 0 ) = x1 x2 . ЗАДАЧИ 5.1. Какие из элементарных функций алгебры логики являются линейными? – 39 – 5.2. Выяснить, является ли линейной функция f, заданная векторно: ~ = ( 10 01 ) ; a) α f ~ = ( 1101 ) ; b) α f ~ = ( 10 010110 ) ; c) α f ~ = ( 110 0 0 011 ) ; d) α f ~ = ( 011010 01 ) ; e) α f ~ = ( 1010 0110 ) ; f) α f ~ = ( 011010 01 ) ; g) α f ~ = ( 0110 10 01 0110 10 01 ) ; h) α f ~ = ( 1010 010110 01110 0 ) ; i) α f ~ = ( 1010 0101 01011010 ) . j) α f 5.3. Выяснить, является ли функция f линейной. Если не является, то построить из f функцию x ⋅ y : a) f = x → y ; b) f = x ⋅ y ∨ y ⋅ z ∨ z ⋅ x ; ~ = ( 1110 10 0 0 ) ; c) α f ~ = ( 011110111111110 0 ) ; e) α f ~ = ( 1110 10 0110 01 0111 ); f) α f g) f = (x ⋅ y ∨ x ⋅ y ⋅ z ) ⊕ x ⋅ y ⋅ z ; h) f = x → ( y → z ); i) f = x ⋅ y ∨ y ⋅ z ∨ z ⋅ x . ~ = ( 11011011 ) ; d) α f – 40 – ~ прочерки символами 0 или 1 5.4. Заменить в векторе α f так, чтобы получился вектор значений некоторой линейной функции f. Выразить f полиномом. ~ = ( 10 − 1 ) ; a) α f ~ = ( 0 − 11 ); b) α f ~ = ( − 0 01 − − 1 − ) ; c) α f ~ = ( 1 − 10 1 − − − ) ; d) α f ~ = ( − 0 − 1 − − 0 0 ); e) α f ~ = ( 11 − 0 − − − 1 ) ; f) α f ~ = ( − −10 − − − − 0 − −1 −110 ); g) α f ~ = ( 1− − − − − − − − − − 0 −110 ) . h) . α f x ) , существенно 5.5. Найти число линейных функций f ( ~ n зависящих в точности от k переменных. 5.6. Найти число линейных функций f ( ~ x ) таких, что n f ( 0 ,0 ,...,0 ) = f ( 1,1,...,1 ) = 1. 5.7. Доказать, что линейная функция является самодвойственной тогда и только тогда, когда она существенно зависит от нечетного числа переменных. – 41 – § 6. Классы функций, сохраняющих константы. f ( x1 , x2 ,… , xn ) Функция сохраняет константу 0 ~n (константу 1), если f ( 0 ) = f ( 0 ,0 ,...,0 ) = 0 (соответственно если ~ f ( 1 n ) = f ( 1 ,1 ,...,1 ) = 1). Множество всех булевых функций, сохраняющих константу 0 (константу 1), обозначается через T0 (соответственно через T1). Каждый из классов T0 и T1 является замкнутым относительно операции суперпозиции. Множество всех функций из T0 ( T1), зависящих от x1 , x2 ,… , xn , будем обозначать через T0 ( n ) переменных (соответственно T1( n ) ). Легко через T0 ( n ) = T1( n ) = 2 2 n −1 подсчитать, что . Пример 1. Найти число функций f ( ~ x ) , принадлежащих n множеству A = T0 ∩ T1 . Решение. Если f ( ~ x ) ∈ T0 ∩ T1 , тогда значения функции n f(~ x n ) можно произвольно выбирать на всех двоичных ( n наборах, кроме нулевого и единичного, т.е. на 2 − 2 Такой выбор осуществляется 2 A =22 n −2 . 2 n −2 ) наборах. способами. Таким образом, – 42 – ЗАДАЧИ x ) принадлежит 6.1. Выяснить, при каких n функция f ( ~ n множеству T0 \ T1: a) f ( ~ x n ) = x1 ⊕ x2 ⊕ ... ⊕ xn ; ⎛ n −1 ⎞ n ~ b) f ( x ) = ⎜ ⊕ xi xi +1 ⎟ ⊕ xn x1 ; ⎝ i =1 ⎠ c) f ( ~ x n )= d) f ( ~ x n )= ⊕ xi ⋅ x j ; ⊕ (xi ∨ x j ); 1≤ i < j ≤ n 1≤ i < j ≤ n e) f ( ~ x n ) =1 ⊕ (x1 → x2 )(x2 → x3 )...(xn → x1 ). x ) , принадлежащих 6.2. Подсчитать число функций f ( ~ n множеству А: a) A = T0 ∪ T1 ; b) A = T0 ∩ L ; c) A = S ∩ T1 ; d) A = T0 ∪ L ; e) A = L − T1 ; f) A = (T1 ∪ L ) ∩ S ; g) A = S ∩ T1 ∩ L ; h) A = T0 ∪ L ∪ S . 6.3. Найти все самодвойственные монотонные функции f(~ x n ) , существенно зависящие от всех переменных (n=1,2,3,4). – 43 – 6.4. Доказать, что L ∩ T0 ∩ T1 = L ∩ S ∩ T0 = L ∩ S ∩ T1 = L ∩ S ∩ T0 ∩ T1 . 6.5. Доказать, что L ⊆ T1 ∪ T0 ∪ S . 6.6. Доказать, что множество A не пусто: a) A = LT1 − ( T0 ∪ S ) ; b) A = LT0 − ( T1 ∪ S ) ; c) A = LS − ( T1 ∪ T0 ) . 6.7. Какие функции можно получить из функции f ( ~ x ) n путем отождествления переменных, если: a) f ∈ L − T1S ; b) f ∈ T1 − T0 ; c) f ∈ T0 − T1; d) f ∈ S − T0 ; e) f ∈ S − T1 ; f) f ∈ T1 − T0 ; g) f ∈ T1 − T0 ; h) f ∈ T1 − T0 . 6.8. Показать, что всякая монотонная функция содержится не менее, чем в двух классах из T0 , T1 , L. 6.9. Доказать, что функция, двойственная монотонной функции, монотонна. 6.10. Доказать, что монотонная функция, не сохраняющая нуль (единицу), равна тождественно единице (нулю). 6.11. Доказать, что если f тождественно не равна константе, а( f ∨ f ∗ ) — константа, то f ∉ M ∪ S . – 44 – § 7. Полнота и замкнутые классы. F. Замыканием [F] Пусть задана система функций множества F называется совокупность всех функций из P2, являющихся суперпозициями функций из множества F. Система F называется замкнутой, если [F]=F. Система F называется полной, если [F]=P2, т. е. если любая функция алгебры логики может быть выражена через суперпозицию функций из множества F. Система { &, ∨ , } (конъюнкция, дизъюнкция, отрицание) полна, т. к. любую булеву функцию можно представить в виде СДНФ или СКНФ. Из представления функции в виде полинома Жегалкина следует, что система функций {& ,⊕ ,0 , 1 } также полна. Дизьюнкцию можно выразить через конъюнкцию и отрицание, а конъюнкцию через отрицание и дизъюнкцию (по закону де Моргана): x∨ y = x &y Следовательно, системы x& y = x ∨ y. { Теорема Поста о полноте. , & } и{ , ∨ } будут полными. Система функций F полна тогда и только тогда, когда она не содержится ни в одном из пяти замкнутых классов: T0 , T1 , S , M, L . – 45 – Доказательство. Необходимость докажем от противного. Пусть система F полна и включена в один из пяти классов T0, T1, S, M, L, т. е. F ⊆ A ∈ { T0 ,T1, S , M , L } , где A один из пяти замкнутых классов. Тогда [F]= P2 , т.е. P2 =[A], а так как класс A замкнут, то один из пяти классов совпадает с множеством всех булевых функций, что ведет к противоречию. Достаточность. Пусть выполнено условие теоремы, т. е. существуют функции, которые не принадлежат соответствующим классам. Пусть f 0 ∉ T0 , f1 ∉ T1 , f s ∉ S , f m ∉ M , f L ∉ L , возможно, что некоторые из этих функций равны между собой. Покажем, что через суперпозицию этих функций можно выразить отрицание и конъюнкцию, тогда любая функция может быть выражена через суперпозицию функций из множества F. 1 этап. Получение констант: 0, 1. a) Пусть ~ f1( 0 n ) = 0 , тогда f1( x ,..., x ) = 0 . Вторую константу получаем из f 0 : f 0 ( f1( x ,..., x ) , f1( x ,..., x ) ,… , f1( x ,..., x ) ) = 1. ~ b) Если f1( 0 n ) = 1, тогда f1( x ,..., x ) = x . По лемме о несамодвойственной функции из функции f s ∉ S и отрицания можно получить константу, обозначим ее через c. Вторую константу получаем из f1 ∉ T1 , f1( с ,...,с ) = с . – 46 – 2 этап. Получение отрицания. По лемме о немонотонной функции из функции f m ∉ M с помощью подстановки констант, которые были получены через суперпозицию на первом этапе, и переменной x получаем x . 3 этап. Получение конъюнкции. По лемме о нелинейной функции из f L ∉ L с помощью подстановки констант и отрицания можно получить конъюнкцию. Константы и отрицание были получены через суперпозицию на первом и втором этапах. Теорема доказана. Полная система F называется базисом, если никакая ее подсистема не является полной. Следствие1. Базис состоит не более чем из четырех функций. Доказательство. Из доказательства теоремы следует, что { система функций f 0 , f1 , f s , f m , f L } полна. На первом этапе, при получении констант, в случае а) имеем f1( x ,..., x ) = 0 , следовательно, f1 ∉ S , тогда система { f 0 , f1 , f m , f L } В случае b) система полна. f1( x ,..., x ) = x , следовательно, f1 ∉ T0 , тогда { f1 , f s , f m , f L } также полна. – 47 – Замкнутый класс F, не совпадающий с множеством всех булевых функций, называется предполным, если при добавлении к нему произвольной функции из P2 , не принадлежащей F, вновь полученная система будет полной, т. е. для ∀ f ∉ F система F ∪ { f } полна. Следствие 2. Существует только пять предполных классов T0 , T1 , S , M, L . Следствие 3. Всякий замкнутый класс содержится в одном из пяти классов T0 , T1 , S , M, L . Утверждение доказывается от противного. Пример { 1. Выяснить, полна ли система функций 0 , 1 , xy , x ⊕ y ⊕ z }. Решение. Составим для этой системы таблицу принад- лежности функций каждому из классов T0, T1, S, M, L. T0 T1 S M L xy + + –– + –– 0 + –– –– + + 1 –– + –– + + x⊕ y⊕ z + + + –– + Таблица 8 Эта система полна, т. к. она не содержится целиком ни в одном из замкнутых классов (каждый столбец таблицы 8 – 48 – содержит не менее одного минуса). Покажем, что она образует базис, для этого достаточно показать, что у нее нет полной подсистемы, отличной от нее самой. Функция x⊕ y⊕ z обязательно входит в базис, т. к. только она не монотонна. Функция xy входит в базис, т. к. только она не линейна. Константа 0 входит в базис, т. к. только 0 не принадлежит классу T1 . Константа 1 является единственной функцией системы, не принадлежащей классу T0, поэтому она входит в базис. Таким образом, все 4 функции входят в любую полную подсистему. Из примера 1 получаем следующее утверждение. Следствие 4. Существует базис состоящий из четырех функций. Функция f ( ~ x n ) называется шефферовой (или функцией Шеффера от n переменных), если она полна, т. е. образует базис в P2 . Нетрудно проверить, что штрих Шеффера и стрелка Пирса являются функциями Шеффера от двух переменных. Пример 2. Доказать полноту системы функций G = { f ( x , y , z ) = xy → z , g ( x , y ) = x ⊕ y}. Проиллюстрировать поэтапное доказательство теоремы Поста, т. е. выразить константы, отрицание и конъюнкцию через функции системы G. Решение. Рассмотрим функцию f ( x , y , z ) = xy → z , построим для нее таблицу значений (см. табл. 9). – 49 – x ⊕ y ⊕ z x ⊕ y ⊕ z ⊕1 x y z xy → z 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 0 0 1 1 1 0 1 1 0 0 1 1 0 1 0 1 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 Таблица 9 Очевидно, что f не самодвойственна и не монотонна, т. к. условие монотонности нарушается на третьем и седьмом наборах: f ( 0 ,1,0 ) = 1, f ( 1,1,0 ) = 0 . Нетрудно проверить, что у этой функции все переменные существенные, т. к. она принимает значение 0 только на одном наборе, для которого найдутся соседние наборы по первой, по второй и по третьей переменным, значения функций на которых равны 1. Если бы эта функция была линейна, то она совпала бы с функцией x ⊕ y ⊕ z или x ⊕ y ⊕ z ⊕ 1(см. табл.9). Заключаем,что функция f не линейна. Вторая функция g(x,y)= x ⊕ y на нулевом и на единичном наборах принимает значение 0. Найдем для нее двойственную ∗ функцию: g ( x , y ) = x ⊕ y = ( x ⊕ 1 ) ⊕ ( y ⊕ 1 ) ⊕ 1 = x ⊕ y ⊕ 1 . Из единственности представления функции в виде полинома – 50 – Жегалкина, получаем, что g не самодвойственна. Эта функция не монотонна, т. к. условие монотонности нарушается на наборах (0,1) и (1,1). Принадлежность функций f и g каждому из пяти замкнутых классов T0, T1, S, M, L показана в таблице 10. T0 T1 S M L xy→ z –– + –– –– –– x⊕ y + –– –– –– + Таблица 10 По теореме Поста делаем вывод, что система функций G = { f ( x , y , z ) = xy → z , g ( x , y ) = x ⊕ y} полна. Проиллюстрируем теперь теорему Поста. 1) Получение констант. Имеем, f ( 0 ,0 ,0 ) = f ( 1,1,1 ) = 1, следовательно, f ( x , x , x ) = 1, т. о. константу 1 можно выразить в виде формулы xx → x = 1. Так как g ( 0 ,0 ) = g ( 1,1 ) = 0 , то g ( x , x ) = 0 , или в виде формулы x ⊕ x = 0 . 2) Получение отрицания. По лемме о немонотонной функции имеем f ( x ,1,0 ) = x или в виде формулы x ⋅1 → 0 = x . Аналогично, применяя эту лемму для второй функции, получим, что g ( 1, x ) = x или в виде формулы 1 ⊕ x = x . Подставим вместо 1 ее выражение в виде f ( x , x , x ) = 1, тогда получим, что g ( f ( x , x , x ), x ) = x или в формульном виде ( xx → x ) ⊕ x = x . – 51 – 3) Получение &. Найдем полином Жегалкина для функции f ( x , y , z ) = xy → z . СКНФ для нее имеет следующий вид: x ∨ y ∨ z . Воспользовавшись законом де Моргана, тождеством для отрицания и дистрибутивностью конъюнкции), получим полином (для сложения и xyz ⊕ 1 = xyz ⊕ xy ⊕ 1. По лемме о нелинейной функции имеем xy = f ( x , y ,0 ) . Подставляя выражение константы 0 в виде суперпозиции, получим, что xy = f ( x , y , g ( x , x )) (обозначим правую часть этого выражения через A) или в виде формулы xy = xy → ( x ⊕ x ) . Наконец, применив выражение отрицания через суперпозицию функций исходной системы, имеем g ( f ( x , x , x ), A ) = xy . В формульном виде получим, что ( xx → x ) ⊕ ( xy → ( x ⊕ x )) = xy . Итак, отрицание и конъюнкцию выразили через функции системы G. Пример 3. Bыразить функцию f = x ↓ y через функции системы G = { f ( x , y , z ) = xy → z , g ( x , y ) = x ⊕ y}. Решение. Выразим функцию f через конъюнкцию и отрицание: f = x ⋅ y . Используя выражения для отрицания и конъюнкции через функции системы G (см. пример 2), получаем f = g ( f ( x , x , x ), f ( g ( f ( x , x , x ), x ), y , g ( x , x ))), или в виде формулы: f = ( xx → x ) ⊕ ((( xx → x ) ⊕ x ) y → ( x ⊕ x )) = x y . –52– ЗАДАЧИ 7.1. Выяснить, полна ли данная система функций. Если полна, то проиллюстрировать поэтапное доказательство теоремы Поста, т. е. получить через суперпозицию функций из этой системы константы, отрицание и конъюнкцию. a) { x → yz , xz ↔ xy , xy ⊕ yz }; b) { ( xy ∨ xz ) ⊕ yz , x ∨ y , x → xy , x ↔ y }; c) { xy ∨ xz ∨ yz , xy → z , ( xy ∨ xz ) ⊕ yz }; d) { xz ↔ xy , ( xy ∨ xz ) ⊕ yz , xy → z , x ↔ y }; e) { xz ∨ xy ∨ yz , ( xy ∨ xz ) ⊕ yz , xyz ↔ xz }; f) { x ↔ xz , xz ↔ xy , ( xy ∨ xz ) ⊕ yz , x ∨ y , x ⊕ y }; g) { x ∨ y , x ⊕ y , x → y ,0 }. 7.2. Выяснить, полна ли система A функций, заданных векторами своих значений: a) A = { f1 = (0110 ), f 2 = ( 110 0 0 011 ), f 3 = ( 10 01 0110 )}; b) A = { f1 = (0111), f 2 = ( 0101 1010 ), f 3 = ( 01111111 )}; c) A = { f1 = ( 0111 ), f 2 = ( 10 01 0110 )}; d) A = { f1 = (0101), f 2 = ( 1110 10 0 0 ), f 3 = ( 0110 10 01 )}; e) A = { f1 = ( 10 01 ), f 2 = ( 1110 10 0 0 )}; f) A = { f1 = ( 11 ), f 2 = ( 0111 ), f 3 = ( 0 011 0111 )}; g) A = { f1 = ( 10 ), f 2 = ( 0 011 0111 )}. –53– 7.3. Полна ли система F = { f ( ~x n ), g( ~x n ) } , если: a) f ∈ S − M , g ∉ L ∪ S , f → g ≡ 1 ; b) f ∈ T0 ∪ L , g ∉ S , f → g ≡ 1 ; c) f ∈ T 0 ∪ T1 , g ∈ M − T1 , f → g ≡ 1 ; d) f ∈ SL − T0 , g ∈ M − T1 L , f → g ≡ 1 ? 7.4. Выяснить, полна ли система функций A = { f , g ,h }, если выполнены следующие условия: f ∉ L ∪ T0 T1 , g ∈ M − L , f → g ≡ 1, f ∨ h ≡ 1 ? 7.5. Привести примеры базисов, содержащих одну, две, три и четыре функции. 7.6. Перечислить все различные базисы, содержащие только функции, существенно зависящие от двух переменных. 7.7. Найти все функции Шеффера от двух переменных. 7.8. Доказать, что если f ∉ T0 ∪ T1 ∪ S , то f — функция Шеффера. 7.9. Сколько существует функций Шеффера от n переменных? 7.10. Верно ли, что если f ∉ L ∪ S ∪ M , то f полна ? 7.11. Опровергнуть, что a) если f ∉ ( T0 ∪ T1 ) − S , то f ∈ L ∪ M ; b) если f ∈ T0 T1 M , то f — функция Шеффера; –54– c) если f ∉ T0 ∪ S ∪ M , то f ∈ L T1 S M ; d) если f ∉ L ∪ S ∪ M , то f — функция Шеффера. 7.12. Полна ли система функций A? Если полна, то привести пример полной системы функций из множества A. a) A = P2 − ( T0 ∪ T1 ∪ L ∪ S ∪ M ) ; b) A = ( M − T0 ) ∪ ( L − S ) . 7.13. Верно ли, что f ∈ [g ] или g ∈ [ f ] ? a) f = x ⊕ y , g = xy ; b) f = x ⊕ y , g = x → y ; c) f = x → y , g = xy ; d) f = x → y , g = x ∨ y ; e) f = x ↔ y , g = x ∨ y ; f) f = x ↔ y , g = xy ; g) f = x → y , g = xy ⊕ xz ⊕ yz ; h) f = x ⊕ y , g = xy ⊕ xz ⊕ yz ; i) f = x ⊕ y , g = xy → z ; j) f = x → y , g = xy ⊕ z ; k) f = x ↔ y , g = xy ⊕ z ; l) f = x → y , g = x . - 56 - Список литературы 1. Яблонский С. В. Введение в дискретную математику. — М.: Наука, 1986. 2. Яблонский С. В., Гаврилов Г. П., Кудрявцев В. Б. Функции алгебры логики и классы Поста. — М.: Наука, 1966. 3. Гаврилов Г. П., Сапоженко А. А. Сборник задач по дискретной математике. — М.: Наука, 1977. 4. Гаврилов Г. П., Сапоженко А. А. Задачи и упражнения по курсу дискретной математики. — М.: Наука, 1992. 5. Алексеев В. Е., Белова Р. В. Представление булевых функций формулами и схемами. — Методическая разработка, 1986. - 57 - Оглавление. § 1. Булевы функции или функции алгебры логики........................3 § 2. Специальные представления булевых функций.....................14 § 3. Двойственность и класс самодвойственных функций............24 § 4. Монотонность и класс монотонных функций.........................30 § 5. Линейность и класс линейных функций..................................36 § 6. Классы функций, сохраняющих константы............................41 § 7. Полнота и замкнутые классы....................................................44 § 8. Диаграмма Венна для классов T0 , T1 , S , L , M .......................55 Список литературы...........................................................................56 -3Проверку на монотонность булевой функции f ( ~ x ), ~ = ( α ,α ,...,α заданной своим вектором значений α ), f 0 1 n n 2 −1 ~ на можно осуществить следующим образом. Разделим вектор α f две ~ α ~ α f1 1 f1 0 равные части ~ α f1 0 = ⎛⎜ α 0 ,α1 ,...,α n −1 ⎞⎟ ⎝ 2 −1 ⎠ и Если отношение = ⎛⎜ α n −1 ,α n −1 ,...,α n ⎞⎟ . ⎝ 2 2 +1 2 −1 ⎠ n ~ ~ не выполнено, то f ( x ) не является монотонной. ≤α 1 f 1 ~ (σ ∈ { 0 ,1 }) вновь В противном случае каждый из векторов α f1 σ разделим на две равные части и проверим для них отношение предшествования. Если хотя бы одно из отношений не выполнено, то заключаем, что f ( ~ x ) ∉ M . В противном случае вновь делим векторы пополам и т. д. Если отношение предшествования выполняется для всех пар векторов, то n f(~ x n )∈ M . Пример 2. По вектору значений ~ = ( 10 011111 ) α f выяснить, является ли функция f монотонной. Решение. Поделим вектор пополам, тогда 10 01≤1111 . На следующем шаге получаем: 10 > 01 (отношение предшествования нарушается) и 11≤11 . Таким образом, заданная функция не является монотонной.