Подпишись и читай
самые интересные
статьи первым!

Какие машины существуют на троичной логике. Трехзначная логика Лукасевича

С двумя чёткими и с одним нечётким значением помимо «истинно» и «ложно» включает также третье значение, которое нечётко и трактуется как «не определено» или «неизвестно».

Физическая реализация

При физической реализации троичным функциям в троичной логике соответствуют троичные логические элементы , в общем случае не обязательно электронные.

Схемы с 3-4-значной логикой дают возможность сократить количество используемых логических и запоминающих элементов, а также межэлементных соединений. Схемы трёхзначной логики легко реализуются на КМОП -технологии. Трёхзначная логика обладает большей выразительностью, чем двухзначная. Например, существует лишь 16 комбинаций входов-выходов двухвходового двоичного вентиля, тогда как у аналогичного троичного вентиля таких комбинаций 19683.

На основе троичных элементов - троичной ферритодиодной ячейки разработки Николая Брусенцова - в 1959 году в вычислительном центре МГУ спроектирована малая ЭВМ «Сетунь », выпущена в 46 экземплярах.

Логики

Логики Клини и Приста

Ниже показаны таблицы истинности для логических операций «Сильной логики неопределённости» (strong logic of indeterminacy) Стивена Клини и «Парадоксальной логики» (logic of paradox) Приста. Обе логики имеют три логических значения - «истина», «ложь» и «неопределённость», которые в логике Клини обозначаются буквами F (False), U (Unknown), T (True), а в логике Приста числами -1, 0 и 1.

AND(A, B)
A B B
F U T
A F F F F
U F U U
T F U T
OR(A, B)
A B B
F U T
A F F U T
U U U T
T T T T
MIN(A, B)
A B B
−1 0 +1
A −1 −1 −1 −1
0 −1 0 0
+1 −1 0 +1
MAX(A, B)
A B B
−1 0 +1
A −1 −1 0 +1
0 0 0 +1
+1 +1 +1 +1

Значение U присваивается выражениям, которые реально имеют значение T или F, но в данный момент это значение по каким-то причинам неизвестно, в результате чего возникает неопределённость. Тем не менее, результат логической операции с величиной U может оказаться определённым. Например, поскольку T & F = F и F & F = F, то и U & F = F. В более общем виде: если для некоторой логической операции OPER выполняется соотношение OPER(F,F)=OPER(F,T), то OPER(F,U)=OPER(F,F)=OPER(F,T). Аналогично, если OPER(T,F)=OPER(T,T), то OPER(T,U)=OPER(T,F)=OPER(T,T).

При численном обозначении логических значений (–1, 0, 1) логические операции эквивалентны следующим численным операциям:

texvc не найден; См. math/README - справку по настройке.): \bar{X}=-X; Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): X \lor Y = max(X,Y); Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): X \land Y = min(X,Y).

Операция импликации в логиках Клини и Приста определяется формулой, аналогичной формуле двоичной логики:

Невозможно разобрать выражение (Выполняемый файл texvc не найден; См. math/README - справку по настройке.): X \rightarrow Y \ \overset{\underset{\mathrm{def}}{}}{=} \bar{X} \lor Y .

Таблицы истинности для неё

IMP K (A, B), MAX(−A, B)
A B B
+1 0 −1
A +1 +1 0 −1
0 +1 0 0
−1 +1 +1 +1

Это определение отличается от определения импликации, принятого в логике Лукасевича.

См. также

Напишите отзыв о статье "Троичная логика"

Примечания

Литература

  • Васильев Н. И. Воображаемая логика. - М .: Наука, 1989.
  • Карпенко А. С. Многозначные логики // Логика и компьютер. Вып. №4. - М .: Наука, 1997.
  • Кэррол Льюис. Символическая логика // Льюис Кэррол. История с узелками. - М .: Мир, 1973.
  • Лукасевич Я. Аристотелевская силлогистика с точки зрения современной формальной логики. - М .: Иностранная литература, 1959.
  • Слинин Я. А. Современная модальная логика. - Л. : Издательство Ленинградского университета, 1976.
  • Стяжкин Н. И. Формирование математической логики. - М .: Наука, 1967.
  • Гетманова А. Д. Учебник по логике. - М .: Владос, 1995. - С. 259-268. - 303 с. - ISBN 5-87065-009-7.
  • Толковый словарь по вычислительным системам / Под ред. В. Иллингуорта и др.. - М .: Машиностроение, 1990. - 560 с. - ISBN 5-217-00617-X.

Ссылки

Отрывок, характеризующий Троичная логика

– Я звала её... Но моя девочка, наверное, спит, так как не отвечает... Она устала, думаю. Я не хочу тревожить её покой. Потому, поговори со мною, Север.
Он печально-понимающе посмотрел мне в глаза и тихо спросил:
– Что ты хочешь узнать, мой друг? Спрашивай – я постараюсь ответить тебе на всё, что тебя тревожит.
– Светодар, Север... Что стало с ним? Как прожил свою жизнь на Земле сын Радомира и Магдалины?..
Север задумался... Наконец, глубоко вздохнув, будто сбрасывая наваждение прошлого, начал свой очередной захватывающий рассказ...
– После распятия и смерти Радомира, Светодара увезли в Испанию рыцари Храма, чтобы спасти его от кровавых лап «святейшей» церкви, которая, чего бы это ни стоило, пыталась найти и уничтожить его, так как мальчик являлся самым опасным живым свидетелем, а также, прямым продолжателем радомирова Дерева Жизни, которое должно было когда-нибудь изменить наш мир.
Светодар жил и познавал окружающее в семье испанского вельможи, являвшегося верным последователем учения Радомира и Магдалины. Своих детей, к их великой печали, у них не было, поэтому «новая семья» приняла мальчика очень сердечно, стараясь создать ему как можно более уютную и тёплую домашнюю обстановку. Назвали его там Амори (что означало – милый, любимый), так как своим настоящим именем называться Святодару было опасно. Оно звучало слишком необычно для чужого слуха, и рисковать из-за этого жизнью Светодара было более чем неразумно. Так Светодар для всех остальных стал мальчиком Амори, а его настоящим именем звали его лишь друзья и его семья. И то, лишь тогда, когда рядом не было чужих людей...
Очень хорошо помня гибель любимого отца, и всё ещё жестоко страдая, Светодар поклялся в своём детском сердечке «переделать» этот жестокий и неблагодарный мир. Поклялся посвятить свою будущую жизнь другим, чтобы показать, как горячо и самозабвенно любил Жизнь, и как яростно боролся за Добро и Свет и его погибший отец...
Вместе со Светодаром в Испании остался его родной дядя – Радан, не покидавший мальчика ни ночью, ни днём, и без конца волновавшийся за его хрупкую, всё ещё несформировавшуюся жизнь.
Радан души не чаял в своём чудесном племяннике! И его без конца пугало то, что однажды кто-то обязательно их выследит, и оборвёт ценную жизнь маленького Светодара, которому, уже тогда, с самых первых лет его существования, суровая судьба предназначала нести факел Света и Знания в наш безжалостный, но такой родной и знакомый, Земной мир.
Прошло восемь напряжённых лет. Светодар превратился в чудесного юношу, теперь уже намного более походившего на своего мужественного отца – Иисуса-Радомира. Он возмужал и окреп, а в его чистых голубых глазах всё чаще стал появляться знакомый стальной оттенок, так ярко вспыхивавший когда-то в глазах его отца.
Светодар жил и очень старательно учился, всей душой надеясь когда-нибудь стать похожим на Радомира. Мудрости и Знанию его обучал пришедший туда Волхв Истень. Да, да, Изидора! – заметив моё удивление, улыбнулся Сеевер. – тот же Истень, которого ты встретила в Мэтэоре. Истень, вместе с Раданом, старались всячески развивать живое мышление Светодара, пытаясь как можно шире открыть для него загадочный Мир Знаний, чтобы (в случае беды) мальчик не остался беспомощным и умел за себя постоять, встретившись лицом к лицу с врагом или потерями.
Простившись когда-то очень давно со своей чудесной сестрёнкой и Магдалиной, Светодар никогда уже больше не видел их живыми... И хотя почти каждый месяц кто-нибудь приносил ему от них свежую весточку, его одинокое сердце глубоко тосковало по матери и сестре – его единственной настоящей семье, не считая, дяди Радана. Но, несмотря на свой ранний возраст, Светодар уже тогда научился не показывать своих чувств, которые считал непростительной слабостью настоящего мужчины. Он стремился вырасти Воином, как его отец, и не желал показывать окружающим свою уязвимость. Так учил его дядя Радан... и так просила в своих посланиях его мать... далёкая и любимая Золотая Мария.
После бессмысленной и страшной гибели Магдалины, весь внутренний мир Светодара превратился в сплошную боль... Его раненная душа не желала смиряться с такой несправедливой потерей. И хотя дядя Радан готовил его к такой возможности давно – пришедшее несчастье обрушилось на юношу ураганом нестерпимой муки, от которой не было спасения... Его душа страдала, корчась в бессильном гневе, ибо ничего уже нельзя было изменить... ничего нельзя было вернуть назад. Его чудесная, нежная мать ушла в далёкий и незнакомый мир, забрав вместе с собой его милую маленькую сестрёнку...
Он оставался теперь совсем один в этой жестокой, холодной реальности, даже не успев ещё стать настоящим взрослым мужчиной, и не сумев хорошенько понять, как же во всей этой ненависти и враждебности остаться живым...
Но кровь Радомира и Магдалины, видимо, недаром текла в их единственном сыне – выстрадав свою боль и оставшись таким же стойким, Светодар удивил даже Радана, который (как никто другой!) знал, сколь глубоко ранимой может быть душа, и как тяжко иногда даётся возвращение назад, где уже нету тех, кого ты любил и по кому так искренне и глубоко тосковал...
Светодар не желал сдаваться на милость горя и боли... Чем безжалостнее «била» его жизнь, тем яростнее он старался бороться, познавая пути к Свету, к Добру, и к спасению заблудших во тьме человеческих душ... Люди шли к нему потоком, умоляя о помощи. Кто-то жаждал избавиться от болезни, кто-то жаждал вылечить своё сердце, ну, а кто-то и просто стремился к Свету, которым так щедро делился Светодар.
Тревога Радана росла. Слава о «чудесах», творимых его неосторожным племянником, перевалила за Пиренейские горы... Всё больше и больше страждущих, желали обратиться к новоявленному «чудотворцу». А он, будто не замечая назревавшей опасности, и дальше никому не отказывал, уверенно идя стопами погибшего Радомира...
Прошло ещё несколько тревожных лет. Светодар мужал, становясь всё сильнее и всё спокойнее. Вместе с Раданом они давно перебрались в Окситанию, где даже воздух, казалось, дышал учением его матери – безвременно погибшей Магдалины. Оставшиеся в живых Рыцари Храма с распростёртыми объятиями приняли её сына, поклявшись хранить его, и помогать ему, насколько у них хватит на это сил.
И вот однажды, наступил день, когда Радан почувствовал настоящую, открыто грозящую опасность... Это была восьмая годовщина смерти Золотой Марии и Весты – любимых матери и сестры Светодара...

– Смотри, Изидора... – тихо произнёс Север. – Я покажу тебе, если желаешь.
Передо мной тут же появилась яркая, но тоскливая, живая картина...
Хмурые, туманные горы щедро окроплял назойливый, моросящий дождь, оставлявший в душе ощущение неуверенности и печали... Серая, непроглядная мгла кутала ближайшие замки в коконы тумана, превращая их в одиноких стажей, охранявших в долине вечный покой... Долина Магов хмуро взирала на пасмурную, безрадостную картину, вспоминая яркие, радостные дни, освещённые лучами жаркого летнего солнца... И от этого всё кругом становилось ещё тоскливее и ещё грустней.
Высокий и стройный молодой человек стоял застывшим «изваянием» у входа знакомой пещеры, не шевелясь и не подавая никаких признаков жизни, будто горестная каменная статуя, незнакомым мастером выбитая прямо в той же холодной каменной скале... Я поняла – это наверняка и был взрослый Светодар. Он выглядел возмужавшим и сильным. Властным и в то же время – очень добрым... Гордая, высоко поднятая голова говорила о бесстрашии и чести. Очень длинные светлые волосы, повязаны на лбу красной лентою, ниспадали тяжёлыми волнами за плечи, делая его похожим на древнего короля... гордого потомка Меравинглей. Прислонившись к влажному камню, Светодар стоял, не чувствуя ни холода, ни влаги, вернее – не чувствуя ничего...
Здесь, ровно восемь лет назад, скончалась его мать – Золотая Мария, и его маленькая сестра – смелая, ласковая Веста... Они умерли, зверски и подло убитые сумасшедшим, злым человеком... посланным «отцами» святейшей церкви. Магдалина так и не дожила, чтобы обнять своего возмужавшего сына, так же смело и преданно, как она, идущего по знакомой дороге Света и Знания.... По жестокой земной дороге горечи и потерь...

Итак, мы с вами недавно узнали о . Что есть в мире нечто посерединке, отличное от абсолютизируемых цифровкой „Истины“ и „Лжи“. Даже научились немного операциям, с помощью которых это третье состоянье („Мера“) переводится в истину („+“) или ложь („-“). И наоборот. Мы поняли, как именно ложь и истина способны «прятаться» в этом третьем состоянии („0“).

Давайте приступим к изучению логики этого мира, отличного от двоичного мира американского Спектакля. От чёрно-белой логики плохо/хорошо, с помощью которой СМИ снабжает информацией дрессирует обывателя.

5. Двуместные операции.

Операции с двумя переменными называются двуместными («бинарными»). Если учитывать третье состояние, а в трёхзначной логике оно учитывается, то всего существует 19683 двуместных операций. Десятки тысяч операций сложно разобрать в одной таблице, как мы поступили с унарными операциями в третьем параграфе. Чтобы учесть их все, нужны математические методы, выходящие за рамки этого обзора.
Поэтому о двуместных операциях куда меньше информации в Сети. Основной материал этого постинга взят из второй главы («k-значная логика») книжки С.В. Яблонского «Введение в дискретную математику» , по которой нам и преподавали матлогику на мехмате МГУ. Его применение к трёхзначной логике учитывает ту информацию о советской машине «Сетунь», которую мне передал slobin из школы акад. Брусенцова, разработчика этой машины.
Хэкерство не сводится к науке, т.к. подводит к дзэнскому просветлению, а не исходит из католической схоластики. Но изучение компьютерных наук, как мы видим, способно помочь на пути хэкера.
Интерпретация трёхзначной логики, помогающая освоить её побыстрее, отражает непростое время «цифровой оккупации» страны, в которой мы все живём. За эпиграф отдельное спасибо magenta_13 .

5.1. Конъюнкция и дизъюнкция.

Программисты зарубежных двоичных машин должны помнить простенькие логические операции И, ИЛИ (AND, OR). Математики их называют конъюнкцией x&y (в некоторых работах Брусенцова встречается запись x∧y , как дань уважения Лукашевичу) и дизъюнкцией x∨y соответственно. В трёхзначной логике (если использовать префиксную нотацию ) их проще запомнить, как операции min(x,y) и max(x,y) . Любая трёхзначная функция (сколько угодно аргументов) может быть довольно легко записана с помощью этих двух операций и операций выбора (S + , S , S -) из .
Вот карты Карно («таблицы Пифагора») для этих двух операций. Они коммутативны, поэтому можете искать x и y хоть по горизонтали, хоть по вертикали («переместительный закон»). Результат будет на пересечении:

x&y=
=min(x,y)
- 0 +
- - - -
0 - 0 0
+ - 0 +


x∨y=
=max(x,y)
- 0 +
- - 0 +
0 0 0 +
+ + + +


Если вы научили машину делать отрицание Лукашевича (~x=NOT x), то одна из этих функций избыточна, ведь ~min(x,y)=max(~x,~y) . Теперь разберём смысл, интерпретацию этих двух важнейших операций трёхзначной логики. Сразу заметим, что если на входе нет „третьего состоянья“, то эти две функции неотличимы от соответствующих функций профессора Буля.

5.1.1. Логическое И (конъюнкция).

Операцию A&B=min(A,B) часто называют логическим И (Logical AND). Почему? Представим, что ваш проект зависит от нескольких других. В простейшем случае, от каждого из двух других проектов. Всё получится, если Вася сделает обещанное и у Маши тоже всё получится.
Пусть A обозначает "у Васи всё получилось", B это "у Маши всё получилось", а C это "у Васи и Маши всё получилось". Оказывается, что C=A&B . Эту формулу легко доказать, ведь состояний всего три и перебрать все можно довольно быстро:
  • Случай, когда и Вася, и Маша справились (оба „+“) понятен. Общий проект получился, результат "логического И" тоже „истина“ („+“). Это единственный случай, когда вы можете твёрдо заявить об успехе.
  • Случай, когда кто-нибудь из них не справился („-“) тоже понятен. Независимо от усердства другого, общий проект тоже не удался („-“).
  • Если среди проектов есть незавершённые („третье состоянье“), но явных провалов нет, тогда статус общего проекта тоже неизвестен („0“).

5.1.2. Логическое ИЛИ (дизъюнкция).

Вторая операция A∨B=max(A,B) называется логическим ИЛИ (Logical OR). Предположим, что для успеха нашего проекта (C) достаточен успех лишь одного из других. При этом не важно, кто именно добьётся своего - Вася (A) или Маша (B).
В этом случае C=A∨B . Разберём возможные случаи:
  • Кто-то добился успеха (A=„+“ или B=„+“). Тогда, независимо от статуса другого проекта, мы тоже выиграли (C=„+“).
  • Оба проиграли (A=„-“ и B=„-“ одновременно). Это единственный случай, когда удача не на нашей стороне (C=„-“).
  • Явных успехов нет ни у кого (A≠„+“ и B≠„+“), но на кого-то ещё осталась надежда (A=„0“ или B=„0“). В этом случае наш проект ещё не окончен (C=„0“).

5.2. Алгебра логики.

