Электронная библиотека » Сет Ллойд » » онлайн чтение - страница 3


  • Текст добавлен: 14 января 2015, 14:46


Автор книги: Сет Ллойд


Жанр: Зарубежная образовательная литература, Наука и Образование


Возрастные ограничения: +12

сообщить о неприемлемом содержимом

Текущая страница: 3 (всего у книги 19 страниц) [доступный отрывок для чтения: 6 страниц]

Шрифт:
- 100% +
Точность

«А что будет, если у нас есть бесконечное число альтернатив? – спрашивает студент. – Например, между 0 и 1 находится бесконечное количество действительных чисел».

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

Возьмем, например, такое двоичное число: 1001001 0110110 0100000 1110100 1101000 1100101 0100000 1100010 1100101 1100111 1101001 1101110 1101110 1101001 1101110 1101111. В стандартной таблице кодирования ASCII (American Standard Code for Information Interchange – американский стандартный код обмена информацией) каждой букве или символу на клавиатуре присвоено кодовое слово из семи битов[4]4
  Два разных алфавита в семибитный код ASCII уже не умещались. Стихийная адаптация его к требованиям других языков породила великое множество восьмибитных кодовых таблиц. – Прим. ред.


[Закрыть]
. И если воспринимать наше число в кодировке ASCII, мы получим такие символы: I = 1001001; n = 1101110; (пробел) = 0100000; t = 1110100; h = 1101000; e = 1100101; (пробел) = 0100000; b = 1100010; e = 1100101; g = 1100111; i = 1101001; n = 1101110; n = 1101110; i = 1101001; n = 1101110; g = 1100111. Если мы прочтем буквы, то получится «In the beginning» – первые слова библейской фразы «В начале было слово…». Добавляя бит за битом, можно выписать число, соответствующее всему тексту Евангелия от Иоанна. Если мы добавим еще больше битов, то можем получить всю Библию, а за ней Коран, а за ним Сутру белого лотоса, а за ней все книги из Библиотеки Конгресса и т. д. Бесконечное число альтернатив соответствует бесконечному числу цифр или битов, бесконечному количеству информации.

Но на практике число альтернатив в любой конечной системе конечно, поэтому количество информации тоже конечно. Обычно мы считаем, что такие величины, как длина, высота и вес, изменяются непрерывно: точно так же, как между 0 и 1 есть бесконечное количество действительных чисел, есть и бесконечное количество возможных длин между нулем метров и одним метром. Причина, по которой непрерывные вроде бы величины, такие как длина металлического стержня, могут содержать только конечное количество информации, состоит в том, что эти величины, как правило, определяются с конечным уровнем точности. Чтобы увидеть взаимосвязь между точностью и информацией, представьте себе измерение длины стержня с помощью мерной рейки. Итак, у вас в руках обычная деревянная линейка, на которой отмечены и пронумерованы сто сантиметров. На ней сделана также тысяча миллиметровых отметок, по десять в каждом сантиметре, но уже не хватает места, чтобы их пронумеровать. Поэтому линейка позволит нам измерить длину стержня с точностью примерно до миллиметра. Длины меньше миллиметра линейка измеряет плохо – просто потому, что физические характеристики задают предел ее разрешающей способности. Общее количество альтернатив – 1000, что соответствует трем значащим цифрам, или примерно десяти битам информации.

Самый известный в мире металлический стержень был сделан из сплава платины и иридия. Он находится в Международном бюро мер и весов в Париже и на протяжении почти столетия определял длину метра. (До этого метр считался одной десятимиллионной частью расстояния от Северного полюса до экватора, измеренного вдоль парижского меридиана.) Наша линейка показала бы, что длина этого стержня – один метр плюс-минус половина миллиметра.

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

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

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

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

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

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

Вспомните легендарного восточного правителя, который по глупости согласился вознаградить героя зернами пшеницы: одно зерно за первую клетку шахматной доски, два зерна за вторую, четыре за третью и так далее, вплоть до двух в шестьдесят третьей степени (263) за последнюю, 64-ю клетку. Общее количество зерен при этом составляет по порядку величины 10 миллиардов миллиардов, а если точно – 18 446 744 073 709 551 615. И если длина каждого зерна равна всего одному миллиметру, все вместе они заполнят объем почти в 20 куб. км!

Как показывает этот пример, нужно совсем немного битов, чтобы выделить одну из очень большого количества альтернатив. Чтобы присвоить каждому из зерен на шахматной доске уникальный штрихкод, потребовалось бы всего 64 бита, или 64 элемента информации. Имея 300 битов, можно присвоить уникальный штрихкод каждой из 1090 элементарных частиц во Вселенной. Астрономически огромное количество возможных генетических кодов – причина невероятного разнообразия живых существ, но информация, которая позволяет воспроизвести любой из этих кодов, может быть сохранена в одной крошечной хромосоме.

Смысл

«Но разве информация не должна иметь какой-то смысл?» – спрашивает студент.

«Конечно, когда мы думаем об информации, то обычно связываем ее с каким-то смыслом», – отвечаю я. «Но что такое “смысл”?»

Философы пытаются это выяснить уже тысячи лет, с переменным успехом. Но это очень трудно, потому что смысл информации очень сильно зависит от того, как ее нужно интерпретировать. Если вы не знаете, как интерпретировать сообщение, то не понимаете его смысла. Например, если я говорю вам «да», а вы не задавали вопрос, то вы не поймете, значит мое «да». Но если вы спросите: «Можно мне взять еще один кусок пирога?», и я скажу: «Да», то вы поймете, что я имею в виду. Если вы спросите: «Сколько будет два плюс два?», а я скажу: «Да», то вы опять не поймете, что я имею в виду (хотя, наверно, начнете думать, что у меня есть только один ответ на любой вопрос). Но если вы поинтересуетесь: «Сколько будет два плюс два?», и я скажу: «Четыре», то вы поймете этот ответ. Смысл чем-то похож на порнографию: когда мы его видим, то сразу узнаем.

Вернемся к нашей строке битов: 1001001 1101110 0100000 1110100 1101000 1100101 0100000 1100010 1100101 1100111 1101001 1101110 1101110 1101001 1101110 1100111. Если интерпретировать это сообщение согласно коду ASCII, эта строка означает «В начале…». Но само по себе, без указания на то, как его нужно интерпретировать, оно ничего не означает, кроме ряда двоичных цифр. Смысл зависит только от интерпретации, как в следующем разговоре между Алисой и Шалтаем-Болтаем:


– Я не понимаю, при чем здесь «слава»? – спросила Алиса.

Шалтай-Болтай презрительно улыбнулся.

– И не поймешь, пока я тебе не объясню, – ответил он. – Я хотел сказать: «Разъяснил, как по полкам разложил!»

– Но «слава» совсем не значит: «разъяснил, как по полкам разложил!» – возразила Алиса.

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

– Вопрос в том, подчинится ли оно вам, – сказала Алиса.

– Вопрос в том, кто из нас здесь хозяин, – сказал Шалтай-Болтай.

– Вот в чем вопрос![5]5
  Льюис Кэрролл. Алиса в Зазеркалье. Пер. Н. М. Демуровой.


[Закрыть]


Льюиса Кэрролла, автора «Алисы в стране чудес» и «Алисы в Зазеркалье», на самом деле звали Чарльз Доджсон, и он был философом-номиналистом. Доджсону очень нравилась идея о том, что слова означают лишь то, что он хочет, чтобы они означали.

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

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

Такой механизм, например, дают нам компьютеры. Они понимают языки, которые называют машинными языками (Java, C, Fortran, BASIC). Такие языки состоят из простых команд, например print («напечатать») или add («прибавить»), которые можно соединить так, чтобы дать компьютеру детальную инструкцию по выполнению сложной задачи. Если принять идею Витгенштейна о том, что значение элемента информации заключается в действии, которое она вызывает, то смысл компьютерной программы, написанной на том или ином машинном языке, заключается в действиях, которые выполняет компьютер, интерпретируя эту программу.

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

Однозначный характер компьютерной программы означает, что каждому предложению программы соответствует один и только один смысл. Если некое утверждение, сделанное на машинном языке, может быть интерпретировано более чем одним способом, компьютер выдает сообщение об ошибке: для него двусмысленность – это недопустимая вещь. В то же время естественные человеческие языки богаты двусмысленностями: например, в английском языке (за исключением особых обстоятельств) у большинства утверждений есть множество потенциальных значений. На этой особенности языка основаны поэзия, художественная литература, флирт, да и повседневное общение. Неоднозначность естественного языка является не проблемой, а его достоинством!

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

Слова могут быть символами идей и вещей, и биты тоже. Слово и бит – это средства передачи информации, но чтобы понять смысл и придать им значение, нужен интерпретатор.

Компьютер

«Что такое компьютер?» – спросил я студентов. Молчание. Это весьма странно. Я-то уверен, что мои ученики пользуются компьютерами с годовалого возраста.

Я ждал. Наконец, кто-то произнес: «Это машина, которая управляет данными, представленными в виде нулей и единиц». Другой студент возразил: «Но ты говоришь о цифровом компьютере. А как насчет аналогового компьютера? Он ведь хранит информацию в виде непрерывных сигналов напряжения».

В итоге все согласились с более широким определением: компьютер – это машина, которая обрабатывает информацию.

«Хорошо, – сказал я. – Тогда что было первым компьютером?» Студенты оживились: «Mark I»[6]6
  Mark I – первый американский программируемый компьютер на электромеханических элементах. Разработан и построен в 1941 г. на средства, выделенные компанией IBM. После успешного прохождения первых тестов в феврале 1944 г. компьютер был перенесен в Гарвардский университет и с мая выполнял расчеты в интересах Бюро судостроения ВМС США. – Прим. пер.


[Закрыть]
; «Механический компьютер Бэббиджа»; «Логарифмическая линейка»; «Абак»; «Мозг»; «ДНК».

Поднялась еще одна рука: «Цифры!»

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

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

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

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

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

Деревянный компьютер, такой как абак или русские счеты, – мощный вычислительный инструмент. До изобретения электронно-вычислительных машин опытный счетовод мог выполнять вычисления на счетах лучше обученного оператора суммирующей машины! Но абак – не просто удобная машина для того, чтобы перекладывать камешки. Она воплощает в себе важную математическую абстракцию – нуль. Понятие нуля оказалось наиболее важным элементом системы арабских цифр – системы, позволяющей обозначать сколь угодно большие величины и легко с ними управляться. Абак или счеты – механическое воплощение этой системы. Но что появилось раньше, привычные нам цифры или абак? Учитывая происхождение слова zero («нуль») и возраст первого абака, вполне возможно, что устройство возникло раньше, чем оформилась концепция нуля{1}1
  К 1700 до н. э. вавилоняне уже уверенно использовали «арабскую» систему записи чисел, но наличие нуля можно было вывести только из контекста, для него не было отдельного знака (к примеру, числа 210 и 21 писались одинаково). Самый древний известный «протоабак», саламинская счетная доска, датируется 300 г. до н. э. Использование знака «0» для обозначения нуля ввел Птолемей в 130 г. н. э., и к 650 г. н. э. этот знак широко использовался в Индии.


[Закрыть]
. Иногда машины создают идеи.

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

В начале XIX в. один эксцентричный англичанин по имени Чарльз Бэббидж предложил делать компьютеры из металла. Разностная машина Бэббиджа, предназначенная для вычисления элементов тригонометрических и логарифмических таблиц, должна была иметь в своей основе валы и шестерни, подобно паровому двигателю. Положение каждой шестерни задавало ту или иную информацию, а потом машина обрабатывала эту информацию, вводя шестерни в зацепление друг с другом и вращая их. Хотя машина Бэббиджа была полностью механической по своей конструкции, придуманный изобретателем способ организации информации предвосхищал методы, принятые в современных электронно-вычислительных машинах. В ней были центральный процессор и банк памяти, который мог хранить как программу, так и данные.

Несмотря на щедрую финансовую поддержку от британского правительства, Бэббиджу так и не удалось построить разностную машину. В начале XIX в. еще не было ни технологии прецизионной обработки металла, ни достаточно твердых сплавов для валов и шестерней. (Усилия его, однако, не пропали зря: инженеры Бэббиджа как раз и разрабатывали методы точной механической обработки металла и более прочные сплавы, и это значительно ускорило темпы промышленной революции.) К концу XIX в. уже существовали эффективные механические калькуляторы, но большим компьютерам пришлось дожидаться начала XX в., когда были изобретены электронные схемы.

К 1940 г. началась международная конкуренция между различными группами ученых, пытавшимися создать компьютер на основании электронных переключателей, например электронных ламп или электромеханических реле. Первую простую электронно-вычислительную машину в 1941 г. создал немецкий ученый Конрад Цузе. За ним последовали большие компьютеры, построенные в 1940-е гг. в Соединенных Штатах и Великобритании. Эти компьютеры представляли собой несколько комнат, заполненных электронными лампами, переключателями и источниками питания, но их вычислительная мощь была невелика – в миллион раз меньше, чем производительность компьютера, на котором я пишу эту книгу.

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

Начиная с 1960-х гг. развитие фотолитографии – технологии изготовления все более сложных схем – приводило к уменьшению размеров компонентов интегральных схем примерно вдвое каждые восемнадцать месяцев. В результате производительность компьютеров удваивалась с той же скоростью. Это явление называется законом Мура. В настоящее время толщина соединений в интегральных схемах обычного компьютера составляет всего 1000 атомов.

Я бы хотел дать определения некоторых типов компьютеров, о которых мы будем говорить ниже. Цифровой компьютер – это вычислительная машина, которая применяет логические схемы к битам; цифровая машина может быть электронной или механической. Классический компьютер – это компьютер, выполняющий вычисления на основе законов классической механики. Классическая цифровая машина выполняет вычисления, проводя классические логические операции с классическими битами. Электронный компьютер выполняет вычисления с помощью электронных устройств, таких как электронные лампы или транзисторы. Цифровой электронный компьютер – это цифровой компьютер электронного типа.

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

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


Страницы книги >> Предыдущая | 1 2 3 4 5 6 | Следующая
  • 0 Оценок: 0

Правообладателям!

Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.

Читателям!

Оплатили, но не знаете что делать дальше?


Популярные книги за неделю


Рекомендации