Re: Ускорить расчет раскладов в покере... ID:23825 ответ на 23702 |
Ср, 23 июня 2004 12:00 («] [#] [») |
|
|
Приветствую!
2 joker2k1
Цитата: | идея... ну тупое оптимизированное сравнение | Какой ты краткий. А сравнивашь как? Что и с чем? По формулам комбинатроники иди другим каким способом?
Просто я вот к чему. У тебя без сжатия по мастям получается одна секунда, у меня без сжатия по мастя получается 11 секунд. Т.е., если добавить к твоему алгоритмы сжатие по мастям, то получил выигрыш в скорости более чем в 11 раз. Это уже здорово.
Вот мне и хочется выянить дело ли в алгоритме расчета или в железе/компиляторе.
Пиши.
|
|
|
А почему не считать случайным перебором? ID:23826 ответ на 23702 |
Ср, 23 июня 2004 20:25 («] [#] [») |
|
|
Привет!
Че-то я не понял, зачем усложнять себе жизнь.
1) Программа случайного пребора пишется и отлаживается за сутки. 2) Миллион хэндов просчитывается за 5-10, в зависимости от языка программирования и компа.
3) Сделать ошибку в алгоритме просто невозможно.
Результаты работы моей программы сверены с аналитиками и разработчиками ПО.
Точность расчетов - 3-й знак после запятой. Например, на одном и том же раскладе программа выдаст, к примеру, вероятность игры дилера 0,5155 и 0,5157, а оценка МО какого-то конкретного действия будет, к примеру, либо -1,0050,
либо -0,9930.
Чтобы повысить точность, можно брать не миллион, а 10 миллионов сдач.
Поясните, зачем на АБСОЛЮТНАЯ точность. Выжимать десятые доли МО? Эти десятые доли будут все равно съедены ошибками при длительной игре.
Представляется, что разработка Маринера носит лишь академический интерес.
Привет!
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23827 ответ на 23702 |
Чт, 24 июня 2004 11:44 («] [#] [») |
|
|
Считаю что без мощного ядра качественный статанализ невозможен. Русский покер считать пробовалм? на 4-м боксе в светлую МО очень даже ничего (мы уже проверили). Предлагаю всем заинересованым лицам померится силами: оформить ядро в виде отдельной программы, оценивающей, скажем 100 000 000 случайных раздач (без обменов. тогда каждый сможет сравнить производительность в равных условиях, на своем компе.
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23828 ответ на 23702 |
Чт, 24 июня 2004 11:51 («] [#] [») |
|
|
Приветствую!
2 Korovin
Цитата: | Предлагаю всем заинересованым лицам померится силами: оформить ядро в виде отдельной программы, оценивающей, скажем 100 000 000 случайных раздач (без обменов. тогда каждый сможет сравнить производительность в равных условиях, на своем компе. | Подерживаю эту идею.
Кто займется разработкой технического задания?
ЗЫ. 100 миллионов раздач думаю будет много. Миллионов 5 будет достаточно. Вобщем, все обсуждаемо.
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23829 ответ на 23702 |
Чт, 24 июня 2004 22:59 («] [#] [») |
|
|
Не силен в составлении ТЗ, но попробую.
Цель: Оценить скорость анализа рук при игре в покер. Прогамма должна:
1. Раздавать случайным образом 5 карт игроку и 0..3 карты дилеру (опционально)
2. Определять тип комбинации игрока
3. Считать число возможных рук дилера (пустые, старше/младше/равно руки игрока)
4. По этим данным и таблице выплат считать МО раздачи. При МО<-1, принять МО=-1
5. Если у игрока тройня и выше, для всех возможных пустых рук дилера считать МО покупки игры. При МО<0, принять МО=0
6. Повторить пукнты 1-5 заданное число миллионов раз.
7. Вывести МО игры (без покупки), МО покупки игры и общее время выполнения.
Для чистоты эксперимента желательно исключить ГСЧ, например брать раздачи из файла.
Правила игры: 52 карты. Стандартный Оазис без обменов. ТК играет. Выплаты стандартные: 1,1,2,3,4,5,7,20,50,100.
Анте платится. Покупка игры за 1 анте, снос таршей карты, при неудаче анте за "нет игры" не платят.
Мой вариант программы в файле. Думаю что смогу повысить скорость еще максимум в 2-3 раза.
Точность при подсчете рук дилера абсолютная, при расчете покупки игры только возможные пары.
|
Вложение:
poker.ZIP
(Размер: 358.20KB, Загружено 174 раз)
|
|
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23831 ответ на 23702 |
Пт, 25 июня 2004 11:44 («] [#] [») |
|
|
не, ну а я считаю что 100млн можно получить.
имеется ввиду просчет игры для заданной комбинации.
т.е. грубо говоря сравнение комбинации с возможными комбинациями дилера.
Думаю на выходных сделать первое приближение.
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23926 ответ на 23702 |
Чт, 7 октября 2004 21:42 («] [#] [») |
|
|
Извиняюсь, что успел только к шапочному разбору. А чем закончился брейн-ринг? Какие успехи за прошедшие пол-года?
Есть предложение. Поскольку для оценки выбран покер без обмена, то он считается полным перебором всех комбинаций с=122.151.120 (1 карта дилера открыта). Это можно взять за эталон.
Какое время расчета для этого случая достижимо на сегодняшний момент?
Блиц.
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23927 ответ на 23702 |
Пт, 8 октября 2004 12:46 («] [#] [») |
|
|
Около 2000 тактов ЦП на анализ одной руки. Думаю можно улучшить до 1500.
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23928 ответ на 23702 |
Пт, 8 октября 2004 16:13 («] [#] [») |
|
|
Приветствую!
С радостью поделился бы замерами времени, но катострофически не хватает времени для написания покерного ядра третьей версии...
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23929 ответ на 23702 |
Вт, 12 октября 2004 08:26 («] [#] [») |
|
|
Приветствую!
Цитата: | покерного ядра третьей версии... | Вот прикол. Практически переписал, но предварительные замеры дают результат на 1/3 хуже чем было.
Ндя...
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23930 ответ на 23702 |
Ср, 13 октября 2004 17:29 («] [#] [») |
|
|
Хоть убейте - никак не получаются Ваши циферки:
AC, 3.03628995428793 / 9C, 3.08884905679648 / 0.993994546067347
написал 3 разных варианта и во всех одинаково (все считаю ТОЧНО, ВСЕ комбинации проверяются точно):
В,10,9,8 пик,9 треф, 5 бубен у дилера.
закрылись - +0.99399
меняем карты
1ю +0,38073
2ю +0,38375
3ю -0,53342
4ю +0,38198
5ю +2,97143
Как у Вас получились другие цифры - не пойму.
И еще по поводу программ на скорость. У вас в обоих прогах МО около +5% без обмена, у меня -16% с копейками как ни бился.
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23931 ответ на 23702 |
Ср, 13 октября 2004 18:00 («] [#] [») |
|
|
А ТК у тебя играет???
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23932 ответ на 23702 |
Ср, 13 октября 2004 20:56 («] [#] [») |
|
|
>У вас в обоих прогах МО около +5% без обмена, у меня -16% с >копейками как ни бился.
-16% это "игра вслепую" или play all. Т.е. играем все подряд. Вопрос - зачем? Ты не пробовал принимать значения меньшие, чем "-1" за "-1" (пас)? Помогает иногда...
Возможно выйдешь на другие цифры.
Блиц.
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23933 ответ на 23702 |
Чт, 14 октября 2004 15:25 («] [#] [») |
|
|
Во я ..., упустил такую ошибку. )
Все исправилось. В смысле пропало -16%.
И проверка Лесного не проходит (
// Ваши карты – J-10-9-8 пик и туз треф, у дилера – пятёрка бубён. Ожидаемый выигрыш при замене туза треф – $304
у меня 2,94897 вместо 3,04
уже запарился искать ошибку, проверил в отладчике проверку всех комбинаций, все верно, а ответ не тот (
|
|
|
Re: Ускорить расчет раскладов в покере... ID:23934 ответ на 23702 |
Чт, 14 октября 2004 20:32 («] [#] |
|
|
и всеже у Лесного верно
|
|
|