Определение булевой функции — различия между версиями
Algo1s041 (обсуждение | вклад) м (→Тождественность и двойственность) |
Algo1s041 (обсуждение | вклад) (→Основные сведения) |
||
Строка 11: | Строка 11: | ||
<center> | <center> | ||
− | {|align="center" style=" | + | |
+ | |||
+ | |||
+ | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
|+ | |+ | ||
+ | !colspan="6"|Таблица истинности | ||
|-align="center" | |-align="center" | ||
! <tex>x_1</tex> || <tex>x_2</tex> || <tex>...</tex> || <tex>x_n</tex> || <tex>f(x_1,x_2,...,x_n)</tex> | ! <tex>x_1</tex> || <tex>x_2</tex> || <tex>...</tex> || <tex>x_n</tex> || <tex>f(x_1,x_2,...,x_n)</tex> | ||
Строка 23: | Строка 27: | ||
|-align="center" | |-align="center" | ||
| <tex>1</tex> || <tex>1</tex> || <tex>...</tex> || <tex>0</tex> || <tex>f(1,1,...,0)</tex> | | <tex>1</tex> || <tex>1</tex> || <tex>...</tex> || <tex>0</tex> || <tex>f(1,1,...,0)</tex> | ||
− | |-align="center | + | |-align="center" |
| <tex>\vdots</tex> || <tex>\vdots</tex> || <tex>\vdots</tex> || <tex>\vdots</tex> || <tex>\vdots</tex> | | <tex>\vdots</tex> || <tex>\vdots</tex> || <tex>\vdots</tex> || <tex>\vdots</tex> || <tex>\vdots</tex> | ||
|-align="center" | |-align="center" | ||
Строка 40: | Строка 44: | ||
Таблица значений булевых функций от одной переменной: | Таблица значений булевых функций от одной переменной: | ||
− | {| | + | |
+ | <center> | ||
+ | |||
+ | |||
+ | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
+ | |+ | ||
+ | !colspan="5"|Функции от одной переменной | ||
|-align="center" | |-align="center" | ||
− | ! | + | ! |
|! width="12%" | <tex>0</tex> | |! width="12%" | <tex>0</tex> | ||
|! width="12%" | <tex>x</tex> | |! width="12%" | <tex>x</tex> | ||
Строка 49: | Строка 59: | ||
|-align="center" | |-align="center" | ||
!0 | !0 | ||
− | |0||0||1||1 | + | |<tex>0</tex>||<tex>0</tex>||<tex>1</tex>||<tex>1</tex> |
|-align="center" | |-align="center" | ||
!1 | !1 | ||
− | |0||1||0||1 | + | |<tex>0</tex>||<tex>1</tex>||<tex>0</tex>||<tex>1</tex> |
− | |-align="center" | + | |-align="center" |
!Сохраняет 0 | !Сохраняет 0 | ||
− | | | + | |✓||✓|| || |
− | |-align="center" | + | |-align="center" |
!Сохраняет 1 | !Сохраняет 1 | ||
− | | | + | | ||✓|| ||✓ |
− | |-align="center" | + | |-align="center" |
!Самодвойственная | !Самодвойственная | ||
− | | | + | | ||✓||✓|| |
− | |-align="center" | + | |-align="center" |
!Монотонная | !Монотонная | ||
− | | | + | |✓||✓|| ||✓ |
− | |-align="center" | + | |-align="center" |
!Линейная | !Линейная | ||
− | | | + | |✓||✓||✓||✓ |
|} | |} | ||
+ | </center> | ||
Названия булевых функций от одной переменной: | Названия булевых функций от одной переменной: | ||
− | {| | + | <center> |
+ | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
+ | |+ | ||
+ | |-align="center" | ||
!Обозначение | !Обозначение | ||
!Название | !Название | ||
|- | |- | ||
!<tex>0</tex> | !<tex>0</tex> | ||
− | |тождественный ноль, тождественная ложь, тождественное "НЕТ" | + | |<font color="black">тождественный ноль, тождественная ложь, тождественное "НЕТ"</font> |
|- | |- | ||
!<tex>x</tex> | !<tex>x</tex> | ||
− | |тождественная функция, логическое "ДА", "YES"(англ.) | + | |<font color="black">тождественная функция, логическое "ДА", "YES"(англ.)</font> |
|- | |- | ||
!<tex>\bar x,\ \neg x,\ x'</tex> | !<tex>\bar x,\ \neg x,\ x'</tex> | ||
− | |отрицание, логическое "НЕТ", "НЕ", "НИ", "NOT"(англ.), "NO"(англ.) | + | |<font color="black">отрицание, логическое "НЕТ", "НЕ", "НИ", "NOT"(англ.), "NO"(англ.)</font> |
|- | |- | ||
!<tex>1</tex> | !<tex>1</tex> | ||
− | |тождественная единица, тождественная истина, тождественное "ДА", тавтология | + | |<font color="black">тождественная единица, тождественная истина, тождественное "ДА", тавтология</font> |
|} | |} | ||
− | + | </center> | |
=== Бинарные функции === | === Бинарные функции === | ||
При <tex>n = 2</tex> число булевых функций равно <tex>{2^2}^2 = 2^4 = 16</tex>. | При <tex>n = 2</tex> число булевых функций равно <tex>{2^2}^2 = 2^4 = 16</tex>. | ||
Таблица значений булевых функций от двух переменных: | Таблица значений булевых функций от двух переменных: | ||
− | {| | + | <center> |
+ | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
+ | |+ | ||
+ | !colspan="18"|Функции от одной переменной | ||
|-align="center" | |-align="center" | ||
− | !x||y | + | !<font color="black">x</font>||<font color="black">y</font> |
|! width="5%" | <tex>0</tex> | |! width="5%" | <tex>0</tex> | ||
|! width="5%" | <tex>x \land y</tex> | |! width="5%" | <tex>x \land y</tex> | ||
Строка 112: | Строка 129: | ||
|! width="5%" | <tex>1</tex> | |! width="5%" | <tex>1</tex> | ||
|-align="center" | |-align="center" | ||
− | !0||0 | + | !<font color="black">0</font>||<font color="black">0</font> |
|0||0||0||0||0||0||0||0||1||1||1||1||1||1||1||1 | |0||0||0||0||0||0||0||0||1||1||1||1||1||1||1||1 | ||
|-align="center" | |-align="center" | ||
− | !0||1 | + | !<font color="black">0</font>||<font color="black">1</font> |
|0||0||0||0||1||1||1||1||0||0||0||0||1||1||1||1 | |0||0||0||0||1||1||1||1||0||0||0||0||1||1||1||1 | ||
|-align="center" | |-align="center" | ||
− | !1||0 | + | !<font color="black">1</font>||<font color="black">0</font> |
|0||0||1||1||0||0||1||1||0||0||1||1||0||0||1||1 | |0||0||1||1||0||0||1||1||0||0||1||1||0||0||1||1 | ||
|-align="center" | |-align="center" | ||
− | !1||1 | + | !<font color="black">1</font>||<font color="black">1</font> |
|0||1||0||1||0||1||0||1||0||1||0||1||0||1||0||1 | |0||1||0||1||0||1||0||1||0||1||0||1||0||1||0||1 | ||
|-align="center" bgcolor=#EEEEFF | |-align="center" bgcolor=#EEEEFF | ||
− | !colspan="2"|Сохраняет 0 | + | !colspan="2"|<font color="black">Сохраняет 0</font> |
− | | | + | |✓||✓||✓||✓||✓||✓||✓||✓|| || || || || || || || |
|-align="center" bgcolor=#EEEEFF | |-align="center" bgcolor=#EEEEFF | ||
− | !colspan="2"|Сохраняет 1 | + | !colspan="2"|<font color="black">Сохраняет 1</font> |
− | | | + | | ||✓|| ||✓|| ||✓|| ||✓|| ||✓|| ||✓|| ||✓|| ||✓ |
|-align="center" bgcolor=#EEEEFF | |-align="center" bgcolor=#EEEEFF | ||
− | !colspan="2"|Самодвойственная | + | !colspan="2"|<font color="black">Самодвойственная</font> |
− | | | + | | || || ||✓|| ||✓|| || || || ||✓|| ||✓|| || || |
|-align="center" bgcolor=#EEEEFF | |-align="center" bgcolor=#EEEEFF | ||
− | !colspan="2"|Монотонная | + | !colspan="2"|<font color="black">Монотонная</font> |
− | | | + | |✓||✓|| ||✓|| ||✓|| ||✓|| || || || || || || ||✓ |
|-align="center" bgcolor=#EEEEFF | |-align="center" bgcolor=#EEEEFF | ||
− | !colspan="2"|Линейная | + | !colspan="2"|<font color="black">Линейная</font> |
− | | | + | |✓|| || ||✓|| ||✓||✓|| || ||✓||✓|| ||✓|| || ||✓ |
|} | |} | ||
− | + | </center> | |
Названия булевых функций от двух переменных: | Названия булевых функций от двух переменных: | ||
− | {| class=" | + | <center> |
+ | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | ||
+ | |+ | ||
+ | |-align="center" | ||
!Обозначение | !Обозначение | ||
!Другие обозначения | !Другие обозначения | ||
Строка 148: | Строка 168: | ||
!<tex>0</tex> | !<tex>0</tex> | ||
| | | | ||
− | |тождественный ноль, тождественная ложь, тождественное "НЕТ" | + | |<font color="black">тождественный ноль, тождественная ложь, тождественное "НЕТ"</font> |
|- | |- | ||
!<tex>x \land y</tex> | !<tex>x \land y</tex> | ||
− | |align = center|<tex>x \cdot y,\ xy,\ x \And y,\ x\ AND\ y,\ AND(x, y),\ min(x, y),</tex> | + | |align = center|<tex>x \cdot y,\ xy,\ x \And y,\ x\ AND\ y,\ AND(x, y),\ min(x, y), x </tex> <font color="black">И</font> <tex>y,</tex> <font color="black">И</font><tex>(x, y)</tex> |
− | |2И, конъюнкция | + | |<font color="black">2И, конъюнкция</font> |
|- | |- | ||
!<tex>x \nrightarrow y</tex> | !<tex>x \nrightarrow y</tex> | ||
|align = center|<tex>x > y,\ \neg(x \rightarrow y),\ x\ GT\ y,\ GT(x,\ y)</tex> | |align = center|<tex>x > y,\ \neg(x \rightarrow y),\ x\ GT\ y,\ GT(x,\ y)</tex> | ||
− | |больше, инверсия прямой импликации | + | |<font color="black">больше, инверсия прямой импликации</font> |
|- | |- | ||
!<tex>x</tex> | !<tex>x</tex> | ||
− | |align = center|<tex>YES1(x,y),</tex> | + | |align = center|<tex>YES1(x,y),</tex> <font color="black">ДА1</font><tex>(x, y)</tex> |
− | |первый операнд | + | |<font color="black">первый операнд</font> |
|- | |- | ||
!<tex>x \nleftarrow y</tex> | !<tex>x \nleftarrow y</tex> | ||
|align = center|<tex>x < y,\ \neg(x \leftarrow y),\ x\ LT\ y,\ LT(x, y)</tex> | |align = center|<tex>x < y,\ \neg(x \leftarrow y),\ x\ LT\ y,\ LT(x, y)</tex> | ||
− | |меньше, инверсия обратной импликации | + | |<font color="black">меньше, инверсия обратной импликации</font> |
|- | |- | ||
!<tex>y</tex> | !<tex>y</tex> | ||
− | |align = center|<tex>YES2(x, y),</tex> | + | |align = center|<tex>YES2(x, y),</tex> <font color="black">ДА2</font><tex>(x, y)</tex> |
− | |второй операнд | + | |<font color="black">второй операнд</font> |
|- | |- | ||
!<tex>x \oplus y</tex> | !<tex>x \oplus y</tex> | ||
|align = center|<tex>x + _2 y,\ x \not = y,\ x >< y,\ x <> y,\ x\ XOR\ y,\ XOR(x,y)</tex> | |align = center|<tex>x + _2 y,\ x \not = y,\ x >< y,\ x <> y,\ x\ XOR\ y,\ XOR(x,y)</tex> | ||
− | |сложение по модулю 2, не равно, ксор, исключающее «или» | + | |<font color="black">сложение по модулю 2, не равно, ксор, исключающее «или»</font> |
|- | |- | ||
!<tex>x \lor y</tex> | !<tex>x \lor y</tex> | ||
− | |align = center|<tex>x + y,\ x\ OR\ y,\ OR(x,y),\ max(x,y),</tex> | + | |align = center|<tex>x + y,\ x\ OR\ y,\ OR(x,y),\ max(x,y),</tex> <tex>x </tex><font color="black">ИЛИ </font><tex>y,</tex><font color="black"> ИЛИ</font><tex>(x, y)</tex> |
− | |2ИЛИ, дизъюнкция | + | |<font color="black">2ИЛИ, дизъюнкция</font> |
|- | |- | ||
!<tex>x \downarrow y</tex> | !<tex>x \downarrow y</tex> | ||
− | |align = center|<tex>x\ NOR\ y,\ NOR(x,y)</tex> | + | |align = center|<tex>x\ NOR\ y,\ NOR(x,y)</tex> <tex>x </tex><font color="black">ИЛИ-НЕ</font> <tex>y,</tex> <font color="black">ИЛИ-НЕ</font><tex>(x, y)</tex> |
− | |НЕ- 2ИЛИ, 2ИЛИ-НЕ, антидизъюнкция, функция Да́ггера, функция Ве́бба, стрелка Пи́рса | + | |<font color="black">НЕ-2ИЛИ, 2ИЛИ-НЕ, антидизъюнкция, функция Да́ггера, функция Ве́бба, стрелка Пи́рса</font> |
|- | |- | ||
!<tex>x = y</tex> | !<tex>x = y</tex> | ||
|align = center|<tex>x \equiv y, x EQV y, EQV(x,y), x \sim y, x \leftrightarrow y</tex> | |align = center|<tex>x \equiv y, x EQV y, EQV(x,y), x \sim y, x \leftrightarrow y</tex> | ||
− | |равенство, эквивалентность | + | |<font color="black">равенство, эквивалентность</font> |
|- | |- | ||
!<tex>\neg y</tex> | !<tex>\neg y</tex> | ||
− | |align = center|<tex>NOT2(x, y),\ y',\ \bar{y},</tex> | + | |align = center|<tex>NOT2(x, y),\ y',\ \bar{y},</tex> <font color="black">НЕ2</font><tex>(x, y)</tex> |
− | |отрицание (негация, инверсия) второго операнда | + | |<font color="black">отрицание (негация, инверсия) второго операнда</font> |
|- | |- | ||
!<tex>x \leftarrow y</tex> | !<tex>x \leftarrow y</tex> | ||
|align = center|<tex>x \geq y,\ x \subset y,\ x\ GE\ y,\ GE(x, y)</tex> | |align = center|<tex>x \geq y,\ x \subset y,\ x\ GE\ y,\ GE(x, y)</tex> | ||
− | |больше или равно, обратная импликация (от второго аргумента к первому) | + | |<font color="black">больше или равно, обратная импликация (от второго аргумента к первому)</font> |
|- | |- | ||
!<tex>\neg x</tex> | !<tex>\neg x</tex> | ||
− | |align = center|<tex>NOT1(x,y),\ x',\ \bar{x},</tex> | + | |align = center|<tex>NOT1(x,y),\ x',\ \bar{x},</tex> <font color="black">НЕ1</font><tex>(x, y)</tex> |
− | |отрицание (негация, инверсия) первого операнда | + | |<font color="black">отрицание (негация, инверсия) первого операнда</font> |
|- | |- | ||
!<tex>x \rightarrow y</tex> | !<tex>x \rightarrow y</tex> | ||
|align = center|<tex>x \leq y,\ x \supset y,\ x\ LE\ y,\ LE(x,y)</tex> | |align = center|<tex>x \leq y,\ x \supset y,\ x\ LE\ y,\ LE(x,y)</tex> | ||
− | |меньше или равно, прямая (материальная) импликация (от первого аргумента ко второму) | + | |<font color="black">меньше или равно, прямая (материальная) импликация (от первого аргумента ко второму)</font> |
|- | |- | ||
!<tex>x \triangledown y</tex> | !<tex>x \triangledown y</tex> | ||
− | |align = center|<tex>x \mid y,\ x\ NAND\ y,\ NAND(x,y),</tex> | + | |align = center|<tex>x \mid y,\ x\ NAND\ y,\ NAND(x,y),</tex> <tex>x </tex> <font color="black">И-НЕ </font><tex>y,</tex> <font color="black">И-НЕ</font><tex>(x, y)</tex> |
− | |НЕ-2И, 2И-НЕ, антиконъюнкция, Штрих Шеффера | + | |<font color="black">НЕ-2И, 2И-НЕ, антиконъюнкция, Штрих Шеффера</font> |
|- | |- | ||
!<tex>1</tex> | !<tex>1</tex> | ||
| | | | ||
− | |тождественная единица, тождественная истина, тождественное "ДА", тавтология | + | |<font color="black">тождественная единица, тождественная истина, тождественное "ДА", тавтология</font> |
|} | |} | ||
− | + | </center> | |
=== Тернарные функции === | === Тернарные функции === | ||
При <tex>n = 3</tex> число булевых функций равно <tex>{2^2}^3 = 2^8 = 256</tex>. Некоторые из них определены в следующей таблице: | При <tex>n = 3</tex> число булевых функций равно <tex>{2^2}^3 = 2^8 = 256</tex>. Некоторые из них определены в следующей таблице: | ||
− | {| class=" | + | <center> |
− | + | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | |
+ | |+ | ||
+ | !colspan="14"|Таблица истинности некоторых тернарных функций | ||
+ | |-align="center" | ||
!class="dark" style="font-weight:normal"| <tex>x</tex> | !class="dark" style="font-weight:normal"| <tex>x</tex> | ||
!class="dark" style="font-weight:normal"| <tex>y</tex> | !class="dark" style="font-weight:normal"| <tex>y</tex> | ||
Строка 230: | Строка 253: | ||
!style="font-weight:normal"| <tex>max(x,y,z)</tex> | !style="font-weight:normal"| <tex>max(x,y,z)</tex> | ||
|- align="center" | |- align="center" | ||
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" |<font color="black"> 0</font> |
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
|1||1||0||1 ||0||1||0||0||0||0 ||0 | |1||1||0||1 ||0||1||0||0||0||0 ||0 | ||
|- align="center" | |- align="center" | ||
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
|0||1||1||1 ||0||0||1||0||0||0 ||1 | |0||1||1||1 ||0||0||1||0||0||0 ||1 | ||
|- align="center" | |- align="center" | ||
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
|0||1||1||1 ||0||0||1||0||0||0 ||1 | |0||1||1||1 ||0||0||1||0||0||0 ||1 | ||
|- align="center" | |- align="center" | ||
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
|0||0||1||1 ||0||0||0||1||1||1 ||1 | |0||0||1||1 ||0||0||0||1||1||1 ||1 | ||
|- align="center" | |- align="center" | ||
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
|0||1||1||1 ||0||0||1||0||1||0 ||1 | |0||1||1||1 ||0||0||1||0||1||0 ||1 | ||
|- align="center" | |- align="center" | ||
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
|0||0||1||1 ||0||0||0||1||0||1 ||1 | |0||0||1||1 ||0||0||0||1||0||1 ||1 | ||
|- align="center" | |- align="center" | ||
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
− | !class="shadow" style="font-weight:normal" | 0 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 0</font> |
|0||0||1||1 ||0||0||0||1||1||1 ||1 | |0||0||1||1 ||0||0||0||1||1||1 ||1 | ||
|- align="center" | |- align="center" | ||
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
− | !class="shadow" style="font-weight:normal" | 1 | + | !class="shadow" style="font-weight:normal" | <font color="black"> 1</font> |
|0||0||0||0 ||1||1||1||1||1||1 ||1 | |0||0||0||0 ||1||1||1||1||1||1 ||1 | ||
|} | |} | ||
+ | </center> | ||
Названия булевых функций трех переменных: | Названия булевых функций трех переменных: | ||
− | {| class=" | + | <center> |
− | + | {| class="wikitable" align="center" style="color: blue; background-color:#ffffcc;" cellpadding="10" | |
+ | |+ | ||
+ | |-align="center" | ||
!Обозначения | !Обозначения | ||
!Другие обозначения | !Другие обозначения | ||
Строка 280: | Строка 306: | ||
!<tex>x \downarrow y \downarrow z</tex> | !<tex>x \downarrow y \downarrow z</tex> | ||
|align = center|<tex>\downarrow (x,y,z) = Webb_2 (x,y,z)</tex> | |align = center|<tex>\downarrow (x,y,z) = Webb_2 (x,y,z)</tex> | ||
− | |3-ИЛИ-НЕ, функция Вебба, функция Даггера, стрелка Пирса | + | |<font color="black"> 3-ИЛИ-НЕ, функция Вебба, функция Даггера, стрелка Пирса</font> |
|- | |- | ||
!<tex>\neg (\geq 2(x,y,z))</tex> | !<tex>\neg (\geq 2(x,y,z))</tex> | ||
| | | | ||
− | |Переключатель по большинству с инверсией, 3-ППБ-НЕ, мажоритарный клапан с инверсией | + | |<font color="black">Переключатель по большинству с инверсией, 3-ППБ-НЕ, мажоритарный клапан с инверсией</font> |
|- | |- | ||
!<tex>x \not = y \not = z</tex> | !<tex>x \not = y \not = z</tex> | ||
|align = center|<tex>[\not =(x,y,z)] = NE(x,y,z)</tex> | |align = center|<tex>[\not =(x,y,z)] = NE(x,y,z)</tex> | ||
− | |Неравенство | + | |<font color="black">Неравенство</font> |
|- | |- | ||
!<tex>x \mid y \mid z</tex> | !<tex>x \mid y \mid z</tex> | ||
|align = center|<tex>\mid(x,y,z)</tex> | |align = center|<tex>\mid(x,y,z)</tex> | ||
− | |3-И-НЕ, штрих Шеффера | + | |<font color="black">3-И-НЕ, штрих Шеффера</font> |
|- | |- | ||
!<tex>x \land y \land z</tex> | !<tex>x \land y \land z</tex> | ||
− | |align = center|<tex>\land (x,y,z) = (x\ AND\ y\ AND\ z) = AND(x,y,z) = min(x,y,z)</tex> | + | |align = center|<tex>\land (x,y,z) = (x\ AND\ y\ AND\ z) = AND(x,y,z) = min(x,y,z) = <br/> (x</tex> <font color="black"> И</font><tex> y</tex> <font color="black"> И</font><tex> z) = </tex> <font color="black">И</font><tex>(x,y,z)</tex> |
− | |3-И, минимум | + | |<font color="black">3-И, минимум</font> |
|- | |- | ||
!<tex>x=y=z</tex> | !<tex>x=y=z</tex> | ||
|align = center|<tex>[=(x,y,z)] = EQV(x,y,z)</tex> | |align = center|<tex>[=(x,y,z)] = EQV(x,y,z)</tex> | ||
− | |Равенство | + | |<font color="black">Равенство</font> |
|- | |- | ||
!<tex>x \oplus y \oplus z</tex> | !<tex>x \oplus y \oplus z</tex> | ||
|align = center|<tex>x +_2 y +_2 z = \oplus (x,y,z) = +_2 (x,y,z)</tex> | |align = center|<tex>x +_2 y +_2 z = \oplus (x,y,z) = +_2 (x,y,z)</tex> | ||
− | |Тернарное сложение по модулю 2 | + | |<font color="black">Тернарное сложение по модулю 2</font> |
|- | |- | ||
!<tex>\geq 2(x,y,z)</tex> | !<tex>\geq 2(x,y,z)</tex> | ||
− | |align = center| | + | |align = center|<tex>(x </tex> <font color="black">И</font> <tex>y) </tex><font color="black">ИЛИ </font><tex>(y</tex><font color="black"> И</font><tex> z)</tex><font color="black"> ИЛИ</font> <tex>(z </tex><font color="black">И</font><tex> x)</tex> |
− | |переключатель по большинству, 3-ППБ, мажоритарный клапан | + | |<font color="black">переключатель по большинству, 3-ППБ, мажоритарный клапан</font> |
|- | |- | ||
!<tex>f_1</tex> | !<tex>f_1</tex> | ||
| | | | ||
− | |Разряд займа при тернарном вычитании | + | |<font color="black">Разряд займа при тернарном вычитании</font> |
|- | |- | ||
!<tex>f_2</tex> | !<tex>f_2</tex> | ||
| | | | ||
− | |Разряд переноса при тернарном сложении | + | |<font color="black">Разряд переноса при тернарном сложении</font> |
|- | |- | ||
!<tex>x+y+z</tex> | !<tex>x+y+z</tex> | ||
− | |align = center|<tex>+(x,y,z) = max(x,y,z) = (x\ OR\ y\ OR\ z) = OR(x,y,z) =</tex> | + | |align = center|<tex>+(x,y,z) = max(x,y,z) = (x\ OR\ y\ OR\ z) = OR(x,y,z) = (x </tex> <font color="black">ИЛИ</font><tex> y </tex><font color="black"> ИЛИ</font><tex> z) = </tex><font color="black"> ИЛИ</font><tex>(x,y,z)</tex> |
− | |3-ИЛИ, максимум | + | |<font color="black">3-ИЛИ, максимум</font> |
|} | |} | ||
Версия 00:19, 7 января 2016
Определение: |
Бу́лева фу́нкция (или логи́ческая функция, или функция а́лгебры ло́гики) от | переменных — отображение → , где — булево множество.
Элементы булева множества 1 и 0 обычно интерпретируют как логические значения «истинно» и «ложно», хотя в общем случае они рассматриваются как формальные символы, не несущие определенного смысла. Элементы декартова произведения
называют булевыми векторами. Множество всех булевых функций от любого числа переменных часто обозначается , а от n переменных — . Булевы функции названы так по фамилии математика Джорджа Буля.Основные сведения
Определение: |
А́рность функции — количество ее аргументов. |
Каждая булева функция арности n полностью определяется заданием своих значений на своей области определения, то есть на всех булевых векторах длины n. Число таких векторов равно
. Поскольку на каждом векторе булева функция может принимать значение либо 0, либо 1, то количество всех n-арных булевых функций равно . То, что каждая булева функция задаётся конечным массивом данных, позволяет представлять их в виде таблиц. Такие таблицы носят название таблиц истинности и в общем случае имеют вид:
Таблица истинности | |||||
---|---|---|---|---|---|
Практически все булевы функции малых арностей (0, 1, 2 и 3) сложились исторически и имеют конкретные имена. Если значение функции не зависит от одной из переменных (то есть строго говоря для любых двух булевых векторов, отличающихся лишь в значении этой переменной, значение функции на них совпадает), то эта переменная называется фиктивной.
Нульарные функции
При
количество булевых функций равно , первая из них тождественно равна 0, а вторая 1. Их называют булевыми константами — тождественный нуль и тождественная единица.Унарные функции
При
число булевых функций равно .Таблица значений булевых функций от одной переменной:
Функции от одной переменной | ||||
---|---|---|---|---|
0 | ||||
1 | ||||
Сохраняет 0 | ✓ | ✓ | ||
Сохраняет 1 | ✓ | ✓ | ||
Самодвойственная | ✓ | ✓ | ||
Монотонная | ✓ | ✓ | ✓ | |
Линейная | ✓ | ✓ | ✓ | ✓ |
Названия булевых функций от одной переменной:
Обозначение | Название |
---|---|
тождественный ноль, тождественная ложь, тождественное "НЕТ" | |
тождественная функция, логическое "ДА", "YES"(англ.) | |
отрицание, логическое "НЕТ", "НЕ", "НИ", "NOT"(англ.), "NO"(англ.) | |
тождественная единица, тождественная истина, тождественное "ДА", тавтология |
Бинарные функции
При
число булевых функций равно .Таблица значений булевых функций от двух переменных:
Функции от одной переменной | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
x | y | ||||||||||||||||
0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
0 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 1 | 1 |
1 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 | 0 | 1 |
Сохраняет 0 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||
Сохраняет 1 | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||
Самодвойственная | ✓ | ✓ | ✓ | ✓ | |||||||||||||
Монотонная | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | |||||||||||
Линейная | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Названия булевых функций от двух переменных:
Обозначение | Другие обозначения | Название |
---|---|---|
тождественный ноль, тождественная ложь, тождественное "НЕТ" | ||
И И | 2И, конъюнкция | |
больше, инверсия прямой импликации | ||
ДА1 | первый операнд | |
меньше, инверсия обратной импликации | ||
ДА2 | второй операнд | |
сложение по модулю 2, не равно, ксор, исключающее «или» | ||
ИЛИ ИЛИ | 2ИЛИ, дизъюнкция | |
ИЛИ-НЕ ИЛИ-НЕ | НЕ-2ИЛИ, 2ИЛИ-НЕ, антидизъюнкция, функция Да́ггера, функция Ве́бба, стрелка Пи́рса | |
равенство, эквивалентность | ||
НЕ2 | отрицание (негация, инверсия) второго операнда | |
больше или равно, обратная импликация (от второго аргумента к первому) | ||
НЕ1 | отрицание (негация, инверсия) первого операнда | |
меньше или равно, прямая (материальная) импликация (от первого аргумента ко второму) | ||
И-НЕ И-НЕ | НЕ-2И, 2И-НЕ, антиконъюнкция, Штрих Шеффера | |
тождественная единица, тождественная истина, тождественное "ДА", тавтология |
Тернарные функции
При
число булевых функций равно . Некоторые из них определены в следующей таблице:Таблица истинности некоторых тернарных функций | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | 0 | 0 | 1 | 1 | 0 | 1 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 1 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 0 | 0 | 1 |
0 | 1 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
1 | 0 | 0 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 0 | 1 | 1 |
1 | 1 | 0 | 0 | 0 | 1 | 1 | 0 | 0 | 0 | 1 | 1 | 1 | 1 |
1 | 1 | 1 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
Названия булевых функций трех переменных:
Обозначения | Другие обозначения | Названия |
---|---|---|
3-ИЛИ-НЕ, функция Вебба, функция Даггера, стрелка Пирса | ||
Переключатель по большинству с инверсией, 3-ППБ-НЕ, мажоритарный клапан с инверсией | ||
Неравенство | ||
3-И-НЕ, штрих Шеффера | ||
И И И | 3-И, минимум | |
Равенство | ||
Тернарное сложение по модулю 2 | ||
И ИЛИ И ИЛИ И | переключатель по большинству, 3-ППБ, мажоритарный клапан | |
Разряд займа при тернарном вычитании | ||
Разряд переноса при тернарном сложении | ||
ИЛИ ИЛИ ИЛИ | 3-ИЛИ, максимум |
Представление функции формулой
Определение: |
Если выбрать некоторый набор булевых функций , то с использованием выбранных функций можно записать некоторые другие булевы функции. Такая запись булевой функции называется формулой. |
Например, если
, то функция представляется в видеТождественность и двойственность
Определение: |
Две булевы функции тождественны друг другу, если на любых одинаковых наборах аргументов они принимают равные значения. |
Тождественность функций f и g можно записать, например, так:
Просмотрев таблицы истинности булевых функций, легко получить такие тождества:
А проверка таблиц, построенных для некоторых суперпозиций, даст следующие результаты:
(законы де Моргана) |
(дистрибутивность конъюнкции и дизъюнкции)
Определение: |
Функция | называется двойственной функции , если .
Легко показать, что в этом равенстве f и g можно поменять местами, то есть функции f и g двойственны друг другу. Из простейших функций двойственны друг другу константы 0 и 1, а из законов де Моргана следует двойственность конъюнкции и дизъюнкции. Тождественная функция, как и функция отрицания, двойственна сама себе.
Если в булевом тождестве заменить каждую функцию на двойственную ей, снова получится верное тождество. В приведённых выше формулах легко найти двойственные друг другу пары.
Суперпозиции
Полнота системы, критерий Поста
Представление булевых функций
Теорема Поста открывает путь к представлению булевых функций синтаксическим способом, который в ряде случаев оказывается намного удобнее чем таблицы истинности. Отправной точкой здесь служит нахождение некоторой полной системы функций
. Тогда каждая булева функция сможет быть представлена некоторым термом в сигнатуре , который в данном случае называют также формулой. Относительно выбраной системы функций полезно знать ответы на следующие вопросы:- Как построить по данной функции представляющую её формулу?
- Как проверить, что две разные формулы эквивалентны, то есть задают одну и ту же функцию?
- В частности: существует ли способ приведения произвольной формулы к эквивалентной её канонической форме, такой что, две формулы эквивалентны тогда и только тогда, когда их канонические формы совпадают?
- Как по данной функции построить представляющую её формулу с теми или иными заданными свойствами (например, наименьшего размера), и возможно ли это?
Положительные ответы на эти и другие вопросы существенно увеличивают прикладное значение выбранной системы функций.
Дизъюнктивная нормальная форма (ДНФ)
Конъюнктивная нормальная форма (КНФ)
Полином Жегалкина
Схемы из функциональных элементов
Литература
- Гаврилов Г. П., Сапоженко А. А. Сборник задач по дискретной математике. — М.: Наука, 1969.
- Кузнецов О. П., Адельсон-Вельский Г. М. Дискретная математика для инженера. — М.: «Энергия», 1980. — 344 с.
- Марченков С. С. Замкнутые классы булевых функций. — М.: Физматлит, 2000.
- Яблонский С. В. Введение в дискретную математику. — М.: Наука, 1986.
- Алексеев В. Б. Дискретная математика (курс лекций, II семестр). Сост. А. Д. Поспелов
- Быкова С. В., Буркатовская Ю. Б., Булевы функции, учебно-методический комплекс, Томск, 2006
- Учебные пособия кафедры математической кибернетики ВМиК МГУ
- Булева функция — Википедия
- http://psi-logic.narod.ru/bool/bool.htm