Алгебра логики (работа 2)
1
Лекция. Алгебра логики
Кроме обычной алгебры существует специальная, основы которой были заложены английским математиком XIX века Дж. Булем. Эта алгебра занимается так называемым исчислением высказываний.
Ее особенностью является применимость для описания работы так называемых дискретных устройств, к числу которых принадлежит целый класс устройств автоматики и вычислительной техники.
При этом сама алгебра выступает в качестве модели устройства. Это означает, что работа произвольного устройства указанного типа может быть лишь в каком-то отношении описана с помощью построений этой алгебры. Действительное реальное устройство физически работает не так, как это описывает алгебра логики. Однако применение положений этой теории позволяет сделать ряд полезных в практическом отношении обобщений.
Рассмотрим некоторую схему и представим ее в виде так называемого "черного" ящика.
Будем считать, что внутреннее содержимое ящика неизвестно.
X>1>,X>2>,X>3> – входные сигналы, F – выходной сигнал.
Считаем также, что схема А – элементарная, т.е. нет другой схемы Б, меньшей, чем А, которая бы содержалась в А.
Построим абстрактное устройство из элементарных устройств, типа А, Б, В и т.д. Очевидно, более сложное устройство можно построить из простых путем:
последовательного соединения элементов;
параллельного соединения;
перестановки входов элементов.
Тогда роль Y>1> для второго элемента Б будет играть:
Y>1>=F>А>(X>1>,X>2>,X>3>)
Y>2>=F>Б>(X>1>,X>2>)
F=F(Y>1>,Y>2>)=F(F>А>(X>1>,X>2>,X>3>),F>Б>(X>1>,X>2>))
Параллельное соединение элементов не меняет функции, поэтому, с точки зрения логики, этот тип соединения не используется. Физически иногда все же применяют параллельное соединение элементов, но в основном для того, чтобы, например, усилить сигнал.
В связи с этим, параллельное соединение элементов в алгебре логики не рассматривается.
Функция, которую выполняет элемент, вообще говоря, зависит от переменных, которые подаются на вход.
Поэтому перестановка аргументов влияет на характер функции.
F=F(F>А>(X>1>,X>2>,X>3>),F>Б>(X>2>,X>3>))
F(F>Б>(X>2>,X>3>),F>А>(X>1>,X>2>,X>3>))
Таким образом, произвольные, сколь угодно сложные в логическом отношении схемы, можно строить, используя два приема:
последовательное соединение элементов;
перестановка входов элементов.
Этим двум физическим приемам в алгебре логики соответствуют:
принцип суперпозиции (подстановка в функцию вместо ее аргументов других функций);
подстановка аргументов (изменение порядка записи аргументов функций или замена одних аргументов функции другими).
Итак, физическая задача построения и анализа работы сложного устройства заменяется математической задачей синтеза и анализа соответствующих функций алгебры логики.
Элементарные функции алгебры логики
Существует несколько синонимов по отношению к функциям алгебры логики:
функции алгебры логики (ФАЛ);
переключательные функции;
булевские функции;
двоичные функции.
По мере необходимости будем пользоваться всеми этими синонимами.
Рассмотрим некоторый набор аргументов:
<X>1>,X>2>,X>3>,...Х>i>,...X>n>>
и будем считать, что каждый из аргументов принимает только одно из двух возможных значений, независимо от других
Чему равно число различных наборов?
X>i> = {0, 1}
Поставим каждому набору в соответствие некоторое двоичное число:
X>1>,X>2>,...........X>n>
0, 0,...........,0 нулевой набор
0, 0,...........,1 первый набор
0, 0,..........1,0 второй набор
...................
1, 1,...........,1 (2n-1)-ый набор
Очевидно, что количество различных X>1>,X>2>,...........X>n> n-разрядных чисел в позиционной двоичной системе есть 2n.
Допустим, что некоторая функция F(X>1>,X>2>,....X>n>) задана на этих наборах и на каждом из них она принимает либо '0'-ое, либо '1'-ое значение.
Такую функцию называют функцией алгебры логики или переключательной функцией.
Чему равно число различных переключательных функций 'n' аргументов?
Т.к. функция на каждом наборе может принять значение '0' или '1', а всего различных наборов 2n, то общее число различных функций 'n' аргументов есть: 22n.
По сравнению с аналитической функцией непрерывного аргумента даже для одного аргумента существует множество различных функций.
Число аргументов |
1 |
2 |
3 |
4 |
5 |
10 |
Число различных перекл. ф-ций |
4 |
16 |
256 |
65536 |
~4*109 |
~10300 |
Различные устройства ЭВМ содержат десятки и сотни переменных (аргументов), поэтому понятно, что число различных устройств, отличающихся друг от друга, практически бесконечно.
Итак, нужно научиться строить эти сложные функции (а стало быть, и устройства), а также анализировать их.
Задача синтеза более сложных функций заключается в представлении их через простые на основе операций суперпозиции и подстановки аргументов. |
Таким образом, вначале необходимо изучить эти элементарные функции, чтобы на их основе строить более сложные.
ФАЛ одного аргумента
Чтобы задать ФАЛ, нужно задать ее значения на всех наборах аргументов.
Аргумент Х |
значение |
Наименование функции |
|
0 |
1 |
||
F>0>(x) |
0 |
0 |
константа '0' |
F>1>(x) |
0 |
1 |
переменная 'х' |
F>2>(x) |
1 |
0 |
инверсия 'х' (отрицание х) |
F>3>(x) |
1 |
1 |
константа '1' |
Будем у функции ставить индекс, эквивалентный набору ее значений для соответствующих значений аргумента, начиная с 0,0,....,0,..... и т.д. в порядке возрастания.
Эти функции можно реализовать на 4-х элементах, каждый из которых имеет максимум один вход. Таким образом, принципом подстановки аргументов для построения более сложных функций нельзя воспользоваться.
Необходимо рассмотреть более сложные функции, т.е. ФАЛ 2х аргументов.
Дадим такие определения:
ФАЛ, принимающие одинаковые значения на всех наборах аргументов, называются равными.
ФАЛ существенно зависит от аргумента Х>i>, если
F(X>1>,X>2>,...,Х>i-1>,0,X>i+1>,...,X>n>)
F(X>1>,X>2>,...,Х>i-1>,1,X>i+1>,...,X>n>)
В противном случае она зависит не существенно, а соответствующий аргумент наз. фиктивным.
Например:
Х>1> |
Х>2> |
Х>3> |
F(X>1>,X>2>,Х>3>) |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
Видно, что Х>3> – фиктивный аргумент. Это показывает, что в функцию можно ввести любое число фиктивных аргументов, от которых она существенно не зависит. Этот прием в дальнейшем потребуется для выполнения ряда преобразований.
Все ФАЛ от 2-х аргументов. Сведем их в единую таблицу 2.1.
Таблица 2.1. |
||||||
№ функции |
Значение функции на наборах логических переменных |
Наименование функции |
Обозначение функции |
|||
X>1> |
0 |
0 |
1 |
1 |
||
X>2> |
0 |
1 |
0 |
1 |
||
f>0>(X>1>,X>2>) |
0 |
0 |
0 |
0 |
Константа "ноль" |
f(X>1>,X>2>)=0 |
f>1>(X>1>,X>2>) |
0 |
0 |
0 |
1 |
Конъюнкция, произведение |
f(X>1>,X>2>)= X>1>& X>2> f(X>1>,X>2>)= X>1> X>2> f(X>1>,X>2>)= X>1> · X>2> f(X>1>,X>2>)= X>1> X>2> |
f>2>(X>1>,X>2>) |
0 |
0 |
1 |
0 |
Запрет по X>2> |
X>1> Δ X>2> |
f>3>(X>1>,X>2>) |
0 |
0 |
1 |
1 |
Переменная X>1> |
f(X>1>,X>2>)= X>1> |
f>4>(X>1>,X>2>) |
0 |
1 |
0 |
0 |
Запрет по X>1> |
X>2> Δ X>1> |
f>5>(X>1>,X>2>) |
0 |
1 |
0 |
1 |
Переменная X>2> |
f(X>1>,X>2>)= X>2> |
f>6>(X>1>,X>2>) |
0 |
1 |
1 |
0 |
Сложение по mod2 (неравнозначность) |
f(X>1>,X>2>)= X>1> X>2> |
f>7>(X>1>,X>2>) |
0 |
1 |
1 |
1 |
Дизъюнкция |
f(X>1>,X>2>)= X>1> X>2> f(X>1>, X>2>)= X>1>+ X>2> |
f>8>(X>1>,X>2>) |
1 |
0 |
0 |
0 |
Стрелка Пирса |
f(X>1>, X>2>)= X>1> X>2> |
f>9>(X>1>,X>2>) |
1 |
0 |
0 |
1 |
Равнозначность |
f(X>1>, X>2>)= X>1> X>2> f(X>1>, X>2>)= X>1>~X>2> |
f>10>(X>1>,X>2>) |
1 |
0 |
1 |
0 |
Инверсия X>2> |
f(X>1>, X>2>)=^X>2> f(X>1>, X>2>)=X>2> |
f>11>(X>1>,X>2>) |
1 |
0 |
1 |
1 |
Импликация от X>2> к X>1> |
f(X>1>, X>2>)= X>2> X>1> |
f>12>(X>1>,X>2>) |
1 |
1 |
0 |
0 |
Инверсия X>1> |
f(X>1>, X>2>)=^X>1> f(X>1>, X>2>) = X>1> |
f>13>(X>1>,X>2>) |
1 |
1 |
0 |
1 |
Импликация от X>1> к X>2> |
f(X>1>, X>2>)= X>1> X>2> |
f>14>(X>1>,X>2>) |
1 |
1 |
1 |
0 |
Штрих Шеффера |
f(X>1>, X>2>)= X>1>|X>2> |
f>15>(X>1>,X>2>) |
1 |
1 |
1 |
1 |
Константа "единица" |
f(X>1>, X>2>)=1 |
Эти функции введены формально. Однако им можно придавать определенный "логический" смысл. Алгебра логики часто называется исчислением высказываний.
При этом под высказываниями понимается всякое предложение, относительно которого можно утверждать, что оно истинно или ложно.
Например:
В=<один плюс один - два>
есть истинное высказывание.
Рассмотрим, какое смысловое содержание можно вложить в некоторые сложные высказывания на примере ФАЛ 2-х аргументов.
Инверсия
Читается НЕ Х или Х с чертой, отрицание Х.
Возьмем, например, такое высказывание: А=<Киев-столица Франции>, тогда сложное высказывание НЕ А означает: не верно, что А, т.е. не верно, что <Киев-столица Франции>.
Из простых высказываний можно строить более сложные, применяя так называемые связи.
Логические связи – это ФАЛ, аргументами которых являются простые высказывания.
Конъюнкция
Возьмем 2 высказывания:
А=<Москва – столица РФ>
В=<дважды два - четыре>
тогда сложное высказывание: А & В будет истинным, так как истинны оба этих высказывания.
Поскольку таблица истинности для конъюнкции совпадает с таблицей умножения, если истинному высказыванию приписать значение '1', а ложному - '0', то сложное высказывание можно назвать произведением.
-
X>1>
X>2>
f>1>(X>1>,X>2>)
0
0
0
0
1
0
1
0
0
1
1
1
Функция конъюнкции истинна тогда, когда истинны одновременно оба высказывания.
Дизъюнкция
Это сложное высказывание истинно тогда, когда истинно хотя бы одно высказывание, входящее в него.
X>1> |
X>2> |
f>1>(X>1>,X>2>) |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Читается X>1> ИЛИ X>2>: Некоторое отличие от смысла союза "или", принятого в русском языке: в данном случае этот союз употребляется в смысле объединения, а не разъединения.
Логическая равнозначность
Это сложное высказывание истинно тогда, когда истинны или ложны одновременно оба высказывания.
Отсюда следует, что вне зависимости от смысла, равнозначными являются как истинные, так и ложные высказывания.
Например,
А=<дважды два - пять>
B=<один плюс два - шесть>
А~В равнозначны.
Импликация
Это сложное высказывание ложно только тогда, когда X>1> – истинно, а X>2> – ложно.
-
X>1>
X>2>
f>1>(X>1>,X>2>)
0
0
1
0
1
1
1
0
0
1
1
1
Читается: если X>1>, то X>2>. При этом X>1> – посылка, X>2> – следствие.
Если посмотреть на таблицу истинности, то может показаться странным название этой функции, т.к. из него следует, что истинным может быть высказывание, составленное из двух ложных.
Но в действительности, все верно, т.к. содержанием высказываний в алгебре логики не интересуются.
Тогда из ложной посылки может следовать ложное следствие и это можно считать верным: <если Киев – столица Франции>, то <2-квадрат 3>.
Эквивалентности
В некоторых случаях сложное и длинное высказывание можно записать более коротким и простым без нарушения истинности исходного высказывания. Это можно выполнить с использованием некоторых эквивалентных соотношений.
Дизъюнкция:
х х х х ... х х х= х,
т.е. истинность высказывания не изменится, если его заменить более коротким, таким образом, это правило приведения подобных членов:
– постоянно истинное высказывание.
0 x = x
x>1> x>2> = x>2> x>1>
- (переместительный) коммуникативный закон.
x>1> х>2> х>3> = (x>1> х>2>) х>3> = x>1> (х>2> х>3>)
- сочетательный закон.
Конъюнкция:
х х х х... х х х= х
правило приведения подобных членов:
- постоянно ложное высказывание
- постоянно ложное высказывание
Сложение по mod 2
1
при нечетном числе членов, 0 - при четном числе членов
Правило де Моргана
>>
Докажем для двух переменных с помощью таблицы истинности:
-
Х>1>
Х>2>
>1> >2>
0
0
1
1
0
1
1
1
1
0
1
1
1
1
0
0
Операция поглощения:
Х XY = X
или в общем виде
X X*f(X,Y,Z...) = X;
Операция полного склеивания:
(по Y)
(по Х)
Операция неполного склеивания: