Alexander Dodonov ([info]br0mberg) wrote,
@ 2008-04-06 20:48:00
Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Entry tags:общество, программирование

"Теперь и за нелинейное счастье можно взяться!"
Мы с друзьями написали простейшую игру-программу моделирующую диллему заключённого и пришли к любопытным результатам относительно реальных наших жизненных стратегий.

Правила игры


Игра моделирует нашу жизнь: существуют игроки, существуют ходы, каждый ход игроки совершают между собой сделки.

Понятие сделки в игре примитивно до безобразия: игроки одновременно вручают друг другу карточки: красную, если игрок срывает сделку и чёрную, если игрок честно сделку исполняет. Если оба дали друг другу чёрную карточку, каждому прибавляется по очку, если оба дали друг другу красную карточку - значит сделка обоюдно сорвана и у каждого вычитается по два балла, если один игрок дал другому чёрную карточку, а тот вручил ему красную - то есть обманул - то у давшего чёрную вычитается 2 балла, а давшему красную 2 балла прибавляется.

Первоначально у каждого игрока 100 очков. Игра длится 10000 ходов. Если игроков больше двух, каждый ход все игроки совершают сделки со всеми попарно.


Стратегии


Сделав фреймворк для игры, мы озаботились программированием стратегий игроков. Сначала мы реализовали три самые простые, без всякой обратной связи.Это стратегии
1. Эгоист - игрок всегда срывает сделку
2. Альтруист - игрок всегда честно исполняет сделку, и
3. Идиот - сорвёт игрок сделку или исполнит определяется генератором случайных чисел.

Вот список стратегий посложнее, с обратной связью.
4. Жадина. Игрок исполняет сделку с тем, у кого очков меньше чем у него и срывает, если у его партнёра очков больше, чем у него.
5. ЗубЗаЗуб. Игрок исполняет сделку так, как партнёру исполнил сделку на предыдущем ходу. Остаётся неопределённым, как поступать с партнёром на первом ходу. =) В нашей реализации на первом ходу сделка исполняется.
6. АнтиЗубЗаЗуб. Игрок поступает с партнёром обратно тому как поступил партнёр с ним на предыдущем ходу. На первом ходу игрок срывает сделку.
7. Мстительный. Первоначально игрок исполняет условия сделки, но если партнёр хоть раз подвёл его, Мстительный срывает все последующие с этим партнёром сделки.
8. Мстительный с прощением. То же самое, что и 7, но если партнёр подвёл, сделки срываются не до конца игры, а только N ходов, N можно задать.

Стратегии с 5, 7 и 8 можно условно назвать "наказывающими".

Результаты игры


Если запустить одновременно все 8 стратегий с потрясающим отрывом лидирует стратегия Мстительный. Меня этот факт потряс. Получается, для победы не нужен сложный анализ, скорее помогает руководство простыми правилами.

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

Страна Дураков


Я проверил также устойчивость каждой стратегии к Идиотам. Страна Дураков была смоделирована так: в игре участвуют 10 игроков, 9 из них действуют по стратегии Идиот, 10ый и есть проверяемый.
Результаты после 10000 ходов такие:
Стратегия Эгоист - "Король Помойки". У Эгоиста самый большой балл, но он всё равно отрицателен. Суммарный балл всех игроков - некий аналог общего количества благ - снижается каждый ход со скоростью падающего бомбардировщика.
Стратегия Альтруист - "Не стоит село без праведника". Да, как я и предполагал, бал у Альтруиста оказался самый низкий. Но! У прочих 9 участников бал был близок даже к положительному. Повинуясь догадке я добавил ещё одного игрока со стратегией Альтруист - и у всех Идиотов баллы стали положительны к концу игры, а общее количество благ, росло как бамбук весной. Правда, это не улучшило положение Альтруистов, они были в жёстком минусе. То есть если в обществе на каждые 5 идиотов находится 1 сверхчестный человек, общество будет процветающим. Удивительно, не правда ли? )
Стратегии Жадина, ЗубЗаЗуб, АнтиЗубЗаЗуб - их результат был ровнёхонько точно таким же как у остальных игроков-Идиотов. И это урок всем нам - пытаясь обосновывать свои поступки анализом этого безумного, безумного мира, мы повторяем вслед за ним его безумства.



(Post a new comment)


[info]lyamur
2008-04-07 09:09 am UTC (link)
Супер!
Очень интересно.
Стратегия "Мститель" - это как в поговорке: "Все привыкли отвечать добром на добро, вот все сидят и ждут, кто начнет первым...."

(Reply to this)(Thread)


[info]br0mberg
2008-04-08 10:29 pm UTC (link)
У нас был мститель соизначально добрый! =) Это от плохой жизни он портился. ))

(Reply to this)(Parent)

Отличное исследование.
[info]rainbow_lynx
2008-05-04 07:06 am UTC (link)
А какие результаты у моей любимой стратегии "Мстительный" в условиях "Страны дураков"?

P.S. Запостил результаты в мой ЖЖ со ссылкой на первоисточник :)

(Reply to this)(Thread)

Re: Отличное исследование.
[info]br0mberg
2008-05-04 06:34 pm UTC (link)
Дураков Мстительный выносит. Ведь рано или поздно они его подведут и тогда он с ними становится Эгоистом. А значит каждый ход он у них вычитает два балла, как бы они не сходили. Но стоит учитывать, в игре мне попадались такие окружения, когда стратегия Мстительного оказывалась не оптимальна.

За ссылку спасибо. :)

(Reply to this)(Parent)(Thread)

Re: Отличное исследование.
[info]rainbow_lynx
2008-05-04 07:03 pm UTC (link)
Пожалуйста ))) Читателям судя по всему понравилось.

А в каком варианте окружения стратегия "Мстительный" может быть не оптимальна?

(Reply to this)(Parent)


[info]beljakoff
2008-05-04 11:11 am UTC (link)
Я думаю, чтобы было ближе к жизни, игроки должны иметь право свободно отказываться от заключения сделки с теми, с кем не хотят, без начисления при этом каких-либо баллов.

(Reply to this)(Thread)


[info]br0mberg
2008-05-04 06:43 pm UTC (link)
Есть много вариантов усложнить эту игру: отказ от сделки, сделать срыв сделки более ступенчатым (можно не полностью сорвать а на четверть например), можно сделать перемещение друг относительно друга... Но даже в базовой интерпретации уже получается очень интересно.

(Reply to this)(Parent)


[info]rainbow_lynx
2008-05-04 07:01 pm UTC (link)
Если ближе к жизни, имхо, то как раз отказаться без потери и получения баллов нельзя. Есть у меня такое ощущение.

(Reply to this)(Parent)

Есть методологическая ошибка в постановке задачи...
(Anonymous)
2008-05-27 08:05 am UTC (link)
согласно определению http://ru.wikipedia.org/wiki/Диллема_заключенного
1. Если оба выбрали «сотрудничать», оба получают C. Если один выбрал «предать», другой «сотрудничать» — первый получает D, второй с. Если оба выбрали «предать» — оба получают d.

1. Значения переменных C, D, c, d могут быть любого знака (в примере выше все меньше либо равны 0). Обязательно должно соблюдаться неравенство D > C > d > c, чтобы игра представляла собой ДЗ.

У Вас C=1, D=2, c=-2, d=-2
не выполняется D > C > d > c поскольку c=d
именно поэтому и получились неканонические результаты - оптимальной стратегией считается Око за око... =)

Deimon

(Reply to this)


[info]alchutoff
2008-06-08 01:41 pm UTC (link)
Так-так.
http://alchutoff.livejournal.com/256241.html и ранее - я занимался тем же самым на живых людях :)
Мы будем сотрудничать?

(Reply to this)


Create an Account
Forgot your login?
Login w/ OpenID
English • Español • Deutsch • Русский…