Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
47
Добавлен:
05.06.2015
Размер:
697.59 Кб
Скачать

опускать скобки в случае многократного последовательного применения только дизъюнкции или только конъюнкции. На пр им ер ,

формулу x y z

можно записать в виде

x y z . В дальнейшем

будем также употреблять следующие обозначения:

 

 

n

 

 

 

 

n

 

 

 

 

x

x

x ... x

и

x

x

x

... x .

i 1 i

1

2

n

 

i 1

i

1

2

n

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

заменены

формулой

. На пр им ер , используя

равносильность

x xy x y

(см. пример 5), можно записать новые равносильности

x xy x y

( x заменено на x )

и y y x y x

( x заменено на

 

 

 

 

 

 

 

 

 

 

 

y , а y

на

x ), а

используя

равносильность

x y x y -

равносильность x y x y ( x заменено на x , а y на y ).

Таким образом, действует принцип: если A - подформула формулы

, то при замене в формуле любого вхождения A на равносильную ей формулу A1 формула переходит в равносильную ей формулу 1 .

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

Пр и м ер 6 . Применяя равносильные преобразования, упростить формулу:

а) y xyz xyz ;

б) x y x y .

◄ а) y xyz xyz y xyz xyz

45

y xy z z y xy y x ;1

б) x y x y x y x y

x y x y x x y y x 1 1 . ►

Упр а жн е н ие 2 . 6 .

Применяя равносильные преобразования,

упростить формулу:

 

 

 

 

 

а) x

 

 

 

 

б)

 

x

 

.

y

x y

;

x y

xy

Теоретические обоснования

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

значение функции f3 (см. табл. 2.4) не влияет значение переменной y ,

поскольку

f3 0, 0 f3 0,1 ,

f3 1, 0 f3 1,1 ,

а на

значение

функции

f5

не

влияет значение переменной

x ,

поскольку

f5 0, 0 f5

1, 0 ,

f5 0,1 f5

1,1 . Переменные,

значения которых

не влияют на значения функции, называют фиктивными. Определим это понятие строго.

Определение. Переменная

xi называется фиктивной переменной

функции f x1 ,..., xn , если на

всех наборах 1,..., i 1, i 1,..., n

значений переменных x1,..., xi 1, xi 1,..., xn выполняются равенства

f( 1,..., i 1, 0, i 1,... n ) f ( 1,..., i 1,1, i 1,... n ) .

Впротивном случае переменная xi называется существенной, т.е.

переменная

xi называется

существенной

переменной функции

f x1 ,..., xn ,

если найдется

такой набор

1,..., i 1, i 1,..., n

значений переменных x1,..., xi 1, xi 1,..., xn , что

f ( 1,..., i 1, 0, i 1,... n ) f ( 1,..., i 1,1, i 1,... n ) .

Чтобы определения фиктивной и существенной переменных легче

было усвоить, адаптируем

их к каким-нибудь частным случаям.

На пр им ер , определим y

как фиктивную переменную функции

46

 

f (x, y, z) : переменная y называется фиктивной переменной функции f (x, y, z) , если выполняются четыре равенства: f (0, 0, 0) f (0,1, 0) ,

f (0, 0,1) f (0,1,1) , f (1, 0, 0) f (1,1, 0) ,

f (1, 0,1) f (1,1,1) .

 

Теперь

определим

y

как

существенную

переменную

функции

f (x, y, z) : переменная

y

называется

существенной переменной

функции

f (x, y, z) ,

если

хотя

бы

одно из

равенств

f (0, 0, 0) f (0,1, 0) ,

f (0, 0,1) f (0,1,1) ,

f (1, 0, 0) f (1,1, 0) ,

f (1, 0,1) f (1,1,1) не выполняется.

 

 

 

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

Операция удаления (введения) фиктивных переменных. Пусть

для функции f x1, x2 ,..., xn

переменная

xi является фиктивной.

Возьмем таблицу

истинности

функции f .

Вычеркнем из нее

все

строки, в которых

xi 1, а также вычеркнем столбец переменной

xi .

Полученная таким образом таблица будет задавать некоторую функцию

g x1,..., xi 1, xi 1,..., xn ,

причем

на

любом

наборе

1,..., i 1, i , i 1,..., n

значений

переменных

x1,..., xi 1, xi , xi 1,..., xn для функций f

и g

выполнено равенство

f 1,..., i 1, i , i 1,..., n g 1,..., i 1, i 1,..., n .

О

функции g говорят, что она получена из функции f путем удаления фиктивной переменной, а о функции f говорят, что она получена из функции g путем введения фиктивной переменной.

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

Пр и м ер 7 . Найти фиктивные переменные функции и удалить их:

а) f (x, y) (0011) ;

б) f (x, y, z) (11011101) .

◄ а) Для наглядности рассуждений построим таблицу истинности функции (табл. 2.12).

Таблица 2.12

x

y

f

47

x : f (0, 0) f (1, 0) ,

 

следовательно,

x -

0

0

0

существенная;

 

 

 

0

1

0

y : f (0, 0) f (0,1)

и

f (1, 0) f (1,1) ,

1

0

1

следовательно, y - фиктивная.

 

1

1

1

y , нужно вычеркнуть из

Чтобы удалить фиктивную переменную

таблицы истинности функции второй столбец, а также третью и пятую строки (они закрашены серым цветом). В результате получим таблицу истинности функции g(x) (01) , равной функции f (x, y) (0011) .

 

 

 

б) Построим таблицу истинности функции (табл. 2.13).

 

 

 

 

 

 

Таблица 2.13

x :

f (0, 0, 0) f (1, 0, 0) ,

f (0, 0,1) f (1, 0,1) ,

 

 

 

f (0,1, 0) f (1,1, 0) ,

 

f (0,1,1) f (1,1,1) ,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

x

 

 

y

 

 

z

 

f

 

 

 

 

 

 

 

следовательно,

x - фиктивная;

 

 

 

 

 

0

 

0

 

0

 

1

 

 

 

 

 

 

 

 

 

 

y :

f (0, 0, 0)

f (0,1, 0) ,

следовательно,

y

-

 

0

 

0

 

1

 

1

 

 

 

 

 

 

существенная;

 

 

 

 

 

 

 

 

0

 

1

 

0

 

0

 

f (0, 0,1) ,

f (0,1, 0) f (0,1,1) ,

 

 

 

 

 

z :

f (0, 0, 0)

 

0

 

1

 

1

 

1

 

 

 

 

 

 

значит, z - существенная.

 

 

 

 

 

 

1

 

 

0

 

 

0

 

 

1

 

 

 

 

 

x ,

 

1

 

 

0

 

 

1

 

 

1

 

 

Ч тобы удалить фиктивную переменную

 

1

 

 

1

 

 

0

 

 

0

 

нужно

вычеркнуть

из

таблицы

истинности

 

 

 

 

 

 

 

 

функции первый столбец

и последние

четыре

 

1

 

 

1

 

 

1

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

строки (они закрашены серым цветом). В

результате получим таблицу истинности функции

g( y, z) (1101) ,

равной функции f (x, y, z) (11011101) . ►

 

 

 

 

 

 

 

 

Упр а жн е н ие 2 . 7 . Найти фиктивные переменные

функции

и

удалить их:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

а)

f (x, y, z) (01011111) ;

б)

f (x, y, z) (00110011) .

 

 

 

 

Пр и м ер

 

8 . Из

функции

g(x, y) (0100)

путем введения

фиктивной переменной

t

получить функции

f1 (t, x, y) ,

f2 (x, t, y) ,

f3 (x, y, t) .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

◄ Заготовим шаблон таблицы истинности функции

f1 (t, x, y)

(табл. 2.14),

отведя первый столбец под значения переменной

t ,

второй - под значения

x , третий -

под значения y ,

четвертый - под

значения самой функции.

48

Значение функции f1 (t, x, y) на каждой паре наборов вида

(0, a, b)

и (1, a, b) должны совпадать со значением функции g(x, y)

на

наборе (a, b) . Значит, в строках, соответствующих наборам (0, 0, 0)

и

(1, 0, 0) ,

надо

проставить значение

g(0, 0) 0 , в

строках,

соответствующих наборам (0, 0,1)

и (1, 0,1) ,

-

g(0,1) 1 ,

в строках,

соответствующих наборам (0,1, 0)

и (1,1, 0) , -

g(1, 0) 0 и,

наконец, в

строках, соответствующих наборам (0,1,1)

и (1,1,1) , - g(1,1) 1 .

 

Заготовим

шаблон таблицы

истинности

функции

f2 (x, t, y)

(табл. 2.15), отведя первый столбец под значения переменной x , второй - под значения t , третий - под значения y , четвертый - под значения

самой функции. Столбец значений функции

f2 (x, t, y)

заполним,

исходя из того,

что на каждой паре наборов вида (a, 0, b)

и (a,1, b)

значение функции f2

должны

совпадать со

значением

функции

