Всего за 649 руб. Купить полную версию
В середине XII века в Испании пересекались мусульманская, иудейская и христианская культуры иногда мирно, иногда не очень, и между цивилизациями шел обмен идеями. Живший тогда в испанском городе Сеговия английский востоковед Роберт Честерский в 1145 году перевел Книгу о восполнении
и противопоставлении на латынь. Аль-джебр превратилось в algeber, а аль-Хорезми в Algoritmi. В то время слово algorismus относилось ко всем математическим операциям с использованием индийско-арабских цифр, а тех, кто занимался подобным искусством, называли алгористами. (Этим термином именуют себя визуальные художники, с 1960-х годов использующие алгоритмические процессы, однако он кажется подходящим для всех, кто работает над современной версией алгоритмов.) Такой длинный путь этимологии алгоритма показывает, что вычисления являются не только продуктом воспроизводимых научных законов, но и результатом человеческого искусства и труда.
Дочь лорда Байрона Ада Лавлейс сегодня считается первым программистом: она написала алгоритмы для машины в том виде, в каком ее спроектировал Бэббидж, включая процесс вычисления чисел Бернулли. Лавлейс также поняла, что повторяющиеся механические процессы, на которые способна машина, можно применять не только в математике. В 1843 году Лавлейс писала, что аналитическая машина могла бы работать с другими вещами, кроме чисел, если найти объекты, взаимоотношения которых можно выразить с помощью абстрактной науки об операциях и которые также можно приспособить к рабочей нотации и механизму машины. Иными словами, формально можно манипулировать всем, что удастся превратить в нечто похожее на данные какой-то ряд чисел. Это может быть текст, музыка, искусство или даже игра например, шахматы. Лавлейс представила себе одну из форм такой автоматизации: Если предположить, например, что фундаментальные отношения звуков в науке гармонии и музыкальной композиции поддаются такому выражению и адаптации, то машина могла бы сочинять замысловатые научные музыкальные произведения любой степени сложности и объема. Она предвосхитила нечто, подобное генеративной музыке; композитор Брайан Ино предложил этот термин в 1995 году для описания постоянно меняющихся синтезаторных композиций: программное обеспечение создает разные мелодии при каждом запуске программы. Лавлейс представляла, как новая технология может формировать и увековечивать культуру как это происходит сегодня при алгоритмическом наполнении лент.
Лавлейс одной из первых обнаружила, что манипулирование такими механическими командами может оказаться формой самовыражения. В 1990-х и 2000-х годах компьютерное программирование заняло место рядом с математикой и естественными науками, превратившись в навык, необходимый для полноценного образования ребенка. Я познакомился с ним примерно в 2002 году в компьютерном классе своей школы: мы играли в обучающие видеоигры, напоминающие языки программирования. Но по-настоящему я учился с помощью громоздких графических калькуляторов TI-83, которые нам приходилось приобретать для уроков математики. Эти калькуляторы можно было программировать на языке под названием TI-BASIC, включавшем простые операторы ветвления и функции. Сначала я составлял скромные программы для формул, которые использовались в моих тестах, но когда лучше разобрался в языке, стал создавать свои собственные версии игр Крестики-нолики и Четыре в ряд. Машина стала партнером в моем творчестве; это казалось настоящим волшебством.
Спустя столетие после Лавлейс британский математик и информатик Алан Тьюринг во время Второй мировой войны работал на правительство он помогал взломать код немецкой шифровальной машины Энигма. В 1946
году, когда война закончилась, Тьюринг написал для Национальной физической библиотеки доклад, в котором предложил идею проекта автоматической вычислительной машины. Это было первое описание искусственного интеллекта как реальной возможности, а не теоретической концепции. Тьюринг писал, что вычислительные и сортировочные машины, предназначенные для выполнения конкретных задач, уже существуют, однако его предложение выходит и за эти рамки: Вместо того чтобы постоянно использовать человеческий труд для вывода материала из машины и ввода его обратно в нужный момент, обо всем будет заботиться сама машина.
По мнению Тьюринга, подобное устройство могло бы выполнять любые вычисления в любом масштабе, не нуждаясь в перенастройке. У него имелся бы свой внутренний логический язык, который можно было бы приспосабливать для разных целей, чтобы решать произвольные задачи. Как можно ожидать, чтобы машина выполняла все эти многочисленные вещи? писал Тьюринг. Ответ заключается в следующем: мы должны считать, что машина делает нечто довольно простое, а именно выполняет команды, отданные ей в стандартной форме, которую она способна понять. Она будет следовать алгоритмам. Он предвосхитил то, как современные алгоритмы машинного обучения развиваются с течением времени, внося коррективы без участия человека.