Алгебра логики
В алгебре логики используются переменные, которые могут иметь только два значения: истина и ложь.
Логические операции
В алгебре логики используются следующие логические операции:
-
Операция «И», логическое умножение, называется конъюнкция, обозначается следующим образом:
-
A*B (где А и В - переменные) или АВ (знак умножения можно опускать)
-
АВ
-
А AND В (в программах)
-
Данная операция истинна, если все аргументы, участвующие в ней истинны, во всех остальных случаях она – ложна.
-
Операция «ИЛИ», логическое сложение, называется дизъюнкция, обозначается следующим образом:
-
А+В (где А и В - переменные)
-
А В
-
А OR В (в программах)
-
Данная операция ложна, если все аргументы, участвующие в ней ложны, во всех остальных случаях она – истинна.
-
Операция «НЕ», логическое отрицание, обозначается следующим образом:
__
-
А
-
¬А
-
NOT A (в программах).
Если А – истинно, то ¬А – ложно, а если А – ложно, то ¬А – истинно.
-
Операция «импликация», обозначается следующим образом:
-
АВ
-
А IMP В (в программах).
-
Данная операция ложна, если первый аргумент (А) – истинный, а второй аргумент (В) – ложный. В остальных случаях данная операция – истинна.
-
Операция «эквиваленция», обозначается следующим образом:
-
А В
-
АВ
-
А=В
-
А↔В
-
А EQV В (в программах).
-
Данная операция истинна, если оба аргумента А и В – одинаковые (оба истинные или оба ложные). В остальных случаях данная операция ложна.
-
Операция «исключающее ИЛИ», обозначается следующим образом:
-
А В
-
А XOR В (в программах).
-
Данная операция ложна, если все аргументы, участвующие в ней ложны, либо все аргументы, участвующие в ней истинны, во всех остальных случаях она – истинна.
Приоритеты логических операций
Если в одном логическом выражении имеется несколько логических операций, то они выполняются в следующей последовательности:
-
Операции в скобках
-
Операция «НЕ»
-
Операция «И»
-
Операция «ИЛИ», операция «исключающее ИЛИ» - имеют одинаковый приоритет
-
Операция «импликация»
-
Операция «эквиваленция»
Таблицы истинности
Таблицы истинности применяются для вычисления логических выражений при всевозможных сочетаниях значений входящих в выражение аргументов. Значениями логических выражений и входящих в них переменных могут быть истина (1) или ложь (0). Количество всевозможных сочетаний значений входящих в выражение аргументов (переменных) определяется по формуле 2к, где к – количество переменных, входящих в выражение. Сами сочетания можно определить следующим образом: общее количество сочетаний делится пополам, в первой половине для всех переменных устанавливаются значения 0 (ложь), а во второй половине для всех переменных устанавливаются значения 1 (истина). Затем каждая из этих половинок опять делится пополам и опять, в первой половине для всех переменных устанавливаются значения 0, а во второй половине для всех переменных устанавливаются значения 1. Затем опять каждая из полученных половинок делится пополам и опять, в первой половине для всех переменных устанавливаются значения 0, а во второй половине для всех переменных устанавливаются значения 1, т.д. Это производится до тех пор, пока в половинках не окажется по одной переменной, для первой из них устанавливаем значение 0, а для второй – 1.
Если при всех сочетаниях значений переменных, входящих в логическое выражение, значение этого выражения всегда 1, то такое выражение называется тождественно-истинным.
Если при всех сочетаниях значений переменных, входящих в логическое выражение значение этого выражения всегда 0, то такое выражение называется тождественно-ложным.
Если при всех сочетаниях значений переменных, входящих в логическое выражение значение этого выражения может быть равно 0 или 1, то такое выражение называется нейтральным или выполнимым.
Пример 1
Дано логическое выражение: F=((C+B) B)*(A*B) B. Построить для него таблицу истинности и определить тип логического выражения. Выражение может быть тождественно-истинным, тождественно-ложным или нейтральным.
Решение
В данном выражении 3 переменных (A,B,C), поэтому количество сочетаний значений этих переменных равно 23=8.
Проставляем приоритеты (последовательность выполнения) логических операций:
-
C+B
-
(C+B) B
-
A*B
-
((C+B) B))*(A*B)
-
F = ((C+B) B)*(A*B) B
Заполняем таблицу истинности в соответствии с указанными приоритетами и определениями логических операций:
A |
B |
C |
C+B |
(C+B) B |
A*B |
((C+B) B))*(A*B) |
F |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Так как при всех возможных сочетаниях значений переменных, входящих в данное логическое выражение, значение логического выражения равно 1,то это означает, что данное логическое выражение является тождественно-истинным.
Пример 2
Дано логическое выражение: F=A+B*CAB+C. Построить для него таблицу истинности и определить тип логического выражения.
Решение
В данном выражении 3 переменных (A,B,C), поэтому количество сочетаний значений этих переменных равно 23=8.
Проставляем приоритеты (последовательность выполнения) логических операций:
-
B*C
-
A+B*C
-
B+C
-
A+B*CA
-
F = A+B*CAB+C
Заполняем таблицу истинности в соответствии с указанными приоритетами и определениями логических операций:
A |
B |
C |
B*C |
A+B*C |
B+C |
A+B*CA |
F |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
1 |
Так как при всех возможных сочетаниях значений переменных, входящих в данное логическое выражение, значение логического выражения равно 1 или 0, то это означает, что данное логическое выражение является нейтральным.