Фиктивные переменные. Равенство булевых функций

Теория

Ключевым понятием в теории булевых функцuй является понятие равных булевых функций. Для функций от одного и того же числа переменных n нет необходимости рассматривать какое- то специальное определение равенства, ибо такие функции равны, если они совпадают как отображения булева куба Bn в В. Проблема состоит в том, чтобы определить равенство булевых функций независимо от числа переменных.

Пример 6.4. Рассмотрим булевы функции f(x,y) =x ∨ y и g(x,y,z) = xz ∨ xz ∨ yz ∨ yz.

Можно заметить, используя тождества булевой алгебры, что

g(x,y,z) = (x ∨ y)(z ∨ z),

а поскольку z ∨ z = 1, то

g(x,y,z) = (х ∨ y) = f(x,y),

и функции f и g естественно рассматривать как равные, несмотря на то что они зависят от разного числа переменных. #

В примере 6.4 функция g определена как функция от трех переменных, но значение переменного z не влияет на значение функции. Обобщая ситуацию примера, можно ввести понятие фиктивного переменного булевой функции.

Определение 6.1. Переменное xi называют фиктивным переменным булевой функции f(x1, ... ,xn), если значение функции не зависит от значения этого переменного, т .е. если для любых значений переменных х1, ... , xi-1, хi+1, ... , xn

f(х1, ... , xi-1, 0, хi+1, ... , xn) = f(х1, ... , xi-1, 1, хi+1, ... , xn).

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

Пусть дана булева функция у = f(x1, ... ,xn) от n переменных. Пусть существенными переменными этой функции являются переменные xi1, ... ,xir, где r ≤ n и 1 ≤ i1<...r ≤ n. Присваивая каждому фиктивному переменному функции f произвольное значение, получим функцию f, такую, что она есть функция от r переменных, т.е. есть отображение из Br в В, и для любого набора αi1, ... , αir значенuй переменных xi1, ..., xir имеет место равенство

f˜i1 , ... ,αir) = f(x1, ..., αi1, ... ,αir,...,xn)

независимо от значений фиктивных переменных функции f (т.е. переменных, отличных от xi1 , ..., xir). Тем самым функция f оказывается уже функцией, определенной на некоторой r-мерной грани булева куба Bn.

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

Замечание 6.2. В качестве упомянутой вьппе r-мерной грани может быть взята любая грань с направлением, заданным номерами фиктивных переменных. Фиксация грани означает фиксацию конкретного набора значений фиктивных переменных. Тогда соответствующая этой грани функция f получается из исходной функции f в результате подстановки вместо каждого фиктивного переменного того конкретного значения, которое задано указанным вьппе набором.

Вернемся к примеру 6.4. Удаляя фиктивное переменное z, вместо функции g получим либо функцию g(x,y,O), которая определена на (двумерной) грани B3,30 булева куба В3 , либо функцию g(x,y,1), определенную на грани B3,31 . Направлением каждой из этих граней будет однокомпонентный кортеж (3), определенный номером фиктивного переменного z. #

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

Определение 6.2. Булевы функции f и g называют равными, если их существенные переменные соответственно равны и на каждом наборе значений этих переменных функции f и g принимают равные значения.

Чтобы распознать по таблице булевой функции, является ли переменное xi фиктивным, нужно рассмотреть все наборы с фиксированным значением i-й компоненты (один раз фиксировав это значение как 0, другой раз - как 1). Из определения 6.1 ясно, что переменное xi фиктивно тогда и только тогда, когда для любых двух наборов, отличающихся только значением i-й компоненты, функция принимает равные значения.

Пример 6.5. а. Из табл. 6.4 следует, что мажоритарная функция не имеет фиктивных переменных, так как, например, f(0,0,1) = 0, а f(1,0,1) = 1, т.е. переменное х1 существенное. Далее, f(1,0,0) = 0, но f(1,1,0) = 1, что означает существенность переменного х2; для х3 имеем f(1,0,0) = 0, но f(1,0,1) = 1, что означает существенность и этого переменного.

б. Ниже приведена таблица функции g от четырех переменных (табл. 6.5). Рекомендуется проверить, что переменное х2 являетеся фиктивным и что остальные переменные существенны. Более того, анализ таблицы показывает, что эта функция есть не что иное, как мажоритарная функция, существенно зависящая от переменных х1, х3 и х4. #

Кроме процедуры удаления фиктивных переменных используют и процедуру добавления к множеству переменных булевой функции одной или нескольких фиктивных переменных. Так, если дана функция f(x1, ... ,xn) ∈ P2,n, то можно ввести новоефиктивное переменное у, определив новую, равную исходной, согласно определению 6.2, функцию от n + 1 переменного таким образом:

(см. пример 6.4).

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

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

Действительно, пусть функция f(х1, ..., xn) есть функция от n переменных, а функция g(y1, ..., ym) - функция от m переменных. Обозначим множества переменных функции f и g че рез Х и У соответственно. Расширим множество переменных функции f до Х ∪ У, вводя переменные из У\Х ( если они существуют) как фиктивные. Точно так же поступим с функцией g, добавляя фиктивные переменные из множества Х\У (если, конечно, оно не пусто). Тогда получим функции и , равные, согласно определению 6.2, функциям f и g соответственно и определенные как функции от одного и того же числа переменных, составляющего |X ∪ Y|.

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

В заключение рассмотрим понятие проектирующей функции.

Функцию pri от n переменных, такую, что

pri(x1,...,xi,...,xn) = xi,

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

prXx (...,х,...) = х

(за многоточиями "скрыты" переменные проектирующей функции, отличные от переменного х).

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

Вместе с тем для двух различных переменных х и у проектирующие функции prXx и prYx - разные функции. Так, pr1(x1,x2) - функция, отличная от функции pr2(x1,x2), поскольку, например, pr1(1,0) = 1, pr2(1,0) =0.

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

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