Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
UchebnoePosobie.doc
Скачиваний:
72
Добавлен:
11.11.2019
Размер:
6.36 Mб
Скачать

1.5.2. Законы булевой алгебры

Аксиомы общей алгебры формируют законы булевой алгебры:

  • коммутативности: xixj=xjxi и xixj=xjxi,

  • ассоциативности: xi(xjxk)=(xjxj)xk и xi(xjxk)=(xjxj)xk,

  • дистрибутивности: xi(xjxk)=(xixj)(xixk) и xi(xjxk)=(xixj)(xixk),

  • идемпотентности: (xixi)=xi и (xixi)=xi,

  • поглощения: xi(xixj)=xi и xi(xixj)=xi,

  • противоречия: (xx)=1 и (xx)=0,

  • двойного отрицания: (x)=x,

  • склеивания: xFxF=F, (xF)(xF)=F,

  • де Моргана: (xixj)=xixj и (xixj)=xixj,

  • Порецкого xxy=xy, xxy=xy,

  • константы: (x0)=x, (x0)=0,

(x1)=1, (x1)=x.

1.5.3. Формула булевой функции

Функцию y=f(x1, x2,..xn), значение которой и значения компонент аргумента принадлежат множеству {0, 1}, называют булевой, а аргумент – булевым вектором. Компоненты булевого вектора называют булевыми (или двоичными) переменными.

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

Если даны булевы переменные xi, xj, то элементарными формулами являются F=xi, F=xj, F=(xixj), F=(xixj), а производными формулами F=F, F=(FiFj), F=(FiFj).

Для описания функции формулами используют два правила: подстановки и замещения.

Пусть даны равносильные формулы Fi и Fj, т. е. (Fi=Fj), которые содержат переменную x. Если всюду в формулы Fi и Fj вместо x подставить произвольную формулу F, то будут получены также равносильные между собой формулы F’i и F’j, т. е. F’i=F’j.

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

1.5.4. Описание булевой функции

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

Число строк таблицы детерминированной функции от n компонентов аргумента равно 2n.

таблица 1.13.

x1

x2

¼

xn

f(x1;x2;¼…xn)

0

1

0

1

1

0

0

1

1

1

…¼

…¼

¼

0

0

0

0

1

0

0

1

1

…¼

0

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

Число логических функций для n компонентов аргумента определяется выражением: 2p, где p=2n.

таблица 1.14.

X

y=f(x)

f0(x)

f1(x)

f2(x)

f3(x)

0

0

0

1

1

1

0

1

0

1

Для n=1 число возможных значений логической функции равно 4 (см. табл. 1.14).

Анализ таблицы позволяет дать определение каждой из четырёх логических функций:

  • f0(x) – функция-константа “0”, т.к. она не изменяет своего значе- ния при изменении аргумента, т.е. (y=0);

  • f1(x) – функция-повторитель, т.к. она принимает значения, равные значению аргумента, т.е. (y=x);

  • f2(x) - функция-инверсия (или отрицания), т.к. она принимает значения противоположные значению аргумента, т.е. (y=`x);

  • f3(x) - функция-константа “1”, т.к. она не изменяет своего значения при изменении аргумента, т.е. (y=1).

таблица 1.15

Аргумент

Функция y=fi(x1, x2)

x1

x2

f0

f1

f2

f3

f4

f5

f6

f7

f8

f9

f10

f11

f12

f13

f14

f15

0

0

0

0

0

0

0

0

0

0

1

1

1

1

1

1

1

1

0

1

0

0

0

0

1

1

1

1

0

0

0

0

1

1

1

1

1

0

0

0

1

1

0

0

1

1

0

0

1

1

0

0

1

1

1

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

0

1

Для n=2 число возможных значений логической функции равно 16 (см. табл. 1.15).

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

Например для f6(x1;x2) и f9(x1;x2).

таблица 1.16.

y=f(x1 ; x2)

Формула логической функции в базисе булевой алгебры.

y=fi(x1; x2)

f(0;0)

f(0;1)

f(1;0)

f(1;1)

0

0

0

0

y=f0(x1; x2)=0 – константа “0”

0

0

0

1

y=f1(x1; x2)=(x1×x2) – конъюнкция

0

0

1

0

y=f2(x1; x2)=(x1×`x2) - конъюнкция

0

0

1

1

y=f3(x1; x2)=x1 =повторитель

0

1

0

0

y=f4(x1; x2)=(`x1×x2) - конъюнкция

0

1

0

1

y=f5(x1; x2)=x2 - повторитель

0

1

1

0

y=f6(x1; x2)=(x1×`x2)Ú(`x1×x2) –дизъюнкция конъюнкций

0

1

1

1

y=f7(x1; x2)=x1Úx2 - дизъюнкция

1

0

0

0

y=f8(x1; x2)=ù(x1Úx2)) – отрицание дизъюнкции

1

0

0

1

y=f9(x1; x2)=(x1×x2)Ú(`x1×`x2) - дизъюнкция конъюнкций

1

0

1

0

y=f10(x1; x2)=`x2 - инверсия

1

0

1

1

y=f11(x1; x2)=x1Ú`x2 дизъюнкция

1

1

0

0

y=f12(x1; x2)=`x1 -инверсия

1

1

0

1

y=f13(x1; x2)=`x1Úx2 -дизъюнкция

1

1

1

0

y=f14(x1; x2)=ù(x1×x2) –отрицание конъюнкции

1

1

1

1

y=f15(x1; x2)=1 – константа “1”

Поэтому в развитие булевой алгебры в алгебре логики введены дополнительные логические связки:

  • « - эквиваленции, когда y=1 только при условии x1=x2;

  • ® - импликации, когда y=0 только при условии x1=1 и x2=0;

  •  - сложения по модулю “2”, когда y=1 только при условии x1x2;

  • ¯ - стрелка Пирса, когда y=1 только при условии x1=x2=0;

  • ç- штрих Шеффера, когда y=0 только при условии x1=x2=1;

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

F0 = { ;  ; ;  ; «; ®; ¯; ½}.

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

таблица 1.17.

y=f(x1;x2)

Формула логической функции в базисе алгебры логики.

y=fi(x1; x2)

f(0;0)

f(0;1)

f(1;0)

f(1;1)

0

0

0

0

y=f0(x1; x2)=0 – константа “0”

0

0

0

1

y=f1(x1; x2)=(x1×x2) - конъюнкция

0

0

1

0

y=f2(x1; x2)=ù(x1®x2) – отрицание прямой импликации

0

0

1

1

y=f3(x1;x2)=x1 -повторитель

0

1

0

0

y=f4(x1;x2)=ù(x2®x1) –отрицание обратной импликации

0

1

0

1

y=f5(x1;x2)=x2 - повторитель

0

1

1

0

y=f6(x1;x2)=ù(x1«x2)=(x1Åx2) –сложение по модулю 2

0

1

1

1

y=f7(x1;x2)=x1Úx2 - дизъюнкция

1

0

0

0

y=f8(x1;x2)=(x1¯x2) – стрелка Пирса

1

0

0

1

y=f9(x1;x2)=(x1«x2) - эквиваленция

1

0

1

0

y=f10(x1;x2)=`x2 – инверсия x2

1

0

1

1

y=f11(x1;x2)=x2®x1 – обратная импликация

1

1

0

0

y=f12(x1;x2)=`x1 – инверсия x1

1

1

0

1

y=f13(x1;x2)=x1®x2 – прямая импликация

1

1

1

0

y=f14(x1;x2)=(x1½x2) – штрих Шеффера

1

1

1

1

y=f15(x1;x2)=1 - константа “1”

Анализ таблиц 1.14 и 1.15 показывает, что среди множества функций существуют функции, зависимые от меньшего числа переменных. Например, f0(x1; x2) и f15(x1; x2) вообще не зависят от двоичных переменных, а f3(x1; x2)), f5(x1; x2), f10(x1; x2) и f12(x1; x2) зависят только от одной двоичной переменной.

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

Двоичная переменная xi в функции f(x1; x2;…;xi-1; xi; xi+1;…;xn) называется фиктивной, если выполняется условие:

f(x1; x2;...xi-1; 0; xi+1;…xn)=f(x1; x2;…xi-1; 1; xi+1;…xn).

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]