Алгебра логики — это раздел математики, изучающий логические переменные, рассматриваемые со стороны их логических значений (истинности или ложности) и логических операций над ними. |
Алгебра логики возникла в середине ХIХ века в трудах английского математика Джорджа Буля. Ее создание представляло собой попытку решать традиционные логические задачи алгебраическими методами.
Совокупность логических переменных х1, ..., хn называется набором переменных.
Логической функцией (функцией алгебры логики) от набора логических переменных F(х1, ..., хn) называется функция, которая может принимать только два значения: истина или ложь (1 или 0). Любая логическая функция может быть задана с помощью таблицы истинности, в левой части которой записываются возможные наборы значений аргументов, а в правой - соответствующие им значения функции.
Математический аппарат алгебры логики очень удобен для описания того, как функционируют аппаратные средства компьютера, поскольку основной системой счисления в компьютере является двоичная, в которой используются цифры 1 и 0, а значений логических переменных тоже два: “1” и “0”.
Из этого следует два вывода:
Данные и команды представляются в виде двоичных последовательностей различной
структуры и длины. Существуют различные физические способы кодирования двоичной
информации.В электронных устройствах компьютера двоичные единицы чаще всего кодируются
более высоким уровнем напряжения, чем двоичные нули (или наоборот),
например:
Логический элемент компьютера — это часть электронной логичеcкой схемы, которая реализует элементарную логическую функцию. |
Логическими элементами компьютеров являются электронные схемы И, ИЛИ, НЕ, И—НЕ, ИЛИ—НЕ и другие (называемые также вентилями), а также триггер.
С помощью этих схем можно реализовать любую логическую функцию, описывающую работу устройств компьютера. Обычно у вентилей бывает от двух до восьми входов и один или два выхода.
Чтобы представить два логических состояния — “1” и “0” в вентилях, соответствующие им входные и выходные сигналы имеют один из двух установленных уровней напряжения. Например, +5 вольт и 0 вольт.
Высокий уровень обычно соответствует значению “истина” (“1”), а низкий — значению “ложь” (“0”).
Каждый логический элемент имеет свое условное обозначение, которое выражает его логическую функцию, но не указывает на то, какая именно электронная схема в нем реализована. Это упрощает запись и понимание сложных логических схем.
Работу логических элементов описывают с помощью таблиц истинности.
Таблица истинности это табличное представление логической схемы (операции), в котором перечислены все возможные сочетания значений истинности входных сигналов (операндов) вместе со значением истинности выходного сигнала (результата операции) для каждого из этих сочетаний. |
Схема И реализует конъюнкцию двух или более логических значений. Условное обозначение на структурных схемах схемы И с двумя входами представлено на рис. 3.1.
Рис. 3.1.
x | y | x & y |
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
Единица на выходе схемы И будет тогда и только тогда, когда на всех входах будут единицы. Когда хотя бы на одном входе будет ноль, на выходе также будет ноль.
Связь между выходом z этой схемы и входами x и
y описывается соотношением: z = x & y
(читается как "x и y"). Операция конъюнкции на структурных схемах
обозначается знаком "&" (читается как
"амперсэнд"), являющимся сокращенной записью английского слова
and.
Схема ИЛИ реализует дизъюнкцию двух или более логических значений. Когда хотя бы на одном входе схемы ИЛИ будет единица, на её выходе также будет единица.
Условное обозначение на структурных схемах схемы ИЛИ с двумя входами представлено на рис. 3.2. Знак "1" на схеме — от устаревшего обозначения дизъюнкции как ">=1" (т.е. значение дизъюнкции равно единице, если сумма значений операндов больше или равна 1). Связь между выходом z этой схемы и входами x и y описывается соотношением: z = x v y (читается как "x или y").
Рис. 3.2.
x | y | x v y |
0 | 0 | 0 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 1 |
Схема НЕ (инвертор) реализует операцию отрицания.
Связь между входом x этой схемы и выходом
z можно записать соотношением z = ,
x где
читается как "не x" или "инверсия х".
Если на входе схемы 0, то на выходе 1. Когда на входе 1, на выходе 0. Условное обозначение на структурных схемах инвертора — на рисунке 3.3.
Рис. 3.3.
x | ![]() |
0 | 1 |
1 | 0 |
Схема И—НЕ состоит из элемента И и инвертора и осуществляет
отрицание результата схемы И. Связь между выходом z и входами
x и y схемы записывают следующим образом: , где
читается как "инверсия x и y". Условное обозначение на
структурных схемах схемы И—НЕ с двумя входами представлено
на рисунке 3.4.
Рис. 3.4.
x | y | ![]() |
0 | 0 | 1 |
0 | 1 | 1 |
1 | 0 | 1 |
1 | 1 | 0 |
Схема ИЛИ—НЕ состоит из элемента ИЛИ и инвертора и
осуществляет отрицание результата схемы ИЛИ. Связь между
выходом z и входами x и
y схемы записывают следующим образом: ,
где
,
читается как "инверсия x или y ". Условное
обозначение на структурных схемах схемы ИЛИ—НЕ с двумя входами
представлено на рис. 3.5.
Рис. 3.5.
x | y | ![]() |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 0 |
Триггер — это электронная схема, широко применяемая в регистрах компьютера для надёжного запоминания одного разряда двоичного кода. Триггер имеет два устойчивых состояния, одно из которых соответствует двоичной единице, а другое — двоичному нулю. |
Термин триггер происходит от английского слова trigger — защёлка, спусковой крючок. Для обозначения этой схемы в английском языке чаще употребляется термин flip-flop, что в переводе означает “хлопанье”. Это звукоподражательное название электронной схемы указывает на её способность почти мгновенно переходить (“перебрасываться”) из одного электрического состояния в другое и наоборот.
Самый распространённый тип триггера — так называемый RS-триггер (S и R, соответственно, от английских set — установка, и reset — сброс). Условное обозначение триггера — на рис. 3.6.
Рис. 3.6.
Он имеет два симметричных входа S и R и два симметричных выхода Q и , причем выходной сигнал Q является логическим отрицанием сигнала
.
На каждый из двух входов S и R могут подаваться входные сигналы в виде
кратковременных импульсов ( ).
Наличие импульса на входе будем считать единицей, а его отсутствие — нулем.
На рис. 3.7 показана реализация триггера с помощью вентилей ИЛИ—НЕ и соответствующая таблица истинности.
Рис. 3.7.
S | R | Q | ![]() |
0 | 0 | запрещено | |
0 | 1 | 1 | 0 |
1 | 0 | 0 | 1 |
1 | 1 | хранение бита |
Проанализируем возможные комбинации значений входов R и S триггера, используя его схему и таблицу истинности схемы ИЛИ—НЕ (табл. 3.5).
Поскольку один триггер может запомнить только один разряд двоичного кода, то для запоминания байта нужно 8 триггеров, для запоминания килобайта, соответственно, 8 х 210 = 8192 триггеров. Современные микросхемы памяти содержат миллионы триггеров.
Сумматор — это электронная логическая схема, выполняющая суммирование двоичных чисел. |
Сумматор служит, прежде всего, центральным узлом арифметико-логического устройства компьютера, однако он находит применение также и в других устройствах машины.
Многоразрядный двоичный сумматор, предназначенный для сложения многоразрядных двоичных чисел, представляет собой комбинацию одноразрядных сумматоров, с рассмотрения которых мы и начнём. Условное обозначение одноразрядного сумматора на рис. 3.8.
Рис. 3.8.
При сложении чисел A и B в одном i-ом разряде приходится иметь дело с тремя цифрами:
1. цифра ai первого слагаемого;
2. цифра bi второго слагаемого;
3. перенос pi–1 из младшего разряда.
В результате сложения получаются две цифры:
1. цифра ci для суммы;
2. перенос pi из данного разряда в старший.
Таким образом, одноразрядный двоичный сумматор есть устройство с тремя входами и двумя выходами, работа которого может быть описана следующей таблицей истинности:
Входы | Выходы | |||
Первое слагаемое | Второе слагаемое | Перенос | Сумма | Перенос |
0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 1 | 0 |
0 | 1 | 0 | 1 | 0 |
0 | 1 | 1 | 0 | 1 |
1 | 0 | 0 | 1 | 0 |
1 | 0 | 1 | 0 | 1 |
1 | 1 | 0 | 0 | 1 |
1 | 1 | 1 | 1 | 1 |
Если требуется складывать двоичные слова длиной два и более бит, то можно использовать последовательное соединение таких сумматоров, причём для двух соседних сумматоров выход переноса одного сумматора является входом для другого.
Например, схема вычисления суммы C = (с3 c2 c1 c0) двух двоичных трехразрядных чисел A = (a2 a1 a0) и B = (b2 b1 b0) может иметь вид:
В алгебре логики выполняются следующие основные законы, позволяющие производить тождественные преобразования логических выражений:
Закон | Для ИЛИ | Для И |
Переместительный | ![]() |
![]() |
Сочетательный | ![]() |
![]() |
Распределительный | ![]() |
![]() |
Правила де Моргана | ![]() |
![]() |
Идемпотенции | ![]() |
![]() |
Поглощения | ![]() |
![]() |
Склеивания | ![]() |
![]() |
Операция переменной с ее инверсией | ![]() |
![]() |
Операция с константами | ![]() |
![]() |
Двойного отрицания | ![]() |
Согласно определению, таблица истинности логической формулы выражает соответствие между всевозможными наборами значений переменных и значениями формулы.
Для формулы, которая содержит две переменные, таких наборов значений переменных всего четыре:
(0, 0), (0, 1), (1, 0), (1, 1).
Если формула содержит три переменные, то возможных наборов значений переменных восемь:
(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1).
Количество наборов для формулы с четырьмя переменными равно шестнадцати и т.д.
Удобной формой записи при нахождении значений формулы является таблица, содержащая кроме значений переменных и значений формулы также и значения промежуточных формул.
Примеры.
1. Составим таблицу истинности для формулы , которая содержит две переменные x и y. В первых двух столбцах
таблицы запишем четыре возможных пары значений этих переменных, в последующих
столбцах — значения промежуточных формул и в последнем столбце — значение
формулы. В результате получим таблицу:
Переменные | Промежуточные логические формулы | Формула | |||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
0 | 0 | 1 | 0 | 0 | 1 | 1 | 1 |
0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 1 |
Из таблицы видно, что при всех наборах значений переменных x и y формула
принимает значение 1, то есть является тождественно
истинной.
2. Таблица истинности для формулы :
Переменные | Промежуточные логические формулы | Формула | ||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
0 | 0 | 0 | 1 | 1 | 0 | 0 |
0 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 0 | 1 | 1 | 0 |
1 | 1 | 1 | 0 | 0 | 0 | 0 |
Из таблицы видно, что при всех наборах значений переменных x и y
формула
принимает значение 0, то есть является тождественно
ложной.
3. Таблица истинности для формулы :
Переменные | Промежуточные логические формулы | Формула | ||||||
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 0 |
0 | 0 | 1 | 1 | 1 | 0 | 1 | 1 | 1 |
0 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 1 | 1 | 1 | 0 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
1 | 1 | 1 | 0 | 1 | 0 | 0 | 0 | 0 |
Из таблицы видно, что формула в
некоторых случаях принимает значение 1, а в некоторых — 0, то есть является
выполнимой.
Равносильные преобразования логических формул имеют то же назначение, что и преобразования формул в обычной алгебре. Они служат для упрощения формул или приведения их к определённому виду путем использования основных законов алгебры логики.
Под упрощением формулы, не содержащей операций импликации и эквиваленции, понимают равносильное преобразование, приводящее к формуле, которая либо содержит по сравнению с исходной меньшее число операций конъюнкции и дизъюнкции и не содержит отрицаний неэлементарных формул, либо содержит меньшее число вхождений переменных. |
Некоторые преобразования логических формул похожи на преобразования формул в обычной алгебре (вынесение общего множителя за скобки, использование переместительного и сочетательного законов и т.п.), тогда как другие преобразования основаны на свойствах, которыми не обладают операции обычной алгебры (использование распределительного закона для конъюнкции, законов поглощения, склеивания, де Моргана и др.).
Покажем на примерах некоторые приемы и способы, применяемые при упрощении логических формул:
1)
(законы алгебры логики применяются в следующей последовательности: правило
де Моргана, сочетательный закон, правило операций переменной с её инверсией и
правило операций с константами);
2)
(применяется правило де Моргана, выносится за скобки общий множитель,
используется правило операций переменной с её инверсией);
3)
(повторяется второй сомножитель, что разрешено законом
идемпотенции; затем комбинируются два первых и два последних сомножителя и
используется закон склеивания);
4)
(вводится вспомогательный логический сомножитель (); затем
комбинируются два крайних и два средних логических слагаемых и используется
закон поглощения);
5)
(сначала добиваемся, чтобы знак отрицания стоял только перед
отдельными переменными, а не перед их комбинациями, для этого дважды применяем
правило де Моргана; затем используем закон двойного отрицания);
6)
(выносятся за скобки общие множители; применяется правило операций с
константами);
7)
(к
отрицаниям неэлементарных формул применяется правило де Моргана; используются
законы двойного отрицания и склеивания);
8)
(общий множитель x выносится за скобки, комбинируются слагаемые в скобках —
первое с третьим и второе с четвертым, к дизъюнкции применяется правило операции переменной с её инверсией);
9)
(используются распределительный закон для дизъюнкции, правило операции
переменной с ее инверсией, правило операций с константами, переместительный
закон и распределительный закон для конъюнкции);
10)
(используются правило де Моргана, закон двойного отрицания и закон
поглощения).
Из этих примеров видно, что при упрощении логических формул не всегда очевидно, какой из законов алгебры логики следует применить на том или ином шаге. Навыки приходят с опытом.
В компьютерах и других автоматических устройствах широко применяются электрические схемы, содержащие сотни и тысячи переключательных элементов: реле, выключателей и т.п. Разработка таких схем весьма трудоёмкое дело. Оказалось, что здесь с успехом может быть использован аппарат алгебры логики.
Переключательная схема — это схематическое изображение некоторого устройства, состоящего из переключателей и соединяющих их проводников, а также из входов и выходов, на которые подаётся и с которых снимается электрический сигнал. |
Каждый переключатель имеет только два состояния: замкнутое и разомкнутое. Переключателю Х поставим в соответствие логическую переменную х, которая принимает значение 1 в том и только в том случае, когда переключатель Х замкнут и схема проводит ток; если же переключатель разомкнут, то х равен нулю.
Будем считать, что два переключателя Х и связаны
таким образом, что когда Х замкнут, то
разомкнут, и наоборот. Следовательно, если переключателю Х поставлена в
соответствие логическая переменная х, то переключателю
должна
соответствовать переменная
.
Всей переключательной схеме также можно поставить в соответствие логическую переменную, равную единице, если схема проводит ток, и равную нулю — если не проводит. Эта переменная является функцией от переменных, соответствующих всем переключателям схемы, и называется функцией проводимости.
Найдем функции проводимости F некоторых переключательных схем:
Две схемы называются равносильными, если через одну из них проходит ток тогда и только тогда, когда он проходит через другую (при одном и том же входном сигнале). Из двух равносильных схем более простой считается та схема, функция проводимости которой содержит меньшее число логических операций или переключателей. |
Задача нахождения среди равносильных схем наиболее простых является очень важной. Большой вклад в ее решение внесли российские учёные Ю.И. Журавлев, С.В. Яблонский и др.
При рассмотрении переключательных схем возникают две основные задачи: синтез и анализ схемы.
СИНТЕЗ СХЕМЫ по заданным условиям ее работы сводится к следующим трём этапам:
АНАЛИЗ СХЕМЫ сводится к
Примеры.
1. Построим схему, содержащую 4 переключателя x, y, z и t, такую, чтобы она проводила ток тогда и только тогда, когда замкнут контакт переключателя t и какой-нибудь из остальных трёх контактов.
Решение. В этом случае можно обойтись без построения таблицы истинности. Очевидно, что функция проводимости имеет вид F(x, y, z, t) = t . (x v y v z), а схема выглядит так:
2. Построим схему с пятью переключателями, которая проводит ток в том и только в том случае, когда замкнуты ровно четыре из этих переключателей.
Схема имеет вид:
3. Найдем функцию проводимости схемы:
Решение. Имеется четыре возможных пути прохождения тока при замкнутых переключателях a, b, c, d, e : через переключатели a, b; через переключатели a, e, d; через переключатели c, d и через переключатели c, e, b. Функция проводимости F(a, b, c, d, e) = a . b v a . e . d v c . d v c . e . b.
4. Упростим переключательные схемы:
а)
Решение:
Упрощенная схема:
б)
.
Здесь первое логическое слагаемое является
отрицанием второго логического слагаемого
, а
дизъюнкция переменной с ее инверсией равна 1.
Упрощенная схема :
в)
Упрощенная схема:
г)
Упрощенная схема:
д)
(по
закону склеивания)
Упрощенная схема:
е)
Решение:
Упрощенная схема:
3.1. Определите с помощью таблиц истинности, какие из следующих формул являются тождественно истинными или тождественно ложными:
а) ![]() |
e) ![]() |
b) ![]() |
f) ![]() |
c) ![]() |
g) ![]() |
d) ![]() |
3.2. Упростите следующие формулы, используя законы склеивания:
3.3. Упростите следующие формулы, используя законы поглощения:
3.4. Постройте таблицы истинности для логических формул и упростите формулы, используя законы алгебры логики:
3.5. Приведите примеры переключательных схем, содержащих хотя бы два переключателя, функция проводимости которых
3.6. Найдите функции проводимости следующих переключательных схем:
а) | ![]() |
b) | ![]() |
c) | ![]() |
d) | ![]() |
3.7. Проверьте равносильность следующих переключательных схем:
3.8. Постройте переключательные схемы с заданными функциями проводимости:
3.9. Упростите функции проводимости и постройте переключательные схемы, соответствующие упрощенным функциям:
3.10. Упростите следующие переключательные схемы: