Что, если современные компьютеры работали бы на троичной логике
2026-02-21 03:47 Diff

#статьи

  • 12 апр 2021
  • 0

Что, если современные компьютеры работали бы на троичной логике

История не терпит сослагательного наклонения — даже история компьютеров. Так что не показывайте эту статью историкам и на всякий случай компьютерам.

Кандидат философских наук, специалист по математическому моделированию. Пишет про Data Science, AI и программирование на Python.

Наименьший элемент, атом всего IT — это цифровой логический переключатель. Он получает на вход сигнал «0» или «1» и возвращает тоже ноль либо единицу.

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

Компьютерная логика — двоична. «Истина или ложь», «быть или не быть», «третьего не дано» — такая категоричность восходит ещё к силлогизмам Аристотеля и имеет свои недостатки.

Первые вычислительные машины разрабатывали в середине XX века. Когда решали, какими они будут, к двоичной логике накопилось уже немало претензий. Компьютеры могли быть другими.

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

В центре нашей сцены — советский «Спутник». Космическая компьютерная графика под «бип-бип-бип» и музыку Свиридова, аршинные заголовки в газетах; советские инженеры, празднующие выход аппарата на орбиту; жители западных стран, тревожно глядящие в небо.

А за кадром — мрачный голос приглашённой звезды. Это был бы Стивен Кинг с отрывком из книги «Пляска смерти» — о том, как его ужаснула новость о полёте «Спутника» в октябре 1957 года.

Реакцию западных стран на этот запуск принято называть «Спутниковым кризисом». По его итогам правительство США усилило исследования космоса, а также финансирование вооружений, разведки, науки и образования в областях, с ним связанных.

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

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

Сейчас мы знаем, что начинания эти не привели к успеху ни на Западе, ни у нас. Причины этого по обе стороны железного занавеса были на удивление схожи: сложность предмета, отсутствие элементной базы, косность специалистов, волокита и жадность чиновников1.

Но всё-таки: а что, если бы тогда компьютеры стали не двоичными, а троичными? В каком мире мы бы сегодня жили?

Временно отключим внутреннего скептика и пессимиста и оценим самые вероятные перемены.

?   Вероятность: 3/5

Базовый элемент двоичного компьютера, бит, заключает в себе два вида сигналов (0 и 1). Трит, базовый элемент троичного компьютера, — соответственно, три (например, −1, 0, 1).

Трит содержит примерно в полтора раза больше информации, чем бит. Проще говоря, бит «уменьшает незнание» об исследуемом объекте в два раза, а трит — уже в три раза.

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

Физически троичный элемент, конечно, сложнее и дороже двоичного, особенно на первых порах разработки. Однако в пересчёте на одно устройство их бы и требовалось меньше. Также можно предполагать, что новые материалы и массовое производство свели бы эту разницу к нулю.

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

Компьютер «Сетунь» был бы не пасхалкой из ролика про русскую кибердеревню, а вполне типовым первым компьютером из большой и длинной промышленной линейки. Тем более что он уже тогда стоил дешевле и работал надёжнее, чем западные аналоги, хотя и в десятки раз медленнее.

Временно изгнанный скептик: упорно кричит что-то про рентабельность и дороговизну производства. Мы его игнорируем и вам советуем.

Вероятность: 3/5

Троичное основание вычислений, по мнению создателя «Сетуни», более естественно, поскольку многие вопросы в реальности предполагают тройственный, а не двойственный ответ:

  • Увеличить / Не изменять / Уменьшить;
  • Вперёд / Стой / Назад;
  • Победа / Ничья / Поражение;
  • Дружественный / Нейтральный / Враждебный;
  • Избыток / Норма / Недостаток.

И так далее.

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

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

И… тут даже не знаем, что дальше: слишком много вариантов. «Хабр» становится «Одноклассниками»? Мемы про мужскую логику? Долгопрудный — город невест?

Лишённый голоса пессимист: мрачно и шовинистически кивает.

?   Вероятность: 4/5

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

Так, квадратичная функция возводит входящее значение в квадрат, а операция сложения из двух значений делает их сумму.

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

  • Полное зануление: независимо от того, ноль поступил на вход или единица, операция выдаёт ноль.
  • Возврат единицы: превращение любого входного значения в единицу.
  • Отрицание: если на входе ноль, то результат единица, и наоборот.
  • Повторение: просто возвращает то, что поступило на вход.

В троичной же логике число возможных операций над одним входящим значением возрастает до 27. Они перечислены в табличке ниже. Плюс и минус указаны вместо 1 и −1, ноль остался нолём.

В случае двухместных (принимающих на вход два значения) операций разница возрастает на порядки: 16 вариантов в двоичной логике и, приготовьтесь, 19 683 в троичной. Девятнадцать тысяч шестьсот восемьдесят три!

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

Изгнанные скептик и пессимист: подражают звукам зоопарка.

?   Вероятность: 5/5

День программиста сейчас, в нашей двоичной реальности, отмечают в 256-й день года. Число 256 (28) выбрано потому, что это максимальная целая степень числа 2, значение которой не превышает числа дней в году.

Если бы компьютеры были троичными, то максимальная степень тройки, подчиняющаяся похожему условию, равнялась бы 243 (35). В невисокосный год праздник выпадал бы на 31 августа, аккурат перед Днём знаний. Совпадение? Не думаем.

Впрочем, пятая степень числа 3 — не слишком логичная дата. Вполне возможно, что праздник отмечался бы третьего марта (03.03) или, ещё лучше, в третью среду каждого третьего месяца. Главное, чтобы не раз в три года.

Внутренний пессимист: купается в фонтане из SimCity.

?    Вероятность: 2/5

Квантовый компьютер в теории позволяет вычислить сразу все возможные состояния рассматриваемого объекта — например, системы уравнений или молекул вещества. Он может во много-много раз ускорить всё высокотехнологичное производство.

Основой квантовых вычислений является кубит — квантовый бит. У него, как и у обычного бита, два возможных состояния, но вдобавок к ним есть и третье — состояние суперпозиции. Правда ведь, похоже на обычный неквантовый трит, упомянутый выше?

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

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

И, конечно, никакого коронавируса.

Внутренний скептик: демонстративно надевает маску.

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

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

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

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

Наконец, наши курсы и профессии направления «Программирование» стали бы совсем другими. В чём мы уверены — так это в том, что точно так же старались бы сделать их ещё увлекательнее, содержательнее и полезнее. Приходите! Для начала разберёмся с двоичными компьютерами, а там и Троичная эра подоспеет.

Бесплатный курс по Python ➞
Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу