Computer Science

Основы

Введение в логику

Логика (др.-греч. λογική — раздел философии, «наука о правильном мышлении», «искусство рассуждения» от λόγος — «речь», «рассуждение», «мысль») — наука о формах, методах и законах интеллектуальной познавательной деятельности, формализуемых с помощью логического языка

Логика - наука о рассуждении, познавательной деятельности, о способах доказательств и опровержений.

Логика - наука, изучающая законы и формы мышления.

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

Возможны только два результата высказывания:

Виды высказываний:

  1. Общие (все, всякий, каждый, ни один, …): все собаки – друзья человека
  2. Частные (некоторые, большинство, часть, меньшинство, …), речь идет о части из общего множества объектов: некоторые собаки злые
  3. Единичные – о конкретном объекте: моя собака самая свирепая

Видеоуроки. Смотрим и конспектируем. Не забудьте в описании сразу кликнуть Еще...

Часто высказывания записывают в виде отношений:
Отношение Читаем Пример
= равно 2+3 = 4 – ложь
<> не равно 7 <> 10 - истина
> больше 8 > 5 - истина
< меньше -5 < -10 - ложь
>= не меньше (больше или равно) -10 >= 10 - ложь
<= не больше (меньше или равно) 9 <= 9 - истина

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

Люди употребляют не только простые, но и сложные предложения. В них простые предложения соединяются союзами И, ИЛИ, ЕСЛИ … ТО … ИНАЧЕ, ТОГДА И ТОЛЬКО ТОГДА …, и т.п.

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

Конъюнкция (умножение логическое)
считается истинным в том и только том случае, когда оба простых выражения являются истинными (A • B)
Дизъюнкция (сложение логическое)
считается истинным в том и только том случае, когда хотя бы одно из простых выражения являются истинными (A + B)
Инверсия (отрицание)
если исходное логическое выражение истинно, то результат отрицания будет ложным, и наоборот, если исходное логическое выражение ложно, то результат отрицания будет истинным (A̅)
Импликация (следование)
истинно во всех случаях, кроме как из истины следует ложь (A → B)
Эквивалентность (тождественность)
истинно тогда и только тогда, когда оба простых логических выражения имеют одинаковую истинность (A ≡ B)
Исключающее ИЛИ (XOR)
возвращает истину только тогда, когда одно из высказываний истинно — 1, а второе ложно — 0 (A ⨁ B)

Видеоуроки. Смотрим и конспектируем. Не забудьте в описании сразу кликнуть Еще...

Алгоритм решения задач

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

  1. Прочитайте условие и выделите простые высказывания;
  2. Обозначьте их латинскими буквами;
  3. Соедините простые высказывания в сложные с помощью логических операций;
  4. Составьте единую логическую формулу из полученных сложных высказываний;
  5. Упростите полученную формулу и вычислите все ее значения либо составьте таблицу истинности для полученного выражения;
  6. Выберите решение (набор значений простых высказываний, при которых построенная формула является верной);
  7. Проверьте, удовлетворяет ли выбранное решение условию исходной задачи.

Таблицы истинности – правила выполнения операций
Это таблица, в которой указаны значения логической функции для всех возможных комбинаций значений ее аргументов.
Число комбинаций (строк таблицы) определяется как 2N, где N — количество аргументов
(т. е. при двух аргументах число строк 22 = 4, при 3 количество строк 23 = 8 и так далее).

Конъюнкция (логическое умножение)

Обозначение: И, and, ∧, &, •

A B A • B
0 0 0
0 1 0
1 0 0
1 1 1

Дизъюнкция (логическое сложение)

Обозначение: Или, or, ∨, |, +

A B A + B
0 0 0
0 1 1
1 0 1
1 1 1

Инверсия (отрицание)

Обозначение: Не, not, ¬, A̅

A
0 1
1 0

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

Обозначение: →, ⇒

A B A → B
0 0 1
0 1 1
1 0 0
1 1 1

Эквивалентность (тождественность)

Обозначение: ≡, ⇔, ↔

A B A ≡ B
0 0 1
0 1 0
1 0 0
1 1 1

Исключающее Или (XOr)

Обозначение: ⊻, ⨁

A B A ⨁ B
0 0 0
0 1 1
1 0 1
1 1 0
Итоговая таблица истинности
A B A • B A + B A ⨁ B A → B A ≡ B
0 0 1 0 0 0 1 1
0 1 1 0 1 1 1 0
1 0 0 0 1 1 0 0
1 1 0 1 1 0 1 1

Здесь логические операции расположены по старшинству:
слева - направо


Законы алгебры логики

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

Закон исключенного третьего
Высказывание может быть либо ложным, либо истинным. Третьего не дано.
A ∨ ¬A = 1     A + A̅ = 1
Закон непротиворечия
Высказывание не может противоречить самому себе.
A ∧ ¬A = 0     A • A̅ = 0
Закон двойного отрицания
Если дважды отрицать высказывание, то получится исходное.
¬¬A = A     A̅̅ = A
Законы повторения (идемпотентности)
Сколько не повторяй, значение не изменится.
A ∨ A = A     A + A = A
A ∧ A = A     A • A = A
Законы коммутативности (переместительные)
От перестановки высказываний значение не изменится.
A ∨ B = B ∨ A     A + B = B + A
A ∧ B = B ∧ A     A • B = B • A
Законы ассоциативности (сочетательные)
От порядка выполнения операций конъюнкции (дизъюнкции) значение не изменится.
(A ∨ B) ∨ C = A ∨ (B ∨ C)     (A + B) + C = A + (B + C)
(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)
A ∧ (B ∨ C) = (A ∧ B)∨(A ∧ C)     A • (B + C) = (A • B)+(A • C)
Законы поглощения
A ∧ (A ∨ B) = A     A • (A + B) = A
A ∨ (A ∧ B) = A     A + (A • B) = 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 ∧ 0 = 0     A • 0 = 0
A ∨ 0 = A     A + 0 = A
A ∧ 1 = A     A • 1 = A
A ∨ 1 = 1     A + 1 = 1

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

Для этого составим таблицы истинности
Закон поглощения
A B A + B A • (A + B)
0 0 0 0
0 1 1 0
1 0 1 1
1 1 1 1

Значения первого и последнего столбца равны, следовательно
A • (A + B) = A

Импликация через отрицание и сложение
A B A ⇒ B A̅ + B
0 0 1 1 1
0 1 1 1 1
1 0 0 0 0
1 1 1 0 1

Значения третьего и последнего столбца равны, следовательно
A ⇒ B = A̅ + B


👨‍🎓 Задача о шахматистах

Кто из учеников: Андрей, Витя, Саша и Дима играет, а кто не играет в шахматы, если известно следующее:

  1. Если Андрей или Витя играет, то Саша не играет; (A + В) ⇒ C̅; истина (1)
  2. Если Витя не играет, то играют Саша и Дима; B̅ ⇒ С • D; истина (1)
  3. Саша играет. С; истина (1)

Решение. Простые высказывания:

Тогда и произведение указанных сложных высказываний:
((A + В) ⇒ C̅) • (B̅ ⇒ С • D) • С должно быть истинным (равным 1)

Упростим это выражение, подставив вместо С его значеие 1:
((A + В) ⇒ 1̅) • (B̅ ⇒ 1 • D) • 1 = 1

Импликацию преобразуем в дизъюнкцию в обеих скобках
(¬(А + В) + 0) • (В + D) = 1

Раскрываем инверсию в 1-й скобке
(А̅ • B̅) • (В + D) = 1
и А̅ • B̅ • (В + D) = 1

Законы дистрибутивности (раскрываем скобки)
А̅ • B̅ • В + А̅ • B̅ • D = 1

B̅ • В = 0, следовательно, А̅ • 0 + А̅ • B̅ • D = 1 и А̅ • B̅ • D = 1

Чтобы произведение было равно 1, нужно чтобы каждый множитель был равен 1 (истина)
А̅ = 1, поэтому А = 0
B̅ = 1, поэтому В = 0
D = 1, третий множитель тоже должен быть равен 1

Ответ задачи: 😎
Андрей и Витя не играют в шахматы,
Саша (по условию задачи) и Дима играют