Глава 5. Логические основы компьютеров
Глава 5. Логические основы компьютеров
Что такое алгебра логики?
Алгебра логики — это раздел математики, изучающий высказывания, рассматриваемые со стороны их логических значений (истинности или ложности) и логических операций над ними. |
Алгебра логики возникла в середине ХIХ века в трудах английского математика Джорджа Буля. Ее создание представляло собой попытку решать традиционные логические задачи алгебраическими методами.
Что же такое логическое высказывание?
Логическое высказывание — это любoе повествовательное пpедлoжение, в oтнoшении кoтopoгo мoжно oднoзначнo сказать, истиннo oнo или лoжнo. |
Джордж Буль
Так, например, предложение "6 — четное число" следует считать высказыванием, так как оно истинное. Предложение "Рим — столица Франции" тоже высказывание, так как оно ложное.
Разумеется, не всякое предложение является логическим высказыванием. Высказываниями не являются, например, предложения "ученик десятого класса" и "информатика — интересный предмет". Первое предложение ничего не утверждает об ученике, а второе использует слишком неопределённое понятие "интересный предмет". Вопросительные и восклицательные предложения также не являются высказываниями, поскольку говорить об их истинности или ложности не имеет смысла.
Предложения типа "в городе A более миллиона жителей", "у него голубые глаза" не являются высказываниями, так как для выяснения их истинности или ложности нужны дополнительные сведения: о каком конкретно городе или человеке идет речь. Такие предложения называются высказывательными формами.
Высказывательная форма — это повествовательное предложение, которое прямо или косвенно содержит хотя бы одну переменную и становится высказыванием, когда все переменные замещаются своими значениями. |
Алгебра логики рассматривает любое высказывание только с одной точки зрения — является ли оно истинным или ложным. Заметим, что зачастую трудно установить истинность высказывания. Так, например, высказывание "площадь поверхности Индийского океана равна 75 млн кв. км" в одной ситуации можно посчитать ложным, а в другой — истинным. Ложным — так как указанное значение неточное и вообще не является постоянным. Истинным — если рассматривать его как некоторое приближение, приемлемое на практике.
Употребляемые в обычной речи слова и словосочетания "не", "и", "или", "если... , то", "тогда и только тогда" и другие позволяют из уже заданных высказываний строить новые высказывания. Такие слова и словосочетания называются логическими связками.
Bысказывания, образованные из других высказываний с помощью логических связок, называются составными. Высказывания, не являющиеся составными, называются элементарными.
Так, например, из элементарных высказываний "Петров — врач", "Петров — шахматист" при помощи связки "и" можно получить составное высказывание "Петров — врач и шахматист", понимаемое как "Петров — врач, хорошо играющий в шахматы".
При помощи связки "или" из этих же высказываний можно получить составное высказывание "Петров — врач или шахматист", понимаемое в алгебре логики как "Петров или врач, или шахматист, или и врач и шахматист одновременно".
Истинность или ложность получаемых таким образом составных высказываний зависит от истинности или ложности элементарных высказываний.
Чтобы обращаться к логическим высказываниям, им назначают имена. Пусть через А обозначено высказывание "Тимур поедет летом на море", а через В — высказывание "Тимур летом отправится в горы". Тогда составное высказывание "Тимур летом побывает и на море, и в горах" можно кратко записать как А и В. Здесь "и" — логическая связка, А, В — логические переменные, которые мoгут принимать только два значения — "истина" или "ложь", обозначаемые, соответственно, "1" и "0".
Каждая логическая связка рассматривается как операция над логическими высказываниями и имеет свое название и обозначение:
НЕ Операция, выражаемая словом "не", называется отрицанием и обозначается чертой над высказыванием (или знаком ). Высказывание истинно, когда A ложно, и ложно, когда A истинно. Пример. "Луна — спутник Земли" (А); "Луна — не спутник Земли" ( ).
И Операция, выражаемая связкой "и", называется конъюнкцией (лат. conjunctio — соединение) или логическим умножением и обозначается точкой " . " (может также обозначаться знаками или &). Высказывание А . В истинно тогда и только тогда, когда оба высказывания А и В истинны. Например, высказывание "10 делится на 2 и 5 больше 3" истинно, а высказывания "10 делится на 2 и 5 не больше 3", "10 не делится на 2 и 5 больше 3", "10 не делится на 2 и 5 не больше 3" — ложны.
ИЛИ Операция, выражаемая связкой "или" (в неисключающем смысле этого слова), называется дизъюнкцией (лат. disjunctio — разделение) или логическим сложением и обозначается знаком v (или плюсом). Высказывание А v В ложно тогда и только тогда, когда оба высказывания А и В ложны. Например, высказывание "10 не делится на 2 или 5 не больше 3" ложно, а высказывания "10 делится на 2 или 5 больше 3", "10 делится на 2 или 5 не больше 3", "10 не делится на 2 или 5 больше 3" — истинны.
ЕСЛИ-ТО Операция, выражаемая связками "если ..., то", "из ... следует","... влечет ...", называется импликацией (лат. implico — тесно связаны) и обозначается знаком . Высказывание ложно тогда и только тогда, когда А истинно, а В ложно.
Каким же образом импликация связывает два элементарных высказывания? Покажем это на примере высказываний: "данный четырёхугольник — квадрат" (А) и "около данного четырёхугольника можно описать окружность" (В). Рассмотрим составное высказывание , понимаемое как "если данный четырёхугольник квадрат, то около него можно описать окружность". Есть три варианта, когда высказывание истинно:
- А истинно и В истинно, то есть данный четырёхугольник квадрат, и около него можно описать окружность;
- А ложно и В истинно, то есть данный четырёхугольник не является квадратом, но около него можно описать окружность (разумеется, это справедливо не для всякого четырёхугольника);
- A ложно и B ложно, то есть данный четырёхугольник не является квадратом, и около него нельзя описать окружность.
Ложен только один вариант, когда А истинно, а В ложно, то есть данный четырёхугольник является квадратом, но около него нельзя описать окружность.
В обычной речи связка "если ..., то" описывает причинно-следственную связь между высказываниями. Но в логических операциях смысл высказываний не учитывается. Рассматривается только их истинность или ложность. Поэтому не надо смущаться "бессмысленностью" импликаций, образованных высказываниями, совершенно не связанными по содержанию. Например, такими: "если президент США — демократ, то в Африке водятся жирафы", "если арбуз — ягода, то в бензоколонке есть бензин".
РАВНОСИЛЬНО Операция, выражаемая связками "тогда и только тогда", "необходимо и достаточно", "... равносильно ...", называется эквиваленцией или двойной импликацией и обозначается знаком или ~. Высказывание истинно тогда и только тогда, когда значения А и В совпадают. Например, высказывания "24 делится на 6 тогда и только тогда, когда 24 делится на 3", "23 делится на 6 тогда и только тогда, когда 23 делится на 3" истинны, а высказывания "24 делится на 6 тогда и только тогда, когда 24 делится на 5", "21 делится на 6 тогда и только тогда, когда 21 делится на 3" ложны.
Высказывания А и В, образующие составное высказывание , могут быть совершенно не связаны по содержанию, например: "три больше двух" (А), "пингвины живут в Антарктиде" (В). Отрицаниями этих высказываний являются высказывания "три не больше двух" ( ), "пингвины не живут в Антарктиде" ( ). Образованные из высказываний А и В составные высказывания A B и истинны, а высказывания A и B — ложны.
Итак, нами рассмотрены пять логических операций: отрицание, конъюнкция, дизъюнкция, импликация и эквиваленция.
Импликацию можно выразить через дизъюнкцию и отрицание: А В = v В. Эквиваленцию можно выразить через отрицание, дизъюнкцию и конъюнкцию: А В = ( v В) . ( v А). |
Таким образом, операций отрицания, дизъюнкции и конъюнкции достаточно, чтобы описывать и обрабатывать логические высказывания.
Порядок выполнения логических операций задается круглыми скобками. Но для уменьшения числа скобок договорились считать, что сначала выполняется операция отрицания ("не"), затем конъюнкция ("и"), после конъюнкции — дизъюнкция ("или") и в последнюю очередь — импликация.
С х е м а И
Схема И реализует конъюнкцию двух или более логических значений. Условное обозначение на структурных схемах схемы И с двумя входами представлено на рис. 5.1.
Рис. 5.1
Таблица истинности схемы И
x | y | x . y |
С х е м а ИЛИ
Схема ИЛИ реализует дизъюнкцию двух или более логических значений. Когда хотя бы на одном входе схемы ИЛИ будет единица, на её выходе также будет единица.
Условное обозначение на структурных схемах схемы ИЛИ с двумя входами представлено на рис. 5.2. Знак "1" на схеме — от устаревшего обозначения дизъюнкции как ">=1" (т.е. значение дизъюнкции равно единице, если сумма значений операндов больше или равна 1). Связь между выходом z этой схемы и входами x и y описывается соотношением: z = x v y (читается как "x или y").
Рис. 5.2
Таблица истинности схемы ИЛИ
x | y | x v y |
С х е м а НЕ
Схема НЕ (инвертор) реализует операцию отрицания. Связь между входом x этой схемы и выходом z можно записать соотношением z = , x где читается как "не x" или "инверсия х".
Если на входе схемы 0, то на выходе 1. Когда на входе 1, на выходе 0. Условное обозначение на структурных схемах инвертора — на рисунке 5.3
Рис. 5.3
Таблица истинности схемы НЕ
x | |
С х е м а И—НЕ
Схема И—НЕ состоит из элемента И и инвертора и осуществляет отрицание результата схемы И. Связь между выходом z и входами x и y схемы записывают следующим образом: , где читается как "инверсия x и y". Условное обозначение на структурных схемах схемы И—НЕ с двумя входами представлено на рисунке 5.4.
Рис. 5.4
Таблица истинности схемы И—НЕ
x | y | |
С х е м а ИЛИ—НЕ
Схема ИЛИ—НЕ состоит из элемента ИЛИ и инвертора и осуществляет отрицание результата схемы ИЛИ. Связь между выходом z и входами x и y схемы записывают следующим образом: , где , читается как "инверсия x или y ". Условное обозначение на структурных схемах схемы ИЛИ—НЕ с двумя входами представлено на рис. 5.5.
Рис. 5.5
Таблица истинности схемы ИЛИ—НЕ
x | y | |
Что такое триггер?
Триггер — это электронная схема, широко применяемая в регистрах компьютера для надёжного запоминания одного разряда двоичного кода. Триггер имеет два устойчивых состояния, одно из которых соответствует двоичной единице, а другое — двоичному нулю. |
Термин триггер происходит от английского слова trigger — защёлка, спусковой крючок. Для обозначения этой схемы в английском языке чаще употребляется термин flip-flop, что в переводе означает “хлопанье”. Это звукоподражательное название электронной схемы указывает на её способность почти мгновенно переходить (“перебрасываться”) из одного электрического состояния в другое и наоборот.
Самый распространённый тип триггера — так называемый RS-триггер (S и R, соответственно, от английских set — установка, и reset — сброс). Условное обозначение триггера — на рис. 5.6.
Рис. 5.6
Он имеет два симметричных входа S и R и два симметричных выхода Q и , причем выходной сигнал Q является логическим отрицанием сигнала .
На каждый из двух входов S и R могут подаваться входные сигналы в виде кратковременных импульсов ( ).
Наличие импульса на входе будем считать единицей, а его отсутствие — нулем.
На рис. 5.7 показана реализация триггера с помощью вентилей ИЛИ—НЕ и соответствующая таблица истинности.
Рис. 5.7
S | R | Q | |
запрещено | |||
хранение бита |
Проанализируем возможные комбинации значений входов R и S триггера, используя его схему и таблицу истинности схемы ИЛИ—НЕ (табл. 5.5).
- Если на входы триггера подать S=“1”, R=“0”, то (независимо от состояния) на выходе Q верхнего вентиля появится “0”. После этого на входах нижнего вентиля окажется R=“0”, Q=“0” и выход станет равным “1”.
- Точно так же при подаче “0” на вход S и “1” на вход R на выходе появится “0”, а на Q — “1”.
- Если на входы R и S подана логическая “1”, то состояние Q и не меняется.
- Подача на оба входа R и S логического “0” может привести к неоднозначному результату, поэтому эта комбинация входных сигналов запрещена.
Поскольку один триггер может запомнить только один разряд двоичного кода, то для запоминания байта нужно 8 триггеров, для запоминания килобайта, соответственно, 8 х 210 = 8192 триггеров. Современные микросхемы памяти содержат миллионы триггеров.
Что такое сумматор?
Сумматор — это электронная логическая схема, выполняющая суммирование двоичных чисел. |
Сумматор служит, прежде всего, центральным узлом арифметико-логического устройства компьютера, однако он находит применение также и в других устройствах машины.
Многоразрядный двоичный сумматор, предназначенный для сложения многоразрядных двоичных чисел, представляет собой комбинацию одноразрядных сумматоров, с рассмотрения которых мы и начнём. Условное обозначение одноразрядного сумматора на рис. 5.8.
Рис. 5.8
При сложении чисел A и B в одном i-ом разряде приходится иметь дело с тремя цифрами:
1. цифра ai первого слагаемого;
2. цифра bi второго слагаемого;
3. перенос pi–1 из младшего разряда.
В результате сложения получаются две цифры:
1. цифра ci для суммы;
2. перенос pi из данного разряда в старший.
Таким образом, одноразрядный двоичный сумматор есть устройство с тремя входами и двумя выходами, работа которого может быть описана следующей таблицей истинности:
Входы | Выходы | |||
Первое слагаемое | Второе слагаемое | Перенос | Сумма | Перенос |
Если требуется складывать двоичные слова длиной два и более бит, то можно использовать последовательное соединение таких сумматоров, причём для двух соседних сумматоров выход переноса одного сумматора является входом для другого.
Например, схема вычисления суммы C = (с3 c2 c1 c0) двух двоичных трехразрядных чисел A = (a2 a1 a0) и B = (b2 b1 b0) может иметь вид:
Примеры.
1. Составим таблицу истинности для формулы , которая содержит две переменные x и y. В первых двух столбцах таблицы запишем четыре возможных пары значений этих переменных, в последующих столбцах — значения промежуточных формул и в последнем столбце — значение формулы. В результате получим таблицу:
Переменные | Промежуточные логические формулы | Формула | |||||
Из таблицы видно, что при всех наборах значений переменных x и y формула принимает значение 1, то есть является тождественно истинной.
2. Таблица истинности для формулы :
Переменные | Промежуточные логические формулы | Формула | ||||
Из таблицы видно, что при всех наборах значений переменных x и y формула принимает значение 0, то есть является тождественно ложной.
3. Таблица истинности для формулы :
Переменные | Промежуточные логические формулы | Формула | ||||||
Из таблицы видно, что формула в некоторых случаях принимает значение 1, а в некоторых — 0, то есть является выполнимой.
Примеры.
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.
Упрощенная схема :
в)
Упрощенная схема:
г)
Упрощенная схема:
д)
(по закону склеивания)
Упрощенная схема:
е)
Решение:
Упрощенная схема:
Упражнения
5.1. Установите, какие из следующих предложений являются логическими высказываниями, а какие — нет (объясните почему):
- а) "Солнце есть спутник Земли";
- б) "2+3?4";
- в) "сегодня отличная погода";
- г) "в романе Л.Н. Толстого "Война и мир" 3 432 536 слов";
- д) "Санкт-Петербург расположен на Неве";
- е) "музыка Баха слишком сложна";
- ж) "первая космическая скорость равна 7.8 км/сек";
- з) "железо — металл";
- и) "если один угол в треугольнике прямой, то треугольник будет тупоугольным";
- к) "если сумма квадратов двух сторон треугольника равна квадрату третьей, то он прямоугольный".
[ Ответ ]
5.2. Укажите, какие из высказываний предыдущего упражнения истинны, какие — ложны, а какие относятся к числу тех, истинность которых трудно или невозможно установить.
[ Ответ ]
5.3. Приведите примеры истинных и ложных высказываний:
- а) из арифметики; б) из физики;
- в) из биологии; г) из информатики;
- д) из геометрии; е) из жизни.
[ Ответ ]
5.4. Сформулируйте отрицания следующих высказываний или высказывательных форм:
- а) "Эльбрус — высочайшая горная вершина Европы";
- б) "2>=5";
- в) "10<7";
- г) "все натуральные числа целые";
- д) "через любые три точки на плоскости можно провести окружность";
- е) "теннисист Кафельников не проиграл финальную игру";
- ж) "мишень поражена первым выстрелом";
- з) "это утро ясное и теплое";
- и) "число n делится на 2 или на 3";
- к) "этот треугольник равнобедренный и прямоугольный";
- л) "на контрольной работе каждый ученик писал своей ручкой".
[ Ответ ]
5.5. Определите, какие из высказываний (высказывательных форм) в следующих парах являются отрицаниями друг друга, а какие нет:
- а) "5<10", "5>10";
- б) "10>9", "10<=9";
- в) "мишень поражена первым выстрелом", "мишень поражена вторым выстрелом";
- г) "машина останавливалась у каждого из двух светофоров", "машина не останавливалась у каждого из двух светофоров",
- д) "человечеству известны все планеты Солнечной системы", "в Солнечной системе есть планеты, неизвестные человечеству";
- е) "существуют белые слоны", "все слоны серые";
- ж) "кит — млекопитающее", "кит — рыба";
- з) "неверно, что точка А не лежит на прямой а", "точка А лежит на прямой а";
- и) "прямая а параллельна прямой b", "прямая a перпендикулярна прямой b";
- к) "этот треугольник равнобедренный и прямоугольный", "этот треугольник не равнобедренный или он не прямоугольный".
[ Ответ ]
5.6. Определите значения истинности высказываний:
- а) "наличия аттестата о среднем образовании достаточно для поступления в институт";
- б) "наличие аттестата о среднем образовании необходимо для поступления в институт";
- в) "если целое число делится на 6, то оно делится на 3";
- г) "подобие треугольников является необходимым условием их равенства";
- д) "подобие треугольников является необходимым и достаточным условием их равенства";
- е) "треугольники подобны только в случае их равенства";
- ж) "треугольники равны только в случае их подобия";
- з) "равенство треугольников является достаточным условием их подобия";
- и) "для того, чтобы треугольники были неравны, достаточно, чтобы они были неподобны";
- к) "для того, чтобы четырёхугольник был квадратом, достаточно, чтобы его диагонали были равны и перпендикулярны".
[ Ответ ]
5.7. Подставьте в приведённые ниже высказывательные формы вместо логических переменных a, b, c, d такие высказывания, чтобы полученные таким образом составные высказывания имели смысл в повседневной жизни:
- а) если (а или (b и с)), то d;
- б) если (не а и не b), то (с или d);
- в) (а или b) тогда и только тогда, когда (с и не d).
5.8. Формализуйте следующий вывод: "Если a и b истинны, то c — истинно. Но c — ложно: значит, a или b ложны".
[ Ответ ]
5.9. Формализуйте предостережение, которое одна жительница древних Афин сделала своему сыну, собиравшемуся заняться политической деятельностью: "Если ты будешь говорить правду, то тебя возненавидят люди. Если ты будешь лгать, то тебя возненавидят боги. Но ты должен говорить правду или лгать. Значит, тебя возненавидят люди или возненавидят боги".
Формализуйте также ответ сына: "Если я буду говорить правду, то боги будут любить меня. Если я буду лгать, то люди будут любить меня. Но я должен говорить правду или лгать. Значит, меня будут любить боги или меня будут любить люди".
[ Ответ ]
5.10. Пусть a = "это утро ясное", а b = "это утро теплое". Выразите следующие формулы на обычном языке:
[ Ответ ]
5.11. Из двух данных высказываний a и b постройте составное высказывание, которое было бы:
- а) истинно тогда и только тогда, когда оба данных выказывания ложны;
- б) ложно тогда и только тогда, когда оба данных высказывания истинны.
[ Ответ ]
5.12. Из трех данных высказываний a, b, c постройте составное высказывание, которое истинно, когда истинно какое-либо одно из данных высказываний, и только в этом случае.
Ответ: .
5.13. Определите с помощью таблиц истинности, какие из следующих формул являются тождественно истинными или тождественно ложными:
а) | д) |
б) | е) |
в) | ж) |
г) |
[ Ответ ]
5.14. Упростите следующие формулы, используя законы склеивания:
- а)
- б)
- в)
- г)
- д)
Решение: .
[ Ответ ]
5.15. Упростите следующие формулы, используя законы поглощения:
- а)
- б)
- в)
- г)
[ Ответ ]
5.16. Постройте таблицы истинности для логических формул и упростите формулы, используя законы алгебры логики:
- а)
- б)
- в)
- г)
- д)
- е)
- ж)
- з)
- и)
- к)
[ Ответ ]
5.17. Приведите примеры переключательных схем, содержащих хотя бы два переключателя, функция проводимости которых
- а) тождественно равна единице;
- б) тождественно равна нулю.
5.18. Найдите функции проводимости следующих переключательных схем:
а) | б) | ||
в) | г) |
[ Ответ ]
5.19. Проверьте равносильность следующих переключательных схем:
- а)
- б)
- в)
- г)
- д)