Изменения

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

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

17 600 байт добавлено, 16:18, 25 декабря 2014
м
Двухместные операции
{{Определение|definition = '''Троичная''' или '''трёхзначная логика''' (англ. ''ternary logic'') — исторически первая многозначная логикаодин из видов многозначной логики, разработанная Яном Лукасевичем в 1920 г. Является простейшим расширением двузначной логикииспользующий три истинностных значения.}}
В традиционной трёхзначной логике "лжи" и "истине" соответствуют знаки <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>, <tex><</tex> и <tex>=\}</tex>, состояние постоянного тока (движется в одну сторону, движется в другую сторону— значения, отсутствует) и дркоторые может принимать компаратор двух объектов==Преимущества перед двоичной логикой== 
{{Определение
|definition =
'''Троичная система счисленияфункция''' (англ. или ''Ternary numeral system'')— позиционная система счисления с целочисленным основанием, равным 3. Существует в двух вариантах: тернарная функция'''несимметричная''' () от <tex>\{0,1,2\}n</tex>, переменных — это отображение <tex>\{0,1/2,1\}T^n</tex> и др.) и '''симметричная''' (обычно <tex>\{−,0,+\}T</tex> или , где <tex>T = \{−1-,0,1+\}</tex>).
}}
Троичная логика обладает рядом преимуществ перед двоичной. Ниже перечислены основные:
* Троичная СС позволяет вмещать больший диапазон чисел в памяти троичного компьютера, поскольку <tex>3^n>2^n</tex>.
* <p>Очевидно, что троичная СС использует меньше разрядов для записи чисел, по-сравнению с двоичной СС. Например:==Одноместные операции==
По-аналогии с [[Определение_булевой_функции | двоичной логикой]], в троичной логике существует всего <tex>1110101_23^{3^n}</tex> операций для <tex>n</tex> аргументов. Таким образом, в троичной логике всего существует <tex>3^{3^1}=11100_327</tex>одноместных операций.
<tex>1000_2=22_3</tex>==Инверсия===
(для троичной СС используется несимметричный набор {<tex>NOT^-</tex>,<tex>NOT</tex> и <tex>NOT^+</tex> — операторы '''инверсии''', сохраняющие состояние <tex>-</tex>, <tex>0</tex> и <tex>+</tex> соответственно, когда оно соответствует типу оператора, или обращающие в значение,1не равное исходному состоянию и не соответствующее типу оператора инверсии,2}то есть в оставшееся третье.
Эти два важных преимущества перед двоичной системой счисления говорят о большей '''экономичности''' троичной системы счисления. {{Определение|definition Например, если <tex>a = '''Экономичность системы счисления''' (англ-)</tex>, то <tex>NOT^+a=0</tex>. ''Radix economy''Так как исходное состояние <tex>(-) — возможность представления как </tex>, тип инверсии <tex>NOT^+</tex>, то методом исключения можно большего количества чисел с использованием как можно меньшего общего количества знаков.}}прийти к результирующему состоянию <tex>0</ptex>.
Докажем экономичность троичной системы счисления математическиВсе возможные варианты для данной одноместной операции приведены в таблице.
Пусть {| style="background-color:#CCC;margin:0.5px"!style="background-color:#EEE"| <tex>p\bf{a}</tex> – основание системы счисления, а !style="background-color:#EEE"| <tex>n\bf{NOT^-}</tex> – количество требуемых знаков. Для записи !style="background-color:#EEE"| <tex>n\bf{NOT}</tex> знаков потребуется !style="background-color:#EEE"| <tex>\dfrac n p</tex> разрядов, а количество чисел, которое при этом можно записать, будет равно <tex>pbf{NOT^{\frac n p+}</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>f(p)|-|style=p^"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>\dfrac n pbf{+}</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>fS^-</tex>, <tex>S</tex> и <tex>S^+</tex> — операторы '''выбора'''. Превращают состояние, соответствующее типу оператора в <tex>(p+)=n</tex>, в случае любого из остальных двух состояний переменная приобретает значение <tex>(p^{\dfrac n {p-2}}) \ne 0 \Rightarrow 1 - \ln⁡ p = 0, \ln p = 1, p = e</tex>.
{| style="background-color:#CCC;margin:0.5px"!style="background-color:#EEE"| <tex>\bf{a}</tex>!style="background-color:#EEE"| <tex>e \approx 2,71bf{S^-}</tex>, ближайшее число к !style="background-color:#EEE"| <tex>e\bf{S}</tex> !style="background-color:#EEE"| <tex>3\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>|}
* Компьютер, основанный на троичной логике, обладает большим быстродействием. Например, [[троичный сумматор]] и полусумматор в троичном компьютере при сложении тритов выполняет примерно в 1,5 раза меньше операций сложения по-сравнению с двоичным компьютером.===Модификация===
<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>3^{3^n}</tex> операций для <tex>n</tex> аргументов. Таким образом, в троичной логике всего существует <tex>3^{3^1}=27</tex> одноместных операций.  <tex>NOT^-\nearrow</tex>,<tex>NOT</tex> и <tex>NOT^+\searrow</tex> — данные операторы '''инверсии'''. <tex>NOT^-</tex> работают аналогично операторам модификации лишь с тем отличием, что при переполнении трита цикл состояний не повторяется, и <tex>NOT^+</tex> сохраняют состояние <tex>-</tex> значение так и <tex>+</tex> соответственноостаётся минимальным или максимальным.
<tex>S^{| style="background-</tex>, <tex>S</tex> и <tex>S^+</tex> — операторы '''выбора'''color:#CCC;margin:0. Превращают одно из трёх состояний (<tex>(5px"!style="background-)</tex>, color:#EEE"| <tex>0\bf{a}</tex> и !style="background-color:#EEE"| <tex>(+)\bf{\nearrow a}</tex>, соответственно) в <tex>(+)</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>INC\bf{0}</tex> и |style="background-color:#FFF;padding:2px 30px"| <tex>DEC+</tex> — операторы '''модификации''', соответственно увеличение и уменьшение трита на единицу по модулю три. При переполнении трита счёт начинается заново (|style="background-color:#FFF;padding:2px 30px"| <tex>INC (-</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>.<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>f_0</tex></td><td>-</td><td>-</td><td>-</td><td><tex>-</tex></td></tr><tr><td><tex>f_1</tex></td><td>-</td><td>-</td><td>0</td><td><tex>\searrow</tex></td></tr><tr><td><tex>f_2</tex></td><td>-</td><td>-</td><td>+</td><td><tex>S^+</tex></td></tr><tr><td><tex>f_3</tex></td><td>-</td><td>0</td><td>-</td><td></td></tr><tr><td><tex>f_4</tex></td><td>-</td><td>0</td><td>0</td><td></td></tr><tr><td><tex>f_5</tex></td><td>-</td><td>0</td><td>+</td><td><tex>a</tex></td></tr><tr><td><tex>f_6</tex></td><td>-</td><td>+</td><td>-</td><td><tex>S</tex></td></tr><tr><td><tex>f_7</tex></td><td>-</td><td>+</td><td>0</td><td><tex>NOT^-</tex></td></tr><tr><td><tex>f_8</tex></td><td>-</td><td>+</td><td>+</td><td></td></tr><tr><td><tex>f_9</tex></td><td>0</td><td>-</td><td>-</td><td></td></tr><tr><td><tex>f_{10}</tex></td><td>0</td><td>-</td><td>0</td><td></td></tr><tr><td><tex>f_{11}</tex></td><td>0</td><td>-</td><td>+</td><td><tex>NOT^+</tex></td></tr><tr><td><tex>f_{12}</tex></td><td>0</td><td>0</td><td>-</td><td></td></tr><tr><td><tex>f_{13}</tex></td><td>0</td><td>0</td><td>0</td><td><tex>0</tex></td></tr><tr><td><tex>f_{14}</tex></td><td>0</td><td>0</td><td>+</td><td><tex>a^+</tex></td></tr><tr><td><tex>f_{15}</tex></td><td>0</td><td>+</td><td>-</td><td><tex>INC</tex></td></tr><tr><td><tex>f_{16}</tex></td><td>0</td><td>+</td><td>0</td><td><tex>a^o</tex></td></tr><tr><td><tex>f_{17}</tex></td><td>0</td><td>+</td><td>+</td><td><tex>\nearrow</tex></td></tr><tr><td><tex>f_{18}</tex></td><td>+</td><td>-</td><td>-</td><td><tex>S^-</tex></td></tr><tr><td><tex>f_{19}</tex></td><td>+</td><td>-</td><td>0</td><td><tex>DEC</tex></td></tr><tr><td><tex>f_{20}</tex></td><td>+</td><td>-</td><td>+</td><td></td></tr><tr><td><tex>f_{21}</tex></td><td>+</td><td>0</td><td>-</td><td><tex>NOT</tex></td></tr><tr><td><tex>f_{22}</tex></td><td>+</td><td>0</td><td>0</td><td><tex>a^-</tex></td></tr><tr><td><tex>f_{23}</tex></td><td>+</td><td>0</td><td>+</td><td></td></tr><tr><td><tex>f_{24}</tex></td><td>+</td><td>+</td><td>-</td><td></td></tr><tr><td><tex>f_{25}</tex></td><td>+</td><td>+</td><td>0</td><td></td></tr><tr><td><tex>f_{26}</tex></td><td>+</td><td>+</td><td>+</td><td><tex>+</tex></td></tr> </table>
* <tex>+</tex>, <tex>0</tex> и <tex>-</tex> — функции, не зависящие от аргумента <tex>a</tex>, они же вырожденные.
* Функция <tex>a</tex> — тождественная и также вырожденная функция.
* Остальные функции от одной переменной образуются путём [[Суперпозиции | сочетания операторов ]] выбора с операторами инверсии и модификации, поэтому они не имеют собственных названий<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><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_8</tex></td><td><tex>f_{20}</tex></td><td><tex>f_{24}</tex></td></tr><tr><th><tex>NOT^-</tex></th><td><tex>f_{22}</tex></td><td><tex>f_{16}</tex></td><td><tex>f_{14}</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></table>
==Двухместные операции==
Всего Легко видеть, что всего в троичной логике существует <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>
<tex>a \vee b = max(a,b)</tex>|}
<tex>a \wedge b = min(a,b)</tex>Ниже приведены названия этих функций.
Таблица результатов {| style="background-color:#CCC;margin:0.5px"!style="background-color:#EEE;padding:2px 8px"| '''дизъюнкцииОбозначение''' двух переменных.<table border!style="1background-color:#EEE;padding:2px 8px">| '''Название'''|-|style="background-color:#FFF;padding:2px 8px"| <trtex>\bf{a \wedge b}<td/tex>|style="background-color:#FFF;padding:2px 8px"| Конъюнкция|-|style="background-color:#FFF;padding:2px 8px"| <tex>max(\bf{a,\vee b)}</tex>|style="background-color:#FFF;padding:2px 8px"| Дизъюнкция|-|style="background-color:#FFF;padding:2px 8px"| </td><tdtex>\bf{a \cdot b}</tex>|style="background-color:#FFF;padding:2px 8px"| Логическое умножение по модулю три|-|style="background-color:#FFF;padding:2px 8px"| </tex>\bf{a \oplus b}</td><tdtex>|style="background-color:#FFF;padding:2px 8px"| Логическое сложение по модулю три|-|style="background-color:#FFF;padding:2px 8px"| <tex>0\bf{a \mid b}</tex></td><td>|style="background-color:#FFF;padding:2px 8px"| Функция Вебба|-|style="background-color:#FFF;padding:2px 8px"| <tex>\bf{a+b}</tex>|style="background-color:#FFF;padding:2px 8px"| Пороговое сложение|-|style="background-color:#FFF;padding:2px 8px"| </tdtex>\bf{a \Uparrow b}</trtex>|style="background-color:#FFF;padding:2px 8px"| Исключающий максимум|-|style="background-color:#FFF;padding:2px 8px"| <tr><tdtex>\bf{a \rightarrow b}</tex>|style="background-color:#FFF;padding:2px 8px"| Среднее (''Mean'')|-|style="background-color:#FFF;padding:2px 8px"| </tex>\bf{a\ cmp\ b}</td><tdtex>|style="background-color:#FFF;padding:2px 8px"| Сравнение|-|style="background-color:#FFF;padding:2px 8px"| </tdtex><td>0\bf{a \&_L b}</tdtex>|style="background-color:#FFF;padding:2px 8px"| Сильная конъюнкция|-|style="background-color:#FFF;padding:2px 8px"| <tdtex>+\bf{a \rightarrow_L b}</td></trtex><tr><td>|style="background-color:#FFF;padding:2px 8px"| Импликация Лукасевича|-|style="background-color:#FFF;padding:2px 8px"| <tex>0\bf{a \wedge_+ b}</tex>|style="background-color:#FFF;padding:2px 8px"| Конъюнкция Клини|-|style="background-color:#FFF;padding:2px 8px"| </td><td>0</td><td>0</td><tdtex>\bf{a \rightarrow_+b}</td></trtex><tr><td>|style="background-color:#FFF;padding:2px 8px"| Импликация Клини|-|style="background-color:#FFF;padding:2px 8px"| <tex>+\bf{a \rightarrow_G b}</tex>|style="background-color:#FFF;padding:2px 8px"| Импликация Гейтинга (импликация Гёделя)|-|style="background-color:#FFF;padding:2px 8px"| </tdtex><td>+\bf{a \rightarrow_M b}</tdtex>|style="background-color:#FFF;padding:2px 8px"| Материальная импликация|-|style="background-color:#FFF;padding:2px 8px"| <tdtex>+\bf{a \rightarrow_B b}</tdtex>|style="background-color:#FFF;padding:2px 8px"| Функция следования Бруснецова|-|style="background-color:#FFF;padding:2px 8px"| <tdtex>+\bf{a \equiv b}</td></trtex></table>|style="background-color:#FFF;padding:2px 8px"| Тождество
Таблица результатов '''конъюнкции''' двух переменных.<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>|}
==Алгебраические свойства==
 
Все нижеперечисленные законы и свойства легко доказываются путём перебора всех значений входящих в них переменных.
Алгебраический подход заключается в том, чтобы определить над множеством <tex>\{-, 0, +\}</tex> двухместные (<tex>\wedge</tex>, <tex>\vee</tex>) и одноместные (<tex>'</tex>, <tex>S</tex>, <tex>\neg</tex>) операции с помощью законов, а оставшиеся свойства уже выводить из них алгебраически.
<ol>
<li>Для конъюнкции и дизъюнкции в троичной логике сохраняются '''коммутативный''', '''ассоциативный''' и '''дистрибутивный законы''', '''закон идемпотентности'''.</li>
<li>Закон '''двойного отрицания''' (отрицания ЛукашевичаЛукаcевича) и '''тройного (циклического) отрицания''':</li>
<tex>\overline{\overline{a}}=a</tex>
<tex>(+) ' = (-)</tex>
<li>Имеет место быть '''неизменность третьего состояния''' ("<tex>0"</tex>) при отрицании ЛукашевичаЛукаcевича:</li>
<tex>\overline{0} = 0</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>
==Перспективы развития==
 
===Преимущества троичной системы счисления перед двоичной===
 
{{Определение
|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 традиционных квантовых вентилей, сможет обойтись всего девятью, будучи основанным на троичном представлении.
Также, согласно некоторым исследованиям, использование кутритов вместо кубитов позволит упростить реализацию квантовых алгоритмов и компьютеров.
==См. также==
* [[Функциональные схемы]] * [[Троичная функциональная схемаОпределение_булевой_функции | Булевые функции]]
==Источники информации==
* [http://arvi.livejournal.com/144849.html Жизнь сквозь решето сети — Трёхзначная логика]
 
* [http://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 Традиция — Троичная логика]
 
[[Категория: Дискретная математика и алгоритмы]]
[[Категория: Булевы функции]]
192
правки

Навигация