Реферат на тему преобразование логических выражений

Обновлено: 03.07.2024

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

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

§ 20. Преобразование логических выражений

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

20.1. Основные законы алгебры логики.

Приведём основные законы алгебры логики.

1. Переместительные (коммутативные) законы:

2. Сочетательные (ассоциативные) законы:

(A v В) v С = A v (В v С).

3. Распределительные (дистрибутивные) законы:

A v (В & С) = (A v В) & (A v С).

4. Законы идемпотентности (отсутствия степеней и коэффициентов):

5. Закон противоречия:


6. Закон исключённого третьего:


7. Закон двойного отрицания:


8. Законы работы с константами:

A v 1 = 1; A v O = A;

9. Законы де Моргана:


10. Законы поглощения:

Справедливость законов можно доказать построением таблиц истинности.

Пример 1. Упростим логическое выражение


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


Пример 2. Упростим логическое выражение


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


Пробуйте самостоятельно доказать один из этих законов с помощью кругов Эйлера.

Пример 3. На числовой прямой даны отрезки В = [2; 12] и С = [7; 18]. Каким должен быть отрезок А, чтобы предикат


становился истинным высказыванием при любых значениях х.

Преобразуем исходное выражение, избавившись от импликации:


причём это минимально возможное множество А.

Множество В — это отрезок [2; 12].


Изобразим это графически:


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

Чему равна минимальная длина отрезка А? Укажите ещё несколько вариантов множества А.

Пример 4. Для какого наименьшего неотрицательного целого десятичного числа а выражение


тождественно истинно (т. е. принимает значение 1 при любом неотрицательном целом значении десятичной переменной х)? Здесь & — поразрядная конъюнкция двух неотрицательных целых десятичных чисел.

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


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


Перепишем исходное выражение в наших обозначениях:


Рассмотрим предикат М(х) = (х & 28 ? 0). В числе 28 = 111002 4-й, 3-й и 2-й биты содержат единицы, а 1-й и 0-й — нули. Следовательно, множеством истинности этого предиката являются такие числа х, у которых хотя бы один из битов с номерами 4, 3 или 2 содержит единицу. Если и 4-й, и 3-й, и 2-й биты числа х нулевые, то высказывание х & 28 ? 0 будет ложным.

Рассмотрим предикат N(x) = (х & 45 ? 0). В числе 45 = 1011012 5-й, 3-й, 2-й и 0-й биты содержат единицы, 4-й и 1-й — нули.

Следовательно, множеством истинности этого предиката являются такие числа х, у которых хотя бы один из битов с номерами 5, 3, 2 или 0 содержит единицу. Если и 5-й, и 3-й, и 2-й, и 0-й биты числа х нулевые, то высказывание х & 45 ? 0 будет ложным.

Рассмотрим предикат К(х) = (х & 17 = 0). В числе 17 = 100012 3-й, 2-й и 1-й биты содержат нули, 4-й и 0-й — единицы. Побитовая конъюнкция 17 и х будет равна нулю, если в числе х 4-й и 0-й биты будут содержать нули. Множество истинности этого предиката — все х с нулями в 4-м и 0-м битах.

По условию задачи надо, чтобы


Запишем это выражение для рассмотренных множеств истинности:


Объединением множеств М и N являются все двоичные числа, у которых хотя бы один из битов с номерами 5, 4, 3, 2, 0 содержит единицу. Пересечением этого множества с множеством К будут все двоичные числа, у которых биты с номерами 4 и 0 будут заняты нулями, т. е. такие двоичные числа, у которых хотя бы один из битов с номерами 5, 3, 2 содержит 1. Все эти числа образуют множество А.

Искомое число а должно быть таким, чтобы при любом неотрицательном целом значении переменной х: х & а ? 0, и кроме того, оно должно быть минимальным из возможных. Этим условиям удовлетворяет число 1011002. Действительно, единицы в нём стоят в тех и только в тех битах, которые нужны для выполнения условия х & а ? 0.

Итак, требуемое число 1011002 или 4410.

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

Пример 5. Выясним, сколько решений имеет следующая система из двух уравнений:


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

Начнем строить дерево решений, представив на нём значения переменных х1 и х2 при которых х1 ? х2 = 1.

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

То же самое проделаем для переменной х4.


На дереве видно, что рассматриваемое нами уравнение имеет 5 решений — 5 разных наборов значений логических переменных x1, х2, х3, х4, при которых выполняется равенство:


Следовательно, как и первое уравнение, это уравнение имеет 5 решений. Представим их в табличной форме:


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

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


Всего мы можем построить 5 • 5 = 25 решений системы.

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

20.2. Логические функции

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

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


Для n = 2 существует 16 различных логических функций.

Рассмотрим их подробнее.



С увеличением числа аргументов количество логических функций резко возрастает. Так, для трёх переменных существует 256 различных логических функций! Но изучать их все нет никакой необходимости. Дело в том, что путём преобразований функция любого количества переменных может быть выражена через функции только двух переменных. Более того, можно использовать не все, а лишь некоторые логические функции двух переменных. Например:

1) F2 и F11 (конъюнкция и отрицание второго аргумента);

2) F8 и F13 (дизъюнкция и отрицание первого аргумента);

3) F9 (стрелка Пирса, отрицание дизъюнкции);

4) F15 (штрих Шеффера, отрицание конъюнкции).

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

20.3. Составление логического выражения по таблице истинности и его упрощение

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

Алгоритм составления логического выражения по таблице истинности достаточно прост. Для этого надо:

1) отметить в таблице истинности наборы переменных, при которых значение логического выражения равно единице;
2) для каждого отмеченного набора записать конъюнкцию всех переменных следующим образом: если значение некоторой переменной в этом наборе равно 1, то в конъюнкцию включаем саму переменную, в противном случае — её отрицание;
3) все полученные конъюнкции связать операциями дизъюнкции.

Пример 6. Имеется следующая таблица истинности:


После выполнения двух первых шагов алгоритма получим:


После выполнения третьего шага получаем логическое выражение:


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


, а далее используем законы алгебры логики.


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

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

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

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

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




Известно, что выражение


истинно при любом значении переменной х. Определите наименьшее возможное количество элементов множества А.

Что нужно знать:

условные обозначения логических операций

¬ A, не A (отрицание, инверсия)

A  B, A и B (логическое умножение, конъюнкция)

A  B, A или B (логическое сложение, дизъюнкция)

A → B импликация (следование)

A ↔ B эквиваленция (эквивалентность, равносильность)

A → B = ¬ A  B или в других обозначениях A → B =

A ↔ B = ¬ A  ¬ B  A  B или в других обозначениях A ↔ B =

логическое произведение A∙B∙C∙… равно 1 (выражение истинно) только тогда, когда все сомножители равны 1 (а в остальных случаях равно 0)

логическая сумма A+B+C+… равна 0 (выражение ложно) только тогда, когда все слагаемые равны 0 (а в остальных случаях равна 1)

^ Пример задания:
Каково наибольшее целое число X, при котором истинно высказывание

Решение (вариант 1):

это операция импликации между двумя отношениями и

попробуем сначала решить неравенства

обозначим эти области на оси X:

на рисунке фиолетовые зоны обозначают область, где истинно выражение , голубая зона – это область, где истинно

согласно таблице, заданное выражение истинно везде, кроме областей, где и ; область истинности выделена зеленым цветом

поэтому наибольшее целое число, удовлетворяющее условию – это первое целое число, меньшее , то есть, 7

таким образом, верный ответ – 7 .

в этом примере потребовалось применить знания не только (и не столько) из курса информатики, но и умение решать неравенства

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

Решение (вариант 2, преобразование выражения):

это значит, что выражение истинно там, где или

дальнейшие действия точно такие же, как и в варианте 1.

нужно помнить формулу для преобразования импликации
^ Еще пример задания:
Сколько различных решений имеет уравнение

((K  L) → (L  M  N)) = 0

где K, L, M, N – логические переменные? В ответе не нужно перечислять все различные наборы значений K, L, M и N, при которых выполнено данное равенство. В качестве ответа Вам нужно указать количество таких наборов.

Решение (вариант 1):

перепишем уравнение, используя более простые обозначения операций:

((K + L) → (L · M · N)) = 0

K + L = 1 и L · M · N = 0

из первого уравнения следует, что хотя бы одна из переменных, K или L равна 1 (или обе вместе); поэтому рассмотрим три случая

если K = 1 и L = 0, то второе равенство выполняется при любых М и N; поскольку существует 4 комбинации двух логических переменных (00, 01, 10 и 11), имеем 4 разных решения

если K = 1 и L = 1, то второе равенство выполняется при М · N = 0; существует 3 таких комбинации (00, 01 и 10), имеем еще 3 решения

если K = 0, то обязательно L = 1 (из первого уравнения); при этом второе равенство выполняется при М · N = 0; существует 3 таких комбинации (00, 01 и 10), имеем еще 3 решения

таким образом, всего получаем 4 + 3 + 3 = 10 решений.

лучше начинать с того уравнения, где меньше переменных

есть риск потерять какие-то решения при переборе вариантов
^ Еще пример задания:
Укажите значения переменных К, L, M, N, при которых логическое выражение

(¬(М  L)  К) → (¬К  ¬М)  N)

ложно. Ответ запишите в виде строки из 4 символов: значений переменных К, L, М и N (в указанном порядке). Так, например, строка 1101 соответствует тому, что К=1, L=1, M=0, N=1.

^ Решение (вариант 1, анализ исходного выражения):

из формулировки условия следует, что выражение должно быть ложно только для одного набора переменных

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

из второго условия, , при и получаем

таким образом, правильный ответ – 1000.

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

Решение (вариант 2, упрощение выражения):

запишем уравнение, используя более простые обозначения операций:

заменим импликацию по формуле :

раскроем инверсию сложного выражения по формуле де Моргана :

поэтому сразу находим

таким образом, правильный ответ – 1000.

нужно помнить правила преобразования логических выражений и хорошо владеть этой техникой
^ Еще пример задания:
Составьте таблицу истинности для логической функции

X = (А ↔ B)  ¬(A → (B  C))

в которой столбец значений аргумента А представляет собой двоичную запись числа 27, столбец значений аргумента В – числа 77, столбец значений аргумента С – числа 120. Число в столбце записывается сверху вниз от старшего разряда к младшему. Переведите полученную двоичную запись значений функции X в десятичную систему счисления.

Решение (вариант 1):

запишем уравнение, используя более простые обозначения операций:

это выражение с тремя переменными, поэтому в таблице истинности будет 23=8 строчек; следовательно, двоичная запись чисел, по которым строятся столбцы таблицы А, В и С, должна состоять из 8 цифр

Перечень вопросов, рассматриваемых в теме: основные законы алгебры логики, преобразование логических выражений, логические функции, построение логического выражения с данной таблицей истинности и его упрощение, дизъюнктивная и конъюнктивная нормальная форма, совершенная дизъюнктивная нормальная форма (СДНФ), совершенная конъюнктивная нормальная форма (СКНФ).

Глоссарий по теме: основные законы алгебры логики, логические функции, дизъюнктивная и конъюнктивная нормальная форма, совершенная дизъюнктивная нормальная форма (СДНФ), совершенная конъюнктивная нормальная форма (СКНФ)

Основная литература по теме урока:

Л. Л. Босова, А. Ю. Босова. Информатика. Базовый уровень: учебник для 10 класса

— М.: БИНОМ. Лаборатория знаний, 2017 (с.197—209)

Открытые электронные ресурсы по теме:

Теоретический материал для самостоятельного изучения.

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

Основные законы алгебры логики


Справедливость законов можно доказать построением таблиц истинности.


Пример 1. Упростим логическое выражение

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

В общем случае можно предложить следующую последовательность действий:

  1. Заменить операции строгая дизъюнкция, импликация, эквиваленция на их выражения через операции конъюнкция, дизъюнкция, инверсия;
  2. Раскрыть отрицания сложных выражений по законам де Моргана.
  3. Используя законы алгебры логики, упростить выражение.


Здесь последовательно использованы замена операции импликация, закон де Моргана, распределительный закон, закон противоречия и операция с константой, закон идемпотентности и поглощения.

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



Пример 3. На числовой прямой даны отрезки B = [2;12] и C = [7;18]. Каким должен быть отрезок A, чтобы предикат становился истинным высказыванием при любых значениях x.

Преобразуем исходное выражение, избавившись от импликации:



A, B, C — множества. Для них можно записать (U — универсальное множество).


Будем считать, что.


Тогда , причем это минимально возможное множество А.

Так как множество B — это отрезок [2;12], а множество — это промежутки и, то пересечением этих множеств будет служить промежуток . В качестве ответа мы можем взять этот промежуток, а также любой другой, его включающий.

Пример 4. Для какого наименьшего неотрицательного целого десятичного числа а выражение


тождественно истинно (т. е. принимает значение 1 при любом неотрицательном целом значении десятичной переменной х)? Здесь & — поразрядная конъюнкция двух неотрицательных целых десятичных чисел.

Перепишем исходное выражение в наших обозначениях и преобразуем его:


Рассмотрим предикат . В числе 2810=111002 4-й, 3-й и 2-й биты содержат единицы, а 1-й и 0-й — нули. Следовательно, множеством истинности этого предиката являются такие числа х, у которых хотя бы один из битов с номерами 4, 3 или 2 содержит единицу. Если и 4-й, и 3-й, и 2-й биты числа х нулевые, то высказывание будет ложным.

Рассмотрим предикат . В числе 4510=1011012 5-й, 3-й, 2-й и 0-й биты содержат единицы, 4-й и 1-й — нули. Следовательно, множеством истинности этого предиката являются такие числа х, у которых хотя бы один из битов с номерами 5, 3, 2 или 0 содержит единицу. Если и 5-й, и 3-й, и 2-й, и 0-й биты числа х нулевые, то высказывание будет ложным.


По условию задачи надо, чтобы .

Запишем это выражение для рассмотренных множеств истинности:

Так как , примем .

Объединением множеств M и N являются все двоичные числа, у которых хотя бы один из битов с номерами 5, 4, 3, 2, 0 содержит единицу. Пересечением этого множества с множеством K будут все двоичные числа, у которых биты с номерами 4 и 0 будут заняты нулями, т.е. такие двоичные числа, у которых хотя бы один из битов с номерами 5, 3, 2 содержит 1. Все эти числа образуют множество А.


Искомое число a должно быть таким, чтобы при любом неотрицательном целом значении переменной х: , и, кроме того, оно должно быть минимальным из возможных. Этим условиям удовлетворяет число 1011002 = 4410.

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

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

Для n=2 существует 16 различных логических функций. Рассмотрим их подробнее.

Нажмите, чтобы узнать подробности

Тема: Преобразование логических выражений.

Про обозначения

Что нужно знать:

  • условные обозначения логических операций
    • A, не A (отрицание, инверсия)
    1. → B=¬AÚB или в других обозначениях A → B=
    1. ↔ B=¬AÙ¬BÚAÙB или в других обозначениях A ↔ B=
    • правила преобразования логических выражений (законы алгебры логики):

    Для И

    Для ИЛИ

    A · 1 = A; A · 0 = 0

    A + 0 = A; A + 1 = 1

    A · (B · C) = (A · B) · C

    A + (B + C) = (A + B) + C

    A + B · C = (A + B) · (A + C)

    A · (B + C) = A · B + A · C

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

    (x1 Ù y1) º (Øx2 Ú Øy2)

    (x2 Ù y2) º (Øx3 Ú Øy3)

    (x5 Ù y5) º (Øx6 Ú Øy6)

    где x1, …, x6, y1, …, y6, – логические переменные? В ответе не нужно перечислять все различные наборы значений переменных, при которых выполнено данное равенство. В качестве ответа нужно указать количество таких наборов.

    Решение (метод битовых цепочек):

    1. заметим, что по закону де Моргана и выполним замену переменных

    которая может быть записана в виде

    и сворачивается в одно уравнение

    1. это уравнение накладывает такое ограничение на битовую цепочку : соседние биты различны, что дает всего дав решения: и
    2. теперь нужно перейти к исходным переменным, и
    3. если , то имеем всего один вариант исходных переменных: , то есть единица в решении Z не увеличивает количество решений в исходных переменных
    4. если , то имеем три варианта исходных переменных: , то есть каждый ноль в решении Z утраивает количество решений в исходных переменных
    5. поскольку в каждом решении 3 нуля, каждое из двух решений Z даёт 3 3 = 27 решений в исходных переменных; таким образом, всего решений 2 · 27 = 54
    6. Ответ: 54.

    Решение (оптимизированный метод отображений, А.Н. Носкин):

    1. Из анализа системы логических уравнений мы видим, что присутствует 6 переменных Х и 6 переменных У. Так как любая из этих переменных может принимать только два значения (0 и 1), то заменим эти переменные на 12 однотипных переменных, например Z.
    2. Теперь перепишем систему с новыми однотипными переменными. ВНИМАНИЕ, сложность задачи будет заключаться во внимательной записи при замене переменных.

    (z1 Ù z2) º (Øz3 Ú Øz4)

    (z3 Ù z4) º (Øz5 Ú Øz6)

    (z9 Ù z10) º (Øz11 Ú Øz12)

    Читайте также: