Троичная логика — различия между версиями

Материал из Викиконспекты
Перейти к: навигация, поиск
(Одноместные операции)
Строка 1: Строка 1:
 
{{Определение
 
{{Определение
 
|definition =  
 
|definition =  
'''Трёхзначная логика''' (или '''троичная логика''') — исторически первая многозначная логика, разработанная [https://ru.wikipedia.org/wiki/%D0%9B%D1%83%D0%BA%D0%B0%D1%81%D0%B5%D0%B2%D0%B8%D1%87,_%D0%AF%D0%BD Яном Лукасевичем] в 1920 г. Является простейшим расширением двузначной логики.
+
'''Трёхзначная логика''' (или '''троичная логика''') — исторически первая многозначная логика, разработанная Яном Лукасевичем в 1920 г. Является простейшим расширением двузначной логики.
 
}}
 
}}
  
Строка 11: Строка 11:
  
 
Очевидно, что в троичной логике всего существует <tex>3^3=27</tex> одноместных операций.  
 
Очевидно, что в троичной логике всего существует <tex>3^3=27</tex> одноместных операций.  
<table border=1>
+
 
 +
<tex>NOT^-</tex>,<tex>NOT</tex> и <tex>NOT^+</tex> — операторы '''инверсии'''. <tex>NOT^-</tex> и <tex>NOT^+</tex> сохраняют состояние "-" и "+" соответственно.
 +
 
 +
<tex>S^+</tex>, <tex>S^+</tex> — операторы '''выбора'''. Превращают одно из трёх состояний в <tex>(+)</tex>, а остальные две приобретают значение <tex>(-)</tex>.
 +
 
 +
<tex>INC</tex> и <tex>DEC</tex> — операторы '''модификации''', соответственно увеличение и уменьшение трита на единицу по модулю три. При переполнении трита счёт начинается заново (<tex>INC (+) = (-)</tex>).
 +
 
 +
"<tex>+</tex>", " <tex>0</tex> " и "<tex>-</tex>" — фунцкии, не зависящие от аргумента <tex>a</tex>.
 +
<table border="1" width="20%" text-align="center">
 
<tr><td><tex>a</tex></td><td><tex>-</tex></td><td><tex>0</tex></td><td><tex>+</tex></td><td></td></tr>
 
<tr><td><tex>a</tex></td><td><tex>-</tex></td><td><tex>0</tex></td><td><tex>+</tex></td><td></td></tr>
 
<tr><td><tex>f_0</tex></td><td>-</td><td>-</td><td>-</td><td><tex>-</tex></td></tr>
 
<tr><td><tex>f_0</tex></td><td>-</td><td>-</td><td>-</td><td><tex>-</tex></td></tr>
Строка 42: Строка 50:
 
</table>
 
</table>
  
<tex>NOT^-</tex>,<tex>NOT</tex> и <tex>NOT^+</tex> — операторы '''инверсии'''. <tex>NOT^-</tex> и <tex>NOT^+</tex> сохраняют состояние "-" и "+" соответственно.
 
  
<tex>S^+</tex>, <tex>S^+</tex> — операторы '''выбора'''. Превращают одно из трёх состояний в <tex>(+)</tex>, а остальные две приобретают значение <tex>(-)</tex>.
 
 
<tex>INC</tex> и <tex>DEC</tex> — операторы '''модификации''', соответственно увеличение и уменьшение трита на единицу по модулю три. При переполнении трита счёт начинается заново (<tex>INC (+) = (-)</tex>).
 
 
"<tex>+</tex>", " <tex>0</tex> " и "<tex>-</tex>" — фунцкии, не зависящие от аргумента <tex>a</tex>.
 
  
 
Остальные функции образуются путём сочетания операторов выбора с операторами инверсии и модификации.
 
Остальные функции образуются путём сочетания операторов выбора с операторами инверсии и модификации.
  
<table border="1">
+
<table border="1" width="15%">
 
<tr><th>&nbsp;</th><th><tex>S^-</tex></th><th><tex>S</tex></th><th><tex>S^+</tex></th></tr>
 
<tr><th>&nbsp;</th><th><tex>S^-</tex></th><th><tex>S</tex></th><th><tex>S^+</tex></th></tr>
 
<tr><th><tex>NOT^-</tex></th><td><tex>f_9</tex></td><td><tex>f_3</tex></td><td><tex>f_1</tex></td></tr>
 
<tr><th><tex>NOT^-</tex></th><td><tex>f_9</tex></td><td><tex>f_3</tex></td><td><tex>f_1</tex></td></tr>
Строка 59: Строка 61:
 
<tr><th><tex>INC</tex></th><td><tex>f_4</tex></td><td><tex>f_{10}</tex></td><td><tex>f_{12}</tex></td></tr>
 
<tr><th><tex>INC</tex></th><td><tex>f_4</tex></td><td><tex>f_{10}</tex></td><td><tex>f_{12}</tex></td></tr>
 
<tr><th><tex>DEC</tex></th><td><tex>f_{17}</tex></td><td><tex>f_{23}</tex></td><td><tex>f_{25}</tex></td></tr>
 
<tr><th><tex>DEC</tex></th><td><tex>f_{17}</tex></td><td><tex>f_{23}</tex></td><td><tex>f_{25}</tex></td></tr>
 +
</table>
 +
 +
==Дизъюнкция и конъюнкция==
 +
 +
Всего в троичной логике существует <tex>3^{3^2}=19683</tex> двухместные операции. Для реализации любой из них при использовании сколь угодного числа переменных достаточно использовать операции выбора и наиболее простые двухместные операции: '''дизъюнкция''' и '''конъюнкция'''.
 +
 +
В троичной логике более наглядно использование префиксной нотации для этих операций.
 +
 +
<tex>a \vee b = max(a,b)</tex>
 +
 +
<tex>a \wedge b = min(a,b)</tex>
 +
 +
Таблица результатов '''дизъюнкции''' двух переменных.
 +
<table border="1">
 +
<tr><td><tex>max(a,b)</tex></td><td><tex>-</tex></td><td><tex>0</tex></td><td><tex>+</tex></td></tr>
 +
<tr><td><tex>-</tex></td><td>-</td><td>0</td><td>+</td></tr>
 +
<tr><td><tex>0</tex></td><td>0</td><td>0</td><td>+</td></tr>
 +
<tr><td><tex>+</tex></td><td>+</td><td>+</td><td>+</td></tr>
 +
</table>
 +
 +
Таблица результатов '''конъюнкции''' двух переменных.
 +
<table border="1">
 +
<tr><td><tex>max(a,b)</tex></td><td><tex>-</tex></td><td><tex>0</tex></td><td><tex>+</tex></td></tr>
 +
<tr><td><tex>-</tex></td><td>-</td><td>-</td><td>-</td></tr>
 +
<tr><td><tex>0</tex></td><td>-</td><td>0</td><td>0</td></tr>
 +
<tr><td><tex>+</tex></td><td>-</td><td>0</td><td>+</td></tr>
 
</table>
 
</table>
  
 
==Алгебраические свойства==
 
==Алгебраические свойства==
  
Свойства констант:
+
'''Свойства констант''':
  
 
<math>a \wedge (+) = a</math>
 
<math>a \wedge (+) = a</math>
Строка 136: Строка 164:
  
 
<math>a \leq b \Rightarrow \overline a \geq \overline b</math>
 
<math>a \leq b \Rightarrow \overline a \geq \overline b</math>
 +
 +
==См. также==
 +
 +
* [[Троичная функциональная схема]]
 +
 +
==Источники==
 +
 +
* [https://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%BE%D0%B8%D1%87%D0%BD%D0%B0%D1%8F_%D0%BB%D0%BE%D0%B3%D0%B8%D0%BA%D0%B0 Википедия — Троичная логика]
 +
 +
* [http://habrahabr.ru/post/166679/ Хабрахабр — Замена двоичной логики — увеличит ли это производительность?]
 +
 +
* [http://arvi.livejournal.com/144259.html Жизнь сквозь решето сети — Третье состоянье]
 +
 +
* [http://arvi.livejournal.com/144849.html Жизнь сквозь решето сети — Трёхзначная логика]

Версия 23:07, 23 ноября 2014

Определение:
Трёхзначная логика (или троичная логика) — исторически первая многозначная логика, разработанная Яном Лукасевичем в 1920 г. Является простейшим расширением двузначной логики.


В традиционной трёхзначной логике "лжи" и "истине" соответствуют знаки „[math]-[/math]“ и „[math]+[/math]“. Третьему (серединному) состоянию соответствует знак "[math]0[/math]".

Классическими примерами состояний такой логики являются знаки ">", "<" и "=", состояние постоянного тока (движется в одну сторону, движется в другую сторону, отсутствует) и др.

Одноместные операции

Очевидно, что в троичной логике всего существует [math]3^3=27[/math] одноместных операций.

[math]NOT^-[/math],[math]NOT[/math] и [math]NOT^+[/math] — операторы инверсии. [math]NOT^-[/math] и [math]NOT^+[/math] сохраняют состояние "-" и "+" соответственно.

[math]S^+[/math], [math]S^+[/math] — операторы выбора. Превращают одно из трёх состояний в [math](+)[/math], а остальные две приобретают значение [math](-)[/math].

[math]INC[/math] и [math]DEC[/math] — операторы модификации, соответственно увеличение и уменьшение трита на единицу по модулю три. При переполнении трита счёт начинается заново ([math]INC (+) = (-)[/math]).

"[math]+[/math]", " [math]0[/math] " и "[math]-[/math]" — фунцкии, не зависящие от аргумента [math]a[/math].

[math]a[/math][math]-[/math][math]0[/math][math]+[/math]
[math]f_0[/math]---[math]-[/math]
[math]f_1[/math]--0[math]\searrow[/math]
[math]f_2[/math]--+[math]S^+[/math]
[math]f_3[/math]-0-
[math]f_4[/math]-00
[math]f_5[/math]-0+[math]a[/math]
[math]f_6[/math]-+-[math]S[/math]
[math]f_7[/math]-+0[math]NOT^-[/math]
[math]f_8[/math]-++
[math]f_9[/math]0--
[math]f_{10}[/math]0-0
[math]f_{11}[/math]0-+[math]NOT^+[/math]
[math]f_{12}[/math]00-
[math]f_{13}[/math]000[math]0[/math]
[math]f_{14}[/math]00+[math]a^+[/math]
[math]f_{15}[/math]0+-[math]INC[/math]
[math]f_{16}[/math]0+0[math]a^o[/math]
[math]f_{17}[/math]0++[math]\nearrow[/math]
[math]f_{18}[/math]+--[math]S^-[/math]
[math]f_{19}[/math]+-0[math]DEC[/math]
[math]f_{20}[/math]+-+
[math]f_{21}[/math]+0-[math]NOT[/math]
[math]f_{22}[/math]+00[math]a^-[/math]
[math]f_{23}[/math]+0+
[math]f_{24}[/math]++-
[math]f_{25}[/math]++0
[math]f_{26}[/math]+++[math]+[/math]


Остальные функции образуются путём сочетания операторов выбора с операторами инверсии и модификации.

 [math]S^-[/math][math]S[/math][math]S^+[/math]
[math]NOT^-[/math][math]f_9[/math][math]f_3[/math][math]f_1[/math]
[math]NOT[/math][math]f_8[/math][math]f_{20}[/math][math]f_{24}[/math]
[math]NOT^-[/math][math]f_{22}[/math][math]f_{16}[/math][math]f_{14}[/math]
[math]INC[/math][math]f_4[/math][math]f_{10}[/math][math]f_{12}[/math]
[math]DEC[/math][math]f_{17}[/math][math]f_{23}[/math][math]f_{25}[/math]

Дизъюнкция и конъюнкция

Всего в троичной логике существует [math]3^{3^2}=19683[/math] двухместные операции. Для реализации любой из них при использовании сколь угодного числа переменных достаточно использовать операции выбора и наиболее простые двухместные операции: дизъюнкция и конъюнкция.

В троичной логике более наглядно использование префиксной нотации для этих операций.

[math]a \vee b = max(a,b)[/math]

[math]a \wedge b = min(a,b)[/math]

Таблица результатов дизъюнкции двух переменных.

[math]max(a,b)[/math][math]-[/math][math]0[/math][math]+[/math]
[math]-[/math]-0+
[math]0[/math]00+
[math]+[/math]+++

Таблица результатов конъюнкции двух переменных.

[math]max(a,b)[/math][math]-[/math][math]0[/math][math]+[/math]
[math]-[/math]---
[math]0[/math]-00
[math]+[/math]-0+

Алгебраические свойства

Свойства констант:

[math]a \wedge (+) = a[/math]

[math]a \wedge (-) = (-)[/math]

[math]a \vee (+) = (+)[/math]

[math]a \vee (-) = a[/math]

[math]\overline{(-)} = (+)[/math]

[math]\overline{(+)} = (-)[/math]

Для конъюнкции и дизъюнкции в троичной логике сохраняются коммутативный, ассоциативный и дистрибутивный законы, закон идемпотентности.

Также действует закон двойного отрицания (отрицания Лукашевича) и тройного (циклического) отрицания:

[math]\overline{\overline{a}}=a[/math]

[math]a'''=a[/math]

Буквальное определение циклического отрицания вытекает из следующих свойств:

[math](-) ' = 0[/math]

[math]0 ' = (+)[/math]

[math](+) ' = (-)[/math]

Третье состояние ("0") при отрицании Лукашевича неизменно:

[math]\overline{0} = 0[/math]

[math]\overline{(a \wedge 0)} = \overline{a} \vee 0[/math]

Для законов двоичной логики, не справедливых для троичной, существуют их троичные аналоги.

Закон несовместности состояний (аналог закона противоречия в двоичной логике):

[math]Sa \wedge Sa'' = (-)[/math]

[math]Sa' \wedge Sa'' = (-)[/math]

[math]Sa' \wedge Sa = (-)[/math]

Закон исключённого четвёртого (вместо закона исключённого третьего), он же закон полноты состояний:

[math]Sa' \vee Sa \vee Sa'' = (+)[/math], или

[math]S^-a \vee Sa \vee S^+a = (+)[/math]

Трёхчленный закон Блейка-Порецкого:

[math]a \vee Sa' \wedge b \vee Sa \wedge b = a \vee b[/math], или

[math]a \vee S^-a \wedge b \vee Sa \wedge b = a \vee b[/math]

Закон трёхчленного склеивания:

[math] a \wedge Sb' \vee a \wedge Sb \vee a \wedge Sb'' = a[/math], или

[math]a \wedge S^-b \vee a \wedge Sb \vee a \wedge S^+b = a[/math]

Закон обобщённого трёхчленного склеивания:

[math]a \wedge Sd' \vee b \wedge Sd \vee c \wedge Sd'' \vee a \wedge b \wedge c = a \wedge Sd' \vee b \wedge Sd \vee c \wedge Sd''[/math], или

[math]a \wedge S^-d \vee b \wedge Sd \vee c \wedge S^+d \vee a \wedge b \wedge c = a \wedge S^-d \vee b \wedge Sd \vee c \wedge S^+d[/math]

Антиизотропность отрицания Лукашевича:

[math]a \leq b \Rightarrow \overline a \geq \overline b[/math]

См. также

Источники