Как нам напомнил slobin , трёхзначная логика не является булевым кольцом. У неё свой математический аппарат. Его полезно изучить, ведь это поможет почувствовать трёхзначную логику и смелее в ней оперировать. Все эти законы и свойства легко доказать, перебрав все значения входящих в них переменных.
Алгебраический подход заключается в том, чтобы определить над множеством {„-“, „0“, „+“} двуместные {&, ∨} и одноместные {", S, ~} операции с помощью законов, а оставшиеся свойства уже выводить из них алгебраически. При этом наборы законов (системы аксиом ) могут быть разными. Главное, чтобы из каждого набора можно было вывести все оставшиеся (не включённые в набор) свойства в качестве следствий.

1. Переместительный закон (законы коммутативности). Как я уже написал, операции a&b и a∨b коммутативны:
a&b = b&a
a∨b = b∨a

2. Сочетательный закон (законы ассоциативности).
a&(b&c) = (a&b)&c
a∨(b∨c) = (a∨b)∨c

3. Распределительный закон (законы дистрибутивности). Как и в булевской алгебре, каждая из двух операций &, ∨ дистрибутивна относительно другой (кстати, операция & имеет больший приоритет, чем операция ∨):
a&(b∨c) = a&b ∨ a&c
a ∨ b&c = (a∨b)&(a∨c)

4. Идемпотентность конъюнкции и дизъюнкции означает, что:
a&a = a
a∨a = a

5. Закон двойного (и тройного) отрицания . Отрицание Лукашевича ~a и циклическое отрицание a" подчиняются следующим законам:
~~a = a (инволютивность отрицания Лукашевича, то есть обратность самому себе)
a""" = a

Здесь же можно привести определения двух «крайних» операций выбора. Эти тождества приводились в качестве свойств, когда мы определяли операции выбора с помощью таблиц истинности. Считаем, что циклическое отрицание a" обладает большим приоритетом, чем операции выбора:
S - a = Sa"
S + a = Sa""

6. Свойства констант в общем-то традиционны:
a & „+“ = a
a & „-“ = „-“
a ∨ „+“ = „+“
a ∨ „-“ = a
~ „-“ = „+“
~ „+“ = „-“

К ним добавлены свойства циклического отрицания констант, фактически его буквальное определение:
„-“ " = „0“
„0“ " = „+“
„+“ " = „-“

Также появились два новых свойства, связанных с неизменностью третьего состоянья при отрицании Лукашевича:
~ „0“ = „0“
~(a & „0“) = ~a ∨ „0“

7. Законы де Моргана (законы дуальности) используют отрицание Лукашевича. Один из них я уже упомянул:
~(a&b) = ~a ∨ ~b
~(a∨b) = ~a & ~b

8. Законы поглощения :
a & (a∨b) = a
a ∨ a&b = a

9. Антиизотропность отрицания Лукашевича использует тот факт, что логические значения строго упорядочены („-“ < „0“ < „+“):
a≤b ⇒ ~a ≥ ~b

Более того, если пользоваться операцией сравнения (см. ниже), то справедливо более сильное утверждение:
a mag b ⇔ ~b mag ~a

Впрочем, из-за наличия меры (состоянья „0“) некоторые законы (например законы дополнительности конъюнкции и дизъюнкции) оказываются неверными. Их место занимают другие законы. Кстати, справедливость некоторых из этих законов ставилась под сомненье целыми математическими школами.

10. Закон несовместности состояний пришёл на смену закону противоречия , который в трёхзначной логике неверен. Высказывание a & ~a не всегда ложно, не всегда „-“. Зато выполняются следующие тождества:
Sa & Sa"" = „-“
Sa" & Sa"" = „-“
Sa" & Sa = „-“

Эти тождества означают, что a не может принять два состояния одновременно. Их можно записать с помощью операций S - и S + :
Sa & S + a = „-“
S - a & S + a = „-“
S - a & Sa = „-“

11. Закон полноты состояний сменил неверный закон исключённого третьего . Действительно, высказывание a ∨ ~a не всегда истинно, не всегда „+“. Третье дано, поэтому следующее высказывание истинно (оно снова потребует поправки при увеличении числа состояний, например при переходе в четырёхзначную логику):
Sa" ∨ Sa ∨ Sa"" = „+“ , или
S - a ∨ Sa ∨ S + a = „+“

Иногда этот закон формулируют, как закон исключённого четвёртого :
a ∨ a" ∨ a"" = „+“

12. Закон трёхчленного склеивания сменил неверный закон склеивания . В троичной логике a&b ∨ a&~b ≠ a и (a∨b) & (a∨~b) ≠ a , зато:
a&Sb" ∨ a&Sb ∨ a&Sb"" = a , или
a&S - b ∨ a&Sb ∨ a&S + b = a

13. Закон обобщённого трёхчленного склеивания сменил неверный закон обобщённого склеивания (теоремы консенсуса ). В троичной логике a&c ∨ b&~c ∨ a&b ≠ a&c ∨ b&~c и (a∨b) & (~a∨c) & (b∨c) ≠ (a∨b) & (~a∨c) , зато:
a&Sd" ∨ b&Sd ∨ c&Sd"" ∨ a&b&c = a&Sd" ∨ b&Sd ∨ c&Sd"" , или
a&S - d ∨ b&Sd ∨ c&S + d ∨ a&b&c = a&S - d ∨ b&Sd ∨ c&S + d

14. Трёхчленный закон Блейка-Порецкого сменил неверный закон Блейка-Порецкого . Действительно, a ∨ ~a&b ≠ a∨b и a & (~a∨b) ≠ a&b , зато:
a ∨ Sa"&b ∨ Sa&b = a∨b , или
a ∨ S - a&b ∨ Sa&b = a∨b

5.3. Логическое умножение и сложение по модулю три.

Удивительно, но в таблице команд машины «Сетунь» не было ни конъюнкции, ни дизъюнкции. Наряду с арифметическими операциями там была единственная «функция 20», поразрядное логическое умножение . Это обычное умножение, знакомое нам с детства:
x∧y=
=x∙y
- 0 +
- + 0 -
0 0 0 0
+ - 0 +

Оно позволяет сохранить, обнулить или изменить знак тритов. Если к обнулённым тритам прибавить (арифметически) единички или минус единички, мы получим всё разнообразие, нужное программистам. Исходя из этого данная логическая операция и была выбрана Брусенцовым для аппаратной реализации в «Сетуни», ведь он экономил пространство команд.
Сложение по модулю три напоминает двоичный XOR. Это обычное сложение, только без переноса: в случае переполнения разрядной сетки оно сохраняет лишь младший трит. Как и двоичный XOR, сложение по модулю три либо оставляет трит неизменным, либо изменяет его (производит операции INC / DEC , в зависимости от знака соответствующего трита).
x⊕y - 0 +
- + - 0
0 - 0 +
+ 0 + -

Эти две важные и полезные операции не найти у Яблонского. Вместо них русский учёный рассматривал аналогичные операции для троичной системы с базисом (0,1,2) - более сложной в аппаратной реализации, да и не нужной никому.

5.4. Функция Вебба, как надежда русской революции.

Люди, всерьёз интересовавшиеся логикой профессора Буля, помнят штрих Шеффера и стрелку Пирса. Есть ли здесь подобные двуместные операции? Оказывается, есть. Двуместная операция, которую математики называют функцией Вебба (x|y=V 3 (x,y)=INC max(x,y)), позволяет реализовать все другие трёхзначные функции. Вы не ослышались, именно все. И одноместные (например INC x=V 3 (x,x)), и двуместные (например x∨y=INC INC V 3 (x,y)). Разумеется, её таблица истинности напоминает дизъюнкцию:
x|y - 0 +
- 0 + -
0 + + -
+ - - -

Вполне возможно, что именно логическим элементам, реализующим функцию Вебба, придётся сыграть роль троичных ЛА3"их (элементов И-НЕ). И от качества реализации этой функции, количества транзисторов будет зависеть эффективность будущих отечественных троичных процессоров.
Впрочем, функция DEC max(x,y) (а возможно, что и INC min(x,y) , DEC min(x,y)) ничем не хуже. Вопрос лишь в том, какую из них мы сможем реализовать наиболее эффективно.

6. Практические нужды.

Этот раздел постепенно дописывается. Я уже полностью описал трёхзначную логику. Но всегда есть некоторые добавления и уточнения, важные для конкретных областей деятельности.

6.1. Функции, важные для инженеров.

Есть несколько функций, которые Брусенцов счёл полезными при проектировании троичных устройств. Во-первых, это одноместные арифметические функции отделения двоичных компонент α - , α° и α + , которые легко получаются из логических операций выбора:

Во-вторых, это пороговое сложение x+y , которое в отличии от сложения по модулю 3 при переполнении выдаёт самое большое (или самое маленькое) значение, умещающееся в трите. Оно не является ассоциативным, но, по свидетельству Брусенцова, существенно проще в аппаратной реализации:

Стив Грабб предложил и реализовал ещё три двуместные функции. Во-первых, это исключающий максимум (Exclusive Max) x⇑y . Результат этой забавной функции равен максимуму двух операндов или „-“, если эти операнды совпадают:

Последняя из функций, предложенных Стивом Граббом называется сравнение (Magnitude) x≡y , она сравнивает величины двух аргументов. Значение этой функции „-“, если xy (порядок аргументов важен - x по горизонтали, y по вертикали):

x≡y - 0 +
- 0 + +
0 - 0 +
+ - - 0

6.2. Функции, важные для математиков.

Некоторые функции имеют мало практического смысла для компьютерщиков, но играют важную роль в математической логике, историческую или научную. Приведу их здесь, для полноты картины. Кто знает, быть может что-то из этого наследства заиграет новыми красками в троичных компьютерах...

Пионером троичной логики был поляк Лукашевич. Наше логическое ИЛИ он обозначал x∧y и называл слабой конъюнкцией , а значком x&y обозначал совсем другую, сильную конъюнкцию , карта Карно которой приведена ниже. Справа приведена импликация Лукашевича x→ л y (x по горизонтали), которая важна в модальной логике :




Свои операции конъюнкции и импликации предложил американец Клини. В его интерпретации третье состоянье означало «неопределено»:

x∧ + y - 0 +
- - 0 -
0 0 0 0
+ - 0 +




7. Итоги.

Как я уже отметил, существуют десятки тысяч двуместных операций. Полная таблица будет необозрима. Ниже приводится таблица, содержащая в краткой форме все рассмотренные операции.
x y x&y x∨y x∧y x⊕y x|y
- - - - + + 0
- 0 - 0 0 - +
- + - + - 0 -
0 - - 0 0 - +
0 0 0 0 0 0 +
0 + 0 + 0 + -
+ - - + - 0 -
+ 0 0 + 0 + -
+ + + + + - -

8. Четвёртое измеренье состоянье.

Разработчики давно поняли, что логика профессора Буля недостаточна для построения компьютера. Так компьютерная сеть «с общей шиной» (например Ethernet) требует объединения всех входов и выходов сетевых карт. Объединение входов понятно, все считывают с общего кабеля одну и ту же информацию. Но что такое объединение выходов? Если один компьютер захочет вывести „1“, а соседний „0“, то что получится на шине, что будут считывать входы?
Многие современные схемы используют «третье состоянье» (которое скорее административное, чем логическое) и работают на стыке двоичной и троичной логик. Это состояние называется высокий импеданс («отключено»). В частности, в него переходят Интернет-сайты во время DoS-атак. :-)
В случае общей шины все выходы должны уметь находиться в этом, третьем состоянии. И только один из них должен выводить на общую шину нолик или единичку, «ложь» или «истину». Аналогично, если мы хотим воспользоваться всеми преимуществами троичной связи, нам придётся прибегать к четвёртому состоянию «высокого импеданса».
Впрочем, четырёхзначная логика легко сводится к двоичной. Просто операции производятся над двумя битиками сразу, а не над одним. Коренное отличие лишь в том, что четырёхзначные операции над битом способны влиять на «парный» бит. Впрочем, описываемое «четвёртое состояние» тоже будет нести не логическую, а «административную» функцию.

Традиционно считается что логика обладает свойствами двоичности.
То есть любое утверждение может быть истинным или ложным, а также любая функция может иметь либо положительный либо отрицательный результат.

На самом деле это не совсем так. Поэтому большинство заблуждений людей связанно с тем, что они в своих рассуждениях как раз пытаются применить эту самую двоичную логику. В некоторых ситуациях это вполне допустимо, но в большинстве случаев вызывает совершенно невероятные заблуждения.

Чтобы понять почему же истинная логика всегда троична, а не двоична возьмём для примера следуюшие три утверждения.

1) Машина красного цвета
2.) Машина не красного цвета
3.) Машина марки Форд.

Все эти утверждения касаются информации об одной и той же машине.

Каково же значение принимает информация о красноте цвета кузова машины в каждом из трёх выражений.?

С точки зрения "двоичной" логики ситуация выглядит так:

1) Увтерждение положительное то есть Красный Цвет = 1.
2) Утверждение отицательное то есть красный цвет = 0.
3) Утверждение отрицательное (информация отсутсвует) = 0.

Совершенно ясно, что последнее утверждение совершенно не обязательно является ложным только потому что информация отсутсвует. Но двоичная логика игнорирует такие тонкости ибо
у неё только ДВА результата. Положительный и Отрицательный.
Да и Нет. Никакого другого результата в двоичной логики
быть не может в принципе

Иногда это вполне допустимо, поскольку в большинстве случаев нас интересует положительный результат. А отрицательный результат и отсутсвие результата мы можем считать "одним и тем же случаем".

Но такая логика сильно искажает действительность. Иногда до неузнаваемости.

Если же мы применяем троичную логику в любых рассуждениях то картина начинает отражать в большинстве случаев значительно больше соответсвовать действительности.

Если мы к этим трём утверждениям теперь применим троичную логику то получится следующее.

Информация о красноте цвета кузова

1.) Положительная = +1
2) Отрицательная = -1
3) Отсутсвует = 0

Информация о цвете вообще

1) Положительная = +1
2) Отсутсвует (потому что утверждение "не красная" ещё не ознначает какого то конкретного цвета = 0
3) Отсутсвует

Информация о марке машины
1)= 0
2)= 0
3) +1

Таким обрзом любое утверждение с точки зрения троичной логики на самом деле становится либо истинным либо неопределённым.
Никаких "ложных" утверждений таким образом в троичной логике быть не может в принципе.

Положительным (Истина)
Отрицательным (Истина)
Нейтральным (Неопределённость)

Многих сбивает с толку двоичность логики компьютерных систем.
На самом деле двоичность логики в компьютерных системах искусственная. Связанно это с тем, что компьютерные системы значительно проще аппаратно реализовать таким образом. Кроме того
основной задачей во времена разработки компьютерных систем
отводилось вычислительным операциям. Считалось, что гораздо
эффективнее применять двоичную арифметику. Но фактически
всякие искусственные ухищрения со знаком числа во время даже арифметических вычислений уже нарушают принцип двоичности логики сами по себе. То есть когда например об отрицательном значении результата вычитания 2-х числе процесср устанавливает в определённое значение 3-е служебное число Или когда определённый разряд числа является служебным то есть фактически являтся дополнителььным третьим числом.

Если же взять абсолютно любую уже высокоуровневую логическую функцию то мы увидим, что система логики всегда троична.

Например. Система пытается считать информацию с компакт диска.
Казалось бы что на компакт диске в приципе исключительн двоичная логика по природе. Там где лазер прожёг ямку там информация равна
условно "нулю" а там где оставил нетронутым там условно "единица"
Но это только так кажется.
На самом деле далеко не вся информация на компакт диске является "нулём" или "единицей". Кучу информации оказывается безсполезными ошибками. То ли в силу ошибок записи, то ли в силу повреждения
самого диска в дальнейшем и.т.п. Для этого массу особо важной информации (такой как файловая система и.т.п.) дублируется.
В случае если считывающая програма не может определить истинность информации она пытается считать её из другого места.
Таким образом даже на компакт диске получается 3 значения.
Как "единица" так и "ноль" либо "единица" и "минус единица" являются истиой информаицей. В то время как остальные значения являются неоределёным "шумом", которые логика обязанна проигнорировать.
В итог получается что логика воспринимает 3 значения.
Из нулей и единиц программная троичная логика собирает актуальные числа, а затем преобразовывает их в "истинные" анные, А неорделённые значения игнорирует, пытаясь найти их там где они определённые и взять их оттуда. Таким образом в итоге она обрабатывает 3 значения кажого "бита", а не два.

Также само устроен обмен данных по интернету. Там любая информация тем более постоянно проверяется на истинность.
В случае получения неопределённого результата порция двоичной (истинной) информации передаётся снова до тех пор пока информация не будет соовтветсвовать истинности.
В итоге опять имеем троичную а не двоичную логику передачи информации. Ибо 2 логических значения истины плюс одно значение неопределённости равно как раз 3.

Или например возьмём ситуацию, когда производится некий поиск информации.
Например информация о наличие утренних рейсов на Нью-Йорк.
Очевидно что если полученна информация об их наличие
то это положительный результат. Если полученна информация об их
отсутсвие (только вечерние рейсы например) то это тоже результат только отрицательный. А вот если информации по каким-то причинам нет это тоже результат только неопределённый.

Таким образом любая логическая функция двух аргументов может возвращать не два а три значения:

1) Положительное а=b (машшина = красная)
2) Отрицательное a!=b (машина!= красная)
3) Неопределённое а?=b (соотношение аргументов "машина" и
"красная" не установлено)

При инверсия положительного результата может означать как отрицательный так и неопределённый результат.

Инверсия неопределённого результата может означать как положительный так и отрицательный результат

Инверсия отрицательного результата также даёт два возможных значения..

Это просто выразить. Противоположностью владению точной информацией о том что машина красная может быть две ситуации.
1) Владение точной информации что она явно не красная, и
2) Невладении никакой информацией по этому поводу
и.т.п.

Это даже лингвистически выражается в далеко не тождественности таких выражений как:
"Знаю что не красная" // "не" выступает в роли Отрицание
"Не знаю что красная." // "не" в роле неопределённости

В современном русском например иногда языке прослеживается тонкая разница между "не" и "ни" которые как раз служат для разделения отрицания с неопределённостью.

Нарпример ни тот ни другой. Никак(?=). Ниоткуда (?=). Ничем(?).
это всё неопределённость.

Никак (не) сделал. (ни хорошо ни плохо)
Не так сдалал (плохо сдеал)

Тут кстати нет никакого "двойного отрицани" тут отрицанние действия и неопределённость.

Ниоткуда пришёл. Не известно откуда ни оттуда ни отсюда.
Но "не туда идёшь". Конкретно не туда.

Ничем не занимался. (ни тем ни сем)
Не тем занимался (конкретно не тем)

Никто не пришёл (ни тот ни другой)
Не тот пришёл (конкретно не тот)

Наверняка на хабре уже немало постов на эту тему. Тем не менее, я попытаюсь рассказать свою точку зрения на всё это…

Однажды я прочитал в интернете про троичную систему счисления и заинтересовался. Меня мучил вопрос, а нельзя использовать в основе компьютера симметричную троичную систему счисления (СС), и даже вдруг это увеличит производительность компьютера? Мне казалось, что это возможно, и я жаждал это проверить.

Информация:
Троичная система счисления - позиционная система счисления с целочисленным основанием, равным 3. Существует в двух вариантах: несимметричная и симметричная.
В несимметричной троичной системе счисления чаще применяются цифры {0,1,2}, а в симметричной троичной системе счисления знаки {−,0,+}, {−1,0,+1}.
У некоторых людей эта логика вызывает затруднения. Они говорят, например, приведите пример подобной логики в жизни.
Человек, немного подумавший над этой логикой поймет, что она более жизненна чем двоичная. Обычный пример троичной логики в жизни связан с постоянным током: ток движется в одну сторону, в другую сторону, его нет.

Оказалось, что симметричная троичная система счисления использовалась давным-давно для решения «задачи о гирях», использовалась в компьютере Сетунь , построенном в 50-е годы в МГУ. С 2008 года в университете « California Polytechnic State University of San Luis Obispo» функционирует цифровая компьютерная система TCA2 , основанная на троичной системе счисления.

В чем же плюсы троичной СС над двоичной? Рассмотрим эти плюсы:

Меньше разрядов

(Написано разжевано, чтобы каждый смог понять суть этого пункта)
Возьмем число 10 в десятичной СС и переведем его в двоичную СС, получим 1010, переведем в троичную симметричную СС, получим +0+, ну а если в троичную несимметричную СС, то получим 101. Из этого мы видим, что в некоторых числах в троичной симметричной и несимметричной СС-ах меньше разрядов, чем в двоичной СС.
Возьмем число 5 в десятичной СС и переведем его в двоичную СС, получим 101, переведем в троичную симметричную СС, то получим +--, ну а если в троичную несимметричную СС, то получим 12. Из этого мы видим, что в некоторых числах в троичной несимметричной СС меньше разрядов, чем в двоичной и троичной симметричной СС-ах.

Емкость


Троичная СС вмещает больший диапазон чисел, т.к. 3^n>2^n (где n-натуральное число). Например, если n=9, то 3^9=19683>2^9=512.
3.

Экономичность системы счисления


Экономичность системы счисления - запас чисел, который можно записать в данной системе с помощью определенного количества знаков. Чем больше запас тем экономичнее система. По затратам числа знаков (в трёхразрядном десятичном числе 3*10=30 знаков) наиболее экономична из позиционных показательных несимметричных систем счисления. Обозначим p основание системы счисления, n количество требуемых знаков. Тогда получим n/p разрядов требуемых для записи этого набора знаков в заданной системе счисления, а количество чисел которое при этом можно записать будет равно pn/p.

Мы рассмотрели троичную арифметику, теперь затронем логику:

В чем же проблемы двоичной логики?
1.Мощности компьютера, основанного на двоичной логике, не всегда хватает. Приведем пример. Одна из наиболее сложных систем защиты – криптосистема RSA. Вскрытие шифра RSA с длиной ключа 1024 бита (такая длина часто используется в информационных системах) займет в лучшем случае - при проведении распределенных вычислений на тысячах мощных ПК - не менее пятнадцати лет, а к тому времени данная система шифровки перестанет быть востребованной.
Докажем математически какая система счисления будет наилучшей для максимальной мощности и емкости памяти. Для этого рассмотрим функцию f(p)=p^(n/p), в которой p – основание системы счисления, а n – количество требуемых знаков. Тогда получим n/p разрядов требуемых для записи этого набора знаков в заданной системе счисления, а количество чисел, которое при этом можно записать, будет равно pn/p

F(p)=p^(n/p)
Для того, чтобы определить максимальное значение функции, найдем ее производную:
ln f = ln p^(n/p)
ln f =n/p* ln p
...(Я не буду приводить здесь всю математику)
n*p^(n/p-2) никогда не будет равно 0 => (1 - ln⁡ p)=0, ln p = 1, p = e
e = 2,71, а ближайшее целое число к нему – это три.
Значит, в этом плане лучшая система с целочисленным основанием - троичная.

Самое вкусненькое - рассмотрим троичные логические операции:

1.Отрицание

2.Конъюнкция - логическое И

3.Дизъюнкция - логическое ИЛИ

4.Операция Выбора . Эта операция существует только для троичной логики. Таблица истинности каждой из этих трёх операций содержит везде „-“, кроме единственного значения, которое ею можно выбрать.

5.Модификация . Полное название этих одноместных операций: увеличение на единицу по модулю три (INC) и уменьшение на единицу по модулю три (DEC). Увеличение на единицу по модулю три – это циклическое прибавление единицы.

Здесь видны и прежде знакомые вам логические операции из двоичной логики, но добавились и новые…

Квантовые компьютеры

Квантовый компьютер - вычислительное устройство, работающее на основе квантовой механики. Квантовый компьютер принципиально отличается от классических компьютеров, работающих на основе классической механики.
Благодаря огромной скорости разложения на простые множители, квантовый компьютер позволит расшифровывать сообщения, зашифрованные при помощи популярного асимметричного криптографического алгоритма RSA. До сих пор этот алгоритм считается сравнительно надёжным, так как эффективный способ разложения чисел на простые множители для классического компьютера в настоящее время неизвестен. Для того, например, чтобы получить доступ к кредитной карте, нужно разложить на два простых множителя число длиной в сотни цифр. Даже для самых быстрых современных компьютеров выполнение этой задачи заняло бы больше времени, чем возраст Вселенной, в сотни раз. Благодаря алгоритму Шора эта задача становится вполне осуществимой, если квантовый компьютер будет построен.
Канадская компания D-Wave заявила в феврале 2007 года о создании образца квантового компьютера, состоящего из 16 кубит. Это устройство работает на кубитах - квантовых аналогах битов.
Но можно построить компьютеры не на битах, а на кутритах - аналогах трита в квантовом компьютере.
Кутрит (квантовый трит) - квантовая ячейка, имеющая три возможных состояния.
Подлинное новаторство метода Ланьона в том, что, используя в универсальных квантовых вентилях кутриты вместо кубитов, исследователи могут существенно снизить количество необходимых вентилей.
Ланьон утверждает, что компьютер, который в обычном случае использовал бы 50 традиционных квантовых вентилей, сможет обойтись всего девятью, если будет основан на троичном представлении.
Также, согласно некоторым исследованиям, использование кутритов вместо кубитов позволит упростить реализацию квантовых алгоритмов и компьютеров.

Итог:
В конечном итоге видно, что троичная симметричная система лучше двоичной системы в некоторых показателях, но не сильно выигрывает. Но с пришествием квантовых компьютеров троичные вычисления получили новую жизнь. Универсальные квантовые логические вентили - краеугольный камень новорожденных квантовых вычислительных систем - требует сотни вентилей для завершения одной полезной операции. Квантовый компьютер канадской компании D-Wave, анонсированный в прошлом году, состоит всего из 16 квантовых битов - кубитов - минимум, необходимый для управляемого вентиля «NOT». Использование в квантовом компьютере кутритов нужно было бы намного меньше вентилей для завершения одной операции. Я думаю, если бы началось производство и тестирование таких компьютеров, то результаты были бы лучше, чем у обычных компьютеров, вскоре началось бы массовое их производство, и про двоичные компьютеры все бы забыли…

С двумя чёткими и с одним нечётким значением помимо «истинно» и «ложно» включает также третье значение, которое нечётко и трактуется как «не определено» или «неизвестно».

На основе троичных элементов - троичной ферритодиодной ячейки разработки Николая Брусенцова - в 1959 году в вычислительном центре МГУ спроектирована малая ЭВМ «Сетунь », выпущена в 46 экземплярах.

Логики

Логики Клини и Приста

Ниже показаны таблицы истинности для логических операций «Сильной логики неопределённости» (strong logic of indeterminacy ) Стивена Клини и «Парадоксальной логики» (logic of paradox, LP ) Приста. Обе логики имеют три логических значения - «ложь», «неопределённость» и «истина», которые в логике Клини обозначаются буквами F (false), U (unknown), T (true), а в логике Приста числами -1, 0 и 1.

AND (A, B)
A B B
F U T
A F F F F
U F U U
T F U T
(A, B)
A B B
F U T
A F F U T
U U U T
T T T T
MIN (A, B)
A B B
−1 0 +1
A −1 −1 −1 −1
0 −1 0 0
+1 −1 0 +1
MAX (A, B)
A B B
−1 0 +1
A −1 −1 0 +1
0 0 0 +1
+1 +1 +1 +1

Значение U присваивается выражениям, которые реально имеют значение T или F, но в данный момент это значение по каким-то причинам неизвестно, в результате чего возникает неопределённость. Тем не менее, результат логической операции с величиной U может оказаться определённым. Например, поскольку T & F = F и F & F = F, то и U & F = F. В более общем виде: если для некоторой логической операции oper выполняется соотношение
oper(F,F)=oper(F,T), то oper(F,U)=oper(F,F)=oper(F,T);
аналогично, если
oper(T,F)=oper(T,T), то oper(T,U)=oper(T,F)=oper(T,T).

При численном обозначении логических значений (–1, 0, 1) логические операции эквивалентны следующим численным операциям:

X ¯ = − X ; {\displaystyle {\bar {X}}=-X;} X ∨ Y = m a x (X , Y) ; {\displaystyle X\lor Y=max(X,Y);} X ∧ Y = m i n (X , Y) . {\displaystyle X\land Y=min(X,Y).}

Операция импликации в логиках Клини и Приста определяется формулой, аналогичной формуле двоичной логики:

X → Y = d e f X ¯ ∨ Y {\displaystyle X\rightarrow Y\ {\overset {\underset {\mathrm {def} }{}}{=}}{\bar {X}}\lor Y} .

Таблицы истинности для неё

IMP K (A, B), OR(¬A, B)
A B B
T U F
A T T U F
U T U U
F T T T
IMP K (A, B), MAX(−A, B)
A B B
+1 0 −1
A +1 +1 0 −1
0 +1 0 0
−1 +1 +1 +1

Это определение отличается от определения импликации, принятого в логике Лукасевича.

Функциональный подход

Назовём функцию y = f (x 1 , x 2 , … , x n) {\displaystyle y=f(x_{1},\;x_{2},\;\ldots ,\;x_{n})} функцией трёхзначной логики, если все её переменные принимают значения из множества {0,1,2} и сама функция принимает значения из этого же множества. Примеры функций: max (x,y), min (x,y), x+1 (mod 3). Обозначим множесто всех функций трёхзначной логики. Под операцией над функциями будем понимать суперпозицию. Класс функций K из P 3 {\displaystyle P_{3}} назовём замкнутым, если любая суперпозиция функций из K принадлежит K . Система функций класса K называется полной, если любая функция из K может быть представлена суперпозицией функций этой системы. Полная система называется базисом, если никакая функция из этой системы не может быть представлена суперпозицией остальных функций этой системы. Доказано, что в P 3 {\displaystyle P_{3}} существует конечный базис (в частности, состоящий из одной функции). Замкнутый класс K называется предполным, если он не совпадает с P 3 {\displaystyle P_{3}} , но добавление любой функции, ему не принадлежащей, порождает P 3 {\displaystyle P_{3}} . С.В. Яблонским доказано , что в P 3 {\displaystyle P_{3}} существует 18 предполных классов. Также доказано, что все они имеют конечные базисы, в частности, состоящие из функций, зависящих не более чем от двух переменных

Включайся в дискуссию
Читайте также
Шейные позвонки человека и жирафа
Из скольких позвонков состоит шейный отдел жирафа
Упражнения по чтению гласных в четырех типах слога