Алгебра логики высказываний
Алгебра логики высказываний
Основные понятия
Исходным понятием логики высказываний является простое высказывание. Это понятие не определяется через другие понятия, так как является базовым. Под высказыванием обычно понимают всякое повествовательно предположение, утверждающее что-либо о чем-либо. Если смысл, содержащийся в высказывании, соответствует действительности, то высказывание называют истинным. В противном случае – ложным.
Обычно элементарные высказывания обозначают строчными буквами латинского алфавита a, b, c, x, y …, которые также являются логическими переменными. Истинные значения обозначаются буквой И или 1, а ложные – Л или 0.
Из элементарных высказываний можно составить более сложные с помощью логических связок Ø, Ù, Ú, ®, º, называемых соответственно отрицание, логическое и (конъюнкция), логическое или (дизъюнкция), логическое следствие (импликация), эквивалентность и круглых скобок (, ). Семантику логических связок можно представить с помощью таблицы истинности. В левой части этой таблицы перечисляются все возможные комбинации значений логических переменных. В правой части – соответствующие им значения новых выражений, полученных из переменных и связок.
Х |
у |
Øх |
х Ù у |
х Ú у |
х ® у |
х º у |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
Связки имеют следующий
Замечательным свойством логики высказываний
является то, что ее семантика близка
к соответствующим
Для любой формулы также можно построить таблицу истинности. Например, для формулы таблица истинности будет выглядеть следующим образом:
х |
у |
Ø х |
Ø x Ú у |
Ø х Ù (Ø x Ú у) |
Ø x Ù (Ø x Ú у) ® Ø x |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
Очевидно, что если формула содержит n переменных, то в таблице истинности будет содержаться 2n строк. В приведенном примере формула содержит 2 переменные и 22 = 4 строки. Кроме того, данная формула истинна на любом наборе значений своих переменных. Такие формулы называются тождественно истинными или тавтологиями. В противоположной ситуации, формула является тождественно ложной или невыполнимой. Если две разные формулы принимают одинаковые значения на любом наборе значений переменных, то такие формулы называют равносильными. Равносильные формулы будем обозначать знаком равенства =.
Законы алгебры логики
В логике высказываний известно много общезначимых формул, которые также называются законами логики высказываний. Основными законами являются следующие:
- законы идемпотентности:
- x Ù x = x
- x Ú x = x
- x Ù 1 = x
- x Ú 1 = 1
- x Ù 0 = 0
- x Ú 0 = x
- x Ù Ø x = 0 – закон противоречия
- x Ú Ø x = 1 – закон исключения третьего
- Ø Ø x = x – закон снятия двойного отрицания
- законы поглощения
- x Ù (y Ú x) = x
- x Ú (y Ù x) = x
Доказательство этих и последующих законов элементарно осуществляется с помощью построения таблиц истинности или простейших логических рассуждений.
Следующая группа законов представляет взаимосвязь между логическими операциями:
- (x º y) = (x ® y) Ù (y ® x)
- x ® y = Ø x Ú y
- законы Де Моргана
- Ø (y Ú x) = Ø y Ù Ø x
- Ø (y Ù x) = Ø y Ú Ø x
Замечательным следствием приведенных выше законов является следующий факт. Любую логическую формулу можно заменить равносильной ей, но содержащую только две логические операции: конъюнкцию или отрицание или дизъюнкцию или отрицание. Дальнейшее исключение логических операций, очевидно, невозможно, то есть приведенные пары представляют минимальный базис для построения правильно построенных формул. Однако существует операция, с помощью которой можно представить любую логическую связку. Эта операция получила название «штрих Шеффера» и определяется следующим образом:
х |
у |
х | у |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
На основании этого
- Ø x = x | x
- x Ù y = (x | y) | (x | y)
Также следует отметить, что x | y = Ø (x Ù y).
К основным законам алгебры логики также относятся следующие:
- коммутативные законы
- х Ù y = y Ù х
- х Ú y = y Ú х
- дистрибутивные законы
- х Ù (y Ú z) = (х Ù y) Ú (х Ù z)
- х Ú (y Ù z) = (х Ú y) Ù (х Ú z)
- ассоциативные законы
- х Ù (y Ù z) = (х Ù y) Ù z
- х Ú (y Ú z) = (х Ú y) Ú z
Еще одним важным законом алгебры логики является закон двойственности. Пусть формула A содержит только операции конъюнкции, дизъюнкции и отрицания. Для операции конъюнкции двойственной считается дизъюнкция, а для дизъюнкции – конъюнкция. Тогда по определению формулы A и A* называются двойственными, если формула A* получается из A путем замены в ней каждой операции на двойственную. Например, для формулы (х Ú y) Ù z двойственной формулой будет (х Ù y) Ú z. Для двойственных формул справедлива следующая теорема: если формулы A и B равносильны, то равносильны и двойственные им формулы, то есть A* = B*. Данную теорему оставим без доказательства.
С помощью законов логики можно осуществлять равносильные преобразования. Такие преобразования используются для доказательств, приведения формул к заданному виду, упрощения формул.
Под сложностью формул обычно понимается количество символов, используемых для ее записи. То есть формула α проще формулы b, если α содержит меньше букв и логических операций. Например, для формулы (Ø (x Ú y) ® x Ú y) Ù y можно записать следующую цепочку преобразований, приводящих ее к более простому виду:
(ØØ (x Ú y) Ú x Ú y) Ù y = (x Ú y Ú x Ú y) Ù y = (x Ú y) Ù y = y.
Функции алгебры логики
Значение формулы алгебры
Каждую функцию алгебры логики можно записать в виде формулы или представить таблицей истинности. Как уже было отмечено выше, таблица истинности для n переменных содержит 2n строк. Следовательно, каждая функция алгебры логики принимает 2n значений, состоящих из 0 или 1. Общее же число наборов значений, состоящих из 0 и 1, длины 2n равно 22n. В частности, число различных функций от одной переменной равно четырем.
х |
f1(x) |
f2(x) |
f3(x) |
F4(x) |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
Из этой таблицы следует, что две функции являются константами f1(x) = 1 и – f2(x) = x, а остальные f3(x) = Ø x и f4(x) = 0.
Представление произвольной логической функции в виде формулы алгебры логики
Пусть с помощью таблицы истинности задана произвольная функция алгебры логики n переменных F(x1, x2, …, xn). Рассмотрим формулу:
F(1, 1, …, 1) Ù x1 Ù x2 Ù … Ù xn Ú
Ú F(1, 1, …, 1, 0) Ù x1 Ù x2 Ù … Ù xn-1 Ù Ø xn Ú (1)
Ú F(1, 1, …, 0, 1) Ù x1 Ù x2 Ù … Ù Ø xn-1 Ù xn Ú
Ú F(0, 0, …, 0) Ù Ø x1 Ù Ø x2 Ù … Ù Ø xn
которая составлена следующим образом: каждое слагаемое этой логической суммы представляет собой конъюнкцию, в которой первый член является значением функции F при некоторых определенных значениях ее переменных, остальные же члены конъюнкции представляют собой сами переменные или их отрицания. При этом под знаком отрицания находятся те и только те переменные, которые в первом члене конъюнкции имеют значение 0.
Ясно, что формула (1) полностью определяет функцию F. Иначе говоря, значения функции F и формулы (1) совпадают на всех наборах значений переменных xi. Например, если x1 принимает значение 0, а остальные переменные принимают значение 1, то функция F принимает значение F(0, 1, 1, …, 1). При этом логическое слагаемое F(0, 1, …, 1) Ù Ø x1 Ù x2 Ù … Ù xn = F(0, 1, …, 1) Ù Ø 0 Ù 1 Ù … Ù 1, входящее в формулу (1), принимает также значение F(0, l,..., l), а все остальные логические слагаемые формулы (1) имеют значение 0. Действительно, в них знаки отрицания перед переменными распределяются иначе, чем в рассмотренном слагаемом. Таким образом, при подстановке вместо переменных тех же значений в конъюнкцию войдет символ 0 без знака отрицания, а символ 1 под знаком отрицания. В таком случае один из членов конъюнкции будет иметь значение 0, и поэтому вся конъюнкция также будет иметь значение 0. В связи с этим на основании закона x Ú 0 = x значением формулы (1) является F(0, l,..., l).
Ясно, что вид формулы (1) может быть значительно упрощен, если в ней отбросить те логические слагаемые, в которых первый член конъюнкции имеет значение 0 (и, следовательно, вся конъюнкция имеет значение 0). Если же в логическом слагаемом первый член конъюнкции (то есть определенное значение функции F) имеет значение 1, то, пользуясь законом 1 Ù х = x, этот член конъюнкции можно не выписывать.
Таким образом, в результате получается формула (1), которая содержит только элементарные переменные высказывания и обладает следующими свойствами:
- каждое логическое слагаемое формулы содержит все переменные, входящие в функцию F(x1, x2, …, xn),
- все логические слагаемые формулы различны,
- ни одно логическое слагаемое формулы не содержит одновременно переменную и ее отрицание,
- ни одно логическое слагаемое формулы не содержит одну и ту же переменную дважды,
Перечисленные свойства будем называть свойствами совершенства или, коротко, свойствами. Из приведенных рассуждений видно, что каждой не тождественно ложной функции соответствует единственная формула указанного вида.
Если функция F(x1, x2, …, xn) задана таблицей истинности, то соответствующая ей формула алгебры логики может быть получена просто. Действительно, для каждого набора значений переменных, на котором функция F(x1, x2, …, xn) принимает значение 1, записывается конъюнкция элементарных переменных высказываний, взяв за член конъюнкции хk, если значение xk на указанном наборе значений переменных функции F есть 1 и Ø х, если значение xk есть 0. Дизъюнкция всех записанных конъюнкций и будет искомой формулой.
Пусть, например, функция F(x1, x2, x3) имеет следующую таблицу истинности:
x1 |
X2 |
x3 |
F(x1, x2, x3) |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
Для наборов значений переменных (1, 1, 0), (1,0,1), (0,1,0), (0, 0, 0), на которых функция принимает значение 1, запишем конъюнкции x1 Ù x2 Ù Ø x3, x1 Ù Ø x2 Ù x3, Ø x1 Ù x2 Ù Ø x3, Ø x1 Ù Ø x2 Ù Ø x3. а искомая формула, обладающая свойствами совершенства, будет иметь вид:
x1 Ù x2 Ù Ø x3 Ú x1 Ù Ø x2 Ù x3 Ú Ø x1 Ù x2 Ù Ø x3 Ú Ø x1 Ù Ø x2 Ù Ø x3.
Дизъюнктивная нормальная форма и совершенная дизъюнктивная нормальная форма
Элементарной конъюнкцией n переменных называется конъюнкция переменных или их отрицаний.
Дизъюнктивной нормальной формой (ДНФ) формулы А называется равносильная ей формула, представляющая собой дизъюнкцию элементарных конъюнкций.
Для любой формулы алгебры логики путем равносильных преобразований можно получить ее ДНФ, причем не единственную.
Например, для формулы А = х Ù (х ® y) имеем:
А = х Ù (Ø х Ú y) = (х Ù Ø х) Ú (х Ù y) = х Ù y, то есть
ДНФ А = (х Ù Ø х) Ú (х Ù y) и
ДНФ А = х Ù y.
Среди многочисленных ДНФ А существует единственная ДНФ А, для которой выполняются перечисленные выше четыре свойства совершенства. Такая ДНФ А называется совершенной дизъюнктивной нормальной формой формулы А (СДНФ А).
Как уже указывалось, СДНФ А может быть получена с помощью таблицы истинности.
Другой способ получения СДНФ формулы А основан на равносильных преобразованиях формулы и состоит в следующем:
- путем равносильных преобразований формулы А получают одну из ДНФ А.
- если в полученной ДНФ А входящая в нее элементарная конъюнкция В не содержит переменную xi, то, используя закон B Ù (xi Ú Ø xi) = B, элементарную конъюнкцию B заменяют на две элементарных конъюнкции (B Ù xi) и (B Ù Ø xi), каждая из которых содержит переменную xi.
- если в ДНФ А входят две одинаковых элементарных конъюнкции В, то лишнюю можно отбросить, пользуясь равносильностью В Ú В = В.
- если некоторая элементарная конъюнкция В, входящая в ДНФ А, содержит переменную xi и ее отрицание Ø xi, то, на основании закона xi Ù Ø xi = 0, В = 0 и В, таким образом, можно исключить из ДНФ А, как нулевой член дизъюнкции.
- если некоторая элементарная конъюнкция, входящая в ДНФ А, содержит переменную xi дважды, то одну переменную можно отбросить, пользуясь законом xi Ù xi = xi.
Ясно, что после выполнения описанной процедуры будет получена СДНФ А. Например, для формулы А = x Ú y Ù (x Ú Ø y) ДНФ А = x Ú (x Ù y) Ú (y Ù Ø y). Так как элементарная конъюнкция В = х, входящая в ДНФ А, не содержит переменной у, то заменим ее на две элементарных конъюнкции (x Ù y) и (x Ù Ø y), В результате получим ДНФ А = x Ù y Ú x Ù Ø y Ú x Ù y Ú y Ù Ø y.
Так как теперь ДНФ А содержит две одинаковых элементарных конъюнкции x Ù y, то отбросим лишнюю. В результате получим ДНФ A = x Ù y Ú x Ù Ø y Ú y Ù Ø y.
Так как элементарная конъюнкция y Ù Ø y содержит переменную у и ее отрицание, то y Ù Ø y = 0, и ее можно отбросить как нулевой член дизъюнкции.
Таким образом, получаем СДНФ А = x Ù y Ú x Ù Ø y.
Конъюнктивная нормальная форма и совершенная конъюнктивная нормальная форма
Элементарной дизъюнкцией п переменных называется дизъюнкция переменных или их отрицаний.
Конъюнктивной нормальной формой (КНФ) формулы А называется равносильная ей формула, представляющая собой конъюнкцию элементарных дизъюнкций.
Для любой формулы алгебры логики путем равносильных преобразований можно получить ее КНФ, причем не единственную.
Например, для формулы А = Ø (х Ú у) º х Ù у имеем:
А = (Ø (х Ú у) ® х Ù у) Ù (х Ù у ® Ø (х Ú у)) =
= (х Ú у Ú х Ù у) Ù (Ø (х Ù у) Ú Ø (х Ú у)) =
= (х Ú х Ú у) Ù (х Ú у Ú у) Ù (Ø х Ú Ø у Ú Ø х) Ù ( Ø х Ú Ø у Ú Ø у) , то есть
КНФ А = (х Ú х Ú у) Ù (х Ú у Ú у) Ù (Ø х Ú Ø у Ú Ø х) Ù ( Ø х Ú Ø у Ú Ø у).
Но так как х Ú х = х, у Ú у = у, Ø х Ú Ø х = Ø х, Ø у Ú Ø у = Ø у, то
КНФ A = (х Ú у) Ù (х Ú у) Ù (Ø х Ú Ø у) Ù ( Ø х Ú Ø у).
А так как (х Ú у) Ù (х Ú у) = х Ú у, (Ø х Ú Ø у) Ù ( Ø х Ú Ø у) = ( Ø х Ú Ø у), то
КНФ A = (х Ú у) Ù ( Ø х Ú Ø у).
КНФ А называется совершенной конъюнктивной нормальной формой формулы А (СКНФ А), если для нее выполнены условия:
- Все элементарные дизъюнкции, входящие в КНФ А , различны.
- Все элементарные дизъюнкции, входящие в КНФ А, содержат все переменные.
- Каждая элементарная дизъюнкция, входящая в КНФ А, не содержит двух одинаковых переменных.
- Каждая элементарная дизъюнкция, входящая в КНФ А, не содержит переменную и ее отрицание.
Можно доказать, что каждая не тождественно истинная формула имеет единственную СКНФ.
Один из способов получения СКНФ состоит в использовании таблицы истинности для формулы Ø А. Действительно, получив с помощью таблицы истинности СДНФ Ø А, мы получим СКНФ А, взяв отрицание Ø (СДНФ Ø А), то есть СКНФ А = Ø (СДНФ Ø А).
Другой способ получения СКНФ, использующий равносильные преобразования, состоит в следующем:
- Путем равносильных преобразований формулы А получают одну из КНФ А.
- Если в полученной КНФ А входящая в нее элементарная дизъюнкция В не содержит переменную хi, то, используя закон В Ú (xi Ù Ø xi) = В, элементарную дизъюнкцию В заменяют на две элементарные дизъюнкции В Ú xi и В Ú Ø xi, каждая из которых содержит переменную xi.
- Если в КНФ А входят две одинаковых элементарных дизъюнкции В, то лишнюю можно отбросить, пользуясь законом В Ù В = В.
- Если некоторая элементарная дизъюнкция, входящая в КНФ А, содержит переменную xi дважды, то лишнюю можно отбросить, пользуясь законом xi Ú xi = xi.
- Если некоторая элементарная дизъюнкция, входящая в КНФ А, содержит переменную xi, и ее отрицание, то xi Ú Ø xi = 1 и, следовательно, вся элементарная дизъюнкция имеет значение 1, а поэтому ее можно отбросить, как истинный член конъюнкции.
Ясно, что после описанной процедуры будет получена СКНФ А. Например, для формулы А = x Ú y Ù (x Ú Ø y) КНФ А = x Ú (y Ù (x Ú Ø y)) = (x Ú y) Ù (x Ú x Ú Ø y). Так как обе элементарные дизъюнкции содержат все переменные (x и y), то первое и второе условие СКНФ выполнены. Элементарная дизъюнкция x Ú x Ú Ø y содержит переменную х дважды, но x Ú x = x, поэтому КНФ А = (x Ú y) Ù (x Ú Ø y); причем, ни одна из элементарных дизъюнкций не содержит переменную и ее отрицание. Значит, все условия СКНФ выполнены, и, следовательно, СКНФ А = (x Ú y) Ù (x Ú Ø y).
Минимизация булевых функций. Карты Карно
Сложность логической функции, как уже было отмечено выше, определяется сложностью ее аналитической записи. Минимальной формой логической функции на некотором множестве фиксированных операций (базисе) можно считать такую, которая содержит минимальное число суперпозиций функций базиса, допуская и скобки. Однако построить эффективный алгоритм такой минимизации с получением минимальной скобочной формы трудно.
Более простой задачей минимизации является нахождение минимальная ДНФ функции. Для этой задачи существуют простые эффективные алгоритмы. Один из них основан на применении карт Карно.
Карта Карно – это двумерная табличная форма представления булевой функции, позволяющая в наглядной графической форме легко отыскать минимальные ДНФ логических функций. Каждой клетке в таблице сопоставляется дизъюнкт СДНФ минимизируемой функции, причем так, что любым осям симметрии таблицы соответствуют зоны, взаимно инверсные по какой-либо переменной. Такое расположение клеток в таблице позволяет легко определить склеивающиеся термы СДНФ (отличающиеся знаком инверсии только одной переменной): они располагаются в таблице симметрично. Например, следующая карта Карно построена для импликации двух переменных х ® у. В ячейки карты вписываются значения из таблицы истинности функции, при этом, если перед соответствующей переменной стоит знак отрицания, то в таблице истинности выбирается строка с ложным значением данной переменной, иначе – с истинным значением.
Все четыре клетки соответствуют всем возможным конъюнкциям СДНФ функции 2 переменных. Единичные значения функции показывают те дизъюнкты, которые присутствуют в СДНФ этой функции. Расположения элементов в картах Карно функции 2 переменных таково, что в один конъюнкт эта переменная входит без отрицания, а в другой – с отрицанием. Алгоритм поиска минимальной ДНФ по карте Карно основан на выявлении на карте минимального количества максимальных квадратов или прямоугольников со сторонами, равными степени двойки, так, чтобы они состояли только из ячеек, содержащих единицы. Для приведенной карты Карно единичные значения покрывают ячейки с координатами Ø х и у, соответственно искомая минимальная ДНФ будет Ø х Ú у.
Рассмотрим другую логическую функцию f = Ø p Ú q Å r Ù q Ù (p Ú r). Знаком Å обозначается операция сложения по модулю 2 или «исключающее или» (XOR – eXclusive OR), которая определяется следующим образом:
х |
у |
х Å у |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
Таблица истинности для данной формулы имеет следующий вид:
p |
q |
r |
f |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
Карта Карно для функции трех переменных должна содержать, очевидно, 8 ячеек. Подобную карту можно изобразить следующим образом:
Для этой карты Карно единичные значения присутствуют в ячейках с координатами q Ù Ø r и Ø q Ù Ø p, соответственно минимальная ДНФ будет q Ù Ø r Ú Ø q Ù Ø p.
В силу симметрии карт Карно при построении прямоугольников возможно объединение ячеек, находящихся в крайних позициях, так как при ином расположении координат строк или столбцов (переменных без отрицания и с отрицанием) крайние ячейки окажутся внутри карты. Следующие две карты Карно эквивалентны (местами поменялись координаты r и Ø r) и на них указано корректное объединение ячеек в прямоугольные области:
Карты Карно также удобны и для минимизации не полностью определенных функций. Например, пусть объявлена функция, у которой не определено часть значений:
x |
y |
z |
f |
0 |
0 |
0 |
- |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
- |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
- |

- Алгебра логики. История возникновения. Основные положения
- Алгебра логики: основные понятия и законы. Понятие функционально полной системы логических элементов
- Алгебралық және трансценденттік теңдеуді шешу әдістері
- Алгебралық тұжырымдау туралы түсінік
- Алгебра матриц
- Алгебра оқиғасы. Ықтималдылығы.Ықтималдықтың қасиеттері
- Алгокольное отравление
- Алгашкы медициналык комек
- Алгебра высказывавнии
- Алгебра және анализ бастамалары
- Алгебраические линии и их порядок
- Алгебраические числа
- Алгебраически метод решения задач на построение
- Алгебра і початки аналізу