Дискретная математика
Министерство образования и науки
Российской Федерации
Российский химико-технологический университет
им. Д.И. Менделеева
Новомосковский институт
Издательский центр
T.П. Тюрина, В.И. Емельянов
Дискретная математика
(часть 3)
Учебное пособие
Новомосковск 2004
Часть 3. Элементы алгебры логики............................................................ 3
3.1 Введение в алгебру логики....................................................................... 3
3.2 Основные функции алгебры логики......................................................... 5
3.3 Формулы алгебры логики........................................................................ 9
Контрольные вопросы.................................................................................. 12
3.4 Законы алгебры логики и следствия из них........................................... 12
Контрольные вопросы.................................................................................. 16
3.5 Логические функции многих переменных.............................................. 16
3.6 Построение формул алгебры логики по заданной таблице истинности 18
Контрольные вопросы и упражнения.......................................................... 26
3.7 Некоторые замкнутые классы (классы Поста). Понятие базиса............ 26
Контрольные вопросы и упражнения.......................................................... 34
3.8 Методы минимизации логических функций........................................... 34
Контрольные вопросы.................................................................................. 39
3.9 Неполностью определенные логические функции................................. 40
3.10 Формы представления булевых функций............................................ 41
3.10.1 Семантические деревья...................................................................... 42
3.10.2 Бинарные диаграммы решений (БДР)............................................... 45
3.11 Построение логических схем................................................................ 45
Контрольные вопросы.................................................................................. 45
3.12 Логические конечные автоматы............................................................ 46
3.12.1 Процессы............................................................................................ 50
3.12.2 Конечные автоматы............................................................................ 52
Контрольные вопросы.................................................................................. 55
БИБЛИОГРАФИЧЕСКИЙ СПИСОК........................................................... 60
Часть 3. Элементы алгебры логики
3.1 Введение в алгебру логики
Алгебру логики иначе еще называют алгеброй высказываний, логикой высказываний. Алгебра логики начала формироваться в 19 веке в трудах английского математика Дж. Буля.
Прежде всего, благодаря труду английского логика Джорджа Буля «Математический анализ логики», был достигнут подлинный прогресс науки, называемый математической логикой. Он перенёс на логику законы и правила математических действий, ввёл логические операции, предложил способ записи высказываний в символической форме.
В трудах Джорджа Буля и О. де Моргана математическая логика представлена как своеобразная алгебра – алгебра логики (алгебра высказываний).
Алгебра логики (алгебра высказываний) – раздел математической логики, изучающий строение (форму, структуру) сложных логических высказываний и способы установления их истинности с помощью алгебраических методов.
Джордж Буль (1815–1864) родился в Линкольне (Англия). Сын сапожного мастера. Окончил только начальную школу и дальнейшие знания приобретал самоучкой. С 1849 г. Буль – профессор математики в Куинс – колледже в Корке (Ирландия), где преподавал до конца жизни. Буля почти в равной степени интересовали логика, математический анализ, теория вероятностей, этика Б. Спинозы, философские работы Аристотеля и Цицерона. Он считается несомненным создателем современной символической (математической) логики.
Огастес де Морган (1806–1871) родился в Индии в семье полковника английских войск. Получил образование в Кембриджском университете. Был профессором математики Лондонского университета. Математику и логику де Морган назвал азами точного знания и выражал сожаление, что математики не более заботятся о логике, чем логики о математике. Сам он стремился сблизить обе науки, и его главной заслугой явилось построение логики по образу и подобию математических наук. Независимо от Дж. Буля он открыл основные идеи алгебры логики.
«Логика Буля» основывается на отношении эквивалентности, при котором правая часть равенства всегда содержит ровно столько же «истин», сколько и левая.
Высказывание – это имеющее смысл языковое выражение (повествовательное предложение), относительно которого в данной ситуации можно утверждать, что оно либо истинно, либо ложно, т. е. каждому высказыванию можно приписать истинное значение И (истина) или Л (ложь), но не то и другое одновременно.
Примеры:
1. НГТУ – крупнейший «вуз Новосибирска».
2. «Снег зелёный».
3. Р= «Чтобы подключиться к Интернету с домашнего компьютера, необходим модем и соответствующее ПО».
4. Крокодилы летают очень низко.
«А ты любишь информатику?» – это предложение не является высказыванием.
Уравнение 2+х=4 не является высказыванием. Однако, всякий раз, придавая переменной х определенное числовое значение, будем получать высказывание. Используя частицу «не», а также союзы «и», «или», связки «если …., то…», «тогда и только тогда, когда…» и т. п., можно из одних высказываний строить другие высказывания.
Изучением высказываний занимается Булева алгебра, в которой предполагается, что уже имеется некоторый запас высказываний, для каждого из которых известно истинно оно или ложно. Такие высказывания называют элементарными высказываниями. Из элементарных высказываний могут быть построены сложные с помощью операций алгебры логики.
Знаки логических операций называют логическими связками (или просто связками). Логические связки могут быть одноместные (унарные), двухместные (бинарные), трехместные (тернарные) и т. д.
В алгебре логики логические операции чаще всего описываются при помощи таблиц истинности, содержащих все наборы значений переменных и значения функции этих наборов. Алгебра логики не занимается обоснованием того, почему тому или иному элементарному высказыванию приписано значение истины или лжи. Этот вопрос решается за пределами алгебры логики.
Например: сумма углов в треугольнике – 180 градусов. Алгебра логики отвлекается и от смысловой содержательности высказывания. Она интересуется только одним свойством сложных высказываний: быть истинным (True – 1) или ложным (False – 0).
3.2 Основные функции алгебры логики
Основной задачей теории булевых функций является разработка систематического метода построения сложных функций из более простых. Этот метод основан на изучении свойств булевых функций.
Основными символами алгебры высказываний являются:
а) пропозиционные переменные Р1, Р2, Р3, …;
б) одноместная связка – (ù) и двуместные связки Ù (и), Ú (или), ®, Þ, Û;
в) скобки ().
Переменная, значениями которой являются высказывания, называется пропозиционной переменной.
Пусть А, В-некоторые элементарные высказывания.
Определим новое высказывание Ā (т. е. не А), будем называть его отрицанием (инверсия: , Ā), представим таблицы значений функции отрицания:
А | Ā |
1 0 | 0 1 |
Рассмотрим наборы истинных значений элементарных функций на наборах аргументов:
A | B |
0 0 1 1 | 0 1 0 1 |
Таблица 1
№ | Обозначение операции | Другие обозначения | Набор истинных значений | Название логической опции и связки | Как читается | Арифметическая модель |
12 | АÚВ | А+В Max (А, В) | 0 1 1 1 | Дизъюнкция, логическое сложение, «или» | А или В | A+B-A×B |
23 | АÙВ | А&В А×В Min (А, В) | 0 0 0 1 | Конъюнкция, логическое умножение «и» | А и В | A×B |
34 | А®В | АÊВ АÞВ | 1 1 0 1 | Импликация, логическое следование | Если А, то В А влечет В | 1‑A+ A×B |
45 | А~В | АºВ А«В АÛВ | 1 0 0 1 | Эквиваленция, эквивалентность | А тогда и только тогда, когда В; А эквивалентно В | 1 – (A-B)2 |
56 | АÅВ | А+В АÚВ АDВ | 0 1 1 0 | Сумма по модулю 2, сумма Жегалкина | А плюс В; Либо А, либо В | |
67 | А½В | 1 1 1 0 | Штрих Шеффера, антиконъюнкция | Неверно, что А и В; А штрих Шеффера В | ||
78 | А¯В | А°В АÚВ | 1 0 0 0 | Стрелка Пирса, антидизъюнкция, функция Вебба, функция Даггера | Ни А, ни В; А стрелка Пирса В |
Несмотря на то, что булевых функций от любого заданного числа m двоичных переменных конечное число, их слишком много, чтобы иметь запас преобразователей для любых встретившихся отображений. Рассмотрим сначала все возможные функции от одной двоичной переменной. Их четыре, две из них – константы (0 и 1), одна – тождественная функция и только одна – функция отрицания (функция НЕ) – является нетривиальной.
p | p |
0 | 1 |
1 | 0 |
Очевидно, что число различных булевых функций от mпеременных равно 2 в степени . При m = 2 это число 16, то есть всего функций от двух переменных 16, однако наиболее практически применимых из них меньше.
Суперпозиция двоичных функций может быть записана как формула, которую называют логической формулой.
Пример.
Логическая формула задает функцию от трех переменных как суперпозицию функций одной и двух переменных.
Для уменьшения числа скобок вводятся приоритеты операций. Наиболее приоритетна функция отрицания. Затем идет конъюнкция, после нее – дизъюнкция. Все другие функции имеют равный приоритет, меньший, чем у дизъюнкции. Очевидно, что скобками можно установить желаемый порядок операций. Вышеприведенная формула может быть эквивалентно записана так: . Отметим, что используют и другое распределение приоритетов, в частности, полагая импликацию менее приоритетной, чем все другие функции.
Логическая формула дает возможность построить соответствующий функциональный преобразователь, если мы имеем «элементарные» или «базисные» преобразователи. Для реализации преобразователя f примера выше необходимо иметь элементы, реализующие отрицание, дизъюнкцию, конъюнкцию и сложение по модулю два (см. рис. 1).
На этом рисунке представлен пример синтаксической структуры формулы – графическое представление формулы.
Рис. 1. Синтаксическая структура формулы
Очевидным образом по формуле можно построить табличное представление функции f.
Таблица 2
p | q | r | ||||||
0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 1 | 1 | 1 | 0 | 1 | 0 | 1 |
0 | 1 | 0 | 1 | 1 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 0 | 1 | 0 | 0 | 0 | 1 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
Суперпозицией нескольких простых булевых функций можно построить более сложную функцию, в частности, булеву функцию от большего числа переменных. Поставим вопрос: можно ли суперпозицией фиксированного набора функций представить любую булеву функцию от любого числа переменных? Удивительно, но ответ на этот вопрос положителен.
Штрих Шеффера является отрицанием конъюнкции, стрелка Пирса – отрицание дизъюнкции, сумма Жегалкина – отрицание эквивалентности.
М. Жегалкин (1869–1947) – российский математик и логик, один из основоположников современной математической логики.
Чарльз Пирс (1839–1914) – американский логик, математик и естествоиспытатель. Основоположник семиотики, родоначальник прагматизма.
3.3 Формулы алгебры логики
Из логических переменных можно составлять различные конструкции, которые образуют формулы алгебры логики.
Пусть – некоторое множество логических переменных. По индукции определим понятие формулы алгебры логики:
1) любая логическая переменная является формулой (атомарной);
2) если и – формулы, то выражения и другие, представленные в табл. 1, являются формулами;
3) никаких других формул, кроме построенных в пунктах 1 и 2, нет.
Если формула построена из логических переменных, лежащих в множестве {x1, x2,…, xn}, то будем писать {x1, x2,…, xn}.
Таблицы истинности также называются интерпретациями логических операций и составляют семантику формул (т. е. придание смысла формулам) в отличие от синтаксиса формул (т. е. формальных законов их построения, данных в определении формулы).
На множестве вводится транзитивное отношение < «быть более сильным» и отношение ~ «быть равносильным» по правилам, представленным на рис. 2. Для равносильных связок расстановка скобок выполняется слева направо.
Рис. 2. Приоритетность логических операций
Все формулы алгебры логики можно разделить на 3 класса:
1) нейтральные, или выполнимые – принимающие как истинное, так и ложное значения;
2) тождественно истинные формулы (или тавтологии) – принимающие истинные значения при любых значениях переменных;
3) тождественно ложные формулы – принимающие ложные значения при любых оценках переменных.
Существует два способа определения истинного значения формулы. Первый – с помощью таблиц истинности, а второй – путём приведения формул к нормальной форме. Формула имеет нормальную форму, если в ней отсутствуют знаки эквиваленции, импликации, двойного отрицания и др., при этом знаки отрицания находятся только при переменных.
Табличный способ определения истинного значения формул имеет ограниченное применение, поскольку при увеличении количества переменных приходится рассматривать слишком много вариантов (2N).
Равносильными называются два высказывания, у которых таблицы истинности совпадают.
Пример. Составим таблицу истинности функции f=(AB)~():
Таблица 3
A | B | AB | (AB)~() | |||
0 0 1 1 | 0 1 0 1 | 1 1 0 1 | 1 1 0 0 | 1 0 1 0 | 1 1 0 1 | 1 1 1 1 |
Полученное высказывание истинно всегда. Такие высказывания называют тождественно истинными и обозначаются J. По аналогии существуют и тождественно ложные высказывания L. Метод заполнения таблицы истинности принят для не очень сложных высказываний. Если выражение содержит N опций, то таблица становится громоздкой. Для этого используются законы алгебры логики. Таблицу истинности можно составить с использованием программы. В большинстве языков высокого уровня имеются логические операции NOT, AND, OR, XOR, реализующие операции соответственно.
Контрольные вопросы
1. Дайте определение высказывания.
2. Перечислите основные символы алгебры высказываний.
3. Перечислите основные функции алгебры логики.
4. Что является основной задачей алгебры логики?
5. Что такое таблицы истинности логических функций?
6. Составьте таблицу истинности функций дизъюнкции и конъюнкции.
7. Составьте таблицу истинности функций импликации и эквивалентности.
8. Составьте таблицу истинности функций отрицания и сложения по модулю 2.
9. Составьте таблицу истинности функций Штрих Шеффера и Стрелка Пирса.
10. Формулы алгебры логики. Приоритет логических операций. Какие отношения имеют место на множестве логических операций?
11. Что такое синтаксическая структура формулы?
12. На какие классы делятся формулы алгебры логики?
3.4 Законы алгебры логики и следствия из них
При решении многих логических задач часто приходится упрощать формулы, полученные при формализации их условий. Упрощение формул в алгебре логики производится на основе эквивалентных преобразований, опирающихся на основные логические законы. Законы алгебры логики – это тавтологии (или теоремы).
1. Закон тождества:
А=А
2. Закон непротиворечия:
3. Закон исключения третьего:
4. Закон двойного отрицания:
5. Законы истины и лжи (свойства констант):
6. Законы идемпотентности:
7. Коммутативные законы:
8. Ассоциативные законы:
– дизъюнкции
– конъюнкции
9. Дистрибутивные законы:
– 1‑ый дистрибутивный закон
– 2‑ой дистрибутивный закон
10. Законы поглощения:
11. Законы де Моргана:
12. Закон импликации:
13. Закон эквивалентности:
14. Свойства сложения «по модулю два»:
Справедливость этих законов можно доказать с помощью таблиц истинности сложных логических связей описываемых законов.
Следствия из законов алгебры логики (часто используются при упрощении логических выражений).
1. Правило поглощения. Данное правило является следствием из дистрибутивного закона. Оно может быть записано в следующем виде:
.
2. Правило свертки. Правило является следствием из второго дистрибутивного закона. Запись правила:
а) ;
б) .
3. Правило расширения. Правило записывается в следующем виде:
.
4. Правило склеивания. Базируется на понятии соседних конъюнкций. Соседними называются конъюнкции, отличающиеся представлением одной переменной. Например, конъюнкции и , и являются попарно соседними. В первой паре конъюнкции отличаются представлением х2, а во второй – представлением х1. По этим переменным конъюнкции склеиваются.
Формулировка правила: две соседние конъюнкции склеиваются с образованием одной конъюнкции меньшего ранга; исчезает та переменная, по которой конъюнкция склеивается.
, .
Контрольные вопросы
1. Перечислите основные законы алгебры логики. Как дозывается их справедливость?
2. Перечислите следствия из законов алгебры логики.
3.5 Логические функции многих переменных
Все логические операции, которые были рассмотрены в 3.2, распространяются и на функции нескольких переменных. Теперь будем рассматривать функции F(x1, x2,…, xn), где xi – логические переменные, которые принимают значения нуля или единицы. Для описания логики функционирования аппаратных и программных средств компьютера используется алгебра логики, или булева алгебра. Два элемента алгебры логики – ее константы – 0 (ложь) и 1 (истина). Во всех компьютерах используются сигналы двух видов. Сигналы можно интерпретировать как двоичные числа, или логические переменные.
Логической функциейF от набора логических переменных х1,…, хn называется функция, которая может принимать только два значения: логический 0 и логическая 1.
Область определения логической функции конечна и зависит от количества возможных наборов аргументов. Если – число аргументов, то количество возможных наборов аргументов равно 2n.
Множество значений функции F(x1,…, xn) – это множество {0,1}, т. е. F=0 либо 1.
Любая логическая функция может быть задана с помощью таблицы истинности, в левой части которой записываются наборы аргументов, а в правой – соответствующие значения функции.
x1 | x2 | … | xn-1 | xn | F(x1, x2,…, xn-1, 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) |
Вектором значений булевой функции F(x1,…, xn) называется упорядоченный набор всех значений функции F, при которых значения упорядочены по лексикографическому порядку множества аргументов {0,1}n.
Поскольку всего имеется 2n наборов нулей и единиц (|{0,1}n|=2n), существует ровно булевых функций F(x1,…, xn) от переменных:
.
При =2 количество функций равно 16, при =3 – 256 и т. д. На рис. 3 представлены в упорядоченном виде наборы аргументов для ряда функций – отрицания 0, функций одного, двух и трёх аргументов.
Рис. 3. Упорядоченные наборы аргументов
3.6 Построение формул алгебры логики по заданной таблице истинности
Пусть F – двоичная функция от переменных. Предположим, что F не равна тождественно нулю. Пусть T1, T2,…, Tk – все точки ее определения, в которых F=1. Можно доказать, что справедлива следующая формула:
,
где , j=1,2,…, k,
Построить функцию F можно и по-другому. Если функция Fне равна тождественно единице и S1, S2,…, Sm – все точки области ее определения, в которых F=0, то справедлива формула:
,
где , j=1,2,…, m.
Из приведенных формул видно, что любую двоичную функцию можно записать, используя лишь операции ¬, , .
Основная конъюнкция – это конъюнкция основных высказываний переменных или их отрицаний. Например, .
Основная дизъюнкция – это дизъюнкция основных высказываний переменных или их отрицаний. Например, .
Конъюнктивной нормальной формой (КНФ) данной формулы называется формула, равносильная данной и представленная в виде конъюнкции основных дизъюнкций. Например, (A+B) (A+C+B) (D+A).
Дизъюнктивной нормальной формой (ДНФ) данной формулы называется формула, равносильная данной и представленная в виде дизъюнкции основных конъюнкций. Например, AB+C+AC.
Теорема 1. Для того чтобы формула алгебры высказываний была тождественно истинной, необходимо и достаточно, чтобы ее КНФ содержала в каждой элементарной дизъюнкции некоторое высказывание и его отрицание.
Теорема 2. Для того чтобы формула алгебры высказываний была тождественно ложной, необходимо и достаточно, чтобы ее ДНФ содержала в каждой элементарной конъюнкции некоторое высказывание и его отрицание.
Совершенные дизъюнктивные, конъюнктивные и полиномиальные нормальные формы представления переключательных (логических) функций. Многообразие формул, посредством которых может быть выражена любая логическая функция, определяет многообразие форм логических функций, т. е. способов их записи путем применения к переменным и их группам элементарных логических операций. Наиболее удобными для практического использования оказываются совершенные нормальные формы представления сложных логических функций. В алгебре логики доказывают, что любая логическая функция F (A, B, C,…, N) может быть представлена только одной совершенной дизъюнктивной нормальной формой (кроме константы нуль) или только одной совершенной конъюнктивной нормальной формой (кроме константы единица).
Пусть функция X=F (A, B, C) задана таблицей 4. Запись функции Х в виде логической суммы (дизъюнкции) логических произведений (конъюнкций) переменных, для которых значение функции Х равно 1, и является совершенной дизъюнктивной нормальной формой (СДНФ) представления логической функции.
Таблица 4
A | B | C | X |
0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 1 | 0 | 1 |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 0 | 1 | 0 |
1 | 1 | 0 | 0 |
1 | 1 | 1 | 1 |
СДНФ логической функции следует находить в такой последовательности:
1) составить произведения переменных для строк таблицы истинности, в которых Х равна 1. Если значение переменной (А, В или С) в строке равно 0, то в произведении записывается отрицание этой переменной;
2) написать сумму произведений, для которых функция Х равна 1. Полученная сумма и является СДНФ. В общем виде
, (1)
Это правило называют правилом записи переключательной функции по единицам. Согласно этому правилу, данные табл. 4 описываются аналитическим выражением, связывающим все наборы переменных, для которых Х=1, в виде:
. (2)
Запись функции Х в виде логического произведения (конъюнкции) логических сумм (дизъюнкций) переменных, для которых функция Х равна 0, является совершенной конъюнктивной нормальной формой (СКНФ) представления логической функции.
Для табл. 4 аналитическое выражение в СДНФ, связывающее все наборы переменных, для которых Х=0, имеет вид:
. (3)
Для представления логической функции Х в СКНФ произведем операцию отрицания левой и правой частей равенства (3)
и на основании законов двойного отрицания и инверсии
. (4)
СКНФ логической функции, согласно (4), следует находить в такой последовательности:
1) составить логические суммы переменных для строк таблицы истинности, в которых функция Х равна 0. Если значение переменной (А, В или С) в строке равно 1, то в сумме записывается отрицание этой переменной;
2) написать логическое произведение составленных логических сумм. Полученное произведение и является СКНФ. В общем виде:
, (5)
где Fi – сложные дизъюнкции.
Это правило также называют правилом построения переключательной функции по нулям.
Кроме представления функций в виде СДНФ и СКНФ используют и совершенную полиномиальную нормальную форму СПНФ. Вместо дизъюнкции может быть записана функция сложения по модулю два (сумма Жегалкина):
, (6)
где Fi – сложные конъюнкции.
Существует специальная таблица, в которой все элементарные логические операции от двух аргументов представлены в двух совершенных нормальных формах.
Нормальные формы представления переключательной функции иногда называют стандартными (табл. 5).
Таблица 5
f | A 0011 B 0101 | Название функции | Обозначение функции | СДНФ | СКНФ |
f0 | 0000 | Константа нуль | 0 | Не имеет | |
f1 | 0001 | Логическое произведение, конъюнкция | |||
f2 | 0010 | Функция запрета по В | |||
f3 | 0011 | Переменная А | |||
f4 | 0100 | Функция запрета по А | |||
f5 | 0101 | Переменная В | |||
f6 | 0110 | Сумма по мо дулю 2, логическая неравнозначность | |||
f7 | 0111 | Логическое сложение, диз
Подобные работы:
Актуально:
|