Изменения

Перейти к: навигация, поиск

Троичная логика

31 432 байта добавлено, 19:21, 4 сентября 2022
м
rollbackEdits.php mass rollback
==Определение=='''Троичная''' или '''трёхзначная логика''' (англ. ''ternary logic'') — один из видов многозначной логики, использующий три истинностных значения.
В традиционной трёхзначной логике "лжи" и "истине" соответствуют знаки <tex>-</tex> и <tex>+</tex>. Третьему (серединному) состоянию соответствует знак <tex>0</tex>. Допустимо использование таких наборов знаков, как <tex>\{0,1,2\}</tex>, <tex>\{-1,0,1\}</tex>, <tex>\{0,1/2,1\}</tex> <tex>\{N,Z,P\}</tex>, и др. Иногда используют обозначения И, Л, Н (истина, ложь и неизвестность).
 
Классическим примером состояний такой логики является множество <tex>\{>, <, =\}</tex>, — значения, которые может принимать компаратор двух объектов.
{{Определение
|definition =
'''Трёхзначная логикаТроичная функция''' (или '''троичная логикатернарная функция''') от <tex>n</tex> переменных исторически первая многозначная логика. Является простейшим расширением двузначной логикиэто отображение <tex>T^n</tex> → <tex>T</tex>, где <tex>T = \{-, 0, +\}</tex>.
}}
Обычным примером трехзначной логики является ==Одноместные операции== По-аналогии с [[Определение_булевой_функции | двоичной логикой]], в троичной логике существует всего <tex>3^{3^n}</tex> операций для <tex>n</tex> аргументов. Таким образом, в троичной логике всего существует <tex>3^{3^1}=27</tex> одноместных операций.  ===Инверсия=== <tex>NOT^-</tex>,<tex>NOT</tex> и <tex>NOT^+</tex> — операторы '''инверсии''', сохраняющие состояние постоянного тока: движется <tex>-</tex>, <tex>0</tex> и <tex>+</tex> соответственно, когда оно соответствует типу оператора, или обращающие в одну сторонузначение, не равное исходному состоянию и не соответствующее типу оператора инверсии, движется то есть в другую сторонуоставшееся третье.  Например, либо отсутствуетесли <tex>a = (-)</tex>, то <tex>NOT^+a=0</tex>. Так как исходное состояние <tex>(-)</tex>, тип инверсии <tex>NOT^+</tex>, то методом исключения можно прийти к результирующему состоянию <tex>0</tex>.  Все возможные варианты для данной одноместной операции приведены в таблице.В традиционной трёхзначной логике {| style="background-color:#CCC;margin:0.5px"!style="background-color:#EEE"| <tex>\bf{a}</tex>!style="background-color:#EEE"| <tex>\bf{NOT^-}</tex>!style="background-color:#EEE"| <tex>\bf{NOT}</tex>!style="background-color:#EEE"| <tex>\bf{NOT^+}</tex> |-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"лжи| <tex>-</tex>|style=" background-color:#FFF;padding:2px 30px"| <tex>+</tex>|} ===Операция выбора=== <tex>S^-</tex>, <tex>S</tex> и <tex>S^+</tex> — операторы '''выбора'''. Превращают состояние, соответствующее типу оператора в <tex>(+)</tex>, в случае любого из остальных двух состояний переменная приобретает значение <tex>(-)</tex>. {| style="background-color:#CCC;margin:0.5px"!style="background-color:#EEE"| <tex>\bf{a}</tex>!style="background-color:#EEE"| <tex>\bf{S^-}</tex>!style="background-color:#EEE"| <tex>\bf{S}</tex>!style="background-color:#EEE"| <tex>\bf{S^+}</tex> |-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 30px"истине| <tex>-</tex>|-|style=" соответствуют знаки „background-color:#EEE;padding:2px 30px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|} ===Модификация=== <tex>INC</tex> и <tex>DEC</tex> — операторы '''модификации''', соответственно увеличение и уменьшение трита на единицу по модулю три. При переполнении трита счёт начинается заново (<tex>INC (+“. Третьему ) = (серединному-)</tex>) состоянию соответствует знак . {| style="background-color:#CCC;margin:0.5px"!style="background-color:#EEE"| <tex>\bf{a}</tex>!style="background-color:#EEE"| <tex>\bf{INC a}</tex>!style="background-color:#EEE"| <tex>\bf{DEC a}</tex> |-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|} ===Пороговое увеличение и уменьшение=== <tex>\nearrow</tex>, <tex>\searrow</tex> — данные операторы работают аналогично операторам модификации лишь с тем отличием, что при переполнении трита цикл состояний не повторяется, и значение так и остаётся минимальным или максимальным. {| style="background-color:#CCC;margin:0.5px"!style="background-color:#EEE"| <tex>\bf{a}</tex>!style="background-color:#EEE"| <tex>\bf{\nearrow a}</tex>!style="background-color:#EEE"| <tex>\bf{\searrow a}</tex> |-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>-</tex>|-|style="background-color:#EEE;padding:2px 30px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 30px"| <tex>0</tex>|} ===Другие одноместные функции=== * <tex>+</tex>, <tex>0</tex> и <tex>-</tex> — функции, не зависящие от аргумента <tex>a</tex>, они же вырожденные* Функция <tex>a</tex> — тождественная и также вырожденная функция. * Остальные функции от одной переменной образуются путём [[Суперпозиции | сочетания операторов]] выбора с операторами инверсии и модификации, поэтому они не имеют собственных названий. ==Двухместные операции==
Легко видеть, что всего в троичной логике существует <tex>3^{3^2}=19683</tex> двухместные операции. В таблице приведены самые основные и практически полезные из них. {| style="background-color:#CCC;margin:0.5px"!style="background-color:#EEE"| <tex>\bf{a}</tex>!style="background-color:#EEE"| <tex>\bf{b}</tex>!style="background-color:#EEE"| <tex>\bf{a \wedge b}</tex>!style="background-color:#EEE"| <tex>\bf{a \vee b}</tex>!style="background-color:#EEE"| <tex>\bf{a \cdot b}</tex>!style="background-color:#EEE"| <tex>\bf{a \oplus b}</tex>!style="background-color:#EEE"| <tex>\bf{a \mid b}</tex>!style="background-color:#EEE"| <tex>\bf{a+b}</tex>!style="background-color:#EEE"| <tex>\bf{a \Uparrow b}</tex>!style="background-color:#EEE"| <tex>\bf{a \rightarrow b}</tex>!style="background-color:#EEE"| <tex>\bf{a\ cmp\ b}</tex>!style="background-color:#EEE"| <tex>\bf{a \&_L b}</tex>!style="background-color:#EEE"| <tex>\bf{a \rightarrow_L b}</tex>!style="background-color:#EEE"| <tex>\bf{a \wedge_+ b}</tex>!style="background-color:#EEE"| <tex>\bf{a \rightarrow_+ b}</tex>!style="background-color:#EEE"| <tex>\bf{a \rightarrow_G b}</tex>!style="background-color:#EEE"| <tex>\bf{a \rightarrow_M b}</tex>!style="background-color:#EEE"| <tex>\bf{a \rightarrow_B b}</tex>!style="background-color:#EEE"| <tex>\bf{a \equiv b}</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{-}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style=Одноместные операции"background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{0}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|-|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 6px"| <tex>\bf{+}</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>-</tex>|style="background-color:#FFF;padding:2px 20px;text-align: center;"| <tex>0</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex>|style="background-color:#FFF;padding:2px 20px"| <tex>+</tex> |} Ниже приведены названия этих функций.
Очевидно, что в троичной логике всего существует <math>3^3{| style=27</math> одноместных операций"background-color:#CCC;margin:0. 5px"<table border!style=1>"background-color:#EEE;padding:2px 8px"| '''Обозначение'''<tr><td><math>a</math></td><td><math>!style="background-</math></td><td><math>0</math></td><td><math>+</math></td><td></td></tr>color:#EEE;padding:2px 8px"| '''Название'''<tr><td><math>f_0</math></td><td>|-</td><td>|style="background-color:#FFF;padding:2px 8px"| </tdtex><td>-\bf{a \wedge b}</td><td><mathtex>|style="background-</math></td></tr>color:#FFF;padding:2px 8px"| Конъюнкция<tr><td><math>f_1</math></td><td>|-</td><td>|style="background-color:#FFF;padding:2px 8px"| </td><td>0</td><td><mathtex>\searrow</math></td>bf{a \vee b}</trtex><tr><td><math>f_2</math></td><td>|style="background-</td><td>color:#FFF;padding:2px 8px"| Дизъюнкция|-</td><td>+</td><td><math>S^+</math></td></tr><tr><td><math>f_3</math></td><td>|style="background-color:#FFF;padding:2px 8px"| </tdtex><td>0\bf{a \cdot b}</td><tdtex>|style="background-</td><td></td></tr>color:#FFF;padding:2px 8px"| Логическое умножение по модулю три<tr><td><math>f_4</math></td><td>|-</td><td>0</td><td>0</td><td></td></tr><tr><td><math>f_5</math></td><td>|style="background-color:#FFF;padding:2px 8px"| </td><td>0</td><td>+</td><td><mathtex>\bf{a\oplus b}</math></td></trtex><tr><td><math>f_6</math></td><td>|style="background-color:#FFF;padding:2px 8px"| Логическое сложение по модулю три|-</td><td>+</td><td>|style="background-color:#FFF;padding:2px 8px"| </td><td><math>S</mathtex>\bf{a \mid b}</td></trtex><tr><td><math>f_7</math></td><td>|style="background-</td><td>+</td><td>0</td><td><math>NOT^color:#FFF;padding:2px 8px"| Функция Вебба|-</math></td></tr><tr><td><math>f_8</math></td><td>|style="background-color:#FFF;padding:2px 8px"| </td><tdtex>\bf{a+b}</td><td>+</td><td></td></trtex><tr><td><math>f_9</math></td><td>0</td><td>|style="background-</td><td>color:#FFF;padding:2px 8px"| Пороговое сложение|-</td><td></td></tr>|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{10a \Uparrow b}</math></td><td>0</td><tdtex>|style="background-color:#FFF;padding:2px 8px"| Исключающий максимум|-</td><td>0</td><td></td></tr>|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{11a \rightarrow b}</math></td><td>0</td><tdtex>|style="background-color:#FFF;padding:2px 8px"| Среднее (''Mean'')|-</td><td>+</td><td><math>NOT^+</math></td></tr>|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{12a\ cmp\ b}</math></td><td>0</td><td>0</td><tdtex>|style="background-color:#FFF;padding:2px 8px"| Сравнение|-</td><td></td></tr>|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{13a \&_L b}</math></td><td>0</td><td>0</td><td>0</td><td><math>0</math></td></trtex>|style="background-color:#FFF;padding:2px 8px"| Сильная конъюнкция|-|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{14a \rightarrow_L b}</math></td><td>0</td><td>0</td><td>+</td><td><math>a^+</math></td></trtex><tr><td><math>f_{15}</math></td><td>0</td><td>+</td><td>|style="background-color:#FFF;padding:2px 8px"| Импликация Лукасевича|-</td><td><math>INC</math></td></tr>|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{16}</math></td><td>0</td><td>a \wedge_+</td><td>0</td><td><math>a^o</math></td></tr><tr><td><math>f_{17b}</math></td><td>0</td><td>+</td><td>+</td><td><math>\nearrow</math></td></trtex><tr><td><math>f_{18}</math></td><td>+</td><td>|style="background-</td><td>color:#FFF;padding:2px 8px"| Конъюнкция Клини|-</td><td><math>S^|style="background-color:#FFF;padding:2px 8px"| </mathtex></td></tr><tr><td><math>f_\bf{19a \rightarrow_+ b}</math></td><td>+</td><tdtex>|style="background-</td><td>0</td><td><math>DEC</math></td></tr>color:#FFF;padding:2px 8px"| Импликация Клини<tr><td><math>f_{20}</math></td><td>+</td><td>|-</td><td>+</td><td></td></tr>|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{21a \rightarrow_G b}</math></td><td>+</td><td>0</td><tdtex>|style="background-</td><td><math>NOT</math></td></tr>color:#FFF;padding:2px 8px"| Импликация Гейтинга (импликация Гёделя)<tr><td><math>f_{22}</math></td><td>+</td><td>0</td><td>0</td><td><math>a^|-</math></td></tr>|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{23a \rightarrow_M b}</math></td><td>+</td><td>0</td><td>+</td><td></td></trtex><tr><td><math>f_{24}</math></td><td>+</td><td>+</td><td>|style="background-</td><td></td></tr>color:#FFF;padding:2px 8px"| Материальная импликация<tr><td><math>f_{25}</math></td><td>+</td><td>+</td><td>0</td><td></td></tr>|-|style="background-color:#FFF;padding:2px 8px"| <trtex><td><math>f_\bf{26a \rightarrow_B b}</math></td><td>+</td><td>+</td><td>+</td><td><math>+</math></td></trtex> </table>|style="background-color:#FFF;padding:2px 8px"| Функция следования Бруснецова<math>NOT^|-</math>,<math>NOT</math> и <math>NOT^+</math> — инверсии. <math>NOT^|style="background-color:#FFF;padding:2px 8px"| </mathtex> и <math>NOT^+\bf{a \equiv b}</mathtex> сохраняют состояние |style="background-color:#FFF;padding:2px 8px" и "+" соответственно.| Тождество
<math>INC</math> и <math>DEC</math> — модификации, увеличение/уменьшение на единицу по модулю три. При переполнении трита счёт начинается заново (<math>INC + = -</math>).|}
==Алгебраические свойства==
Свойства констант:Все нижеперечисленные законы и свойства легко доказываются путём перебора всех значений входящих в них переменных. Алгебраический подход заключается в том, чтобы определить над множеством <tex>\{-, 0, +\}</tex> двухместные (<tex>\wedge</tex>, <tex>\vee</tex>) и одноместные (<tex>'</tex>, <tex>S</tex>, <tex>\neg</tex>) операции с помощью законов, а оставшиеся свойства уже выводить из них алгебраически. <ol>
<mathli>a \wedge + = a'''Свойства констант''':</mathli>
<mathtex>a \wedge - (+) = -a</mathtex>
<mathtex>a \vee + wedge (-) = +(-)</mathtex>
<mathtex>a \vee - (+) = a(+)</mathtex>
<mathtex>a \overline{vee (-} ) = +a</mathtex>
<mathtex>\overline{+(-)} = -(+)</mathtex>
Для конъюнкции и дизъюнкции в троичной логике сохраняются '''коммутативный''', '''ассоциативный''' и '''дистрибутивный законы''', '''закон идемпотентности'''.<tex>\overline{(+)} = (-)</tex>
Также действует закон <li>Для конъюнкции и дизъюнкции в троичной логике сохраняются '''коммутативный''', '''двойного отрицанияассоциативный''' (отрицания Лукашевича) и '''тройного (циклического) отрицаниядистрибутивный законы''', '''закон идемпотентности''':.</li>
<mathli>\overline{\overline{a}}=aЗакон '''двойного отрицания''' (отрицания Лукаcевича) и '''тройного (циклического) отрицания''':</mathli>
<mathtex>\overline{\overline{a'''}}=a</mathtex>
Буквальное определение <tex>a'''циклического отрицания''' вытекает из следующих свойств:=a</tex>
<mathli>- Буквальное определение ' = 0''циклического отрицания''' вытекает из следующих свойств:</mathli>
<mathtex>0 (-) ' = +0</mathtex>
<mathtex>+ 0 ' = -(+)</mathtex>
Третье состояние <tex>("0"+) при отрицании Лукашевича неизменно:' = (-)</tex>
<mathli>Имеет место быть '''неизменность третьего состояния''' (<tex>\overline{0} = 0</mathtex>) при отрицании Лукаcевича:</li>
<mathtex>\overline{0} = 0</tex> <tex>\overline{(a \wedge 0)} = \overline{a} \vee 0</mathtex> </ol>
Для законов двоичной логики, не справедливых для троичной, существуют их троичные аналоги.
<ol start="6"><li>'''Закон несовместности состояний''' (аналог закона противоречия в двоичной логике):</li> <tex>Sa \wedge Sa'' = (-)</tex> <tex>Sa' \wedge Sa'' = (-)</tex> <tex>Sa' \wedge Sa = (-)</tex> <li>'''Закон исключённого четвёртого''' (вместо '''закона исключённого третьего'''), он же '''закон полноты состояний''':</li> <tex>Sa' \vee Sa \vee Sa'' = (+)</tex>, или  <tex>S^-a \vee Sa \vee S^+a = (+)</tex> <li>'''Трёхчленный закон Блейка-Порецкого''':</li> <tex>a \vee Sa' \wedge b \vee Sa \wedge b = a \vee b</tex>, или <tex>a \vee S^-a \wedge b \vee Sa \wedge b = a \vee b</tex> <li>'''Закон трёхчленного склеивания''':</li> <tex> a \wedge Sb' \vee a \wedge Sb \vee a \wedge Sb'' = a</tex>, или <tex>a \wedge S^-b \vee a \wedge Sb \vee a \wedge S^+b = a</tex> <li>'''Закон обобщённого трёхчленного склеивания''':</li> <tex>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''</tex>, или <tex>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</tex> <li>'''Антиизотропность отрицания Лукаcевича''':</li> <tex>a \leqslant b \Rightarrow \overline a \geqslant \overline b</tex> </ol> ==Перспективы развития== ===Преимущества троичной системы счисления перед двоичной=== {{Определение|definition = '''Троичная система счисления''' (англ. ''ternary numeral system'') — позиционная система счисления с целочисленным основанием, равным <tex>3</tex>. Существует в двух вариантах: '''несимметричная''' (<tex>\{0,1,2\}</tex>, <tex>\{0,1/2,1\}</tex> и др.) и '''симметричная''' (обычно <tex>\{-,0,+\}</tex> или <tex>\{-1,0,1\}</tex>).}}Троичная логика обладает рядом преимуществ перед двоичной. Ниже перечислены основные: * Троичная СС позволяет вмещать больший диапазон чисел в памяти троичного компьютера, поскольку <tex>3^n>2^n</tex>. * <p>Очевидно, что троичная СС использует меньше разрядов для записи чисел, по-сравнению с двоичной СС. Например: <tex>1110101_2=11100_3</tex> <tex>1000_2=22_3</tex> Для троичной СС используется несимметричный набор <tex>\{0,1,2\}</tex>. Эти два важных преимущества перед двоичной системой счисления говорят о большей '''экономичности''' троичной системы счисления. {{Определение|definition = '''Экономичность системы счисления''' (англ. ''radix economy'') — возможность представления как можно большего количества чисел с использованием как можно меньшего общего количества знаков.}}</p> Докажем экономичность троичной системы счисления математически. Пусть <tex>p</tex> – основание системы счисления, а <tex>n</tex> – количество требуемых знаков. Для записи <tex>n</tex> знаков потребуется <tex>n/p</tex> разрядов, а количество чисел, которое при этом можно записать, будет равно <tex>p^{n/p}</tex>. Рассмотрим функцию <tex>f(p)=p^{n/p}</tex>. Для того, чтобы определить максимальное значение функции, найдем ее производную: <tex>f'(p)=-n(p^{n/p - 2})(\ln p - 1) \Rightarrow \ln⁡ p - 1 = 0, \ln p = 1, p = e</tex> <tex>e \approx 2,71</tex>, ближайшее число к <tex>e</tex> — <tex>3</tex>. Таким образом, троичная СС не только экономичнее двоичной, но и экономичнее любой другой СС. * Троичная логика включает в себя почти все возможности двоичной логики. * Компьютер, основанный на троичной логике, обладает большим быстродействием. Например, [[Троичная_функциональная_схема |троичный сумматор]] и полусумматор в троичном компьютере при сложении тритов выполняет примерно в 1,5 раза меньше операций сложения по-сравнению с двоичным компьютером. ===Проблемы реализации=== Одним из барьеров, сдерживающих развитие и распространение троичной техники, является неверное представление о необычности и трудной постижимости трехзначной логики. Современная формальная логика (как традиционная, так и математическая) основана на принципе двузначности. Кроме того, электронные компоненты для построения логики, использующие более двух состояний, требуют больше материальных затрат на их производство, достаточно сложны в реализации, и потребляют больше электроэнергии, поэтому троичные компьютеры занимают очень малое место в истории. Использование двоичных компьютеров — более простых и дешёвых в реализации — практически полностью затмило применение троичных компьютеров. ===Практические реализации=== Говоря о будущем таких машин, как «Сетунь» (то есть троичных компьютеров), известный американский учёный Дональд Кнут, отмечал, что они занимают очень мало место в отрасли вычислительной техники, что объясняется массовым засильем двоичных компонентов, производимых в огромных количествах. Но, поскольку троичная логика гораздо эффектнее, а главное, эффективнее двоичной, не исключено, что в недалёком будущем к ней вернутся. В настоящий момент, в условиях интегральной технологии и микроэлектроники привлекательность троичной техники увеличивается: сложность трехзначных вентилей теперь не так страшна, а сокращение количества соединений и уменьшение рассеиваемой мощности особенно ценны. Особо благоприятное влияние на развитие троичное логики оказало пришествие квантовых компьютеров — вычислительных устройств, работающих на основе квантовой механики, принципиально отличающихся от классических компьютеров, работающих на основе классической механики.Полноценный квантовый компьютер является пока гипотетическим устройством, сама возможность построения которого связана с серьёзным развитием квантовой теории в области многих частиц и сложных экспериментов; эта работа лежит на переднем крае современной физики. Канадская компания D-Wave заявила в феврале 2007 года о создании образца квантового компьютера, состоящего из 16 ''кубит'' — квантовых аналогов битов. Используя в универсальных [[Квантовые_гейты | квантовых вентилях]] кутриты вместо кубитов, можно существенно снизить количество необходимых вентилей.Ланьон утверждает, что компьютер, который в обычном случае использовал бы 50 традиционных квантовых вентилей, сможет обойтись всего девятью, будучи основанным на троичном представлении.Также, согласно некоторым исследованиям, использование кутритов вместо кубитов позволит упростить реализацию квантовых алгоритмов и компьютеров. ==См. также== * [[Определение_булевой_функции | Булевые функции]]
<math>Sa \wedge Sa'' = -</math>=Источники информации==
<math>Sa' \wedge Sa'' = * [http://www.computer-<museum.ru/histussr/math>12-1.htm Заметки о троичной цифровой технике — часть 1]
<math>Sa' \wedge Sa = * [http://unidevices.blogspot.ru/2011/11/blog-</math>post.html «Сетунь» — единственный серийный троичный компьютер]
'''Закон исключённого четвёртого''' (вместо '''закона исключённого третьего'''), он же '''закон полноты состояний'''* [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 Википедия — Троичная логика]
<math>Sa' \vee Sa \vee Sa'' = +<* [http:/math>, или /habrahabr.ru/post/166679/ Хабрахабр — Замена двоичной логики — увеличит ли это производительность?]
<math>S^-a \vee Sa \vee S^+a = +<* [http:/math>/arvi.livejournal.com/144259.html Жизнь сквозь решето сети — Третье состоянье]
'''Трёхчленный закон Блейка-Порецкого'''* [http://arvi.livejournal.com/144849.html Жизнь сквозь решето сети — Трёхзначная логика]
<math>a \vee Sa' \wedge b \vee Sa \wedge b = a \vee b<* [http:/math>, или/traditio-ru.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 Традиция — Троичная логика]
<math>a \vee S^-a \wedge b \vee Sa \wedge b = a \vee b</math>[[Категория: Дискретная математика и алгоритмы]][[Категория: Булевы функции]]
1632
правки

Навигация