Главная страница. | ||
Написать мне письмо. |
... и пусть, интересующийся Булевой Алгеброй,
НАРОД
всегда помнит интересующий его адрес booleanalgebra.narod
...
... и пусть следит за обновлениями этого сайта ...
Мои ученики и мои выпускники — школьники старших классов и студенты технических вузов. Это пособие я составляю
для
своих подопечных. Они, в подавляющем большинстве, — не теоретики,
а практики. Им не нужны тонкости и подробности того, что такое Алгебра
вообще и что такое Булева Алгебра в частности. Как будущих инженеров,
их больше должны интересовать
основы исчисления высказываний.
Но как вводить понятие
высказывания? Дать его, как фундаментальное понятие, а потом ввести кучу
аксиом? Можно и так. Только я напомню о том, что как было сказано выше,
я являюсь руководителем математического кружка для старших школьников,
а мои выпускники-студенты технических вузов. Тонкости и теоретические дебри
им не нужны. Поэтому, с Вашего позволения, я буду излагать материал в "кружковой"
традиции. Кого интересует нечто большее, тем советую начать пока с малого.
**************************************************************************
**************************************************************************
**************************************************************************
(С
Вашего позволения, для обозначения определения
я буду использовать значок def)
Итак, поехали ...
Основные понятия
def Высказыванием
называется повествовательное предложение, о котором можно однозначно сказать,
истинно оно, или ложно.
Примечание: когда мы производим алгебраические операции над высказываниями,
мы абстрагируемся от содержания высказываний, нас интересуют только
их значения.
def Говорят, что
высказывание имеет значение "логическая единица", если он истинно.
def Говорят, что
высказывание имеет значение "логический нуль", если он ложно.
def Конъюнкцией,
или логическим умножением, или логически "И" называется такая операция
над высказываниями, которая двум высказываниям A и B сопоставляет
такое высказывание C, истинность которого (или значение которого) определяется
следующей таблицей :
|
Обозначение :
C= A&B=A*B (В последнем случае используется точка умножения, т.е.тот же значок, что и для арифметического умножения)
Примечание : допустимо точку умножения пропускать,
как в арифметике.
def Дизъюнкцией,
или логическим сложением, или логически ""ИЛИ" (соединительным)" называется
такая операция над высказываниями, которая двум высказываниям A и B сопоставляет
такое высказывание C, истинность которого (или значение которого) определяется
следующей таблицей :
|
Обозначение :
C=A+B=
A символ "птичка" B
def Инверсией или негацией, или логическим отрицанием, или логически "НЕ" называется такая операция над высказываниями, которая одному высказыванию A сопоставляет такое высказывание B, истинность которого (или значение которого) определяется следующей таблицей :
|
Обозначение:
B= символ "кочерга" A= "A с крышкой"
Примечание к определению операции логического
отрицания :
Её результат имеет так же название "инверсное
значение переменного".
ДАМЫ И ГОСПОДА! При первом чтении
можно от этого синего текста прокатиться
вниз следующему синему тексту!
Переключательные функции
При первом чтении зелёный текст
можно пропустить.
def Переключательной функцией
называется такая функция от нескольких аргументов, все аргументы которой
являются высказываниями, и значение которой также является высказыванием.
Переключательная функция однозначно задаётся
своей таблицей истинности :
Общий принцип заполнения таблицы истинности :
Верхняя строка называется шапкой таблицы.
X1
X2
...
Xn-1
Xn
F (X1,
X2,…,Xn)
0
0
...
0
0
F(0,0,...,0,0)
0
0
...
0
1
F(0,0,...,0,1)
0
0
...
1
0
F(0,0,...,1,0)
1
1
...
1
1
F(1,1,...,1,1)
Крайний правый столбец, за исключением первой позиции. называется столбцом
значений.
Все остальные позиции в таблице, за исключением, как я уже сказал, самой
верхней строки и самого правого столбца, называются телом таблицы. В теле
таблицы перебираются всевозможные значения аргументов функции.
Шапка и тело одинаковы для всех таблиц истинности при фиксированном значении
n, т.е. для всех переключательных функций от n аргументов.
Чтобы
создать переключательную функцию от n аргументов, надо от балды заполнить
стобец значений. Произвольно!!! Вот и всё!!!
В шапке таблицы истинности переключательной функции от n аргументов перечисляются
все её аргументы (в заголовках первых n столбцов) и, наконец, само имя
функции F (X1,
X2,…,Xn).
Тело таблицы заполняется всеми возможными строками,
начиная от строки из всех нулей, заканчивая строкой из всех единиц. Каждая
строка, как это даже самому пьяному ежу понятно, представляет собой двоичную
запись своего порядкового номера, если условится считать, что начальная
строка имеет нулевой номер. Алгоритм заполнения тела таблиц-это циклический
алгоритм, в котором навьючено друг на друга n циклов. Быстрее всего изменяется
переменная Xn, помедленнее Xn-1,
а всего медленнее - X1. Как ВЫ
знаете уже из Комбинаторики, если имеется n вложенных циклов, в которых
каждая переменная пробегает ровно k значений, то такой цикл срабатывает
ровно k в степени n раз.В теле таблицы истинности должно быть, таким образом,
2 в степени n строк, а последняя строка представляет собой двоичную запись
числа (2 в степени n) минус1.
Столбец значений для каждой функции индивидуален
и неповторим (в смысле целиком неповторим). Это-её анкетные данные (проводили
когда-нибудь анкетирование?). Ну, это было лирическое отступление. А теперь-опять
к делу!
Переключательные функции от двух аргументов
Все существующие на свете логические функции двух переменных можно представить в виде таблицы, которая строится следующим образом:
Берётся обычная таблица истинности для функции двух переменных:
И кладётся эта таблица на левый бок в буквальном смысле этого слова:
после чего столбец значений заполняется всеми возможными значениями. Какими значениями? Нулями и единицами! Позиций в столбце значений всего четыре, значит, способов заполнить его всеми возможными различными значениями 24=16 штук. Эти способы очень удобно нумеровать от 0 до 15, т.к. самый первый способ заполнения столбца значений — это просто четыре нуля, а последний способ заполнения столбца значений — это просто четыре единицы. Напомним, что четыре нуля (или вообще любое количество нулей) — это нуль, а четыре единицы — это 15 в двоичной системе счисления.
Учитывая всё вышесказанное, мы и обозначим эти функции соответственно:
А теперь представим их в виде таблицы:
Логические базисы
можно пропустить.Доказательство
Рассмотрим два случая :
Таким
образом столбец значений таблицы истинности дизъюнкции
всех таких элементарных
конъюнкций-конституэнт единицы, как
тоже некоторой переключательной функции, выглядит так:
-единица в тех позициях, в которых функция F(X1,X2,...,Xn)
имеет
единицу;
-нуль в тех позициях, в которых функция F(X1,X2,...,Xn)
имеет
нуль.
Таким
образом столбец значений таблицы истинности дизъюнкции
всех таких элементарных
конъюнкций-конституэнт единицы, совпадает
со столбцом значений таблицы истинности самой функции F(X1,X2,...,Xn)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
А что значит, что столбцы значений двух переключательных функций
совпадают? Да то и значит, что эти две функции равны! Вот и всё !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Таким образом, функция F(X1,X2,...,Xn)
равна
дизъюнкции
всех своих элементарных
конъюнкций-конституэнт единицы, а значит
мы получили для неё выражение в виде композиции функций "КОНЪЮНКЦИЯ", "ДИЗЪЮНКЦИЯ"
и "ИНВЕРСИЯ" !!!
2.В
теле таблицы истинности переключательной функции F(X1,X2,...,Xn)
нет
ни одной единицы.
Значит, функция F(X1,X2,...,Xn)
равна
нулю. Логический нуль также является некоторой композицией
функций "КОНЪЮНКЦИЯ", "ДИЗЪЮНКЦИЯ" и "ИНВЕРСИЯ" от аргументов
X1,X2,...,Xn
:
например, 0= (X1+X2+...+Xn)*0.
Таким образом, и в случае 2.мы
так же получили для функции F(X1,X2,...,Xn)
выражение
в виде композиции функций "КОНЪЮНКЦИЯ", "ДИЗЪЮНКЦИЯ" и "ИНВЕРСИЯ" !!!
Таким образом, произвольная переключательная функция F(X1,X2,...,Xn)
от n аргументов, где n- произвольное
натуральное число, может быть представлена в виде композиции функций "КОНЪЮНКЦИЯ",
"ДИЗЪЮНКЦИЯ" и "ИНВЕРСИЯ" !!!
Значит, множество функций "КОНЪЮНКЦИЯ", "ДИЗЪЮНКЦИЯ" и "ИНВЕРСИЯ" образуют
логический базис (см. определение
логического базиса по этой ссылке ).
А теперь эту штуку умесно обозвать именем какого-то такого
Свойства функций универсального логического базиса
Да по-просту говоря-это свойства уже известных нам ранее КОНЪЮНКЦИИ, ДИЗЪЮНКЦИИ,
и ИНВЕРСИИ. Вот и всё!
ДАМЫ И ГОСПОДА! Все, кто
при первом чтении перематывал линейку прокрутки от синего текста вниз к
следующему синему тексту, уже домотались до цели! Дальше можете не мотать!
Важное
примечание :
Все нижеследующие формулы справеливы
для любых высказываний A,
B
и C.
Спешу заметить, что все эти формулы можно
доказать! Доказать математически!
А.
Свойства логического сложения и умножения, совпадающие с соответствующими
свойствами соответствующих арифметических операций :
С позволения читателя, чтобы
не загромождать статью кучей вставленных
рисунков, я буду символ умножения
заменять звёздочкой.
1. Коммутативность логического
сложения :
A+B=B+A
/От слова «коммутация»-переключение/.
2. Коммутативность логического
умножения :
A*B=B*A
3. Ассоциативность логического сложения
:
(A+B)+C=A+(B+C)
/От слова «ассоциация»-объединение/.
4. Ассоциативность логического
умножения :
(A*B)*C=A*(B*C)
5. Наличие нейтрального элемента
для логического сложения :
0+A=A –левый нейтральный элемент
A+0=A –правый нейтральный элемент
(т.к. левый и правый нейтральный
элемент совпадают, то он просто называется нейтральным элементом)
6. Наличие нейтрального элемента
для логического умножения :
1*A=A –левый нейтральный элемент
A*1=A –правый нейтральный элемент
(т.к. левый и правый нейтральный
элемент совпадают, то он просто называется нейтральным элементом)
7. Мультипликативное свойство логического
нуля :
0*A=0 –левое мультипликативное свойство
A*0=A –правое мультипликативное свойство
(т.к. левое и правое мультипликативное
свойство имеют место одновременно, то оно просто называется мультипликативным
свойством)
8. Дистрибутивность логического
умножения относительно логического сложения :
A*(B+C)=A*B+A*C –левая дистрибутивность
(B+C)*A=B*A+C*A –правая дистрибутивность
(т.к. левая и правая дистрибутивность
имеют место одновременно, то она просто называется дистрибутивностью)
/Кто такой дистрибьютор? –Это посредник!/.
ПРИМЕЧАНИЕ:
КОЕ-КАКИЕ СВОЙСТВА ЭТИХ ФУНКЦИЙ
МОЖНО ИЗЛОЖТЬ БОЛЕЕ КРАТКО.
ТЕХ, КОГО НЕ ИНТЕРЕСУЕТ КРАТКОЕ
ИЗЛОЖЕНИЕ, ПРОСИМ ПРОКАТИТЬСЯ ПО ТЕКСТУ ВНИЗ.
ОСТАЛЬНЫЕ МОГУТ ПРОЧИТАТЬ СЛЕДУЮЩИЕ
СТРОКИ:
1. Коммутативность логического сложения
:
A+B=B+A
/От слова «коммутация»-переключение/.
2. Коммутативность логического
умножения :
A*B=B*A
3. Ассоциативность логического сложения
:
(A+B)+C=A+(B+C)
/От слова «ассоциация»-объединение/.
4. Ассоциативность логического
умножения :
(A*B)*C=A*(B*C)
5. Наличие нейтрального элемента
для логического сложения :
0+A=A+0=A
6. Наличие нейтрального элемента
для логического умножения :
1*A=A*1=A
7. Мультипликативное свойство логического
нуля :
0*A=A*0=0
8. Дистрибутивность логического
умножения относительно логического сложения :
A*(B+C)=A*B+A*C
(B+C)*A=B*A+C*A
Б.
Свойства логического сложения и умножения, несовпадающие
с соответствующими свойствами соответствующих арифметических операций :
1. Дистрибутивность логического
сложения относительно логического умножения :
(B*C)+A=(B+A)*(C+A)
–левая дистрибутивность
A+(B*C)=(A+B)*(А+C)
–правая дистрибутивность
(т.к. левая и правая дистрибутивность
имеют место одновременно, то она просто называется дистрибутивностью)
Прошу обратить внимание на то, что для логических сложения и умножения справедливы обе (!!!) дистрибутивности, т.е. не только дистрибутивность умножения относительно сложения, но и дистрибутивность сложения относительно умножения. /Обратите внимание на пункты А.8 и Б.1./
2. Отсутствие понятия аддитивного
обратного элемента,
т.е. обратного элемента по операции
сложения :
НЕВЕРНО, что для любого высказывания
A существует высказывание (-A), такое, что:
A+(-A)=0,
или (-A)+A=0.
3. Отсутствие понятия мультипликативного
обратного элемента, т.е. обратного элемента по операции умножения
:
НЕВЕРНО, что для любого высказывания
A существует высказывание A
(-1), такое, что:
A*A
(-1)=1, или A
(-1)*A=1.
4. Необратимость логического сложения,
т.е.
НЕВЕРНО, что для любых высказываний
A и C существует высказывание B, такое, что:
A+B=C.
5. Необратимость логического умножения,
т.е.
НЕВЕРНО, что для любых высказываний
A и C существует высказывание B, такое, что:
A*B=C.
6. Дублироваие слагаемого в логической
сумме не изменяет значения логической суммы:
A=A+A=A+A+A=A+A+A+A=A+A+...+A
7. Дублироваие сомножителя в логическом
произведении не изменяет значения логического произведения:
A=A*A=A*A*A=A*A*A*A=A*A*...*A
8. Законы поглощения :
A*(A+B)=A
A+(A*B)=A
ПРИМЕЧАНИЕ:
КОЕ-КАКИЕ СВОЙСТВА ЭТИХ ФУНКЦИЙ
МОЖНО ИЗЛОЖТЬ БОЛЕЕ КРАТКО.
ТЕХ, КОГО НЕ ИНТЕРЕСУЕТ КРАТКОЕ
ИЗЛОЖЕНИЕ, ПРОСИМ ПРОКАТИТЬСЯ ПО ТЕКСТУ ВНИЗ.
ОСТАЛЬНЫЕ МОГУТ ПРОЧИТАТЬ СЛЕДУЮЩИЕ
СТРОКИ:
1. Дистрибутивность логического
сложения относительно логического умножения :
(B*C)+A=(B+A)*(C+A)
A+(B*C)=(A+B)*(А+C)
Прошу обратить внимание на то, что для логических сложения и умножения справедливы обе (!!!) дистрибутивности, т.е. не только дистрибутивность умножения относительно сложения, но и дистрибутивность сложения относительно умножения.
2. Отсутствие понятия аддитивного
обратного элемента,
т.е. обратного элемента по операции
сложения :
НЕВЕРНО, что для любого высказывания
A существует высказывание (-A), такое, что:
A+(-A)=0,
или (-A)+A=0.
3. Отсутствие понятия мультипликативного
обратного элемента, т.е. обратного элемента по операции умножения
:
НЕВЕРНО, что для любого высказывания
A существует высказывание A
(-1), такое, что:
A*A
(-1)=1, или A
(-1)*A=1.
4. Необратимость логического сложения,
т.е.
НЕВЕРНО, что для любых высказываний
A и C существует высказывание B, такое, что:
A+B=C.
5. Необратимость логического умножения,
т.е.
НЕВЕРНО, что для любых высказываний
A и C существует высказывание B, такое, что:
A*B=C.
6. Дублироваие слагаемого в логической
сумме не изменяет значения логической суммы:
A=A+A=A+A+A=A+A+A+A=A+A+...+A
7. Дублироваие сомножителя в логическом
произведении не изменяет значения логического произведения:
A=A*A=A*A*A=A*A*A*A=A*A*...*A
8. Законы поглощения :
A*(A+B)=A
A+(A*B)=A
Б. Свойства операций логического отрицания
1. Закон двойного отрицания :
2. Законы де Моргана :
–“отрицание конъюнкции есть дизъюнкция отрицаний” :
–“отрицание дизъюнкции есть конъюнкция отрицаний” :
3. Закон склеивания :
4. Тождественный нуль :
5. Тождественная единица :
Минимизация логических (переключательных) функций
На этом сайте мы
опишем два приёма минимизации логических функций: минимизации логических
функций:
1. Преобразование логических выражений посредством
использования законов логических операций.
2. Минимизация с использованием карт
Карно.
Продолжение
следует.
Всё ещё впереди.
А хотите наверх?