| Здравствуйте, гость | Правила · Помощь |
Все темы | | | |
| » Теория. Алгоритм ловли мизера. | | | |
|
» 25/04/2013, 00:26, mrbiggfoot
|
||
самое простое и тупое, зато предельно наглядное - написать рекурсивную функцию, которая будет делать один ход за очередного игрока, считать взятку (если это последний ход) и вызывать себя дальше. Ну а дальше уже на что фантазии хватит - выбирай любые критерии оценки конечных позиций, какие ходы рассматривать-не рассматривать на каждом шаге и т.д. Понятно, что чем больше ходов твоя эвристика будет отсеивать, тем быстрее вся шарманка закрутится. одна из альтернатив минимаксу - так называемый max^n, при котором *каждый* игрок стремится максимизировать собственный выигрыш (а не кооператив 2 против 1 как в минимаксе). С такой стратегией альфа-бета уже работать не будет. Там используется shallow pruning, но в чём именно его суть, я уже плохо помню. Помню только, что он отсекает значительно меньше альфа-беты и вроде как не устойчив к изменению стратегии. |
||
|
» 14/05/2013, 21:37, isabsent
|
||||||||||||
|
"И снова здравствуйте!"
Изменил алгоритм - он стал очень медленным (надеюсь, что временно), но теперь может смотреть вперед, видеть угадайку на более поздних ходах, если она неизбежна и анализировать её (в нулевом приближении). Пока обкатываю алгоритм на 2-ой задаче Клейна с измененным сносом:
Север играет мизер и ходит первым. Считаю, что уже сделаны ходы: 1. 10 2. 10 Чтобы понять что алгоритм считает, мне нужно знать правильное решение этой задачи. Из предыдущих обсуждений я понял следующее: Юг должен решить, что положить К 1.Если он кладёт 8 2. Если он кладет К Первый вопрос: Получается, что в этом примере нельзя сделать однозначный выбор между К Второй вопрос: Если будет положена 8 Это сообщение отредактировал isabsent - 14/05/2013, 23:29 |
||||||||||||
|
|
|
Мне кажется, что тот, кто первым ходом ходит с 10
PS Так всё-таки - алгоритм умеет ловить мизер с неизвестным сносом или нет? |
|
|
|
Ключ к решению подобных в задач в установлению соотношения угадайки. Например, почему все считают, что угадайка 50/50 между В и 8?
Конечно, алгоритму будет сложно выявить психологические аспекты альтернативных сносов, поэтому придется использовать математический аппарат. А именно, нужно понять что выгоднее в экономическом плане оставлять игроку при условии стратегии ловли 50/50. Запустить моделирование и получить результаты, на основании которых сместить соотношение угадайки. Смещенное соотношение позволит выявить однозначный план ловли. Получилось, что мы взяли принцип оптимальности игрока и создали оптимальную стратегию. Осталось понять, как бороться с игроком, которому известен этот принцип алгоритма. -------------------- the elephant has you.. |
|
» 16/05/2013, 12:18, isabsent
|
||
Если под неизвестным сносом Вы понимаете ситуацию угадайки - то конечно умеет. Просто я пытаюсь его допилить так, чтобы он статистически правильно его ловил. То есть, если ТЕОРЕТИЧЕСКИ мизер должен быть пойман с вероятностью 50/50, то и мой алгоритм должен давать это же соотношение, а не 30/70 например. Если Вы что-то другое подразумеваете, то дайте пример - я попробую. |
||
|
» 16/05/2013, 12:44, isabsent
|
||
1. Мне кажется, что здесь угадайка 50/50 по признаку снесен В 2. Я пытаюсь заставить алгоритм играть "оптимально" пока только в том смысле, что он не должен проигрывать. Такая оптимальность (назовём её "слабой" ) не позволит выжать максимум из ситуации, если противник играет очень предсказуемо - например ВСЕГДА сносит карты с максимальной вероятностью ловли на мизере (как "Марьяж"? ). Эта предсказуемость позволила бы более навороченному алгоритму, умеющему анализировать предсказуемости оппов по истории сыгранных с ними партий, ловить оппов на 100% не доводя до угадайки - просто вычислив снос с максимальной вероятностью ловли. Пример слабой оптимальности в более простой игре "Камень, ножницы, бумага" - это стратегия, когда случайно выбирается с вероятностью 1/3 одно из значений. Эта оптимальность позволяет использующему ее игроку не проиграть. Но сильно выиграть слабого оппонента, который играет предсказуемо (например, каждый третий раз выбирает камень) она не позволит, так как она явно хуже стратегии, которая каждый третий раз выбирает бумагу, а первый и второй раз - что-нибудь случайное. Сухой остаток: пока у меня нет алгоритма анализа "предсказуемости" оппонентов-людей, хотя есть соображения как его построить. Поэтому все что я сейчас пишу относится к "оптимальности" в слабом смысле - т.е. не позволяющей алгоритму проигрывать, но не дающей взять максимальный выигрыш у предсказуемо играющих оппов-людей. 3. А как можно бороться с игроком, который выбирает камень, ножницы или бумагу случайно с одинаковой частотой? Никак. Можно только поступать так же и тогда в среднем ни он ни Вы не выиграете. Бороться можно только если Вы выявили предсказуемость оппа - возможно не 100%-ю, а хотя бы статистическую: например камень он выбирает чаще. Тогда Вы начинаете чаще выбирать бумагу. Это сообщение отредактировал isabsent - 16/05/2013, 13:12 |
||
|
|
|
А какая вероятность, что там В108? И почему не учитывается эта возможность?
-------------------- the elephant has you.. |
Все темы | | | |
« Предыдущая тема | Перечень тем | »
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
0 Пользователей:
