Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Булева функция (логическая функция, функция алгебры



^логики) - это функция одной или нескольких переменных

I , где Z - логические переменные,

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

'равны 0 или 1: . Можно применять векторные обозначения

|для сокращения записи. Пользуясь другими терминами, можно

f

[считать областью определения булевой функции множество вершин

i п -мерного единичного куба

.На рис.19 изображена

Гфункция 3 переменных

f

fпринимающая значение 1 на

t1наборах (001), (011), (100)

[Обратите внимание на допустимую

форму записи: можно не разделять запятыми значения аргументов -все они однозначные числа.

;Если число переменных равно

п и любая из них может независимо от других принимать 2:значения, то число различных п -

векторов равно . Относительно

t

каждой функции все множество разбивается

на два класса // -векторов прообраз значения 0 и прообраз значения

1 функции Z Мы будем рассматривать только всюду определенные функции

Если считать, что переменные обозначают истинность

(значение 1) или ложность (значение 0) высказываний-аргументов, то

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

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

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

, для которых Z = 1. В таблице 5 представлены все функции одной переменной - их 4

В 1 -м столбце - значения переменной X; в каждом из последующих -значения соответствующей функции, обозначение функции - в 1-й

строке Во 2-м столбце - функция-константа , в 5-м - функция-

константа . В 3-м столбце тождественная функция Z = X, в 4-м -

функция , которую обозначают также и называют

отрицанием. Второй способ обозначения подчеркивает, что отрицание

- одноместная функция аргумента X.

Аналогично могут быть заданы функции нескольких переменных Некоторые из них - для двух переменных - в табл.6 Сравните их (столбцы 3-5) с таблицами истинности основных логических операций конъюнкции, дизъюнкции, импликации, эквивалентности,'для которых значения аргументов и результатов операций обозначались буквами И, Л Отметим также, что с арифметической точки зрения, т.е. если рассматривать 0 и 1 как натуральные числа с обычными операциями

арифметики, выполнены равенства:

Поэтому конъюнкцию называют умножением и записывают

со знаком произведения: или вообще - как в алгебре - без

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

Сумма по модулю 2 - функция двух переменных, равная 0, если значения аргументов совпадают, и 1 в противном случае; ее обозначение

- . Арифметическое значение -остаток от деления числа

(X + Y) на 2, - отсюда название. Другое название - неэквивалентность,

поскольку выполнено тождество:

Сумма по модулю 2 как бинарная операция обладает свойствами

коммутативности и ассоциативности , и поэтому

ее можно записывать без скобок и переставлять слагаемые.

Штрих Шеффера - функция двух переменных, равная 0 тогда и

только тогда, когда оба аргумента равны 1. Обозначение: , условное

название " X несовместно с Y". Выполнены тождества:

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

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

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

конъюнкцию, - дизъюнкцию, - импликацию;

представляет функцию трех переменных , заданную в

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

в §4 гл 2 таблицу

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

Например, функцию из табл.7 можно задать кортежем: [3,5,6,7], а

функцию из той же таблицы - [0, 1, 4, 5]. Это особенно удобно, если

функция принимает значение Ьна небольшом числе наборов, по сравнению с их общим количеством.

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

Важный пример применения булевых функций дают арифметические действия над двоичными числами: поскольку возможные знаки в двоичной системе суть 0 и 1, то зависимости знаков результата от знаков слагаемых/сомножителей выражаются булевыми

функциями. При сложении двух однозначных двоичных чисел А и В знак суммы в младшем разряде равен , а знак переноса

возникает только если оба слагаемых равны 1, т.е. Умножение однозначных двоичных чисел тождественно конъюнкции, что фактически отмечено выше.

В табл.7 представлены 3 функции трех переменных. Первую из них

называют иногда функцией большинства - ее значение

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

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

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

от аргумента Y, а функция от аргументов X, Z. Действительно, если, например, X = 0,7 = 1, то и при Y = О (набор 001), и при Y = \ (набор 011) выполнено равенство . Таким же образом проверяются

остальные 3 сочетания переменных X и Z. Введем определение Несущественные (фиктивные) переменные: для функции

переменная называется

несущественной, если выполнено

при всех значениях

Таким образом, для функции несущественной переменной является Y, а для функции - несущественные переменные X и Z. Если относить к функциям п переменных и функции, существенно

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

булевых векторов длины , т.е. . Для одной переменной это число равно 4 (см.

табл.5); для двух переменных - 24 =16; сщя трех переменных - 28 = 256; для

нетырех переменных -2|6 = 65536и т.д. Таблица всех 16 функций 2 переменных содержится в файле материалов. Множество всех логических функций, от любого конечного числа

переменных обозначается

Если - фиктивная переменная функции

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

некоторой функции (п -1) переменных . Аналогично, если

- фиктивная переменная функции и вычеркнуть

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

значением (т е строки, в которых ), то останется таблица

функции . Будем говорить, что g

получается из удалением, а - введением фиктивной

переменной

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

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

функций. В этом смысле, использованные выше записи

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

функции одной переменной Y, имеющей столбец значений

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





Дата публикования: 2014-11-18; Прочитано: 2411 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.012 с)...