Программеры приглашаются на простенький турнир

dsv087

Играют двое. В банке Н очков (нечетно). Они заявляют по целому числу. Если сумма чисел равна сумме в банке - игра кончается и игроки получают заявленное число очков. Иначе из банка уюирают два очка и тур повторяется. Так до выигрыша или нуля в банке.
Турнир играют М игроков, каждый с каждым. Турнир выигрывает набравший наибольшее число очков.
Участвуют программы на Си или Паскаль. Крайний срок подачи проги 8.04.05, 18:00. Подробнее на сайте Лаборатоия интеллектуальных игр Эквивалент.
О ближайшем турнире Консенсус
Турнир бесплатный и некоммерческий.
Чем больше игроков -- тем интереснее!

sidsid

что, никто не хочет вырвать очко у соперника?

rosali

Участвуют программы на Си или Паскаль
После такого становится очевидно, что турнир провалится. Закодировать хоть сколько то вразумительную логику на С ни у кого не хватит сил. И поэтому выиграет праграмма типа

return random(n);
или

return (n-1);

Вобщем действительно, нет желания рвать очко _себе_.

dsv087

Здесь не нужна программа по эмуляции искуственного интеллекта. И корову тоже не разыгрывают
Думаю что прога return random(CurrentBankScore/2+rand(1 будет очень даже конкурентоспособной.
Это чуть-чуть логичнее твоей. И очень даже интересно как она сыграет.
Сам было хотел такую сделать, да подумал, что скучно так будет.
ЗЫ
Турнир уже не провалится, там больше 10 участников запостивших программы -- этого уже достаточно.
Половина из них -- мои знакомые, неглупые люди.

Papazyan

Если на то пошло, то стратегия ни себе ни людям (return random[N/2..N]) имеет больше смысла. Я бы даже сказал, у нее самые большие шансы на победу среди рандомных стратегий.

maggi14

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

Papazyan

Ну моя стратегия непробиваема, в любом матче она будет как минимум не в минусе. А с другой стороны поддаваться и выдавать числа меньше половины крайне опасно. Хотя можно оценивать вероятность появления числа < N/2 и > N/2 и если контрстратегия выгодна (P(>N/2) << P(<N/2 то выдавать и маленькие числа.

Marinavo_0507

Объясните мне, те, кто считает, что это то же самое, что и iterated prisoner's dilemma, _почему_?
Я вижу только очень важное различие:
в IPD естественные стратегии симметричны (око-за-око
а в "Консенсусе" какой аналог этому? Кто-то должен получить (N-1)/2, а кто-то (N+1)/2 -
ассиметрия.
Не понимаю.

Dasar

> Объясните мне, те, кто считает, что это то же самое, что и iterated prisoner's dilemma, _почему_?
Скажем так: она очень похожа, особенно если закрыть глаза на то, что выигрышь чуть-чуть несимметричен.

Marinavo_0507

Фигасе закрыть.
Получается, что если оба игрока действуют по одинаковой детерминированной стратегии,
то из-за этой ассиметрии они проиграют.
Садомазо-игра какая-то

freezer

Чтобы выиграть, нужно выйти за рамки игры Т.е. нужно делать 2 класса стратегий: X - "поддающаяся" и Y - "не поддающаяся", причем обе из них должны а-приори играть так, чтобы любой противник оставался в проигрыше, мало получал очков. Только стратегия X должна содержать один нюанс: если она как-то определила, что ее противник придерживается стратегии Y - то она автоматически сдается. Если в конкурс запустить много программ реализующих стратегию X и парочку со стратегией Y, то за счет этого "чита" Y победит

maggi14

И наоборот если много У - выиграют редкие Х

Dasar

> Фигасе закрыть.
Закрыть в том смысле, что для начала попробовать использовать те же самые алгоритмы и наработки, что и в классической игре, может быть с небольшими модификациями.

freezer

за счет чего? Наоборот, цель X - это мочить всех, но если "узнал" Y - то сдаваться ему. Поэтому, победить они могут только случайно.

Dasar

Если несколько туров - то фигня будет.

Marinavo_0507

Недавно читал, что в IPD кто-то применил ровно этот трюк, и одна из пары программ действительно выиграла.

dsv087

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

freezer

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

dsv087

Хорошо, тогда у всех, кто с форума участвует такое же преимущество в знании среды как и у меня.
Правда из форумских с списке учасников по моему максимум пара человек..
Да и что бы тут люди ни писали, проги они все равно сделают по своему.
Поэтому: фишка в другом

dsv087

Всем кто тут высказал идеи, предлагаю написать проги и запостить их на турнир до 16 часов сегодня. Турнир завтра в 16 часов по Москве.

dsv087


Прошло 19 туров из 19
Текущее положение участников

Таблица турнира
Участники О И
1 antuan (6) 832 18
2 frodo (16) 806 18
3 genius (2) 800 18
4 julia (3) 794 18
5 Антон (5) 786 18
6 xoposhiy (8) 764 18
7 motor (15) 748 18
8 dit (17) 736 18
9 turbo (12) 735 18
10 dimfin (14) 730 18
11 gr!ffon (18) 690 18
12 kknop (1) 688 18
13 allerlei (11) 675 18
14 allex (7) 616 18
15 samsonov alex (4) 544 18
16 den (13) 538 18
17 kaliki (10) 518 18
18 qvazi-spiria (19) 500 18
19 yod (9) 122 18
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
kknop (1) x 48 : 47 47 : 48 34 : 1 48 : 47 44 : 43 8 : 1 36 : 55 88 : 1 0 : 0 76 : 1 47 : 48 8 : 1 0 : 0 48 : 47 54 : 43 47 : 48 0 : 0 55 : 40
genius (2) 47 : 48 x 50 : 51 49 : 48 50 : 49 51 : 50 45 : 44 51 : 50 59 : 30 50 : 51 13 : 12 48 : 49 50 : 49 34 : 35 50 : 49 51 : 50 49 : 50 51 : 50 2 : 1
julia (3) 48 : 47 51 : 50 x 50 : 49 51 : 50 51 : 50 48 : 47 51 : 50 0 : 0 0 : 0 45 : 44 46 : 47 50 : 49 51 : 50 51 : 50 51 : 50 46 : 47 51 : 50 53 : 40
samsonov alex (4) 1 : 34 48 : 49 49 : 50 x 46 : 47 24 : 73 40 : 51 31 : 46 11 : 4 0 : 49 10 : 67 49 : 50 29 : 30 49 : 50 0 : 0 49 : 50 49 : 50 0 : 49 59 : 40
Антон (5) 47 : 48 49 : 50 50 : 51 47 : 46 x 49 : 50 47 : 48 34 : 33 4 : 1 50 : 51 16 : 77 50 : 51 46 : 45 49 : 50 47 : 46 49 : 50 50 : 51 49 : 50 53 : 40
antuan (6) 43 : 44 50 : 51 50 : 51 73 : 24 50 : 49 x 40 : 51 50 : 49 16 : 5 50 : 51 44 : 45 50 : 51 24 : 23 46 : 47 50 : 49 48 : 47 50 : 51 47 : 48 51 : 40
allex (7) 1 : 8 44 : 45 47 : 48 51 : 40 48 : 47 51 : 40 x 36 : 55 25 : 16 0 : 0 6 : 51 47 : 48 5 : 6 6 : 5 48 : 47 55 : 42 47 : 48 44 : 41 55 : 40
xoposhiy (8) 55 : 36 50 : 51 50 : 51 46 : 31 33 : 34 49 : 50 55 : 36 x 52 : 27 50 : 51 2 : 77 50 : 51 24 : 27 49 : 50 39 : 38 49 : 50 50 : 51 49 : 50 12 : 1
yod (9) 1 : 88 30 : 59 0 : 0 4 : 11 1 : 4 5 : 16 16 : 25 27 : 52 x 0 : 61 6 : 19 0 : 0 9 : 12 17 : 20 0 : 0 5 : 50 0 : 0 0 : 35 1 : 6
kaliki (10) 0 : 0 51 : 50 0 : 0 49 : 0 51 : 50 51 : 50 0 : 0 51 : 50 61 : 0 x 0 : 0 0 : 0 0 : 0 51 : 50 51 : 50 51 : 50 0 : 0 51 : 50 0 : 0
allerlei (11) 1 : 76 12 : 13 44 : 45 67 : 10 77 : 16 45 : 44 51 : 6 77 : 2 19 : 6 0 : 0 x 44 : 45 16 : 17 32 : 35 45 : 44 77 : 20 44 : 45 0 : 0 24 : 1
turbo (12) 48 : 47 49 : 48 47 : 46 50 : 49 51 : 50 51 : 50 48 : 47 51 : 50 0 : 0 0 : 0 45 : 44 x 50 : 49 51 : 50 51 : 50 51 : 50 0 : 0 51 : 50 41 : 40
den (13) 1 : 8 49 : 50 49 : 50 30 : 29 45 : 46 23 : 24 6 : 5 27 : 24 12 : 9 0 : 0 17 : 16 49 : 50 x 49 : 50 43 : 42 49 : 50 49 : 50 0 : 0 40 : 51
dimfin (14) 0 : 0 35 : 34 50 : 51 50 : 49 50 : 49 47 : 46 5 : 6 50 : 49 20 : 17 50 : 51 35 : 32 50 : 51 50 : 49 x 50 : 49 50 : 47 50 : 51 47 : 48 41 : 40
motor (15) 47 : 48 49 : 50 50 : 51 0 : 0 46 : 47 49 : 50 47 : 48 38 : 39 0 : 0 50 : 51 44 : 45 50 : 51 42 : 43 49 : 50 x 49 : 50 50 : 51 49 : 50 39 : 40
frodo (16) 43 : 54 50 : 51 50 : 51 50 : 49 50 : 49 47 : 48 42 : 55 50 : 49 50 : 5 50 : 51 20 : 77 50 : 51 50 : 49 47 : 50 50 : 49 x 50 : 51 0 : 69 57 : 40
dit (17) 48 : 47 50 : 49 47 : 46 50 : 49 51 : 50 51 : 50 48 : 47 51 : 50 0 : 0 0 : 0 45 : 44 0 : 0 50 : 49 51 : 50 51 : 50 51 : 50 x 51 : 50 41 : 40
gr!ffon (18) 0 : 0 50 : 51 50 : 51 49 : 0 50 : 49 48 : 47 41 : 44 50 : 49 35 : 0 50 : 51 0 : 0 50 : 51 0 : 0 48 : 47 50 : 49 69 : 0 50 : 51 x 0 : 0
qvazi-spiria (19) 40 : 55 1 : 2 40 : 53 40 : 59 40 : 53 40 : 51 40 : 55 1 : 12 6 : 1 0 : 0 1 : 24 40 : 41 51 : 40 40 : 41 40 : 39 40 : 57 40 : 41 0 : 0 x
Оставить комментарий
Имя или ник:
Комментарий: