"Информатика. Базовый уровень", Босова Л.Л., Босова А.Ю.
Логические выражения описывают условия, которые могут быть истинными или ложными. Их преобразуют, чтобы сделать запись короче или удобнее для анализа, не меняя результата ни при одном наборе значений переменных. Для этого используют законы алгебры логики: правила перестановки и группировки операций, двойного отрицания, поглощения и де Моргана. Правильность преобразования можно проверить таблицей истинности.
Текст подготовлен нейронной сетью по теме параграфа и не заменяет учебник — важные факты и формулировки сверяйте с ним.
Логическое выражение — запись из логических переменных, значений «истина» и «ложь» и логических операций, например отрицания ¬, конъюнкции ∧ и дизъюнкции ∨. Когда значения переменных заданы, выражение тоже получает одно из двух значений: истина или ложь. Например, если A истинно, то ¬A ложно. Это понятие нужно, чтобы описывать и вычислять логические условия.
Равносильные логические выражения — выражения, которые дают одинаковые значения при любых наборах значений переменных. Чтобы проверить равносильность, составляют таблицу истинности для каждого выражения и сравнивают результаты в строках. Если хотя бы в одной строке результаты различаются, выражения не равносильны. Такая проверка помогает убедиться, что преобразование не изменило смысл записи.
Преобразование логического выражения — замена выражения равносильной ему записью с помощью законов алгебры логики. Внешний вид формулы при этом меняется, но значение для каждого набора переменных остаётся прежним. Например, можно раскрыть скобки или, наоборот, сгруппировать слагаемые. Преобразование нужно, чтобы упростить вычисление или сделать условие понятнее.
Закон де Моргана связывает отрицание выражения в скобках с отрицаниями его частей: ¬(A ∧ B) = ¬A ∨ ¬B и ¬(A ∨ B) = ¬A ∧ ¬B. При переносе отрицания внутрь скобок меняется операция между частями, а отрицание относится к каждой из них. Скобки показывают, к какому целому выражению относилось исходное отрицание. Закон полезен, когда нужно раскрыть отрицание или привести формулу к удобному виду.
Преобразование должно сохранять значение выражения при каждом наборе значений переменных, потому что именно это делает исходную и новую записи равносильными. Если результат изменится хотя бы в одном случае, новая формула будет описывать уже другое условие. Проверка таблицей истинности позволяет сравнить значения непосредственно. Законы логики дают более короткий способ такой проверки: каждый закон утверждает равносильность двух форм записи.
Переместительный закон разрешает менять местами части, соединённые одной операцией: A ∧ B = B ∧ A и A ∨ B = B ∨ A. Сочетательный закон меняет группировку одинаковых операций, например (A ∨ B) ∨ C = A ∨ (B ∨ C). Распределительный закон позволяет раскрывать скобки или выносить общий множитель: A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C). Эти законы можно проверить таблицами истинности: в каждой строке левые и правые части дают одинаковое значение. При этом правила для ∧ и ∨ нельзя произвольно смешивать.
Двойное отрицание устраняется по правилу ¬¬A = A: два последовательных отрицания возвращают исходное значение. Закон поглощения, например A ∨ (A ∧ B) = A, позволяет убрать часть, которая не меняет результат. Закон исключённого третьего A ∨ ¬A = 1 говорит, что одно из двух противоположных высказываний обязательно истинно; для конъюнкции A ∧ ¬A = 0 означает противоречие. Эти правила сокращают формулы, удаляя повторные или заведомо лишние условия.
По законам де Моргана отрицание сложного выражения раскрывают так, чтобы оно относилось к каждой части скобок. При этом ∧ заменяют на ∨, а ∨ — на ∧: например, ¬(A ∧ B) становится ¬A ∨ ¬B. Причина такой замены в том, что отрицание «оба истинны» означает «хотя бы одно ложно», а отрицание «хотя бы одно истинно» означает «оба ложны». Нельзя оставить прежнюю операцию или забыть отрицание у одной из частей.
Импликация заменяется формулой A → B = ¬A ∨ B, а эквивалентность — формулой A ↔ B = (A ∧ B) ∨ (¬A ∧ ¬B). Первая запись показывает, что импликация ложна только при истинном A и ложном B; вторая — что эквивалентность истинна, когда значения частей совпадают. После замены можно применять распределение, де Моргана и другие законы. Такой порядок переводит выражение к операциям, для которых проще выполнять преобразования.
| Закон или правило | Равносильность | Как использовать при преобразовании |
|---|---|---|
| Переместительный закон для конъюнкции и дизъюнкции | A ∧ B = B ∧ A; A ∨ B = B ∨ A | Менять местами части, соединённые одинаковой операцией. |
| Сочетательный закон для конъюнкции и дизъюнкции | (A ∧ B) ∧ C = A ∧ (B ∧ C); аналогично для ∨ | Перегруппировывать одинаковые операции без изменения порядка частей. |
| Распределительный закон | A ∧ (B ∨ C) = (A ∧ B) ∨ (A ∧ C); A ∨ (B ∧ C) = (A ∨ B) ∧ (A ∨ C) | Раскрывать скобки или выносить общий операнд. |
| Двойное отрицание | ¬¬A = A | Убирать два отрицания подряд. |
| Законы де Моргана | ¬(A ∧ B) = ¬A ∨ ¬B; ¬(A ∨ B) = ¬A ∧ ¬B | Переносить отрицание внутрь скобок, меняя операцию и отрицая обе части. |
| Поглощение | A ∨ (A ∧ B) = A; A ∧ (A ∨ B) = A | Удалять выражение, которое не влияет на результат рядом с повторяющимся A. |
| Исключённое третье и противоречие | A ∨ ¬A = 1; A ∧ ¬A = 0 | Заменять дизъюнкцию противоположных частей на истину, а их конъюнкцию — на ложь. |
| Замена импликации и эквивалентности | A → B = ¬A ∨ B; A ↔ B = (A ∧ B) ∨ (¬A ∧ ¬B) | Представлять операции через отрицание, конъюнкцию и дизъюнкцию. |
При преобразовании сначала найдите в формуле часть, к которой подходит правило, и замените только её. Затем проверьте, не появились ли условия для следующего закона. Если результат вызывает сомнение, сравните исходное и полученное выражения по таблице истинности.
Задача 1. Преобразовать ¬(A ∧ B) в равносильное выражение. Отрицание относится ко всему выражению в скобках, поэтому подходит закон де Моргана. При его применении конъюнкция меняется на дизъюнкцию, а отрицание ставится перед каждым операндом. Здесь важно не оставить без отрицания ни A, ни B.
Ответ: ¬(A ∧ B) = ¬A ∨ ¬B.
Задача 2. Упростить (A ∨ B) ∧ (A ∨ ¬B). В обеих скобках есть общий операнд A, а остальные части соединены с ним дизъюнкцией. Распределительный закон позволяет вынести A, после чего выражение B ∨ ¬B превращается в истину. Тогда остаётся выражение вида A ∧ 1, которое упрощается до A.
Ответ: A. В исходном задании можно также сгруппировать формулу как (A ∨ B) ∧ (A ∨ ¬B): здесь при правильном применении распределения результат равен A ∨ (B ∧ ¬B), а не выражению с B ∨ ¬B. Следовательно, результат упрощения — A.
Задача 3. Упростить (A → B) ∧ (A → ¬B). Сначала заменим импликации, чтобы работать только с отрицанием, конъюнкцией и дизъюнкцией. Обе части содержат условие ¬A, а при истинном A требования B и ¬B одновременно выполнить нельзя. Распределение выделяет эти два случая и показывает, что остаётся только ¬A.
Ответ: ¬A. Если A ложно, обе импликации истинны; если A истинно, B и ¬B не могут быть истинны одновременно.
При применении закона де Моргана иногда меняют знак отрицания, но оставляют прежнюю операцию в скобках. Так происходит, когда правило запоминают как простое «раскрытие скобок» и упускают вторую часть. Нужно одновременно отрицать каждый операнд и менять ∧ на ∨ или ∨ на ∧. Для проверки подставьте, например, A = 1 и B = 1: левая и правая части должны совпасть.
Переместительный и сочетательный законы не разрешают произвольно менять операции. Они действуют отдельно для конъюнкции и отдельно для дизъюнкции, поэтому из A ∧ B нельзя получить A ∨ B перестановкой частей. Ошибку допускают, когда воспринимают символы операций как взаимозаменяемые. Проверяйте, что операция по обе стороны равносильности одна и та же.
При поглощении нельзя удалять произвольную часть выражения: для A ∨ (A ∧ B) результат равен A, а не B. Закон работает, потому что A уже делает дизъюнкцию истинной, а если A ложно, выражение A ∧ B тоже ложно. Ошибка возникает, когда замечают скобки, но не проверяют наличие повторяющегося операнда. Сверьте формулу с полной записью закона перед сокращением.
Выражения, совпадающие только на некоторых наборах значений, не являются равносильными. Иногда проверяют одну удобную подстановку и принимают совпадение за доказательство. Равносильность требует совпадения результатов во всех строках таблицы истинности. Чтобы проверить себя, перечислите все наборы переменных или обоснуйте каждый шаг известным законом.
Для работы с логическими выражениями нужно знать переменные, значения «истина» и «ложь», а также операции отрицания, конъюнкции, дизъюнкции и импликации. Они образуют основу формул, которые затем можно преобразовывать. Если забыть смысл операции, легко неверно прочитать условие.
Таблицы истинности показывают результат выражения для всех наборов значений переменных. Поэтому с их помощью проверяют равносильность и обосновывают законы логики. Каждая строка таблицы соответствует отдельному случаю вычисления.
Преобразование логических выражений полезно при составлении условий в программах. Упрощённое условие легче читать, проверять и исправлять. При этом оно должно сохранять поведение программы для каждого возможного набора входных данных.
Как понять, что два логических выражения равносильны?
Составьте для обоих выражений таблицы истинности на всех наборах значений переменных. Если результаты совпадают в каждой строке, выражения равносильны. Даже одно несовпадение означает, что равносильности нет.
Как правильно раскрыть отрицание скобок по законам де Моргана?
Отрицание нужно отнести к каждому выражению внутри скобок, а операцию между ними заменить на противоположную. Конъюнкция превращается в дизъюнкцию, а дизъюнкция — в конъюнкцию: ¬(A ∧ B) = ¬A ∨ ¬B, ¬(A ∨ B) = ¬A ∧ ¬B.
Можно ли менять местами части выражения при преобразовании?
Можно менять местами части, соединённые одной и той же операцией: это переместительный закон для конъюнкции или для дизъюнкции. Нельзя на этом основании заменять одну операцию другой. При наличии скобок также учитывайте порядок действий.
Как заменить импликацию выражением с отрицанием и дизъюнкцией?
Импликацию A → B заменяют равносильным выражением ¬A ∨ B. Это означает, что импликация ложна только тогда, когда A истинно, а B ложно. После замены можно применять другие законы логики.
Как проверить, что при упрощении не изменилось значение выражения?
Составьте таблицу истинности исходного и полученного выражений и сравните их значения для каждого набора переменных. Совпадение всех результатов подтверждает, что выражения равносильны. Также проверяйте каждый шаг по известному закону.
§ 20. Преобразование логических выражений