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

Она является простейшим расширением двузначной логики .

Чёткую математическую троичную логику, в которой имеется три чётких значения (0,1,2), (-1,0,+1), (0,1/2,1) и др. часто путают с нечёткой троичной логикой, которая является частным случаем нечёткой логики c тремя значениями, одно, два или все три из которых - не чёткие.

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

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

Wikimedia Foundation . 2010 .

Смотреть что такое "Троичная логика" в других словарях:

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

    Системы счисления в культуре Индо арабская система счисления Арабская Индийские Тамильская Бирманская Кхмерская Лаоская Монгольская Тайская Восточноазиатские системы счисления Китайская Японская Сучжоу Корейская Вьетнамская Счётные палочки… … Википедия

    - (двузначная логика) это логика, основанная на двух утверждениях. Истина (логическая единица) и ложь (логический нуль). Из за простоты реализации получила широкое распространение в вычислительной технике. В вычислительной технике разделяют… … Википедия

    Двоичная логика (двузначная логика) это логика, основанная на двух утверждениях. Истина (логическая единица) и ложь (логический нуль). Из за простоты реализации получила широкое распространение в вычислительной технике. В вычислительной технике… … Википедия

    трехзначная логика - trireikšmė logika statusas T sritis automatika atitikmenys: angl. ternary logic; three value logic vok. dreiwertige Logik, f; ternäre Logik, f rus. трехзначная логика, f; троичная логика, f pranc. logique ternaire, f … Automatikos terminų žodynas

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

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

    Возможно, эта статья содержит оригинальное исследование. Добавьте ссылки на источники, в противном случае она может быть выставлена на удаление. Дополнительные сведения могут быть на странице обсуждения. (11 мая 2011) … Википедия

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

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

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

Информация:
Троичная система счисления - позиционная система счисления с целочисленным основанием, равным 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». Использование в квантовом компьютере кутритов нужно было бы намного меньше вентилей для завершения одной операции. Я думаю, если бы началось производство и тестирование таких компьютеров, то результаты были бы лучше, чем у обычных компьютеров, вскоре началось бы массовое их производство, и про двоичные компьютеры все бы забыли…

- Во имя чего, мистер Андерсон?
Почему вы встаете и продолжаете драться?
Вы должны понять, что не сможете победить,
сопротивление бессмысленно.
Так почему вы упорствуете, почему???
- Потому что это мой выбор.
Из к/ф «Матрица»

В 1950-е годы группой советских учёных и инженеров под руководством Николая Петровича Брусенцова (1925-2014) была создана электронно-вычислительная машина на основе троичной логики под названием Сетунь. Это сейчас, по прошествии десятков лет, когда двоичность и компьютеры стали понятиями голограммами, такие идеи разработок кажутся необычными, но еще больше они остаются непонятыми. А ведь это было открытие, способное невероятно изменить (или ускорить?) ход истории всего человечества.

Понятно, что для работы любой электронно-вычислительной машины необходимо ей задать правила по которым она будет работать. Эти правила, в самом общем смысле - есть логика, которая ведет за собой соответствующую систему счисления и алгоритмы работы. Всем нам знакома наука Логика, она же Формальная Логика. Хотя ее еще называют аристотелевой логикой, на самом деле она такой не является. Извращение силлогистики Аристотеля и подмены ее формальной логикой началось, по словам Н.П.Брусенцова, еще римскими стоиками. Видимо тогда человечество и начали глобально водить за нос. Продолжилось одурачивание уже в наше время. Логика, которую сегодня считают математической - основана на ошибке. Совершил ее Гильберт. В его совместной с Аккерманом книге «Основы теоретической логики» сказано: «Мы отклоняемся от Аристотеля в истолковании суждения «Все А суть В». По Аристотелю, это суждение может быть истинным, то есть выполняется только лишь в случае, когда существуют какие-то А. Мы считаем это нецелесообразным ». В результате получилось то, что выполняется «Все А суть В» и в то же время не выполняется «Некоторые А суть В». Это нелепость! Вместо аристотелевского следования, которое во всех естественных языках выражается словами «Все А суть В», - и Аристотель очень точно это в своей системе воспроизвел, - они подсунули так называемую материальную импликацию. Дело в том, что суждение «Все А суть В» у Аристотеля трехзначно, в двузначной логике оно невыразимо. В силу именно этого “закона” логика лишилась своего фундаментального отношения - содержательного необходимого следования, в результате чего и стала “мертвой схоластикой”.

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

Рассмотрим подробно.

Аристотель определил отношение следования в “Первой аналитике” так:

“...когда два [объекта] относятся друг к другу так, что если есть один, [то] необходимо есть и второй; тогда, если нет второго, [то] не будет и первого; однако если второй есть, то не необходимо, чтобы был первый. Но невозможно, чтобы одно и то же было необходимо и когда другое есть, и когда его нет”.

Обозначения: А и ее противоположность (или отсутствие) не-А

В и ее противоположность (или отсутствие) не-В

Суждение «Все А есть В» принимает такие значения:

При А и В - суждение истинно

При А и не-В - суждение ложно, поскольку противоречит первой ситуации. Ведь не возможно, что бы из А следовало и В и не-В.

При не-А и не-В - суждение истинно

И самое интересное

При не-А и В - суждение… не может однозначно принять ни истинность ни ложность.

Если допустить, что это суждение истинно, тогда получится что В следует как из А (первая подстановка), так и из не-А. Это значит что некий вывод мы можем получить как из одной предпосылки, так и из ее антипода - а это противоречит здравому смыслу. Если же допустить, что суждение ложно, тогда получится, что В не может следовать из не-А. Но откуда мы знаем, что это невозможно? Мы этого не знаем, и потому не имеем право утверждать.

Аристотель же говорит об этом так: если второй есть, то не необходимо , чтобы был первый. Не необходимо - вот результат и смысл, который мы должны написать напротив «не-А и В» в суждении «Все А есть В». Но в двузначной логике у нас есть только значение Истинно и Ложно (ДА и НЕТ; 1 и 0), и мы не можем «Не необходимо» обозначить с помощью этих символов. Именно это является главным противоречием формальной (двоичной) логики и реальной жизни. Трехзначная логика же легко решает эту проблему используя третий символ.

В четвертом варианте суждения Аристотель в своих умозаключениях оставляет пустую клетку, подразумевая возможность появления там 0 или 1, но уже при уточненных условиях задачи. Или эту клетку можно обозначить символом Сигма - который является первой буквой слова «привходящее» или по-другому «возможность» на латинском. Знаменитое «не исключено, а значит возможно» - это и есть наше «не необходимо» другими словами. Теперь мы видим как двузначная логика противоречит реальности, и потому используя ее как инструмент для познания мира она будет давать неадекватные реальности результаты, тем самым уменьшая наши возможности к объективному познанию действительности.

Диалектический принцип сосуществования противоположностей лежит в основании аристотелевой силлогистики и неукоснительно соблюдаем в ней, хотя самим Аристотелем об этом ничего не сказано. Однако принцип этот несовместим с законом исключенного третьего, которым исключено как раз сосуществование противоположностей - “может быть, а может не быть”.

Аристотель не признавал закона исключенного третьего. Даже речи о нем не было. Гильберт считал, что аристотелевское понимание суждения «Все А суть В» не нужно принимать, потому что это неприемлемо с точки зрения математических применений. А абсурд приемлем? Вся история говорит о том, что этот абсурд существует.

Брусенцов говорил так: если мы хотим обрести нормальное мышление, мы должны уйти из двузначного мира и освоить трехзначную логику в том виде, как ее создал Аристотель. Не совсем, конечно, так. Не нужны его фигуры. Все это сегодня с помощью алгебры можно будет изящно изложить и легко воспринимать. Но важно понимать, что, кроме ДА и НЕТ, есть еще и НЕ-ДА и НЕ-НЕТ.

Сейчас двузначную логику в школу ввести удалось под названием «информатика». После этого школа уже не будет воспитывать таких людей, как наши ученые прошлого века. Почему в то время было так много творческих ученых? Где-то в 1936 году в образовании был примерно такой же бедлам, как наступил сейчас в России. Потом, по-видимому, сам Сталин обратил на это внимание. Кстати, Сталин был поразительно трудолюбивым в плане обучения человеком. Сохранилось его письмо к жене, в котором он, находясь на отдыхе, просит ее прислать ему учебник по электротехнике. Он понимал, что все нужно знать «в натуре», а не в виде каких-то теоретических схем. Тогда в школу были возвращены учебники Киселева по алгебре и геометрии. Киселевские учебники - это евклидова математика. А Евклид - это математик с философией Аристотеля, и, судя по всему, он Аристотеля понимал верно.

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

Примеры троичной логики в жизни

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

Давайте взвесим на обычных рычажных весах два предмета А и В. Весы легко позволят нам определить две противоположности: вес А > В или вес А < В. Но ведь возможно также А = В! Следовательно, задача о весе А и В имеет три решения. А обозначения для такой ситуации в двузначной логике нет!

Точно так же третье решение имеют исход футбольного матча (ничья), нейтралитет (вместо поддержки или противостояния) Швейцарии и Финляндии в период противостояния НАТО и Организации Варшавского договора.

Обозначим за 1 наличие Солнца на небе, а за 0 - отсутствие. Как же тогда там обозначить восход, когда горизонт уже озарен яркими лучами, но солнечный диск еще не показался? А никак, в соответствии с двоичной логикой такое состояние нельзя обозначить, и значит оно в рамках нее не существует. Слышите? Восход, который происходит каждое утро не существует в модели двоичной компьютерной логики.

Прошлое - это то, что БЫЛО, а будущее - это то, что еще НЕ БЫЛО. А где настоящее? Как видно, в двоичной логике невозможно обозначить настоящее, то есть в модели двоичной логики настоящего не существует. Но ведь мы в нем живем! Или не существует будущего, если за 0 обозначить настоящее - но и это звучит не менее абсурдно.

И последний пример из народной пословицы, как всегда очень меткой и емкой.

«Всякая селёдка - это рыба, но не всякая рыба селёдка.»

Здесь можно представить множество рыб (В) - большой круг, и множество селедок (А) - небольшой круг нарисованный внутри большого круга рыб. Глядя на круги мы видим, что если взять селедку, то она непременно будет находиться в множестве рыб. А вторую часть фразы «не всякая рыба селедка», можно переформулировать в вопрос так: Что бы у меня в руках непременно была рыба, я должен взять селедку или не должен ее брать? И ответ: Можно взять, а можно и не брать, ведь кроме селедки есть еще другие рыбы! То есть множество рыб (В) больше множества селедок (А), и значит кроме селедки существуют другие рыбы, о которых мы сейчас речи не ведем. Но мы должны понимать и учитывать, что множество рыб включает еще и другие виды рыб. В двузначной же логике выходит, что раз мы не учитываем, что множество рыб больше множества селедок, и приравниваем (отождествляем) эти множества, то это аналогично умозаключению что всякая рыба - это селедка, что есть абсурд! Таким образом объективную реальность впихнуть в чёрно-белую картину бивалентности невозможно ни теоретически, ни практически, но нас упорно убеждают - что это не только не невозможно, но необходимо и единственно верно.

Лишь на первый взгляд кажется, что бинарность – безобидная философская или математическая категория, образная модель или инструмент, который мы используем по своему желанию. Здесь точно так же как и с физикой. Для удобства представлений мы берем некоторые модели, но в процессе их использования так входим во вкус, что совсем забываем о ее нетождественности реальному миру. Совершенно не случайно бинарная или так называемая «бивалентная» логика «да–нет», нацеленна на поиски «абсолютной истины» и «абсолютной правоты» (или «абсолютной неправоты»), и культивируется тоталитарными режимами. Кроме того, бивалентная логика поддерживает основу тоталитарного мышления – логический фатализм. Главным из его принципов является принцип исключения третьего, где каждое высказывание или истинно, или ложно. «Или–или». Промежуточных состояний или чего-то Третьего – не дано! Так же выбивая, делая невозможным некое развитие будущего по одному из наших вариантов, нам как данность оставляют некий второй вариант - противоположный нашему и в рамках двоичной логики не принять его нельзя, потому что других вариантов не существует в принципе. Можно представить человека, которого ставят на обрыв, в грудь упирают нож и накидывают петлю на шею. Но затянуть петлю или прыгнуть с обрыва человек должен сам. Иными словами выбор без выбора. Так нас загоняют в ментальную ловушку, выхода из которой в рамках навязанной нам и добровольно принятой нами системы - нет. Двоичная логика - это инструмент, которым нас лишают выбора, обезволивают и деморализуют.

Именно поэтому агент Смит так недоумевает, потому что он двоичная компьютерная программа, которой неведома трехзначность бытия.

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

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

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

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

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

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

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

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

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

error: