18. Алгебра логики

Информатика 10 класс Босова § 18. Алгебра логики

Информатика. 10 класса. Босова Л.Л. Оглавление

§ 18. Алгебра логики


Из курса информатики основной школы вы знаете, что для компьютерных наук большое значение имеет математическая логика, а точнее, её часть, называемая алгеброй логики.

Алгебра логики — раздел математики, изучающий высказывания, рассматриваемые с точки зрения их логических значений (истинности или ложности), и логические операции над ними.

18. Алгебра логики
Джордж Буль (1815-1864) — английский математик, основоположник алгебры логики. Дж. Буль изучал логику мышления математическими методами и разработал алгебраические методы решения традиционных логических задач. В 1854 году он опубликовал работу, в которой изложил суть алгебры логики, основанной на трёх операциях: and, or, not. Долгое время алгебра логики была известна достаточно узкому классу специалистов. В 1938 году Клод Шеннон применил алгебру логики для описания процесса функционирования релейноконтактных и электронно-ламповых схем.

18.1. Логические высказывания и переменные

Высказывание — это предложение, в отношении которого можно сказать, истинно оно или ложно.

Например, высказывание «Джордж Буль — основоположник алгебры логики» истинно, а высказывание «2 + 2 = 5» ложно.

Что вы можете сказать об истинности или ложности предложения «Данное высказывание — ложь»?

Из имеющихся высказываний можно строить новые высказывания. Для этого используются логические связки — слова и словосочетания «не», «и», «или», «если …, то», «тогда и только тогда» и др.

Высказывания, образованные из других высказываний, называются составными (сложными). Высказывание, никакая часть которого не является высказыванием, называется элементарным (простым).

Например, из двух простых высказываний «Алгебра логики является основой строения логических схем компьютеров» и «Алгебра логики служит математической основой решения сложных логических задач» можно получить составное высказывание «Алгебра логики является основой строения логических схем компьютеров и служит математической основой решения сложных логических задач».

Обоснование истинности или ложности элементарных высказываний не является задачей алгебры логики. Эти вопросы решаются теми науками, к сфере которых относятся элементарные высказывания. Такое сужение интересов позволяет обозначать высказывания символическими именами (например, А, В, С). Так, если обозначить элементарное высказывание «Джордж Буль — основоположник алгебры логики» именем А, а элементарное высказывание «2 + 2 = 5» именем В, то составное высказывание «Джордж Буль — основоположник алгебры логики, и 2 + 2 = 5» можно записать как «А и В». Здесь А, В — логические переменные, «и» — логическая связка.

Логическая переменная — это переменная, которая обозначает любое высказывание и может принимать логические значения «истина» или «ложь».

Для логических значений «истина» и «ложь» могут использоваться следующие обозначения:

18. Алгебра логики

Истинность или ложность составных высказываний зависит от истинности или ложности образующих их высказываний и определённой трактовки связок (логических операций над высказываниями).

18.2. Логические операции

Логическая операция полностью может быть описана таблицей истинности, указывающей, какие значения принимает составное высказывание при всех возможных значениях образующих его элементарных высказываний.

Из курса информатики основной школы вам известны логические операции отрицание, конъюнкция и дизъюнкция. Их таблицы истинности представлены ниже.

18. Алгебра логики

Логическая операция, ставящая в соответствие двум высказываниям новое, являющееся истинным тогда и только тогда, когда оба исходных высказывания истинны, называется конъюнкцией или логическим умножением.

Логическая операция, ставящая в соответствие двум высказываниям новое, являющееся ложным тогда и только тогда, когда оба исходных высказывания ложны, называется дизъюнкцией или логическим сложением.

Логическая операция, которая каждому высказыванию ставит в соответствие новое высказывание, значение которого противоположно исходному, называется отрицанием или инверсией.

При построении отрицания простого высказывания:

• используется оборот «неверно, что» или к сказуемому добавляется частица «не»;
• в высказывании, содержащем слово «все», это слово заменяется на «некоторые» и наоборот.

Рассмотрим несколько новых логических операций.

Логическая операция, ставящая в соответствие двум высказываниям новое, являющееся ложным тогда и только тогда, когда первое высказывание (посылка) истинно, а второе (следствие) — ложно, называется импликацией или логическим следованием.

Операция импликации обозначается символом ? и задаётся следующей таблицей истинности:

18. Алгебра логики

В разговорной речи импликации соответствуют предложения, содержащие связку «если …, то». Эту связку мы используем тогда, когда хотим показать наличие причинно-следственной связи, иначе говоря, зависимость одного события от другого. Например, пусть некоторый человек сказал: «Если завтра будет хорошая погода, то я пойду гулять». Ясно, что человек окажется лжецом лишь в том случае, если погода действительно будет хорошей, а гулять он не пойдёт. Если же погода будет плохой, то, независимо от того, пойдёт он гулять или нет, во лжи его нельзя обвинить: обещание пойти гулять он давал лишь при условии, что погода будет хорошей.

Результат операции импликации, как и других логических операций, определяется истинностью или ложностью логических переменных, а не наличием причинно-следственных связей между высказываниями. Например, абсурдное с житейской точки зрения высказывание «Если 2 > 3, то существуют ведьмы» является истинным с точки зрения алгебры логики.

Логическая операция, ставящая в соответствие двум высказываниям новое, являющееся истинным тогда и только тогда, когда только одно из двух высказываний истинно, называется строгой (исключающей) дизъюнкцией.

Строгая дизъюнкция обозначается символом ? и задаётся следующей таблицей истинности:

18. Алгебра логики

В русском языке строгой (разделительной) дизъюнкции соответствует связка «либо». В отличие от обычной дизъюнкции (связка «или») в высказывании, содержащем строгую дизъюнкцию, мы утверждаем, что произойдёт только одно событие.

Например, высказывая утверждение «На сегодняшнем матче Петя сидит на трибуне А либо на трибуне Б», мы считаем, что Петя сидит либо только на трибуне А, либо только на трибуне Б, и что сидеть одновременно на двух трибунах Петя не может.

Логическая операция, ставящая в соответствие двум высказываниям новое, являющееся истинным, когда оба исходных высказывания истинны или оба исходных высказывания ложны, называется эквиваленцией или равнозначностью.

В логике эквиваленция обозначается символом и задаётся следующей таблицей истинности:

18. Алгебра логики

В разговорной речи для выражения взаимной обусловленности используется связка «тогда и только тогда, когда», а в математике — «необходимо и достаточно».

Рассмотрим высказывание «Денис пойдёт в бассейн тогда и только тогда, когда он выучит уроки».

Это высказывание истинно (договорённость соблюдается), если истинны оба элементарных высказывания («Денис пойдёт в бассейн», «Денис выучит уроки»). Высказывание истинно (договорённость не нарушается) и в том случае, если оба элементарных высказывания ложны («Денис не пойдёт в бассейн», «Денис не выучит уроки»). Если же одно из двух высказываний ложно («Денис пойдёт в бассейн, хотя и не выучит уроки», «Денис выучит уроки, но не пойдёт в бассейн»), то договорённость нарушается, и составное высказывание становится ложным.

А сейчас посмотрите внимательно на таблицы истинности строгой дизъюнкции и эквиваленции: если на некотором наборе логических переменных результатом строгой дизъюнкции является истина, то на этом же наборе результатом эквиваленции всегда будет ложь, и наоборот.

Можно сделать выводы:

• операция эквиваленции есть отрицание операции строгой дизъюнкции

18. Алгебра логики


• операция строгой дизъюнкции есть отрицание операции эквиваленции

18. Алгебра логики

На сегодняшний день в алгебре логики не существует унифицированной символики для обозначения логических операций. В таблице 4.1 представлены логические операции и их наиболее распространённые обозначения, используемые как в алгебре логики, так и в некоторых языках программирования. Здесь же приведены речевые обороты, соответствующие логическим операциям.

Таблица 4.1

Логические операции и их обозначения

18. Алгебра логики

Операция отрицания выполняется над одним операндом. Такие операции называются одноместными или унарными. Все остальные логические операции, представленные в таблице 4.1, выполняются над двумя операндами и называются двуместными или бинарными.

18.3. Логические выражения

Составное логическое высказывание можно представить в виде логического выражения (формулы), состоящего из логических констант (О, 1), логических переменных, знаков логических операций и скобок.

Для логического выражения справедливо:

1) всякая логическая переменная, а также логические константы (О, 1) есть логическое выражение;
2) если А — логическое выражение, то и 18. Алгебра логики — логическое выражение;
3) если А и В — выражения, то, связанные любой бинарной операцией, они также представляют собой логическое выражение.

При преобразовании или вычислении значения логического выражения логические операции выполняются в соответствии с их приоритетом:

1) отрицание;
2) конъюнкция;
3) дизъюнкция, строгая дизъюнкция;
4) импликация, эквиваленция.

Операции одного приоритета выполняются в порядке их следования, слева направо. Как и в арифметике, скобки меняют порядок выполнения операций.

Пример 1. Выясним, какие из приведённых слов удовлетворяют логическому условию (первая буква согласная ? вторая буква согласная) & (последняя буква гласная ? предпоследняя буква гласная):

1) ОЗОН;
2) ИГРА;
3) МАФИЯ;
4) ТРЕНАЖ.

Вычислим значение логического выражения для каждого из данных слов:

18. Алгебра логики

Итак, заданному условию удовлетворяют первое и четвёртое слова.

Решение логического уравнения — это один или несколько наборов значений логических переменных, при которых логическое уравнение становится истинным выражением.

Пример 2. Решим логическое уравнение

18. Алгебра логики

Дизъюнкция ложна в том и только в том случае, когда ложно каждое из образующих её высказываний. Иными словами, наше уравнение соответствует системе уравнений:

18. Алгебра логики

Таким образом, значение переменной D уже найдено. Импликация равна нулю в единственном случае — когда из истины следует ложь. Иначе говоря, в нашем случае: А = 1 и С = 0.

Подставим найденные значения переменных в уравнение

18. Алгебра логики

Ответ: А = 1, В = 1, С = 0, D = 0.

Логические уравнения могут иметь не одно, а несколько и даже очень много решений. Зачастую требуется, не выписывая все решения уравнения, указать их количество.

Пример 3. Выясним, сколько различных решений имеет логическое уравнение 

18. Алгебра логики

Дизъюнкция истинна, если истинно хотя бы одно из образующих её высказываний. Решение данного логического уравнения равносильно совокупности, состоящей из двух уравнений:

18. Алгебра логики

Первое равенство будет выполняться только при А = 1, В = 1 и С = 0. Поскольку D в этом уравнении не задействовано, оно может принимать любое из двух значений (0 или 1). Таким образом, всего первое уравнение имеет два решения.

Самостоятельно выясните, сколько решений имеет второе уравнение (из совокупности двух уравнений).

Сколько решений имеет исходное уравнение?

Пример 4. Выясним, сколько решений имеет очень простое с виду логическое уравнение х1 & х2 ? х3 & х4 = 1.

Введём замену переменных. Пусть t1 = х1 & х2, t2 = х3 & х4. Тогда исходное уравнение примет вид: t1 ? t2 = 1.

На t1 никаких ограничений нет, эта переменная может принимать значения 0 и 1. Импликация равна 0 только в случае, когда из истины (1) следует ложь (0). Исключим этот вариант. Построим дерево решений, представив на нём значения переменных t1 и t2 при которых t1 ? t2 = 1.

18. Алгебра логики

Получаем для t1 и t2 три набора значений: 00, 01, 11. Первая двоичная цифра в каждом из этих трёх наборов — результат выражения х1 & х2, вторая — х3 & х4. Рассмотрим первый набор: существует три набора х1 и х2 таких, что х1 & х2 = 0, другими словами, первый 0 мы можем получить тремя способами. Второй О в этом наборе мы также можем получить тремя способами.

Из курсов информатики и математики основной школы вам известно одно из основных правил комбинаторики — правило умножения. Согласно ему, если элемент А можно выбрать n способами, и при любом выборе А элемент В можно выбрать m способами, то пару (А, В) можно выбрать n • m способами.

Согласно правилу умножения, пару 00 можно получить 3 • 3 = 9 способами.

Что касается пары 01, то первый 0 мы можем получить тремя способами, а для получения 1 существует единственный вариант (х3 & х4 = 1 при х3 = 1 и х4 = 1). Следовательно, есть ещё три набора переменных х1, х2, х3, х4, являющихся решением исходного уравнения.

Самостоятельно доведите решение этой задачи до конца.

18.4. Предикаты и их множества истинности

Равенства, неравенства и другие предложения, содержащие переменные, высказываниями не являются, но они становятся высказываниями при замене переменной каким-нибудь конкретным значением. Например, предложение х < 12 становится истинным высказыванием при х = 5 (5 < 12 — истина) и ложным при x: = 15 (15 < 12 — ложь). Предложения такого рода называют высказывательными формами или предикатами.

Предикат — это утверждение, содержащее одну или несколько переменных.

Выделим некоторый предикат Р(х) и рассмотрим множество всевозможных объектов I, к которым он относится, — область определения предиката. Можно выделить такое подмножество Р множества I, что на всех его элементах предикат Р(х) будет превращаться в истинное высказывание. Определённое таким образом Р называется множеством истинности предиката Р(х).

Рассмотрим множество учеников некоторого класса. Известно, что в этом классе два отличника — Иван и Саша. Предикат «Он отличник» будет истинным высказыванием только по отношению к этим двум ученикам и ложным по отношению ко всем остальным.

Предикаты позволяют задать множество, не перечисляя всех его элементов. Например, множество истинности предиката Р(х) = (х < 0) — множество отрицательных чисел; множество истинности предиката Р(х, у) = (х2 + у2 = 1) — множество точек окружности единичного радиуса с центром в начале координат. Следует отметить, что многие задания, выполняемые вами на уроках математики, прямо связаны с предикатами. Например, стандартное задание «Решить квадратное уравнение x2 — 3x + 2 = 0» фактически означает требование найти множество истинности предиката Р(х) = (x2 — 3x + 2 = 0).

Из имеющихся предикатов с помощью логических операций можно строить новые предикаты.

Пусть А и В соответственно являются множествами истинности предикатов А(х) и В(х). Тогда пересечение множеств А и В будет являться множеством истинности для предиката А(х) & В(х), а объединение множеств А и В будет множеством истинности для предиката А(х) ? В(х).

Пример 5. Найдём все целые числа 2, превращающие предикат

P(z) = (z > 5) & (z — 2 < 15) в

истинное высказывание. Другими словами, требуется найти множество истинности предиката P(z), заданного на множестве целых чисел I.

Предикат P(z) состоит из двух предикатов, соединённых операцией конъюнкции: P(z) = A(z) & B(z). Рассмотрим каждый из них в отдельности.

Множеством истинности предиката A(z) = (z > 5) являются целые числа 6, 7, 8 и т. д. Множеством истинности предиката В(z) = (z — 2 < 15) являются все целые числа, меньшие 17.

18. Алгебра логики

Множество истинности исходного предиката — пересечение (общие элементы) множеств истинности образующих его предикатов:

Р = А ? В = {6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16}.

Его мощность |Р| = 11.

Пример 6. Рассмотрим предикат (50 < х2) ? (50 > (х + 1)2), определённый на множестве целых чисел. Найдём множество истинности этого предиката.

Зачастую задания такого рода формулируют несколько иначе.

Например, так: «Найдите все целые числа х, для которых истинно высказывание (50 < х2) ? (50 > (х + 1)2)».

Проанализируем отдельно каждый из элементарных предикатов (50 < х2) и (50 > (x + 1)2), решив соответствующие неравенства:

18. Алгебра логики

Определим значение исходного предиката на каждом из полученных подмножеств, причём отдельно рассмотрим значение х = -8 (оно попадает в два подмножества) и значение х = 7 (оно не попадает ни в одно подмножество):

18. Алгебра логики

Итак, множеством истинности исходного предиката являются целые числа, принадлежащие отрезку [-8; 7]. Наименьшим элементом этого множества является число -8, наибольшим — число 7; мощность множества равна 16.


САМОЕ ГЛАВНОЕ

Высказывание — это предложение, в отношении которого можно сказать, истинно оно или ложно. Высказывания, образованные из других высказываний, называются составными (сложными). Высказывание, никакая часть которого не является высказыванием, называется элементарным (простым). Истинность или ложность составных высказываний зависит от истинности или ложности образующих их высказываний и определённой трактовки связок (логических операций над высказываниями).

Логическая операция полностью может быть описана таблицей истинности, указывающей, какие значения принимает составное высказывание при всех возможных значениях образующих его элементарных высказываний.

18. Алгебра логики

Составное логическое высказывание можно представить в виде логического выражения (формулы), состоящего из логических констант (0, 1), логических переменных, знаков логических операций и скобок.

Логические операции имеют следующий приоритет:

1) отрицание;
2) конъюнкция;
3) дизъюнкция, строгая дизъюнкция;
4) импликация, эквиваленция.

Операции одного приоритета выполняются в порядке их следования, слева направо. Скобки меняют порядок выполнения операций.

Предикат — это утверждение, содержащее одну или несколько переменных. Из имеющихся предикатов с помощью логических операций можно строить новые предикаты.


Вопросы и задания

1. Из данных предложений выберите те, которые являются высказываниями. Обоснуйте свой выбор.

2. Из каждых трёх выберите два высказывания, являющихся отрицаниями друг друга:

3. Рассмотрите следующие элементарные высказывания: А = «Река Днепр впадает в Чёрное море», В = «45 — простое число», С = «Вена — столица Австрии», D = «0 — натуральное число».

4. Представьте каждую пословицу в виде сложного логического высказывания, построенного на основе простых высказываний. Ответ обоснуйте при помощи таблиц истинности.

5. Подберите вместо А, В, С, D такие высказывания, чтобы полученные сложные высказывания имели смысл

6. Вычислите: 1) 1 v X & O;

7. Сколько из приведённых чисел Z удовлетворяют логическому условию: ((Z кратно 4) v (Z кратно 5)) ? (Z кратно 6)?

8. Найдите все целые числа Z, для которых истинно высказывание:

9. Какие из высказываний А, В, С должны быть истинны и ка кие ложны, чтобы были ложны следующие высказывания?

10. Даны три числа в различных системах счисления:

11. Логическое отрицание восьмиразрядного двоичного числа записанное в десятичной системе счисления, равно 217 Определите исходное число в десятичной системе счисления,

12. Определите логическое произведение и логическую сумм} всех двоичных чисел в диапазоне от 1610 до 2210, включая границы. Ответ запишите в восьмеричной системе счисления.

13. Сколько различных решений имеет логическое уравнение?

14. Сколько решений имеет логическое уравнение х1 & х2 v х3 & x4 = 1?

15. Изобразите в декартовой прямоугольной системе координат множества истинности для следующих предикатов:

16. Предикат ((8x — 6) < 75) ? (х(x — 1) > 65) определён на множестве целых чисел. Найдите его множество истинности. Укажите наибольшее целое число х, при котором предикат превращается в ложное высказывание.


§ 17. Некоторые сведения из теории множеств
§ 18. Алгебра логики
§ 19. Таблицы истинности