Книга: Математика жизни и смерти. 7 математических принципов, формирующих нашу жизнь
Назад: Проблема 2000
Дальше: Глава 6 Бесконечная оптимизация: безграничный потенциал алгоритмов – от эволюции до электронной коммерции

Бинарное мышление

Компьютеры, на которые мы все больше полагаемся, работают с самой примитивной базой – бинарной. При работе в десятеричной системе счисления для записи чисел требуется девять цифр и ноль. В двоичной системе помимо нуля нужна только одна цифра. Все двоичные числа представляют собой строки из единиц и нулей. Вообще, само слово «двоичный» – бинарный – происходит от латинского binarius, означающего «состоящий из двух частей». В двоичной позиционной системе одна и та же цифра, находящаяся слева от соседней, представляет собой число, больше того в 2 раза – а не в 10, как мы привыкли в десятеричной системе. Первый столбец справа представляет единицы, второй справа – двойки, третий – четверки, четвертый – восьмерки и так далее. Для записи числа вроде 11 нам нужна единица, двойка и восьмерка, но без четверки, поэтому число 11 в двоичной записи имеет вид 1011. Старая математическая шутка гласит: «Есть только 10 типов людей: те, кто понимает двоичную систему, и те, кто не понимает» – 10 здесь, конечно же, представляет число два в двоичной записи.
Двоичная система была выбрана в качестве основы для компьютерных технологий не потому, что математические вычисления как-то особенно приятно производить именно в ней, а потому, что компьютер построен именно таким образом. Каждый современный компьютер состоит из миллиардов крошечных электронных компонентов, называемых транзисторами, которые взаимодействуют друг с другом, передавая и сохраняя данные. Протекание электрического тока через транзистор – прекрасный способ представления числовой величины. Вместо десяти вариантов напряжения на каждом транзисторе (которые еще нужно уверенно распознавать) для работы в десятеричной системе гораздо разумнее обойтись двумя: есть напряжение – нет напряжения, включен – выключен. Эта система «да – нет» означает, что на транзистор можно подать небольшое напряжение, чтобы получить надежный, однозначно интерпретируемый сигнал, не зависящий от колебаний. Математики показали, что чисто теоретически, комбинируя сигналы «да» и «нет» с этих транзисторов с логическими операциями типа «и», «или» и «нет», можно вычислить ответ на любую математическую задачу – если такой ответ у нее есть – вне зависимости от ее сложности. Современные компьютеры прошли долгий путь к практической реализации этой теории. Они способны выполнять невероятно сложные вычисления, преобразовывая наши запросы в серии из единиц и нулей и применяя холодную жесткую логику, чтобы направлять эти биты туда и обратно, пока они не дадут ясный ответ. Однако, несмотря на обыденность чудес, которые мы можем творить, благодаря бинарной системе счисления в машинах, живущих на наших столах и в наших карманах, бывают моменты, когда эта простейшая математическая основа подводит своих хозяев.
Кристин Линн Мэйз в 1986 году вступила в ряды армии США в возрасте 17 лет. Она три года прослужила поваром в Германии и уволилась с действительной военной службы, после чего вернулась домой, чтобы изучать бизнес в Университете Индианы в Пенсильвании, где она познакомилась со своим парнем Дэвидом Фэрбенксом. В октябре 1990 года ей понадобились деньги для продолжения учебы, и Мэйз снова записалась в армейский резерв. Ее зачислили в 14-й отряд снабжения – подразделение, которое занимается очисткой воды. В день Святого Валентина 1991 года отряд получил боевое задание в рамках операции «Буря в пустыне». Три дня спустя Мэйз отправилась на Ближний Восток. В день, когда она уехала из США, Фэрбенкс, встав на одно колено, сделал ей предложение. Мэйз охотно приняла его, но, опасаясь потерять обручальное кольцо, отказалась взять его с собой. «Хорошо, тогда оно будет здесь ждать, когда ты вернешься», – такими словами проводил Фэрбенкс свою невесту в Саудовскую Аравию. Фэрбенкс забрал кольцо домой и положил его на фотографию Кристин рядом со своей стереосистемой. Ему было не суждено надеть кольцо на ее палец.
С авиабазы под одним из саудовских центров нефтеразработок – городом Дахраном – 14-й отряд снабжения перебазировался во временные казармы в Эль-Хубаре на побережье Персидского залива. Временное здание, в котором размещалось подразделение Мэйз вместе с американскими и британскими сослуживцами, было чем-то вроде склада из гофрированного металла, спешно переоборудованного для проживания людей. Через шесть дней после прибытия, в воскресенье 24 февраля, Мэйз позвонила домой сообщить матери, что прибыла в целости и сохранности и что ее подразделение вскоре передислоцируется на 40 миль дальше к северу в направлении кувейтской границы. На следующий день, завершив дежурство, пока ее сослуживцы отдыхали или тренировались, Мэйз решила вздремнуть, не подозревая, что судьба ее уже решена.
Несмотря на то, что в ходе войны в Персидском заливе по Саудовской Аравии было выпущено более 40 ракет «Скад», существенный ущерб нанесли менее десяти атак иракцев. Большинство ракет, достигших территории Саудовской Аравии, сошли с курса и поразили гражданские районы, а не военные объекты, на которые были нацелены. Низкая эффективность ракетных атак иракцев отчасти объяснялась действием американских зенитно-ракетных комплексов «Пэтриот», предназначенных для обнаружения приближающихся ракет и запуска ракет-перехватчиков. После первичного обнаружения цели система осуществляла проверку, чтобы подтвердить, что высокочувствительный радар дальнего обнаружения захватил реальную ракету, а не ложный сигнал. Для проведения проверки система отсылала на второй радар время и место первичного захвата цели и оценку ее скорости. Эти данные использовались для уточнения текущего положения ракеты в пространстве, что облегчало ее обнаружение и подтверждение целеуказания первого радара.
Время в системе «Пэтриот» считалось в десятых долях секунды – для повышения точности. Но десятая доля, красиво и коротко записывающаяся в десятеричной системе – 0,1 – в двоичной, к сожалению, имеет вид бесконечной периодической дроби, примерно такой: 0,0001100110011001100… За начальными «0,0» последовательность 0011 повторяется снова и снова (математики сказали бы: «0011 в периоде»). Ни один компьютер не может хранить бесконечно большое количество чисел, поэтому в системе «Пэтриот» было принято приблизительное значение одной десятой секунды, представленное бинарным числом из 24 цифр. Поскольку это число является усеченным представлением, оно отличается от истинного значения одной десятой примерно на одну десятимиллионную долю секунды. Программисты, писавшие управляющий код для системы «Пэтриот», предполагали, что такое небольшое расхождение не будет иметь практического значения. Однако выяснилось, что после многочасовой беспрерывной работы ошибка во внутренних часах «Пэтриота» накапливалась до существенных значений . Примерно через 12 дней непрерывной работы общая ошибка внутреннего времени «Пэтриота» составляла почти секунду.
К 20:35 25 февраля система «Пэтриот» работала более четырех дней подряд. Пока Мэйз спала, иракцы запустили несколько «Скадов» с облегченными боеголовками (что делало полет ракет нестабильным и усложняло их обнаружение) в направлении восточного побережья Саудовской Аравии. Несколько минут спустя, когда ракета вошла в воздушное пространство Саудовской Аравии, первый радар системы «Пэтриот» обнаружил ракету и передал свои данные на второй радар для проверки. Когда данные с первого радара достигли второго, погрешность во времени обнаружения «Скада» достигла почти трети секунды. «Скад» летит со скоростью более 1600 метров в секунду, так что погрешность позиционирования составляла более 500 метров. Когда второй радар просканировал район ожидаемого нахождения ракеты, он не обнаружил там ничего. Компьютер посчитал предупреждение первого радара ложной тревогой, и оно было удалено из системы .
В 20:40 ракета попала в казармы, где спала Мэйз, убив ее и 27 ее сослуживцев и почти сотню ранив. Одна эта атака, совершенная за три дня до окончания военных действий, стала причиной трети всех безвозвратных потерь США во время первой войны в Персидском заливе. Вероятно, их можно было бы избежать, если бы компьютеры говорили на другом языке – с другой базой.
Ни одна база, однако, не способна точно представить каждое число с помощью конечного набора цифр. При другой базе подобной ошибки с обнаружением ракеты можно было бы избежать, но вместо нее неизбежно возникли бы другие ошибки. Как бы то ни было, преимущества двоичной системы – несмотря на редкие сбои, которые происходят при ее использовании, – в энергопотреблении и надежности делают ее наиболее подходящей базой для современных компьютеров. Однако эти преимущества быстро испаряются, стоит лишь попытаться использовать бинарную систему в социальном контексте.
Представьте, что вы общаетесь с привлекательной незнакомкой, к которой вас притиснули в переполненном автобусе. Перед выходом вы просите у нее телефончик и получаете некую стандартную комбинацию из 11 цифр формата 07XXX–XXX – ХXX, общего для номеров мобильных телефонов в Великобритании. Для того чтобы получить такое же разнообразие номеров в двоичном формате, каждый номер мобильного телефона должен иметь не менее 30 цифр. Попробуйте записать что-то вроде 1110111001101100100111111111, пока вы не проехали свою остановку: «После седьмого ноля единичка или ноль?»
Более актуальная проблема – засилье потенциально опасного бинарного мышления в нашем обществе. С незапамятных времен быстрый выбор между «да» и «нет» означал разницу между жизнью и смертью. Наш примитивный мозг не успевал рассчитать вероятность того, приземлится ли падающий камень на нашу голову. Лицом к лицу с опасным животным требовалось мгновенно решить: драться или бежать. Чаще всего быстрое (и сверхосторожное) бинарное решение было лучше, чем неторопливое, взвешенное, просчитывающее все варианты. Эта бинарная манера принятия решений не менялась в своей основе даже с развитием и усложнением общественных отношений. Мы продолжали опираться на стереотипные представления о наших ближних – считали их хорошими или плохими, святыми или грешниками, друзьями или врагами. Такие классификации грубы, но они просто и понятно объясняли, как себя вести при общении с конкретным человеком. Со временем эти стереотипы укоренились еще крепче благодаря карикатурному изображению противоположностей – непременному атрибуту многих популярных дуалистических религий. Адепты этих религий лишены сомнений о том, что есть добро, а что – зло.
Но для большинства из нас сегодня подобные простые решения и категоричные карикатурные изображения не слишком актуальны. У нас есть время для более глубоких размышлений о важных жизненных решениях. Люди слишком сложны, чтобы классифицировать их лишь по бинарным характеристикам, слишком противоречивы, слишком изощрены. Бинарное мышление не позволило бы появиться таким прекрасным литературным героям, как Северус Снейп, Гэтсби или Гамлет. Причина, по которой нам нравятся эти неоднозначные, мятущиеся персонажи, заключается именно в том, что они отражают нашу собственную сложную несовершенную личность. Но нас все же притягивает комфортная определенность бинарных ярлыков, позволяющая нам показать внешнему миру, кто мы такие: демократы или республиканцы, левые или правые, верующие или атеисты. Мы обманываемся, выбирая между черным и белым, тогда как на самом деле в спектре гораздо больше цветов.
В моей дисциплине, математике, главная борьба идет как раз с такой самонавязанной ложной дихотомией: есть те, кто верит, что могут заниматься математикой, и те, кто думает, что не могут. Последних слишком много. Но ведь тех, кто вовсе не понимает математику и не умеет считать, почти нет. С другой стороны, уже на протяжении сотен лет не появлялось математиков, которые понимали бы всю известную человечеству математику. Все мы находимся где-то между двумя крайностями; где именно – зависит от того, насколько, по нашему мнению, эти знания могут быть нам полезны.
Понимание окружающих нас числовых систем дает нам представление об истории и культуре нашего вида. Этих, казалось бы, странных и чуждых систем бояться не следует; наоборот, им надо воздавать хвалу. Они рассказывают нам о том, как думали наши предки, и отражают аспекты их традиций. Они наглядно демонстрируют нам, что математика естественна с точки зрения биологии, присуща нам так же, как и пальцы на руках или ногах. Они учат языку современных технологий и помогают избежать простых математических ошибок. Вообще, как мы увидим в следующей главе, «препарируя» прошлые ошибки, современные математические технологии предоставляют нам способы избежать таких просчетов в будущем – иногда, правда, эффективность этих способов сомнительна.
Назад: Проблема 2000
Дальше: Глава 6 Бесконечная оптимизация: безграничный потенциал алгоритмов – от эволюции до электронной коммерции