Верховный алгоритм - [6]

Шрифт
Интервал

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

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

Второй простейший алгоритм — «соедини два бита». Клод Шеннон, признанный отец теории информации, первым осознал, что включение и выключение транзисторов в ответ на действия других транзисторов — это, в сущности, логический вывод. (Этой теме он посвятил свою дип­ломную работу в Массачусетском технологическом институте — самую важную дип­ломную работу в истории.) «Транзистор A включа­ется, только если включены транзисторы B и C» — это крохотное логическое рассуждение. «A включается, когда включен либо B, либо C» — еще одна крупица логики. «A включается всегда, когда выключен B, и наоборот» — третья операция. Хотите верьте, хотите нет, любой алгоритм, как бы сложен он ни был, сводится всего к трем операциям: И, ИЛИ и НЕ. Используя для этих операций специаль­ные символы, можно представить простые алгоритмы в виде диаграмм. Например, если у человека грипп или малярия и ему надо принять лекарство от температуры и головной боли, это можно выразить следующим образом:



Соединяя множество подобных операций, можно составлять очень сложные цепочки логических рассуждений. Люди часто думают, что вся суть компьютеров в вычислениях, но это не так. Сердце компьютеров — логика. Из логики в компьютере состоят и числа, и арифметика, и все остальное. Хотите сложить два числа? Есть комбинация транзисторов, которая это сделает. Хотите победить чемпиона в «Своей игре»? Для этого тоже найдется комбинация (естественно, она будет намного больше).

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

Алгоритм — не просто произвольный набор инструкций. Чтобы компьютер его выполнил, указания должны быть достаточно точными и однозначными. Например, кулинарный рецепт — это не алгоритм, потому что не задает однозначного порядка действий и не объясняет, что делать на каждом этапе. Например, сколько именно сахара умещается в столовую ложку? Любой человек, который хоть раз пробовал готовить по незнакомому рецепту, знает, что может получиться и восхитительное блюдо, и не пойми что. А алгоритмы всегда дают идентичный результат. При этом, даже если указать в рецепте ровно 15 граммов сахара, это по-прежнему не решает проблему, потому что компьютер не знает ни что такое сахар, ни что такое грамм. Если бы мы захотели запрограммировать робота-повара для выпечки тортов, пришлось бы научить его узнавать сахар на видео, научить брать ложку и так далее (ученые все еще над этим работают). Компьютер должен знать, как выполнять алгоритм — вплоть до включения и выключения конкретных транзисторов, поэтому рецепт готовки очень далек от алгоритма.

С другой стороны, вот вам алгоритм игры в крестики-нолики.



Если вы или ваш противник поставили две отметки на одной линии, ставьте отметку в оставшейся на этой линии клетке.

Если такой ход невозможен, но есть ход, который создаст две линии по две отметки, — делайте его.

Если такой ход невозможен, но центральная клетка свободна, ставьте отметку в ней.

Если такой ход невозможен, но противник поставил отметку в углу, ставьте отметку в противоположном углу.

Если такой ход невозможен, но одна из угловых клеток свободна, ставьте отметку в ней.

Если такой ход невозможен, ставьте отметку в любой пустой клетке.



У этого алгоритма есть одно приятное свойство: он беспроигрышный! Конечно, ему не хватает многих деталей — как доска отображается в памяти компьютера и как это отображение меняется после каждого хода. Например, каждой клетке могут соответствовать два бита: 00 — если клетка пуста, 01 — если в ней поставили нолик и 10 — если крестик. Тем не менее предложенный алгоритм достаточно точен и однозначен, и любой грамотный программист сможет его дописать. Еще полезно не конкретизировать алгоритмы вплоть до отдельных транзисторов, а пользоваться уже существующими алгоритмами как кирпичиками. Их огромное количество, так что есть из чего выбирать.

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


Рекомендуем почитать
Художественные открытки и их собирание

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


Фон-Визин

«Представляемая мною в 1848 г., на суд читателей, книга начата лет за двадцать пред сим и окончена в 1830 году. В 1835 году, была она процензирована и готовилась к печати, В продолжение столь долгого времени, многие из глав ее напечатаны были в разных журналах и альманахах: в «Литературной Газете» Барона Дельвига, в «Современнике», в «Утренней Заре», и в других литературных сборниках. Самая рукопись читана была многими литераторами. В разных журналах и книгах встречались о ней отзывы частию благосклонные, частию нет…».


Было ли оружие под названием ФАУ-3?

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


Еда как проявление твоей заботы. Исследование этических вопросов употребления в пищу животных

В этой небольшой книге Гэри Фрэнсион и Анна Чарлтон собрали ответы на 40 популярных вопросов и возражений о веганстве. Книга будет полезна всем: и веган(к)ам со стажем, и новичкам, и интересующимся. Если вы недавно интересуетесь веганством, эта книга поможет вам разобраться в базовых вопросах веганской этики, здоровья и отношений. Если вы уже веганите, мы все равно советуем вам ее прочитать, чтобы уверенно говорить о веганстве со своим окружением.


ЭКОsapiens. Простые правила осознанной жизни

Вас беспокоит изменение климата и его глобальное влияние на нашу окружающую среду? Хотите помочь, но не знаете с чего начать? Новое руководство Натали Фи по «зеленой жизни» поможет вам внести небольшие изменения во все ключевые сферы жизни, от еды до выборов, которые будут иметь большое значение для планеты. Полезные и доступные советы для всех – как новичков, так и уже осознанных потребителей. Давайте спасать мир вместе! #HowToSaveTheWorldForFree.


Почва и вино. Путешествие по вкусам и ароматам

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