Булева алгебра
Булевой алгеброй называется непустое множество A с двумя бинарными операциями (аналог конъюнкции), (аналог дизъюнкции), унарной операцией (аналог отрицания) и двумя выделенными элементами: 0 (или Ложь) и 1 (или Истина).
Следующие соотношения могут быть проверены прямым сравнением значений функций в левой и правой части соотношения на всевозможных наборах аргументов.
x ∧ y = y ∧ x
x y = y x
x y = y x
x ∧ (y ∧ z) = (x ∧ y) ∧ z
x (y z) = (x y) z
x (y z) = (x y) z
x (y ∧ z) = (x y) ∧ (x z)
x ∧ (y z) = (x ∧ y) (x ∧ z)
¬¬x = x
¬(x ∧ y) = ¬x ¬y
¬(x y) = ¬x ∧ ¬y
x ∧ x = x
x ∧ ¬x = 0
x ∧ 0 = 0
x ∧ 1 = x
x x = x
x ¬x = 1
x 0 = x
x 1 = 1
x y = (x ∧ ¬y) (¬x ∧ y)
x y = ¬x y
x y = (x ∧ y) (¬x ∧ ¬y)
Булева функция
Булева функция от n аргументов — в дискретной математике — отображение Bn → B, где B = {0,1} — булево множество.
Булева функция задаётся конечным набором значений, что позволяет представить её в виде таблицы истинности, например:
x1 |
x2 |
… |
xn-1 |
xn |
f(x1,x2,…,xn) |
0 |
0 |
… |
0 |
0 |
0 |
0 |
0 |
… |
0 |
1 |
0 |
0 |
0 |
… |
1 |
0 |
1 |
0 |
0 |
… |
1 |
1 |
0 |
1 |
1 |
… |
0 |
0 |
1 |
1 |
1 |
… |
0 |
1 |
0 |
1 |
1 |
… |
1 |
0 |
0 |
1 |
1 |
… |
1 |
1 |
0 |
Конъюнкти́вная норма́льная фо́рма (КНФ) в булевой логике — нормальная форма, в которой булева формула имеет вид конъюнкции дизъюнкций литералов.
Совершенная конъюнктивная нормальная форма (СКНФ) — это такая КНФ, которая удовлетворяет трём условиям:
в ней нет одинаковых элементарных дизъюнкций
в каждой дизъюнкции нет одинаковых пропозициональных переменных
каждая элементарная дизъюнкция содержит каждую пропозициональную букву из входящих в данную КНФ пропозициональных букв.
Дизъюнктивная нормальная форма (ДНФ) в булевой логике — нормальная форма, в которой булева формула имеет вид дизъюнкции конъюнкций литералов.
Совершенная дизъюнктивная нормальная форма (СДНФ) — это такая ДНФ, которая удовлетворяет трём условиям:
в ней нет одинаковых элементарных конъюнкций
в каждой конъюнкции нет одинаковых пропозициональных букв
каждая элементарная конъюнкция содержит каждую пропозициональную букву из входящих в данную ДНФ пропозициональных букв, причём в одинаковом порядке.
Для любой функции алгебры логики существует своя СДНФ, причём единственная.
Практическая часть
Пусть кнопки управления будут иксами, а движение колёс – игреками:
x1 – кнопка «Вперёд»;
x2 – кнопка «Назад»;
x3 – кнопка «Вращение по часовой стрелке»;
y1 – левое колесо вращается вперёд;
y2 – левое колесо вращается назад;
y3 – правое колесо вращается вперёд;
y4 – правое колесо вращается назад;
y5 – переднее колесо вращается вперёд;
y6 – переднее колесо вращается назад.
При нажатии кнопки «Вперёд» (x1), левое колесо вращается вперёд (y1), правое колесо вращается вперёд (y3), переднее колесо вращается вперёд (y5) – платформа едет вперёд.
При нажатии кнопки «Назад» (x2), левое колесо вращается назад (y2), правое колесо вращается назад (y4), переднее колесо вращается назад (y6) – платформа едет назад.
При нажатии кнопки «Вращение по часовой стрелке» (x3), левое колесо вращается вперёд (y1), правое колесо вращается назад (y4), переднее колесо вращается вперёд (y5) – платформа вращается по часовой стрелки.
Составим таблицу истинности:
x1 |
x2 |
x3 |
y1 |
y2 |
y3 |
y4 |
y5 |
y6 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
Используя таблицу истинности, составим СДНФ и приведём их к ПФ с минимальным количеством операций:
y1 = x1 ᴧ ¬x2 ᴧ ¬x3 v ¬x1 ᴧ ¬x2 ᴧ x3 = ¬x2 ᴧ (x1 ᴧ ¬x3 v ¬x1 ᴧ x3) = ¬x2 ᴧ (x1 ∆ x3);
y2 = ¬x1 ᴧ x2 ᴧ ¬x3;
y3 = x1 ᴧ ¬x2 ᴧ ¬x3;
y4 = ¬x1 ᴧ x2 ᴧ ¬x3 v ¬x1 ᴧ ¬x2 ᴧ x3 = ¬x1 ᴧ (x2 ᴧ ¬x3 v ¬x2 ᴧ x3) = ¬x1 ᴧ (x2 ∆ x3);
y5 = x1 ᴧ ¬x2 ᴧ ¬x3 v ¬x1 ᴧ ¬x2 ᴧ x3 = ¬x2 ᴧ (x1 ᴧ ¬x3 v ¬x1 ᴧ x3) = ¬x2 ᴧ (x1 ∆ x3);
y6 = ¬x1 ᴧ x2 ᴧ ¬x3.
А теперь построим таблицу истинности для каждой формулы:
y3(x1,x2,x3)
x1 |
x2 |
x3 |
¬x2 |
¬x3 |
x1 ᴧ ¬x2 |
y1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
y4(x1,x2,x3)
x1 |
x2 |
x3 |
¬x1 |
x2 ∆ x3 |
y2 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
0 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
y1,5(x1,x2,x3)
x1 |
x2 |
x3 |
¬x2 |
x1 ∆ x3 |
y3,5 |
0 |
0 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
y2,6(x1,x2,x3)
x1 |
x2 |
x3 |
¬x1 |
¬x3 |
¬x1 ᴧ x2 |
y4,6 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
0 |
0 |
1 |
0 |
1 |
1 |
1 |
1 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
0 |
1 |
0 |
0 |
0 |
0 |
1 |
1 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
1 |
0 |
0 |
0 |
0 |
Заметим, что игреки получились такие же, как и в первой таблице истинности.