Беверидж и Шань решили создать сеть между персонажами этих книг. Они выделили 107 основных героев, которые стали узлами сети. Затем персонажей соединили ребрами, взвешенными в соответствии с прочностью взаимоотношений между ними. Но как алгоритм может оценить значение такой связи? Алгоритму предложили просто подсчитать число появлений имен двух персонажей в тексте на расстоянии не более 15 слов друг от друга. Полученное значение не является мерой их дружбы – оно просто указывает на определенный уровень взаимодействия или взаимосвязи между ними.
Проанализировать решили третий том эпопеи, «Бурю мечей», так как к этому моменту повествование полностью развилось; исследование начали с анализа рейтингов узлов сети, соответствующих персонажам. Очень быстро были выделены три героя, важные для развития сюжета: Тирион Ланнистер, Джон Сноу и Санса Старк. Это открытие вряд ли удивит кого-либо, читавшего книги или смотревшего сериал. Удивительным было то, что компьютерный алгоритм, не понимавший, что он читает, пришел к такому же выводу. Он сделал это не простым подсчетом появлений имени каждого персонажа – в этом случае на вершине списка оказались бы другие имена. Более тонкий анализ сети позволил выявить главных героев.
Пока что никто из этих трех героев не погиб от безжалостного пера Мартина, оборвавшего в третьем томе жизнь нескольких других ключевых персонажей. В этом отличие хорошего алгоритма: он может быть полезен в самых разных сценариях. Этот алгоритм смог дать ценную информацию в весьма разнообразных областях, от футбола до «Игры престолов».
Пусть Сергей Брин и Ларри Пейдж и создали код, направляющий вас на сайты, которые вы искали, даже сами того не зная, но может ли алгоритм работать в такой интимной сфере, как поиск родственных душ? Зайдите на сайт знакомств OKCupid, и там вас встретит лозунг, гордо заявляющий: «Мы найдем вам пару при помощи математики».
«Алгоритм подбора партнеров» таких сайтов знакомств перебирает профили пользователей и составляет из них пары на основе их симпатий, антипатий и черт характера. Судя по всему, эти сайты совсем не плохо справляются со своей работой. Более того, кажется, что алгоритмам подбор партнеров удается лучше, чем нам самим: в исследовании, результаты которого были недавно опубликованы в журнале Proceedings of the National Academy of Sciences, были рассмотрены 19 000 человек, сочетавшихся браком между 2005 и 2012 годами. Выяснилось, что у пар, встретившихся в интернете, браки получились более счастливыми и устойчивыми.
Первый алгоритм, принесший своим создателям Нобелевскую премию, был изначально сформулирован двумя математиками, Дэвидом Гейлом и Ллойдом Шепли, в 1962 году. Они использовали алгоритм подбора партнеров для решения так называемой «Задачи о марьяже». Гейл умер в 2008-м, так и не успев получить своей награды, но Шепли разделил премию 2012 года с экономистом Элвином Ротом, который разглядел важность этого алгоритма не только в вопросе личных связей, но и в применении к социальным проблемам, в том числе к справедливому предоставлению услуг здравоохранения или мест для обучения в вузах.
Шепли эта награда развеселила. «Я считаю себя математиком, а премию получил по экономике, – сказал он, явно удивленный решением комитета. – Я никогда, никогда в жизни не учился экономике». Но из его математических построений были выведены важные экономические и социальные следствия.
Задача о марьяже, которую решили Шепли и Гейл, больше похожа на салонную игру, чем на элемент передовой экономической теории. Чтобы понять, в чем именно состоит эта задача, представим себе четырех гетеросексуальных мужчин и четырех гетеросексуальных женщин. Всем им предложили расположить четырех представителей противоположного пола в порядке личных предпочтений. Алгоритм должен распределить их по парам так, чтобы получить устойчивые браки. Это означает, что в результате ни один мужчина и ни одна женщина не должны стремиться друг к другу больше, чем к назначенным им партнерам. В противном случае вполне вероятно, что в какой-то момент они оставят своих супругов и сбегут друг с другом. На первый взгляд не вполне ясно, можно ли вообще решить эту задачу – даже при наличии всего четырех пар.
Возьмем один конкретный пример и рассмотрим, как Гейлу и Шепли удалось гарантировать стабильность этих союзов, причем систематическим и алгоритмическим образом. Роли четырех мужчин у нас будут играть четыре короля из карточной колоды: король пик, король червей, король бубен и король треф. Женщинами будут соответствующие дамы. Все короли и дамы выразили свои предпочтения:
Для королей:
Для дам: