- •Тема № 3 Алгоритмические основы вычислительных процессов. Элементы теории алгоритмов и формальных языков.
- •3.3. Сведение произвольных алгоритмов к числовым функциям. Понятие вычислимой функции. Алгоритмическая полнота эвм.
- •3.4. Понятие о формальных языках и порождающих грамматиках. Описание алгоритмических языков с помощью порождающих грамматик.
- •3.5. Необходимость формализации интуитивного понятия алгоритма. Понятие формальной алгоритмической системы. Алгоритмические системы Тьюринга и Поста.
- •Машина тьюринга
- •Машина поста
- •3.6. Понятие алгоритмической неразрешимости массовых проблем. Примеры алгоритмических неразрешимых массовых проблем в области информатики.
- •2.5. Законы алгебры Буля, их применение для преобразования формул булевых функций.
2.5. Законы алгебры Буля, их применение для преобразования формул булевых функций.
Основные законы алгебры Буля
Прежде, чем приступить к изложению основных законов алгебры логики, зафиксируем некоторые очевидные её положения.
1 + a = 1; 0 + a = a; a · 1 = a; a · 0 = 0; a + a = 1.
Эти соотношения легко проверяются по таблице истинности для логической функции ИЛИ подстановкой 0 или 1 вместо аргумента a.
В булевой алгебре все операции осуществляются с логическими переменными и подчиняются законам алгебры логики. Опишем и докажем некоторые из них.
а) Переместительный закон
а + в = в + а; а·в = в·а
б) Сочетательный закон
( а + в ) + с = а + ( в + с) ; (а·в) ·с = а· (в·с)
в) Распределительный закон
а·(в+с) = а·в + а·с ; а + в·с = (а+в) · (а+с)
г) Закон поглощения
а+а·в = а· (1+в)=а ; а· (а + в) = а + а·в = а
д) Закон склеивания
а·в + а·в’ = а· (в + в’) = a · 1 = a; ( а + в ) · (а + в’) = а
е) Идемпотентный закон
a + a = a; a · a = a
Вышеприведённые законы легко проверяются подстановкой 0 и 1 вместо аргументов a, b, c.
ё) Правила де Моргана
Эти правила справедливы для любого числа аргументов.
а + в + с + .... + z = ( а’·в’·с’·...·z’ )’
а·в·с·... = ( а’ + в’ + с’ + ... + z’ )’
Правила можно описать таким алгоритмом.
Для перехода от логической суммы к логическому произведению необходимо проделать следующие операции:
1) проинвертировать все слагаемые в отдельности;
2) заменить знаки сложения знаками умножения;
3) проинвертировать получившееся выражение.
Аналогично выполняется переход от логического произведения к логической сумме. В инженерной практике используются лишь правила де Моргана и закон склеивания.
Кроме основных функций И, ИЛИ, НЕ, в алгебре логики часто используются функции равнозначности (эквивалентности) и неравнозначности (сумма по модулю 2). Для обозначения этих функций применяют следующие символы: равнозначность – ~ и =, сумма по модулю 2 – Å и ≠. Содержание этих функций отражено в таблице.
Смысл этой таблицы прост: если a = b, то функция равнозначности z9 = 1. Если же a ¹ b, то z9 = 0, а функция неравнозначности z6 = 1. Для того, чтобы по таблице истинности построить булеву функцию, достаточно выписать все наборы входных переменных и представить их в виде логической суммы. Если какая-либо переменная входит в набор нулём, то она в символьном виде отображается своей инверсией.
Из таблицы получаем:
z9 = а ~ в = 00 + 11 = а’в’ + ав – равнозначность;
z6 = a Å в = 01 + 10 = а’в + ав’ – сумма по модулю 2, или неравнозначность.
Из таблицы видно, что
z9 = z6’ или z9’ = z6 .
Таким образом,
а’в’ + ав = ( ав’ + а’в )’, или
а~в = ( а Å в )’, а Å в = (а~в)’.
Особое место в алгебре логики занимает функция импликации: a→b = a’+b. Переводится приведённая формула импликации на русский язык так: если истинно a, то b тоже истинно.
Например, пусть a – я выучу все энциклопедии, а b – обыграю всех телезнатоков. Тогда запись a→b будет означать следующее суждение: если я выучу все энциклопедии, то обыграю всех телезнатоков.