psilogic: (Default)
psilogic ([personal profile] psilogic) wrote2005-11-23 06:18 pm

О сказках про троичную логику

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


Не надо путать двоичную систему счисления и двузначную логику.

________

Большинство компов используют двоичную систему счисления. Это значит, что числа в них кодируются последовательностью цифр, каждая из которых может иметь два варианта. Например, 0 вольт и +5 вольт. Условно каждый вариант обозначают 0 или 1.

Всякое целое число можно записать в любой системе счисления. Вот например, в десятичной системе число 13. В двоичной будет 1101.

С технической точки зрения считать в двоичной системе проще. Например, таблица умножения будет не 10 на 10, а 2 на 2. С другой стороны, для записи числа в двоичной стсиеме потребуется больще цифр. На примере выше это видно: 1101 и 13.

Если приблизительно прикинуть орган к носу, то идеальный вариант лежит где-то между 2-ичной и 3-ичной системами счисления.

______

А что такое двузначная логика? Двузначная логика, это когда рассматривается два варианта истинности: true и false - "истина" и "ложь". Обратите внимание: речь идет не о кодировании чисел, а о кодировании истинности.

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

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

Не рекомендуется идти на поводу у тех, кто говорит что-нибудь типа: "Это такой сложный вопрос, как можно его обсуждать в двоичной логике!?"

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

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

Как вы наверное уже поняли, говорить "двоичная логика" безграмотно. Правильно говорить "двузначная логика", либо "двоичная система счисления". "Двоичная логика" - это компьютерный слэнг, означающий, что многие элементы электроники могут находиться ровно в двух состояниях (0 и +5 вольт илинаподобие). К логике словесных рассуждений этот термин имеет весьма отдаленное отношение.

______

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

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

Почему-то думают, что применение недвузначной логики в компьютерах - это дело будущего, и это обеспечит могучий прорыв там или сям. Возможно, вы будете смеяться, когда узнаете правду. Вы давно играли в какую-нибудь компьютерную игрушку (или видели как кто-то играет)? В стрелялку типа Quake или Doom, в стратегию типа Heroes и т.п.?

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

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

Пример: по лабиринту бежит монстр. Ему надо в вас стрелять. Чтобы игра была интересной, в поведение монстра вносится элемент случайности. Он медлит, промазывает, бежит то вправо, то влево. Тут то и используется недвузначная логика: не попасть/промазать, а попасть с некоторой вероятностью, бежать не однозначно влево/вправо, а с некоторой вероятностью влево, а иначе - вправо. В результате поведение монстров становится не таким примитивным и предсказуемым, как если бы они бегали по одному заранее заданному маршруту и всегда стреляли точно вам в сердце.

Напоследок, приведу краткий обзор терминов:

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

[identity profile] sanitareugen.livejournal.com 2005-11-23 05:44 pm (UTC)(link)
В виде справки.
Компьютеры на троичной логике серийно выпускались в СССР в начале 60-х ("Сетунь").
Машины для своего времени были очень неплохие, но никаких прорывов знания не открыли.
Выпускались также электромеханические компьютеры на десятичной базе.

[identity profile] firtree.livejournal.com 2005-11-23 07:34 pm (UTC)(link)
Угу. И были надёжно забыты, потому что двоичная элементная база при прочих равных проще, быстрее, надёжнее, а потому выгоднее выжимать миниатюризацию и ускорение, а не значность. Впрочем, иногда недвиочные системы счисления применяются, например, в каналах связи, в записи на носители, но не в обрабатывающей логике. "Логика" в жаргонном смысле.

[identity profile] sanitareugen.livejournal.com 2005-11-23 09:10 pm (UTC)(link)
Если бы на тот момент всерьез взялись бы за реализацию троичной логики на микросхемах - еще неизвестно, что было бы. А то ведь машина была сделана аспирантом в порядке инициативы на списанных магнитных усилителях...
И лишь потом пошла в серию...

военная кафедра

[identity profile] ex-l331.livejournal.com 2005-11-24 07:26 pm (UTC)(link)
триггер имеет два состояния.,
а секретный военный тригер - три.

[identity profile] firtree.livejournal.com 2005-11-24 07:30 pm (UTC)(link)
Именно-именно. И в третье он переходит по нажатию Красной Кнопки.

[identity profile] ex-l331.livejournal.com 2005-11-24 07:37 pm (UTC)(link)
это быль, ставшая анекдотом.

[identity profile] prof-moriarty.livejournal.com 2005-11-23 07:34 pm (UTC)(link)
У этих двоичных штучек один плюс - помехоустойчивость.

