Pull to refresh

Comments 39

«Чтобы скомпенсировать вызываемую ей низкую точность, изобретатель придал своей машине крупные габариты...» напомнило что-то из Фрейда
Плохая точность изготовления механических частей была обычной проблемой в такого рода устройствах аж до началы XX века. Пионерам компьютеростроения приходилось тяжко — их конструкции отлично работали на бумаге, однако когда доходило до реализации — дело шло туго. Тот же Беббедж, когда строил свои вычислительные машины, потратил немалые деньги на запчасти — из десяти выточенных по его заказу деталей подходила разве что одна, остальные отправлялись в мусорку из-за того что были сделаны неточно.
Ironically, радикально повысить точность изготовления смогли лишь станки с ЧПУ :)
Расскажите это часовщикам :)
Основным останавливающим фактором является несовместимость бинарного программного обеспечения с троичной логикой. На сегодняшний день на некоторые проекты было потрачено несколько тысяч человеко-лет и миллиарды долларов, и отказываться от их использования в пользу работы с нуля было бы слишком дорогим решением.


Прошу прощения, но двоичная математика с легкостью выполняется на троичной логике, об этом еще Брусенцов писал в своих работах.
> Позднее «Сетунь-70» была эмулирована на двоичных машинах в форме диалоговой системы структурного программирования ДССП
Можно ссылочку приложить, нашлась на trinary.ru
Основными останавливающими факторами являются

а) реализация таких архитектур на уровне схемотехники железа (трит-шины с двумя дорожками на трит или с одной дорожкой, но с амплитудным делением уровней);
б) относительная дороговизна полупроводниковых структур для реализации троичной логики;
в) неоднозначность переходных процессов;
г) сложность логического программирования в троичной системе из-за большого количества элементарных функций (чего только стоят троичные инверсии).

В общем, плюсы (потенциальная логическая нечёткость по сравнению с бинарной логикой и большая плотность кодирования) перевешиваются минусами реального применения.
А что понимается под «троичной инверсией»?
А на какой элементной базе?
Казалось бы:
если трит кодируется двумя битами (xp,xm), где "+"=(1,0), «0»=(0,0), "-"=(0,1), то:
обмен "+" и "-" — просто перестановка проводников:
bp=am, bm=ap
обмен "+' и «0» — bm=am, bp=~(ap|am)
обмен «0» и "-" — bp=ap, bm=~(ap|am)
Всё за два такта — если такие операции вообще требуются в качестве элементарных. Ведь для реализации сложных схем необязательно кодировать все элементарные операции, можно оптимизировать их под то, что дешевле.
Бенефиты троичной системы подразумевают ещё и компактную элементарную логику. Которая, при соответствующей оптимизации, позволяет производить декомпозицию сложной логики до меньшего количества элементарной.

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

Так вот в двоичной логике инверсия выражается такой формулой:

Not(x) = Webb(x, x)

А в троичной такой (сам выводил уже давно):

Inc(x) = Webb(x, x)
Dec(x) = Inc(Inc(x))
Not(x) = Webb(Webb(Dec(x), Inc(x)), Inc(Webb(Dec(x), x)))

Из этого можно сделать вывод, что реализовывать всю троичную логику на одном типе триггеров чудовищно не эффективно, в отличие от двоичной, где требуется куда меньше операций.
Да, но если сравнивать эквивалентные по информационной сложности операции (например, сложение двух трехбитных чисел со сложением двух двухтритных), результат уже не столь предсказуем.
Если сравнить построение двоичных функций от двух переменных и троичных функций от одной переменной через операцию max(x,y)+1, то получится, что двоичную функцию можно вычислить в среднем за 2.25 операций, а троичную — за 4.037. Учитывая, что троичных функций больше (27 против 16), а стартовые условия хуже (на нулевом уровне есть только одна функция, а не две), проигрыш совсем не выглядит «чудовищным».
Не совсем понял зачем сравнивать двоичные функции от двух переменных и троичные от одной? И что такое нулевой уровень?
Нулевой уровень — это функции, которые получаются за 0 операций: x для функции от одной переменной и x и y — для функций от двух. Сравнивать их можно, чтобы обеспечить хоть какое-то равноправие: то, что на каждую из 4 возможных двоичных функции тратится меньше операций, чем на каждую из 27 троичных, не удивительно — мы кодируем в два с лишним раза меньше информации. Разумеется, схемы будут получаться проще. 16 двухаргументных функций дают более похожее по размеру множество. Там сравнение имеет чуть больше смысла.
Троичная система счисления хороша тем, что в ней ошибки округления не имеют смещения, а значит не настолько быстро накапливаются. Об этом тоже стоило бы упомянуть.
Рыдаю над переводом: «но даже с учетом потерянных бит запрещенных состояний» — это теперь так помехоустойчивое кодирование обзывают?
Тут, вероятно, речь о том, что на одну цифру потребовалось 4 бита, а не log210=3.3219… В результате 0.678 бита на цифру потеряны из-за наличия 6 запрещенных состояний — 1010, 1011,… 1111. Имеет ли это отношение к помехоустойчивому кодированию — думайте сами.
> английский математик Льюис Кэролл

Английского математика всё же звали Чарльз Доджсон.
Как Кэролл он публиковал только нематематические свои труды.
Внезапно, «труды о троичной логике» опубликованы под именем Льис Кэррол.
books.google.ru/books/about/Symbolic_Logic.html?id=b5gXAAAAIAAJ&redir_esc=y
Потомучто это для детей.
""«Овладев же методами «Символической логики», вы получите увлекательное развлечение, не требующее ни специальных досок, ни карт, и к тому же полезное независимо от того, чем вы занимаетесь.»""
Вроде интересная статья, но не покидает ощущение, что её абзацы выдраны из какого-то единого контекста.
А скажите, пожалуйста, в чём архи-сложность баллистических вычислений?
Догадываюсь, что там чуть посложнее, чем L = 2v02cosα / g
Но чтобы несколько дней — это мне кажется черезчур.
На самом деле сложность зависит от желаемой точности, а вообще задача заключается в том чтобы по всем слоям воздуха, через которые летит снаряд, проинтегрировать влияние на него всех факторов при «табличных условиях» (15 градусов Цельсия и 750 мм. рт.ст.), а также коэффициенты влияния отклонений от табличных условий и внешних факторов. Собственно сложность заключается в том что на разной высоте воздух имеет разную плотность, снаряд вращается и многое другое, а также то, что надо для каждого снаряда составить таблицы для всех типов зарядов, взрывателей (они тоже влияют на полёт), различных углов возвышения.
Ещё дополню, что выбор десятичной системы для ENIAC был обусловлен не одной только «обратной совместимостью» с механическими десятичными счётными машинами, и возможностью «портирования» уже используемых там счётных алгоритмов на новую элементную базу.

А именно, по информации www.inf.fu-berlin.de/lehre/SS01/hc/eniac/, "Десятичная система была выбрана для того, чтобы существенно сократить общее число используемых радиоламп. Например, для хранения 10-значного десятичного числа в десятичном счётчике с возможностью переноса между разрядами требуется 280 ламп. Хранение того же числа в двоичном счётчике потребовало бы 450 ламп."

Поэтому хотелось бы от автора более подробного описания, что такое «плотность записи информации», и чем именно троичная система выигрывает у десятичной и остальных.
Честно говоря, я так и не понял, чем троичная лучше, и при чем здесь основание логарифма?
Преимущество трехзначной логики над бинарной легче всего продемонстрировать на примере операции сравнения двух чисел: здесь троичная логика сразу выдает результат (больше, меньше или равно)…

С таким же успехом я могу сказать, что семизначная логика еще лучше, потому что в ней проще закодировать день недели, цветовой или музыкальный тон.
Основание логарифма могло бы быть «при чём», если бы на реализацию троичного элемента логики требовалось ровно в 1.5 раза больше ресурсов (места на кристалле, потребляемой мощности,...), чем реализацию двоичного элемента в той же технологии. Тогда для представления числа от -N до N в троичной логике (при больших N) потребуется в среднем в 1.056 раза меньше ресурсов, чем в двоичной.
Спасибо огромное за статью, с удовольствием прочитал.

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

К сожалению, не располагаю излишками времени, если бы вы подготовили столь же обширную статью о СОК — былоб ы прекрасно.
> проект которой годом ранее был отвергнут за излишнюю новизну
Это как? Типа «сильно круто»?
Типа «технология еще не готова, чтобы реализовать проект на должном уровне». Или «модель бесперспективна, поскольку отсутствуют буржуазные советские аналоги».
> «модель бесперспективна, поскольку отсутствуют буржуазные советские аналоги»
*(в моем понимании: «зачем нам это надо, если у наших конкурентов такого нету»)
Спасибо, очень классное высказывание!
Кстати, какие порязрядные (тритовые?) операции полезны в симметричной троичной системе? В голову приходят BMIN, BMAX, BMUL и сложение по модулю 3 (BADD?). Если триты в аргументах принимают значения 0 и 1, то BMAX — аналог OR, BMIN и BMUL — аналог AND (работают одинаково), XOR(a,b) придется реализовывать как BMAX(0,BADD(a,b)), а NOT(a) — как SUB(MAX_INT,a).
В России и сейчас этим занимаются, у нас защищался вечерник у которого были в дипломе троичные логические элементы, он их даже моделировал в MultiSim. Видать где он работает этой темой занимаются, к сожалению подробностей я не знаю…
«За счет несложных технологий «Сетунь» со всей периферией стоила 27,5 тысяч рублей (для сравнения: только процессорный блок рекордно дешевой PDP-8 стоил 20 тыс. долларов)» — это тогда, когда курс доллар фиксировался на уровне 60 копеек?
Очень хорошая статья. Огромное спасибо.
А еще лучше n-ичные логические элементы с двухзначным-трёхзначным «n».

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

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

Но логика, если это реализовать в железе, будет оочень сложная, я даже не представляю сколько операций для всех вариантов состояния.
Мозг функционирует по другим принципам и аналогия с n-ичными элементами слишком натянутая. Поэтому реализовывать такую n-ичную логику не имеет смысла, т.к. выигрыша по сравнению с двоичной не будет. Лучше тогда уж развивать квантовые и другие принципиально другие процессоры.
Sign up to leave a comment.

Articles