Другой знаменитый пример нежелательного равновесия — трагедия общих ресурсов, впервые проанализированная в 1833 г. английским экономистом Уильямом Ллойдом
[38], хотя дал ей название и привлек к ней внимание всего мира эколог Гаррет Хардин в 1968 г.
[39] Проблема возникает, если несколько человек могут использовать ограниченный и медленно восполняемый ресурс — например, общее пастбище или рыбный пруд. В отсутствие любых социальных или юридических ограничений единственное равновесие Нэша для эгоистичных (неальтруистичных) агентов заключается в том, чтобы каждый потреблял как можно больше, что вело бы к быстрому исчерпанию ресурса. Идеальное решение, при котором все пользуются ресурсом так, чтобы общее потребление было устойчивым, не является равновесием, поскольку у каждого индивида есть стимул хитрить и брать больше справедливой доли — перекладывая издержки на других. На практике, конечно, люди предпринимают меры во избежание этой ситуации, создавая такие механизмы, как квоты и наказания или схемы ценообразования. Они могут это сделать, потому что не ограничены в решении о том, сколько потреблять; кроме того, они имеют возможность принять решение осуществлять коммуникацию. Расширяя проблему принятия решения подобным образом, мы находим выходы, лучшие для каждого.
Эти и многие другие примеры иллюстрируют тот факт, что распространение теории рациональных решений на несколько агентов влечет за собой много видов интересного и сложного поведения. Это крайне важно еще и потому, очевидно, что людей на свете больше одного. Скоро к ним присоединятся интеллектуальные машины. Незачем говорить, что мы должны достичь взаимной кооперации, влекущей за собой пользу для людей, а не взаимное уничтожение.
Компьютеры
Рациональное определение интеллектуальности — первый компонент в создании интеллектуальных машин. Вторым компонентом является машина, в которой это определение может быть реализовано. По причинам, которые скоро станут очевидными, эта машина — компьютер. Это могло бы быть нечто другое, например мы могли бы попытаться сделать интеллектуальные машины на основе сложных химических реакций или путем захвата биологических клеток
[40], но устройства, созданные для вычислений, начиная с самых первых механических калькуляторов всегда казались своим изобретателям естественным вместилищем разума.
Мы сегодня настолько привыкли к компьютерам, что едва замечаем их невероятные возможности. Если у вас есть десктоп, ноутбук или смартфон, посмотрите на него: маленькая коробочка с возможностью набора символов. Одним лишь набором вы можете создавать программы, превращающие коробочку в нечто другое, например, способное волшебным образом синтезировать движущиеся изображения океанских кораблей, сталкивающихся с айсбергами, или других планет, населенных великанами. Набираете еще что-то, и коробочка переводит английский текст на китайский язык; еще что-то — она слушает и говорит, еще — побеждает чемпиона мира по шахматам.
Способность осуществлять любой процесс, который приходит вам в голову, называется универсальностью. Эту концепцию ввел Алан Тьюринг в 1936 г.
[41] Универсальность означает, что нам не нужны отдельные машины для вычислений, машинного перевода, шахмат, распознавания речи или анимации: все это делает одна машина. Ваш ноутбук, в сущности, подобен огромным серверам крупнейших IT-компаний — даже тех, которые оборудованы причудливыми специализированными тензорными процессорами для машинного обучения. Он также по сути идентичен всем компьютерным устройствам, которые еще будут изобретены. Ноутбук может выполнять те же самые задачи при условии, что ему хватает памяти; это лишь занимает намного больше времени.
Статья Тьюринга, где вводилось понятие универсальности, стала одной из важнейших когда-либо написанных статей. В ней он рассказал о простом вычислительном устройстве, способном принимать в качестве входного сигнала описание любого другого вычислительного устройства вместе с входным сигналом этого второго устройства и, симулируя операции второго устройства на своем входе, выдавать тот же результат, что выдало второе устройство. Теперь мы называем это первое устройство универсальной машиной Тьюринга. Чтобы доказать его универсальность, Тьюринг ввел точные определения двух новых типов математических объектов: машин и программ. Вместе машина и программа определяют последовательность событий, а именно — последовательность изменений состояния в машине и в ее памяти.
В истории математики новые типы объектов возникают довольно редко. Математика началась с чисел на заре письменной истории. Затем, около 2000 г. до н. э., древние египтяне и вавилоняне стали работать с геометрическими объектами (точками, линиями, углами, областями и т. д.). Китайские математики в течение I тыс. до н. э. ввели матрицы, тогда как группы математических объектов появились лишь в XIX в. Новые объекты Тьюринга — машины и программы — возможно, самые мощные математические объекты в истории. Ирония заключается в том, что сфера математики по большей части не сумела этого признать и с 1940-х гг. и до настоящего времени компьютеры и вычисления остаются в большинстве крупнейших университетов вотчиной инженерных факультетов.
Возникшая область знания — компьютерная наука — последующие 70 лет бурно развивалась, создав великое множество новых понятий, конструкций, методов и применений, а также семь из восьми самых ценных компаний в мире.
Центральным для компьютерной науки является понятие алгоритма — точно определенного метода вычисления чего-либо. Сейчас алгоритмы являются привычным элементом повседневной жизни. Алгоритм вычисления квадратного корня в карманном калькуляторе получает на входе число и выдает на выходе квадратный корень этого числа; алгоритм игры в шахматы принимает позицию на доске и выдает ход; алгоритм поиска маршрута получает стартовое местоположение, целевую точку и карту улиц и выдает более быстрый путь из отправной точки к цели. Алгоритмы можно описывать на английском языке или в виде математической записи, но, чтобы они были выполнены, их нужно закодировать в виде программ на языке программирования. Сложные алгоритмы можно построить, используя простые в качестве кирпичей, так называемые подпрограммы, — например, машина с автопилотом может использовать алгоритм поиска маршрута как подпрограмму, благодаря чему будет знать, куда ехать. Так, слой за слоем, строятся бесконечно сложные программные системы.