[identity profile] firtree.livejournal.com 2005-11-23 07:35 pm (UTC)(link)
Не только помехо. Вообще все разбросы могут быть больше, не ухудшив работы устройства.

[identity profile] psilogic.livejournal.com 2005-11-23 08:40 pm (UTC)(link)
помехоустойчивость - это плюс всех дискретных по сравнению с аналоговыми
между дискретными разница по помехоустойчивость малозначимая, как ты наверное догадываешься...
т.е. представь себе кодирование амплитудой волны и серией фрагментов волн с 4 градациями амплитуды

[identity profile] prof-moriarty.livejournal.com 2005-11-23 08:45 pm (UTC)(link)
Фигня. Полная фигня. Одно дело есть сигнал/нет сигнала другое дело амплитуду опрделять.

[identity profile] psilogic.livejournal.com 2005-11-23 08:51 pm (UTC)(link)
ну смотри

пусть мы кодируем величину сигнала аналогово
чтобы передать аналогово число от 0 до 255 нам нужен приемник, который распознает 256 градаций амплитуды
величина помехи которая сожет все испортить равна 1/256 от максимальной амплитуды

пусть теперь мы кодируем величину сигнала дискретно в 4-ричной системе
чтобы передать аналогово число от 0 до 255 нам нужен приемник, который распознает 4 градации амплитуды (а сигнал разбит на 4 последовательных фрагмента)
величина помехи которая сожет все испортить равна 1/4 от максимальной амплитуды

понятна идея?

[identity profile] firtree.livejournal.com 2005-11-24 01:17 am (UTC)(link)
Пардон, это тебе непонятна идея. Ошибка в словах "чтобы передать аналогово число". _Число_ аналогово не передают. Можно передать аналогово _величину_, которая будет в каком-то диапазоне. И вести разговор, как эту величину в канал связи преобразовали, как на другом конце измерили, и какие помехи в неё канал связи внёс.

А то, что ты написал - это просто два цифровых канала. 256- и 4-значный.

[identity profile] psilogic.livejournal.com 2005-11-24 02:07 am (UTC)(link)
А теперь представь себе, что надо передать через аналоговый канал число. И подумай :)

[identity profile] firtree.livejournal.com 2005-11-24 02:37 am (UTC)(link)
Когда через него передают число, он называется числовой канал.

[identity profile] firtree.livejournal.com 2005-11-24 02:45 am (UTC)(link)
Тьфу, цифровой.

Короче, есть такая вещь, как аналоговые величины, и с ними работают через АЦП/ЦАП. А есть такая вещь, как цифра, которая запихнута в нетривиальной кодировке (не 0/+5 В), и с ней работают через модемы. Задачи перед устройствами стоят немножко разные. Демодулятору плевать на помехи, если он исходное число может узнать. А АЦПу не всё равно - ему по шее настучат. И ТТХ у них разные вещи содержат.

Короче, сам подумай. Вообще, от подумая слышу!

[identity profile] psilogic.livejournal.com 2005-11-24 09:21 am (UTC)(link)
=)
Ага, ты еще попробуй развести понятия величина и число ;) Устреми в том примере 255 к бесконечности... в пределе получишь идеальную аналогувую величину. А теперь попробуй вернуться к реальности и уловить, что четкая граница между аналоговым и цифровым кодированием будет только в умах теоретиков ;)

[identity profile] firtree.livejournal.com 2005-11-24 07:21 pm (UTC)(link)
> Ага, ты еще попробуй развести понятия величина и число
А чего их разводить, чай не кислота. Величину меряют, число циферками передают.

> Устреми в том примере 255 к бесконечности...
И обломишься, потому что придётся измерять напряжение с бесконечной точностью. В этом, кстати, отличие величины от числа: величину меряют с погрешностью, а в числе важна каждая циферка принципиально.

> четкая граница между аналоговым и цифровым кодированием будет только в умах теоретиков ;)
Практиков, Муся, практиков. Я же сказал: когда дело доходит до реализации конкретных устройств, перепутать даже с закрытыми глазами не получится. А ты как раз со своими пределами несколько затеоретизировался.

[identity profile] psilogic.livejournal.com 2005-11-24 07:26 pm (UTC)(link)
[ Величину меряют, число циферками передают. ]

Результат измерения есть шо? :)

[ И обломишься, потому что придётся измерять напряжение с бесконечной точностью. ]

Во. За шо я тебя люблю нежно по-бГатски, так это за понятливость :)

[ В этом, кстати, отличие величины от числа: величину меряют с погрешностью, а в числе важна каждая циферка принципиально. ]

Да ниужели?? Приципиально, да? Яркость красного в дискретном видеосигнале будет не 253, ф 252 и хана фильму, правда? :)

[identity profile] firtree.livejournal.com 2005-11-24 07:29 pm (UTC)(link)
> Результат измерения есть шо? :)

Доверительный интервал.

> Во. За шо я тебя люблю нежно по-бГатски, так это за понятливость :)

Я тебя тоже. Щас полюблю. Величину-то можно не с бесконечной точностью мерять, ку?

> Да ниужели?? Приципиально, да? Яркость красного в дискретном видеосигнале будет не 253, ф 252 и хана фильму, правда? :)

Вот поэтому, кстати, яркость и аналоговая величина. А теперь представь себе ошибочку в знаковом бите. Или ещё проще - в каком-нибудь бите команды в экзешнике. Другие результаты, не правда ли?

[identity profile] psilogic.livejournal.com 2005-11-24 07:35 pm (UTC)(link)
[ Доверительный интервал. ]

Слова какие страшные, я таких слов если и знал кода, то забыл :o)

[ Величину-то можно не с бесконечной точностью мерять, ку? ]

Да. И шо?

[ Вот поэтому, кстати, яркость и аналоговая величина. ]

Когда как! Пример, что не всегда важно...

[identity profile] firtree.livejournal.com 2005-11-24 07:51 pm (UTC)(link)
> Слова какие страшные, я таких слов если и знал кода, то забыл :o)

На что и расчёт был.

> [ Величину-то можно не с бесконечной точностью мерять, ку? ] Да. И шо?

А то, что если ты цифровой канал на 256 уровней будешь слушать с погрешностью +-5, ни черта хорошего не получится.

Ладно, всё, прекращаем курить в присутствии Профа :-)

[identity profile] psilogic.livejournal.com 2005-11-24 07:52 pm (UTC)(link)
ну как знаешь :)
все равно насколько я понял спор чисто терминологический - по фактам разногласий не вижу :)

[identity profile] firtree.livejournal.com 2005-11-24 07:54 pm (UTC)(link)
Резюмируя:

Тебе сказали, что помехоустойчивость - плюс двоичного кодирования. Ты сказал, что помехоустойчивать - плюс вообще любой цифры. Контрпример: цифровой канал на 256 уровней, передающий по байту за такт, ни черта не помехоустойчив. Закрыли тему?

[identity profile] psilogic.livejournal.com 2005-11-24 08:16 pm (UTC)(link)
Не совсем так
Помехоустойчивость для дискретного кодирования тем лучше, чем меньше основание системы счисления. При увеличении основания п.у. снижается. Однако кроме того при увеличении основания мы приближаемся по всем свойствам к аналоговому кодированию, в том числе и по помехоустойчивости.

Вот теперь можно закрыть тему :)

[identity profile] firtree.livejournal.com 2005-11-24 08:47 pm (UTC)(link)
Для аналога и цифры слово "помехоустойчивость" разное означает.

[identity profile] psilogic.livejournal.com 2005-11-24 08:56 pm (UTC)(link)
формально-математически - да. либо целое, либо действительное
но программистски-практически - нет.
берется задача переслать по каналу одно число... аналогово либо дискретно. тут то и вылезает очень похожие помеХуеСтоячести

[identity profile] ex-l331.livejournal.com 2005-11-24 07:30 pm (UTC)(link)
четкая граница между аналоговым и цифровым кодированием будет только в умах теоретиков ;)
****
не надо лепить горбатого. :-)
Аналоговая и цифровая техника принципиально различны. Не веришь - попробуй проиграть CD на патефоне. :-)))))

[identity profile] firtree.livejournal.com 2005-11-24 07:31 pm (UTC)(link)
Злой ты... Патефон жалко... И cd - на нём был дистрибутив линукса...

[identity profile] ex-l331.livejournal.com 2005-11-24 07:36 pm (UTC)(link)
патефону ни хрена не будет.
я пробовал на нем винил 70-х проигрывать.
Звучит хорошо, но снимает стружку. В натуре снимает, не вру.
:-)))

[identity profile] metaclass.livejournal.com 2005-11-24 07:57 am (UTC)(link)
Модемы так и работают - забивают канал информацией под самый предел Шеннона. Там и амплитуда и фаза и частота и все что можно модулируется.

[identity profile] prof-moriarty.livejournal.com 2005-11-24 08:04 am (UTC)(link)
Там не критично....

[identity profile] firtree.livejournal.com 2005-11-24 07:22 pm (UTC)(link)
Потому что помехоустойчивость на уровне кодировки и протокола добавлена. Не было бы - было бы критично.

МАЛАДЕЦ!!!

[identity profile] http://users.livejournal.com/sharper_/ 2005-11-26 09:30 am (UTC)(link)
МАЛАДЕЦ!!!