g(x, y) на наборе (a, b) .

 

 

 

 

Заготовим

шаблон

таблицы

истинности

функции

f3 (x, y, t)

(табл. 2.16), отведя первый столбец под значения переменной x , второй - под значения y , третий - под значения t , четвертый - под значения

самой функции. Столбец значений функции

f3 (x, y, t) заполним,

исходя из того, что на каждой паре наборов вида

(a, b, 0) и

(a, b,1)

значение

функции

f3 должны

совпадать со

значением

функции

g(x, y)

на наборе (a, b) . ►

 

 

 

 

 

 

 

 

 

 

 

 

 

Таблица 2.14

 

 

Таблица 2.15

 

Таблица 2.16

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

t

 

x

 

y

f1

 

x

t

y

f2

 

x

 

y

t

f3

 

 

0

 

0

 

0

0

 

0

0

0

0

 

0

 

0

0

0

 

 

 

0

 

0

 

1

1

 

0

0

1

1

 

0

 

0

1

0

 

 

 

0

 

1

 

0

0

 

0

1

0

0

 

0

 

1

0

1

 

 

 

0

 

1

 

1

0

 

0

1

1

1

 

0

 

1

1

1

 

 

 

1

 

0

 

0

0

 

1

0

0

0

 

1

 

0

0

0

 

 

 

1

 

0

 

1

1

 

1

0

1

0

 

1

 

0

1

0

 

 

 

1

 

1

 

0

0

 

1

1

0

0

 

1

 

1

0

0

 

 

 

1

 

1

 

1

0

 

1

1

1

0

 

1

 

1

1

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

49

Упр а жн е н ие 2 . 8 . Из функции g(x, y) (0010) путем введения

фиктивной переменной

t

получить функции

f1 (t, x, y) ,

f2 (x, t, y) ,

f3 (x, y, t) .

 

 

 

 

Упр а жн е н ие 2 . 9 .

Найти функцию, зависящую существенным

образом от всех

своих аргументов

и равную

функции

f (x, y, z, t) (1100 0011 1100 0011 ).

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

Имея в виду вышесказанное, будем в дальнейшем придерживаться следующих договоренностей.

1 . Если число переменных специально не оговаривается, функции рассматриваются с точностью до фиктивных переменных, т.е. предполагается, что с заданием некоторой функции f заданы все

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

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

На пр им ер , при желании вместо системы функций f1 (x) (10) , f2 ( y) (11) , f3 (x, y, z) (10011101) можно рассматривать систему равных им функций f1(x, y, z) (11110000), f2 (x, y, z) (11111111) ,

f3 (x, y, z) (10011101) .

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

Пусть B - некоторое множество булевых функций, X - некоторое счетное множество переменных. Используя индукцию, определим

50

множество формул над B с переменными из X . Одновременно будем

определять числовую характеристику dep( ) формулы

,

называемую ее глубиной, а также множество ее подформул.

 

 

Определение. Баз ис и н д у к ц и и . Каждая переменная xi из

X и

каждая константа c

из B является формулой глубины 0,

т.е.

dep(xi ) dep(c) 0 .

Множество подформул формулы

глубины 0

состоит из нее самой.

 

 

 

Ин д ук т и в н ы й

пер е хо д . Пусть f x1, x2 ,..., xn -

функция из

B , A1, A2 ,..., An - формулы и max dep(A1 ), dep(A2 ),..., dep(An ) k .

Тогда выражение f A1, A2 ,..., An

является формулой, ее

глубина dep( ) равна k 1, а множество

подформул включает

саму формулу и все подформулы A1, A2 ,..., An .

Используя индукцию по глубине формулы, определим функцию,

заданную формулой.

 

 

 

Определение.

Баз ис

и н д ук ц и и . Пусть dep( ) 0 . Тогда

 

имеет вид xi ,

где xi

- переменная из X , или c , где c

-

константа из B . В первом случае задает тождественную функцию xi , во втором - функцию, тождественно равную константе c .

Ин д ук т и в н ы й пер е хо д . По предположению индукции каждой

формуле

глубины

k

сопоставлена

некоторая

функция.

Пусть

(x1, x2 ,..., xn )

- произвольная

формула

глубины

dep( ) k 1 .

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

она

имеет

вид

f A1, A2 ,...,

An ,

где

f -

функция

из

B ,

 

A1, A2 ,..., An -

 

формулы,

для

которых

max dep(A1 ), dep(A2 ),..., dep(An ) k ,

и, значит, по предположению

индукции

этим формулам

уже

сопоставлены некоторые

функции

f1 x1, x2 ,..., xn ,

f2 x1, x2 ,..., xn ,…,

 

fn x1 , x2 ,..., xn .

Тогда

формула

 

 

 

задает

функцию

g x1, x2 ,..., xn

f f1 x1, x2 ,..., xn ,

f2 x1, x2 ,..., xn ,...,

fn x1, x2 ,..., xn ,

 

значение которой на каждом наборе 1 , 2 ,..., n находится как

51

значение

функции

f

на

наборе

f1 1, 2 ,..., n ,..., fn 1, 2 ,..., n .

 

 

Заметим, что, определяя индуктивно функцию, заданную формулой, мы воспользовались договоренностью рассматривать функции с точностью до фиктивных переменных и считали все функции системы B зависящими от n переменных.

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

Пр и м ер 9 . Указать существенные и фиктивные переменные функции

fx1, x2 , x3 x3 x3 x2 x1 .

Вначале упростим формулу, которой задается функция, используя равносильность a b a b :

f x1, x2 , x3 x3 x3 x2 x1

x3 x3 x2 x1 1 x2 x1 1 x1 .

Таким образом, значение функции определяется исключительно

значением

переменной

x1 ,

причем

f 1, 0, 0 1 1 1,

f 0,0,0 0 1 0. Значит, x1 - существенная,

x2 , x3 - фиктивные.►

Упр а жн е н ие 2 . 1 0 .

Указать

существенные и фиктивные

переменные функции

 

 

 

 

f x1, x2 , x3 x1x2 x3 x1x2 x3 x1x2 x3 x1x2 x3 .

Задачи повышенной сложности

Назовем весом булева вектора число его координат, равных 1. 2 . 1 . Сколько булевых векторов длины n имеет вес k?

Булевы векторы часто называют вершинами булева куба.

Расстоянием (Хэмминга) между вершинами и куба Bn называют

52

число , , равное числу координат, в которых они различаются,

n

 

 

т.е. , i i . Вершины (векторы)

 

и называют

i 1

соседними, если , 1, и противоположными, если , n .

Например, расстояние между векторами (1, 0, 0,1, 0) и (0, 0, 0,1,1)

равно 2. Расстояние между векторами (0, 0,1, 0)

и (1, 0,1, 0) равно 1 и,

значит, они соседние. Расстояние

между векторами (1, 0, 0,1, 0, 0) и

(0,1,1, 0,1,1) равно длине этих

векторов, и,

следовательно, они

противоположные.

 

 

2.2.Найти число неупорядоченных пар вершин булева куба Bn , удаленных друг от друга на расстояние k ( 0 k n ).

2.3.Показать, что для любых противоположных наборов и выполняется равенство v v 2n 1 .

2.4.Подсчитать число функций от n переменных, у которых:

а) одна переменная фиктивная, остальные существенные;

 

 

б)

k (1 k n )

переменных

фиктивные,

остальные

-

существенные.

 

 

 

 

 

 

 

 

2.5.

Пусть B f , g, h

-

подмножество

булевых

функций,

причем

f P2 1 , g P2

2 ,

h P2 3

и ни одна из функций не

является

тождественной

константой,

X x, y, z

-

алфавит

переменных. Определить, является

ли выражение

A

формулой

над

множеством B независимо от вида функций f , g, h :

 

 

 

а) A h x, x, f y ;

 

 

б) A g f z , 0 ;

 

 

в) A h g x, y , x, f z ;

 

г) A g g x, f ( y) , x ;

 

д) A h f x , g( y, z) ;

 

е)

A h g x , g( y),1 .

 

2.6. По функциям f x1 , x2

и g x3 , x4 , заданным векторами

значений, построить векторы значений функции h :

 

 

 

 

 

 

 

 

 

 

 

 

 

53

а)

f (0111) ,

g (0100) ,

h(x2 , x3 , x4 ) f g x4 , x2 , x3 ;

б)

f (1110) ,

g (0001) ,

 

h(x1, x2 , x3 , x4 ) g g x1, x4 , f x3 , x2 .

2.7. Указать существенные и фиктивные переменные функции

f x1,..., xn x1 x2 x2 x3 ... xn 1 xn xn x1 ,

где n 3 .

2.8. Выяснить, на скольких векторах булева куба B6 обращается в нуль функция:

а) f x1, x2 ,..., x6 x1x2 x3 x4 x5 x6 ; б) f x1, x2 ,..., x6 x1x2 x3 x4 x5 x6 .

54

Соседние файлы в папке Лекции Олейник PDF