Биология и Буддизм. Почему гены против нашего счастья и как философия буддизма решает эту проблему - Евгений Викторович Бульба
Шрифт:
Интервал:
Закладка:
Но вернемся к истории, которая сама по себе напоминает детективный сюжет. Получив рецензию Гамильтона, Триверс издал статью. На этом история не закончилась. Гипотеза была правдоподобна, но это была лишь одна из гипотез. Прошло десять лет, и Гамильтон получил статью политолога Роберта Аксельрода с результатами турниров компьютерных программ-кооператоров, полностью и независимо подтверждающих выводы Триверса о реципрокном альтруизме.
Роберт Аксельрод был математиком и политологом, биология его совершенно не интересовала. В конце 1970-х уже появились достаточно мощные компьютеры, чтобы попытаться смоделировать всевозможные варианты взаимодействий. Аксельрод понял, что реально создать мир компьютерных программ, которые будут взаимодействовать друг с другом, и посмотреть, какая из них выйдет победителем. Он пригласил к участию всех желающих, и на первый турнир собралось 14 человек. Каждый участник придумал стратегию поведения и записал ее в виде программы.
Турнир заключался в следующем: все программы должны были провзаимодействовать в парах, решая дилемму заключенного 200 раз подряд. Результат оценивался следующим образом.
Отказ сотрудничать – 1 балл.
Сотрудничество – 3 балла.
Обман (одна из программ сотрудничает, а вторая нет) – 5 баллов обманщику и 0 баллов – простаку.
Присланные программы были разными по сложности и отражали разные стратегии. Условно говоря, восемь из них были «добрыми» – склонными к сотрудничеству, а семь – эгоистичными. К удивлению исследователей, добрые программы плотной группой и с большим отрывом обошли эгоистичные.
Люди, писавшие стратегии, стремились учесть хитрость противников и создавали сложные алгоритмы реагирования на ходы противников. Однако победила самая простая и бесхитростная из «добрых» стратегий. Победительница оказалась и самой короткой – настолько, что содержала всего лишь четыре строчки кода. Ее назвали «Око за око».
Эта стратегия была предельно проста – начинать с сотрудничества и потом воспроизводить последний ход партнера. Среди конкурентов были добрые программы (прощавшие предательство), хитрые, умные и эгоистичные… Но око за око оказалась наиболее жизнеспособной и простой. Она преданно сотрудничала с добрыми программами и после минимальных потерь (цена одного хода) отказывалась от сотрудничества с предательскими. Кроме того, она готова была «прощать» умные программы, если они ее однажды предавали и потом исправлялись. И вся эта адаптивность умещалась всего лишь в четырех строчках кода!
После турнира Аксельрод[65] сформулировал четыре правила успеха в дилемме заключенного: не завидовать (то есть не стараться выиграть у противника, а стараться вместе набрать больше очков). Быть готовым сотрудничать (не отказываться от взаимопомощи заранее). Отвечать партнеру тем же (око за око). Не быть слишком сложным (кстати, самая сложная стратегия заняла последнее место).
Успешную стратегию можно сформулировать и по-другому: порядочность (не платить предательством за сотрудничество) и способность к прощению (готовность восстанавливать сотрудничество после чужого предательства). С такими правилами программа иногда проигрывает более сложным стратегиям, но в целом набирает больше очков.
Результаты турниров привели к сногсшибательному, неожиданному результату: даже в мире бездушных программ к успеху ведут порядочность и доброжелательность, а не эгоизм, эксплуатация и соперничество.
Турнир стал вызовом – он ломал стереотипы. После этого Аксельрод объявил о желании провести еще один турнир, и на него откликнулось уже 62 участника. Предварительно были обнародованы результаты первого турнира, чтобы участники могли проанализировать причины успеха предшественников. Аксельрод даже предоставил новым участникам свой анализ успешности программ-победительниц. Безусловно, во втором туре было множество умных, коварных и непорядочных программ, рассчитанных на выигрыш у «Око за око». И что же произошло? «Око за око» опять выиграла!
Она могла проигрывать отдельным программам, но в отличие от них не была «завистливой» и, стабильно набирая очки, в итоге вышла в лидеры.
Спустя недолгое время Аксельрод понял, что его модель многое объясняет не только в политике, но и в биологии. Возникла необходимость в сотрудничестве с авторитетным эволюционистом. Естественно, что проще всего это было сделать в стенах Мичиганского университета, где он работал. То, что в тот момент профессором эволюционной биологии Мичиганского университета был Уильям Гамильтон, которого часто называют вторым по значению эволюционистом после Дарвина, можно смело отнести к разряду невероятных и судьбоносных совпадений.
Гамильтон почти всю свою жизнь работал в Англии, но как раз в то время, когда Аксельрод ставил свой потрясающий эксперимент, на несколько лет оказался в непосредственной близости. Значимый эксперимент и самый блестящий специалист сошлись в одной точке. Можно себе представить удивление и радость самого Гамильтона – десять лет назад он посоветовал Триверсу проверить идею взаимного альтруизма с помощью дилеммы заключенного. Теперь же у него в руках оказались результаты компьютерного моделирования, расставлявшие все точки над i. Результатом стала совместная основополагающая статья Аксельрода и Гамильтона «Эволюция сотрудничества» 1981 года.
Третий турнир Аксельрод провел уже под биологическими «знаменами» – он моделировал эволюцию. Были использованы те же программы, что и во втором турнире, но очки заменили «потомками»: чем больше очков в одном круге набирала программа, тем больше ее копий переходило в следующий цикл. Всего провели 1000 поколений, некоторые программы вымерли уже к двухсотому циклу. Ожидаемо первыми умирали эгоистичные стратегии. Одна из них продержалась достаточно долго и на первых этапах процветала за счет доверчивых и прощающих стратегий. Однако она постепенно «съела» их все и сама не выжила в борьбе с порядочными, но недоверчивыми. Через тысячу поколений ситуация стабилизировалась и перестала меняться – в компьютерном мире остались несколько добропорядочных стратегий, которые сотрудничали с одинаковым результатом в виде «потомков».
Программа око за око всего лишь хорошо описывает некоторые примеры сотрудничества. Это упрощенная игровая имитация, и не более того. Оставалось непонятным, как могло возникнуть такое поведение среди организмов, конкурирующих друг с другом. Ведь погруженная в чистую среду программ-эгоистов «Око за око» погибала – ей не с кем было сотрудничать, а первый раунд она всегда проигрывала. Как могло произойти, что одновременно появилось несколько подобных партнеров, которые получили преимущество благодаря сотрудничеству в своем узком кругу?
Кроме того, «Око за око» порождает замкнутый круг – если партнеру всегда платить тем же, то это порождает не только бесконечный цикл взаимопомощи (что хорошо), но и бесконечный цикл вражды (что ужасно). В игре это может произойти из-за программного сбоя – допустим, одна из сотрудничающих программ сбойнула в момент контакта с другой. Та восприняла отказ и в следующий раз отказала первой уже по-настоящему. Первая восприняла отказ и воспроизвела его. Вторая восприняла отказ… и так бесконечно! Сотрудничающие программы будут вести себя как эгоисты, хотя такими не являются и в результате проиграют. Знакомая ситуация?
Кстати, именно по такой схеме возникает вековая кровная месть между группами