Тема 4.2 Логические выражения и логические функции

Тема 4.2 Логические выражения и логические функции


Задачи и их решения по информатике и математике
Тема 4.1 Алгебра логики -->> Тема 5. 1 Формализация понятия алгоритма

Тема 4.2 Логические выражения и логические функции

Исследования в алгебре логики тесно связаны с изучением высказываний (хотя высказывание — предмет изучения формальной логики). Высказывание — это языковое образование, в отношении которого имеет смысл говорить о его истинности или ложности (Аристотель).
Простым высказыванием называют повествовательное предложение, относительно которого имеет смысл говорить, истинно оно или ложно.
Считается, что каждое высказывание либо истинно, либо ложно и ни одно высказывание не может быть одновременно истинным и ложным.
Примеры высказываний:
  1. Москва – столица России.
  2. Число 27 является простым.
  3. Волга впадает в Каспийское море.
Высказывания 1 и 3 являются истинными. Высказывание 2 – ложным , потому что число 27 составное 27=3*3*3.
Следующие предложения высказываниями не являются:
  • Давай пойдем гулять.
  • 2*x>8.
  • a*x2+b*x+c=0.
  • Который час?
Итак, отличительным признаком высказывания является свойство быть истинным или ложным, последние четыре предложения этим свойством не обладают.
С помощью высказываний устанавливаются свойства, взаимосвязи между объектами. Высказывание истинно, если оно адекватно отображает эту связь, в противном случае оно ложно.
Примеры высказываний:
  1. Сегодня светит солнце.
  2. Трава растет.
Каждое из этих высказываний характеризует свойства или состояние конкретного объекта (в пермом предложении - погоды, во втором - окружающего мира). Каждое из этих высказываний несет значение «истина» или «ложь».
В математической логике не рассматривается конкретное содержание высказывания, важно только, истинно оно или ложно. Поэтому высказывание можно представить некоторой переменной величиной, значением которой может быть только 0 или 1. Если высказывание истинно, то его значение равно 1, если ложно - 0.
Простые высказывания назвали логическими переменными, а сложные - логическими функциями. Значения логической функции также только 0 или 1. Для простоты записи высказывания обозначаются латинскими буквами А, В, С.
Однако определение истинности высказывания далеко не простой вопрос. Например, высказывание «Число 1 +22 = 4294 967297 — простое», принадлежащее Ферма (1601-1665), долгое время считалось истинным, пока в 1732 году Эйлер (1707-1783) не доказал, что оно ложно. В целом, обоснование истинности или ложности простых высказываний решается вне алгебры логики. Например, истинность или ложность высказывания «Сумма углов треугольника равна 180°» устанавливается геометрией, причем в геометрии Евклида это высказывание является истинным, а в геометрии Лобачевского — ложным.
В булевой алгебре простым высказываниям ставятся в соответствие логические переменные, значение которых равно 1, если высказывание истинно, и 0, если высказывание ложно. Обозначаются логические переменные, большими буквами латинского алфавита.
Существуют разные варианты обозначения истинности и ложности логических переменных

 
Истина И True T 1
Ложь
Л

False

F

0
Сложные (составные) высказывания представляют собой набор простых высказываний (по крайней мере двух) связанных логическими операциями.
С помощью логических переменных и символов логических операций любое высказывание можно формализовать, то есть заменить логической формулой (логическим выражением).
Логическое выражение - это символическая запись высказывания, состоящая из логических величин (констант или переменных), объединенных логическими операциями (связками).
Связки "НЕ", "И", "ИЛИ" заменяются логическими операциями инверсияконъюнкциядизъюнкция. Это основные логические операции, при помощи которых можно записать любое логическое выражение. 


Введем перечисленные логические операции.
Конъюнкция - логическое умножение (от латинского conjunctio - союз, связь):
  • в естественном языке соответствует союзу «И»
  • ;
    • в алгебре высказываний обозначение «&»
    • ;< >в языках программирования обозначение «And».Таблица истинности
      Диаграмма Эйлера-Венна
      A А&В
       1  1 1
       1  0
       0  1
       0  0
      Итак, если два высказывания соединены союзом "И", то полученное сложное высказывание истинно тогда и только тогда, когда истинны оба исходных высказывания.
       
      Дизъюнкция - логическое сложение (от латинского disjunctio - разобщение, различие):
      • в естественном языке соответствует союзу «ИЛИ»
      • ;
        • в алгебре высказываний обозначение «V» или «+»
        • ;< >в языках программирования обозначение «Or».Таблица истинности
          Диаграмма Эйлера-Венна
          A A + B 
           1  1 1
           1  0  1
           0  1  1
           0  0  0
          Итак, если два высказывания соединены союзом "ИЛИ", то полученное сложное высказывание истинно когда истинно хотя бы одно из составляющих высказываний.
          Рассмотренные выше операции были двуместными (бинарными), т.е. выполнялись над двумя операндами (высказываниями). В алгебре логики определена и широко используется и одноместная (унарная) операция отрицание.
          Инверсия - отрицание (от латинского disjunctio - разобщение, различие):
          • в естественном языке соответствует словам «неверно, что...» и частице «не»
          • ;
            • в алгебре высказываний обозначение «¬» или «-»
            • ;< >в языках программирования обозначение «Not».Таблица истинности
              Диаграмма Эйлера-Венна
              A ¬ А
               0  1
               1  0
              Итак, если исходное выражение истинно, то результат отрицания будет ложным, и наоборот, если исходное выражение ложно, то результат отрицания будет истинным.
               
              Логическое следование (импликация):
              Высказывание, составленное из двух высказываний при помощи связки «если ..., то ...», называется логическим следованием, импликацией (импликация от латинского implico - тесно связываю). 

               
              A A=>B
               1  1 1
               1  0  0
               0  1  1
               0  0  1
              A => B 
              "Из А следует В"
              Итак, новое высказывание, полученное с помощью импликации, является ложным тогда и только тогда, когда условие (посылка А) - истинно, а следствие (заключение В) - ложно и истинно во всех остальных случаях. 


              Пример. Дано сложное высказывание: «Если выглянет солнце, то станет тепло». Требуется записать его в виде логической формулы. Обозначим через А простое высказывание «выглянет солнце», а через В - «станет тепло». Тогда логической формулой этого сложного высказывания будет импликация: A -> B.
               
              Эквивалентность (логическое тождество):
              Высказывание, составленное из двух высказываний при помощи связки «тогда и только тогда, когда», называется эквивалентностью (эквивалентность - логическое тождество, равнозначность, взаимная обусловленность. 

               
              A А<=>В
               1  1 1
               1  0  0
               0  1  0
               0  0  1
              A <=> B 
              "А равносильно В"
              Итак, новое высказывание, полученное с использованием эквивалентности, является истинным тогда и только тогда, когда оба исходных высказывания одновременно истинны или одновременно ложны.
               
              В алгебре логики логические связки и соответствующие им логические операции имеют специальные названия и обозначаются следующим образом:
              Логическая связка Название логической операции Обозначения
              не Отрицание, инверсия Ø, ù
              и, а, но Конъюнкция, логическое умножение &, • , Ù
              или Дизъюнкция, логическое сложение V, +
              если ..., то Импликация, следование Þ,®
              тогда и только тогда, когда эквивалентность, эквиваленция, равнозначность Û, ~, º, «
              Примеры записи сложных высказываний с помощью обозначения логических связок:
              1. "Быть иль не быть - вот в чем вопрос." (В. Шекспир) А V ¬ A <=> В
              2. "Если хочешь быть красивым, поступи в гусары." (К. Прутков) А => В
Логическая функция - это функция, в которой переменные принимают только два значения: логическая единица или логический ноль. Истинность или ложность сложных суждений представляет собой функцию истинности или ложности простых. Эту функцию называют булевой функцией суждений f (a, b).
Любая логическая функция может быть задана с помощью таблицы истинности, в левой части которой записывается набор аргументов, а в правой части - соответствующие значения логической функции. При построении таблицы истинности необходимо учитывать порядок выполнения логических операций.
Порядок выполнения логических операций в сложном логическом выражении:
  1. инверсия;
  2. конъюнкция;
  3. дизъюнкция;
  4. импликация;
  5. эквивалентность.
Для изменения указанного порядка выполнения операций используются скобки.
Алгоритм построения таблиц истинности для сложных выражений:
  1. Определить количество строк:количество строк = 2n + строка для заголовка,
    n - количество простых высказываний.
  2. Определить количество столбцов:количество столбцов = количество переменных + количество логических операций;
 
  • определить количество переменных (простых выражений);
  • определить количество логических операций и последовательность их выполнения.
  • Заполнить столбцы результатами выполнения логических операций в обозначенной последовательности с учетом таблиц истинности основных логических операций.
Пример: Составить таблицу истинности логического выражения:
D = ¬ А & (B Ú C).
Решение: Ù
  1. Определить количество строк:на входе три простых высказывания: А, В, С поэтому n=3 и количество строк = 23 +1 = 9.
  2. Определить количество столбцов:
    • простые выражения (переменные): А, В, С;
    • промежуточные результаты (логические операции): 
      ¬ А - инверсия (обозначим через E); 
      B Ú C - операция дизъюнкции (обозначим через F); 
      а также искомое окончательное значение арифметического выражения: 
      D = ¬ А & (B Ú C). т.е. D = E & F - это операция конъюнкции.
  3. Заполнить столбцы с учетом таблиц истинности логических операций.
A C E F E & F
 0  0  0  1  0  0
 0  0  1  1  1  1
 0  1  0  1  1  1
 0  1  1  1  1  1
 1  0  0  0  0  0
 1  0  1  0  1  0
 1  1  0  0  1  0
 1  1  1  0  1  0


Построение логической функции по ее таблице истинности:
Попробуем решить обратную задачу. Пусть дана таблица истинности для некоторой логической функции
Z(X,Y):
 X  Y  Z
 0  0  1
 0  1  0
 1  0  1
 1  1  0
Составить логическую функцию для заданной таблицы истинности.
Правила построения логической функции по ее таблице истинности:
 
  1. Выделить в таблице истинности те строки, в которых значение функции равно 1.
  2. Выписать искомую формулу в виде дизъюнкции нескольких логических элементов. Число этих элементов равно числу выделенных строк.
  3. Каждый логический элемент в этой дизъюнкции записать в виде конъюнкции аргументов функции.
  4. Если значение какого-либо аргумента функции в соответствующей строке таблице равно 0, то этот аргумент взять с отрицанием.
Решение.
 
  1. В первой и третьей строках таблицы истинности значение функции равно 1.
  2. Так как строки две, получаем дизъюнкцию двух элементов: ( ) V ( ).
  3. Каждый логический элемент в этой дизъюнкции запишим в виде конъюнкции аргументов функции X и Y(X & Y) V (X & Y).
  4. Берем аргумент с отрицанием если его значение в соответствующей строке таблицы равно 0 и получаем искомую функцию:
    Z (X, Y) =(¬ X & ¬Y) V (X & ¬Y).

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


Результат операции над высказываниями не зависит от того, в каком порядке берутся эти высказывания.

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

Закон определяет правило выноса общего высказывания за скобку.


Закон означает отсутствие показателей степени.


Невозможно, чтобы противоречащие высказывания были одновременно истинными.

Из двух противоречащих высказываний об одном и том же предмете одно всегда истинно, а второе — ложно, третьего не дано.
 
  1. Закон двойного отрицания (двойное отрицание исключает отрицание):А = .
  2. Переместительный (коммутативный) закон:
    • для логического сложения: А Ú B = B Ú A;
    • для логического умножения: A & B = B & A.
  3. Сочетательный (ассоциативный) закон:
  4. для логического сложения: (А Ú B) Ú C = A Ú (B Ú C);
  5. для логического умножения: (A & B) & C = A & (B & C).
  6. для логического сложения: (А Ú B) & C = (A & C) Ú (B & C);
  7. для логического умножения: (A & B) Ú C = (A Ú C) & (B Ú C).
  8. для логического сложения: =  &;
  9. для логического умножения: =   Ú 
  10. для логического сложения: А Ú A = A;
  11. для логического умножения: A & A = A .
  12. для логического сложения: А Ú 1 = 1А Ú 0 = A;
  13. для логического умножения: A & 1 = A, A & 0 = 0.
  14. A &  = 0.
  15. A Ú  = 1.
  16. для логического сложения: А Ú (A & B) = A;
  17. для логического умножения: A & (A Ú B) = A.
  18. Распределительный (дистрибутивный) закон:
  19. Закон общей инверсии (законы де Моргана):
  20. Закон идемпотентности (от латинских слов idem — тот же самый и potens — сильный; дословно — равносильный):
  21. Законы исключения констант:
  22. Закон противоречия:
  23. Закон исключения третьего:
  24. Закон поглощения:
Знание законов логики позволяет проверять правильность рассуждений и доказательств. Основываясь на законах, можно выполнять упрощение сложных логических выражений. Такой процесс замены сложной логической функции более простой, но равносильной ей, называется минимизацией функции.
Некоторые преобразования логических формул похожи на преобразования формул в обычной алгебре (вынесение общего множителя за скобки, использование переместительного и сочетательного законов и т.п.), другие - основаны на свойствах, которыми не обладают операции обычной алгебры (использование распределительного закона для конъюнкции, законов поглощения, склеивания, де Моргана и др.).
Нарушения законов логики приводят к логическим ошибкам и вытекающим из них противоречиям.
Упрощение формул.
Пример 1. Упростить формулу (А Ú В) & (А Ú С).
Решение:
 
  1. Раскроем скобки: (А Ú В) & (А Ú С) = A & A Ú A & C Ú B & A Ú B & C;
  2. По закону идемпотентности A & A =A, следовательно, 
    A & A Ú A & C Ú B & A Ú B & C = A Ú A & C Ú B & A Ú B & C;
  3. В высказываниях А и А & C вынесем за скобки А и используя свойство А + 1= 1, получим 
    A Ú A & C Ú B & A Ú B & C = A & (1 Ú C) Ú B & A Ú B & C = A Ú B & A Ú B & C;
  4. Аналогично предыдущему пункту вынесем за скобки высказывание А
    A Ú B & A Ú B & C = A & (1 Ú B) Ú B & C = A Ú B & C.
Таким образом, мы доказали закон дистрибутивности.
Всякую формулу можно преобразовать так, что в ней не будет отрицаний сложных высказываний - все отрицания будут применяться только к простым высказываниям.
Пример 2. Упростить выражения  так, чтобы в полученных формулах не содержалось отрицания сложных высказываний.
Решение: 
 


Задания
:
 
  1. Установите, какие из следующих предложений являются логическими высказываниями, а какие — нет (объясните почему):
    • "Солнце есть спутник Земли";
    • "2+3?4";
    • "сегодня отличная погода";
    • "в романе Л.Н. Толстого "Война и мир" 3 432 536 слов";
    • "Санкт-Петербург расположен на Неве";
    • "музыка Баха слишком сложна";
    • "первая космическая скорость равна 7.8 км/сек";
    • "железо — металл";
    • "если один угол в треугольнике прямой, то треугольник будет тупоугольным";
    • "если сумма квадратов двух сторон треугольника равна квадрату третьей, то он прямоугольный".
  2. Укажите, какие из высказываний предыдущего задания истинны, какие — ложны, а какие относятся к числу тех, истинность которых трудно или невозможно установить.
  3. Составьте таблицы истинности логических выражений:< >А Ú (¬B Ù C) .¬ (А Ú B) Ù (A Ù ¬ B) .(А Ú B) Ú (C Ù B) .Составьте логическую функцию F (X, Y, Z) для заданной таблицы истинности: 
     
     X  Y  Z  F
     0  0  1  0
     0  1  1  0
     1  0  0  1
  4. Выражение (¬(¬А) Ù С) Ú B Ù (¬C) равносильно: 
    а) A Ú (¬C) ; 
    б) (¬A) Ú B
    в) A Ù (¬C)