Алгебра логики как решать уравнения

Алгебра логики как решать уравнения

Это символы не жёстко привязаны к соотв. операциям, можно использовать другие.

Примеры логических выражений

С применением отрицания

Со знаком «эквивалентно»

Со знаком «следствие»

С применением конъюкции и дизъюнкции

С применением Не-и и Не-или

В калькуляторе вы сможете упростить выражения, содержащие следующие операции: NOT, XOR, AND, OR, NAND, NOR, NOT

© Контрольная работа РУ — калькуляторы онлайн

Где учитесь?

Для правильного составления решения, укажите:

Учитель информатики

Сайт учителя информатики. Технологические карты уроков, Подготовка к ОГЭ и ЕГЭ, полезный материал и многое другое.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Таблица 4.1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Первое равенство будет выполняться только при А = 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.

Получаем для 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. Предикаты и их множества истинности

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

1) Как пройти в библиотеку?
2) Коля спросил: «Который час?»
3) Картины Пикассо слишком абстрактны.
4) Компьютеры могут быть построены только на основе двоичной системы счисления.

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

1) «1999 2000», «1999 ? 2000»;
2) «Петя решил все задания контрольной работы», «Петя не решил все задания контрольной работы», «Петя решил не все задания контрольной работы»;
3) «Луна — спутник Земли», «Неверно, что Луна — спутник Земли», «Неверно, что Луна не является спутником Земли »;
4) «Прямая а не параллельна прямой с», «Прямая а перпендикулярна прямой с», «Прямые а и с не пересекаются» (считаем, что прямые а и с лежат в одной плоскости);
5) «Мишень поражена первым выстрелом», «Мишень поражена не первым выстрелом», «Неверно, что мишень поражена не первым выстрелом».

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

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

к высказываниям А, В, С и D. Сколько новых высказываний можно получить с помощью отрицания (инверсии)? Конъюнкции? Дизъюнкции? Импликации? Эквиваленции? Сколько всего новых высказываний можно получить? Сколько среди них будет истинных?

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

1) На вкус и цвет товарищей нет.
2) Если долго мучиться, что-нибудь получится.
3) Не зная броду, не суйся в воду.
4) Тяжело в ученье, легко в бою.
5) То не беда, что во ржи лебеда, то беда, что ни ржи, ни лебеды.
6) Где тонко, там и рвётся.
7) Или грудь в крестах, или голова в кустах.
8) За двумя зайцами погонишься — ни одного не поймаешь.
9) И волки сыты, и овцы целы.

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

1) если (А или В и С), то D;
2) если (не А и не В), то (С или D);
3) (А или В) тогда и только тогда, когда (С и не D).

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

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

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

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

Переведите А, В и С в двоичную систему счисления и вы полните поразрядно логические операции (A v В) & С. Отвеп дайте в десятичной системе счисления.

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

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

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

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

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

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

Алгебра логики как решать уравнения

С помощью тождественных преобразований максимально упростить следующее логическое выражение:

`bar C vv` (`A` & `С`) `vv` (`bar(A vv C vv bar(B)`)

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

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

1) Избавиться от операций импликации.

2) Продвинуть отрицание вглубь выражения. То есть применять законы де Моргана, и закон двойного отрицания пока знак отрицания не будет стоять только над переменными (но не над операциями).

После пункта 2 наступает относительная свобода действий. Можно использовать тождества поглощения или раскрывать скобки.

В нашей задаче операция импликации отсутствует, поэтому первый пункт мы пропускаем. Переходим к пункту 2. Применяем два раза второй закон де Моргана (для дизъюнкции) и закон двойного отрицания к правой скобке и получаем следующее логическое выражение:

`bar C vv ` (`A` & `C`) `vv` (`bar A` & `bar C` & `B`)

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

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

После применения первого закона поглощения получается следующее логическое выражение:

Применим второй (нестандартный для алгебры) закон дистрибутивности. Получаем:

(`bar C vv A`) & (`bar C vv C`)

Ко второй скобке применяем закон исключённого третьего, превращаем её в единицу, а затем применяем закон поглощения константы `1` и в итоге получаем выражение: `bar C vv A`, которое упростить уже нельзя.

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

Обратите внимание, что исходное логическое выражение зависело от трёх переменных (`A, B, C`) , в то время как упрощённое в итоге зависит от двух логических переменных (`A` и `C`). При этом выражения всё равно остаются равносильными! Это происходит потому, что в процессе упрощения применялись законы поглощения. Аналогичный результат мог бы получиться, если в процессе упрощения выражения используются законы поглощения переменных константами. Исчезновение переменной при упрощении означает, что в исходном выражении она является несущественной.

Укажите значения переменных `K`, `L`, `M`, `N`, при которых логическое выражение `(L vv M) ^^ (¬ K -> M) ^^ ¬ N ^^ ¬ M` истинно.

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

`(L vv M) ^^ ( K vv M) ^^ ¬ N ^^ ¬ M`

Отрицание вглубь продвигать не надо. Теперь раскроем скобки. Для упрощения условимся операцию конъюнкции никак не обозначать (по аналогии с алгеброй чисел).

`(LK vv LM vv MK vv M) ( ¬ N) ( ¬ M)`

В первой скобке можно применить тождество поглощения, и «съесть» второе и третье слагаемое, которые содержат M в качестве множителя. Получается такое выражение:

`(LK vv M) ( ¬ N) ( ¬ M)`

Выполнив оставшиеся операции умножения, получим следующий результат:

Получили одну конъюнкцию. Следовательно, существует всего один набор значений переменных, при котором получится значение «1»: `L=1`, `K=1`, `N=0`, `M=0`.

Сколько решений имеет уравнение:

`(((K¬L¬N) (¬L -> M))` \/ `((¬K` \/ `L` \/ `N) (¬L¬M))) (K`\/`N)=1`

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

`(((K¬L¬N) (L`\/ `M))` \/ `((¬K` \/ `L` \/ `N) (¬L¬M))) (K`\/`N) = 1`

Теперь раскроем скобки. Для упрощения условимся не записывать слагаемые, куда одновременно входят некоторая переменная и её отрицание (они всё равно равны нулю):

`(K¬L¬NM` \/ `¬K¬L¬M` \/ `N¬L¬M) (K`\/`N) = 1`

Продолжаем раскрытие скобок. Получаем:

`K¬L¬NM` \/ `¬K¬L¬MN` \/ `KN¬L¬M` \/ `N¬L¬M = 1`

Ко второму, третьему и четвёртому слагаемому можно применить тождество поглощения. В итоге получится:

`K¬L¬NM` \/ `N¬L¬M = 1`

На этом упрощение закончено, теперь будем анализировать. Дизъюнкция равна единице, если хотя бы одно из слагаемых равно единице. Первое слагаемое равно единице на единственном наборе переменных: (`K=1`, `L=0`, `N=0`, `M=1`). Второе слагаемое равно единице на двух наборах: (`N=1`, `L=0`, `M=0`, `K` – любое (или `0` или `1`)). Соответственно, уравнение имеет три различных решения.

В нарушении правил обмена валюты подозреваются четыре работника банка — Антипов (`A`), Борисов (`B`), Цветков (`C`) и Дмитриев (`D`). Известно, что:

1) Если `А` нарушил, то и `В` нарушил правила обмена валюты.

2) Если `B` нарушил, то и `C` нарушил или `A` не нарушал.

3) Если `D` не нарушил, то `A` нарушил, а `C` не нарушал.

4) Если `D` нарушил, то и `A` нарушил.

Кто из подозреваемых нарушил правила обмена валюты?

Чтобы решить эту задачу, необходимо провести процесс формализации условия, сформировать единое логическое выражение и провести его упрощение. Выделим из условия четыре простых высказывания: «`A` нарушил правила», «`B` нарушил правила», «`C` нарушил правила», и «`D` нарушил правила». Обозначим их соответственно буквами `A`, `B`, `C`, `D`. Тогда высказывания из условия формализуются следующим образом (конъюнкция не обозначается никак):

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

Итак, строим логическое выражение:

`(A -> B)( B -> C` \/ `¬A)( ¬D -> A¬C)( D -> A)`.

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

`(¬A` \/ `B)( ¬B` \/ `C` \/ `¬A)( D` \/ `A¬C)( ¬D` \/ `A)`.

Раскрываем скобки. Первую перемножаем со второй, а третью с четвёртой.

`(¬A¬B` \/ `¬AC` \/ `¬A` \/ `BC` \/ `B¬A) ( DA` \/ `A¬C¬D` \/ `A¬C)`.

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

`( ¬A` \/ `BC ) ( DA` \/ `A¬C)`.

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

Правила обмена валюты нарушили все.

Известно, что обе надписи на дверях либо истинны, либо ложны одновременно. Надпись на первой двери – «Клад за другой дверью», на второй двери – «Клада за этой дверью нет, а за другой – есть». Где находится клад?

По сути нас интересуют два простых высказывания: «Клад есть за первой дверью» и «Клад есть за второй дверью». Обозначим первое из них буквой `A`, а второе буквой `B`. Тогда изначальные предположения формализуются следующим образом:

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

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

Упрощаем его по алгоритму: отрицание продвигаем вглубь, применяя тождество Де Моргана. Получаем:

`¬B (B` \/ `¬A)`.

Раскроем скобки. Первое слагаемое сокращается, а второе выглядит следующим образом: `¬B¬A`.

Полученный результат означает, что условия задачи выполняются, только в случае, когда оба высказывания ложны, а это означает, что клада нет ни за одной дверью. Не повезло нам `J`.

Клада нет ни за одной дверью.

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

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

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

3) Составить единое логическое выражение для всех требований задачи (возможно не одно).

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

5) Выбрать решение — набор значений простых высказываний, при котором построенное логическое выражение является истинным;

6) Проверить, удовлетворяет ли полученное решение условию задачи.

Среди задач алгебры логики часто встречаются задачи на определение количества решений систем логических уравнений. Рассмотрим примеры некоторых их них.

Найдите количество решений системы уравнений:

`(x2-=x1)+x2&x3+ not x2& not x3=1`

`(x3-=x1)+x3&x4+ not x3& not x4=1`

`(x9-=x1)+x9 & x10+ not x9 & not x10=1`

где `x1 … x10` — неизвестные логические величины

Упростим исходные уравнения, заметив, что, `(x2&x3+ not x2& notx3=(x2-=x3)`. Исходную систему запишем в виде:

В первом уравнении используются три переменных `x1`, `x2` и `x3`. Значения `x1` и `x2` могут быть выбраны произвольно четырьмя способами:


источники:

http://murnik.ru/18-algebra-logiki

http://zftsh.online/articles/5242