Регистрация
Получить HM2
Регистрация Поиск Пользователи Все разделы прочитаны  
CGM > Казино > Казино софт
Опции темы

Soft Speed Test (покер)

Важные объявления
Старый 13.03.2007, 16:26   #61 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Шамсутдинов писал
При расчете МО все расклады все равно не перебрать (особенно, если 2 бокса), а любая перестановка мастей симметрична, так что можно выбирать случайную.
Опаньки, сразу не заметил, ты еще и масти не учитываешь. У меня (и остальных в этом топике) считается все точно.
__________________
Arthur Grey
Grey вне форума      
Старый 14.03.2007, 00:06   #62 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
Уважаемый Шамсутдинов, в данной теме мы сравнивали скорости функций анализа одной руки игрока против карты дилера (вычисление числа возможных комбинаций дилера младще/старше/равно для подсчета МО руки). Так тот факт что на одном и том же оборудовании ваш софт анадизирует 350 000 рук в секунду а у Грея например 950 000 говорит о том что при использовании его функции Ваш софт будет считать почти втрое быстрее. Тест с полным перебором был предложен мной для исключения неоднозначности в постановке задачи. То, что наш код может работать с неполной колодой - само собой разумеется, просто для теста СКОРОСТИ это не требовалось. И еще, не совсем понятно как Вы успеваете анализировать все варианты обменов (Русский покер) без упрощений, ведь один только пятак на первом боксе требует анализа 1370754 вариантов (3 секунды при вашей скорости).
korovin вне форума      
Старый 14.03.2007, 07:10   #63 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Korovin писал
Так тот факт что на одном и том же оборудовании ваш софт анадизирует 350 000 рук в секунду а у Грея например 950 000 говорит о том что при использовании его функции Ваш софт будет считать почти втрое быстрее.
Ну оборудование-то разное, так что не втрое, а почти вшестеро.
__________________
Arthur Grey
Grey вне форума      
Старый 14.03.2007, 07:22   #64 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
Название: test.jpg
Просмотров: 484

Размер: 41.6 Кб

Оказывается я отстал от жизни и у нас новый лидер по моему тесту - Grey с результатом 50 сек на анализ 52*51*50*49*48*47/5/4/3/2= 122 151 120 вариантов рук игрока против 1-й карты дилера, или 2,5 миллиона рук в секунду на моем железе. ПОЗДРАВЛЯЮ. Я пока на почетном 3-м месте со 123 секундами, Sharky на втором.
korovin вне форума      
Старый 14.03.2007, 10:32   #65 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Korovin писал
Оказывается я отстал от жизни и у нас новый лидер по моему тесту - Grey с результатом 50 сек на анализ 52*51*50*49*48*47/5/4/3/2= 122 151 120 вариантов рук игрока против 1-й карты дилера, или 2,5 миллиона рук в секунду на моем железе. ПОЗДРАВЛЯЮ.
Спасибо. А то я уже хотел к доктору обращаться, типа меня все игнорируют.
__________________
Arthur Grey
Grey вне форума      
Старый 14.03.2007, 11:19   #66 (permalink)
Увлечённый
 
Регистрация: 26.10.2005
Адрес: Провинция
Сообщений: 462
Цитата:
Сообщение от Grey писал вт, 13 марта 2007 15:22
13 возможных карт дилера * число всех комбинаций по 5 из 51 = 30537780 раскладов. Для каждого расклада производится операция вычисления (по формулам) количества комбинаций дилера старше/младше/равно/пустая, даже в том случае, если у игрока пустая комбинация. На моем стареньком PIII-800 это занимает 32 секунды.
Я так понимаю честные циклы (5 вложенных, ну или 10 покороче, чтобы не вычислять масть-ранг) + один для карты диллера:
for(int i0=4;i0<52;i0++)
{
____for(int i1=3;i1<i0;i1++)
____{
________...
____}
}

с проверкой на выкинутые карты - это обязательное условие соревнования (нельзя оптимизировать)?

Прикинул, получилось за 838 (минус проверка на выкинутые, инкремент, подсчет результата, округлим 800) тактов проверяется <,>,=,0 (пустая, наверное, высчитывается из общей). Вроде очень мало. Сравню со своим приближенным методом.
Это Я вне форума      
Старый 14.03.2007, 12:00   #67 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
Цель теста - сравнение скорости функции анализа руки игрока против каты дилера, используемой в нашем покерном софте, на одинаковом железе. Для этого я и предложил оформить ее в виде демо-модуля и выложить здесь, чтобы любой мог запустить разные демки на своем железе. Почему итменно эта функция: это ядро любого покерного софта, от которого напрямую зависит производительность всего комплекса. Есть еще алгоритмя оптимизации более высокого порядка, но это уже другая история. Как сравнивать - не принципиально, для сравнение важно лишь чтобы демки выполняли ОДНУ и туже работу. В данном случае предлагалось именно 6 честных циклов с вызовом функции внутри последнего и накоплением результата. Под тестовой функцией понимался именно рабочий модуь из покерного софта, специально не заточеный под эту задачу, т.к. сама задача уже давно решена.
korovin вне форума      
Старый 14.03.2007, 12:29   #68 (permalink)
Увлечённый
 
Регистрация: 26.10.2005
Адрес: Провинция
Сообщений: 462
Я не сторонник точных формул, поэтому в вашем соревновании не участвую. Хотел просто прикинуть, можно ли при точном расчете получить скорость необходимую для поставленной мной задачи (уже отставленной, правда).
Это Я вне форума      
Старый 14.03.2007, 12:32   #69 (permalink)
Новичок
 
Регистрация: 06.03.2007
Адрес: Москва
Сообщений: 27
Вынужден признать, что моя процедура подсчета комбинаций у дилера (4 карты) в 4,3 раза меденнее, чем у Грея. Совпадение с ним результата МО абсолютно точное при любом количестве выкинутых из колоды карт, известных игроку.
Насчет используемой памяти моей программой. В прошлый раз я непонятно каким образом ошибся. Действительно, моя программа занимает 22-25 МБ в памяти. 15,2 МБ занимают массивы, определяющие сортировку и комбинацию 5 или 6 карт. Причем, большая часть - для 6-карточных комбинаций, например, в русском покере.
Самая сложная часть моей программы - покупка игры. Но я уже не строю иллюзий насчет правильности моих претензий. Но быть в вакууме тоже нелегко.
Теперь я полностью в теме - еще раз перечитал все сообщения этого форума. Про масти никаких разногласий нет. Моя программа все делает правильно, но медлено (я считал, что быстро). Какими-то преимуществами, она безусловно обладает, в ней сделано очень многое и очень хорошо (опять, с оговогкой, что другие могли бы сделать в 4,3 раза лучше). Например, можно одсчитывать точное МО, когда нет мен карт, но для этого нужно вручную перебирать все карты дилера, потом находить реднее арифметическое. Дело в том, что когда в моей программе варьируются только карты на 1 боксе и 0 Change, то ведется полный перебор этих карт. Нажав на кнопку слева от таблицы результатов появится окно с более полной информацией о результатах, от туда можно взять в буфер обмена точное МО последней операции - с большим числом знаков после запятой.

Замечу, что программа rp отличается от pkr большую сторону только тем, что там есть возможность исключения мен 4 или 5 карт, если они о хуже.

Извиняюсь за поспешные заявления и выставление своей программы. Буду очень признателен, за объяснения как сделать более быстрый алгоритм подсчета комбинаций у дилера (Grey).
Шамсутдинов вне форума      
Старый 14.03.2007, 12:49   #70 (permalink)
Новичок
 
Регистрация: 06.03.2007
Адрес: Москва
Сообщений: 27
Непонятно, что такое Strait payoff=8
Шамсутдинов вне форума      
Старый 14.03.2007, 13:00   #71 (permalink)
Увлечённый
 
Регистрация: 26.10.2005
Адрес: Провинция
Сообщений: 462
Цитата:
Сообщение от Шамсутдинов писал ср, 14 марта 2007 12:49
Непонятно, что такое Strait payoff=8
Выплата за стрит. Сделали плавающим для выявления ошибок (или махинаций).

8-)
Это Я вне форума      
Старый 14.03.2007, 13:00   #72 (permalink)
Бессмертный
 
Аватар для korovin
 
Регистрация: 13.02.2004
Адрес: Россия
Сообщений: 3,027
8-)
korovin вне форума      
Старый 14.03.2007, 15:45   #73 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Шамсутдинов писал
Буду очень признателен, за объяснения как сделать более быстрый алгоритм подсчета комбинаций у дилера (Grey).
Ну рецепт простой. Все, что можно просчитать заранее, просчитать и засунуть в таблицы. Остальное оптимизировать до посинения
__________________
Arthur Grey
Grey вне форума      
Старый 14.03.2007, 15:45   #74 (permalink)
Участник
 
Регистрация: 13.10.2004
Сообщений: 165
Не хотелось бы огорчать г-на Коровина, но я тут исправил ошибки у себя в программе и вот результаты:

Название: PT.jpg
Просмотров: 413

Размер: 167.4 Кб

При полной колоде я отстаю от Grey, а при не полной - почему-то опережаю, не могу объяснить этот феномен.
Название: PT1.jpg
Просмотров: 409

Размер: 73.0 Кб

Кстати, выделил процедуру подсчета (<,>,=,нет игры) в отдельный unit для Delphi, могу отправить интересующимся. Тока надо написать help нему с параметрами всех процедур, которые можно из него вызвать. В главной процедуре на входе 5-ка карт игрока, карта дилера, отсутствующие карты - на выходе 3 числа - >, <, =. Дальше в зависимости от параметров оплаты можно все посчитать. Начал делать для русского с двойными комбинациями, но пока не доделал.
Вложения
Тип файла: exe STest4.exe (601.5 Кб, 116 просмотров)
Fabrica вне форума      
Старый 14.03.2007, 15:50   #75 (permalink)
Новичок
 
Регистрация: 06.03.2007
Адрес: Москва
Сообщений: 27
Цитата:
Сообщение от Korovin писал
И еще, не совсем понятно как Вы успеваете анализировать все варианты обменов (Русский покер) без упрощений, ведь один только пятак на первом боксе требует анализа 1370754 вариантов (3 секунды при вашей скорости).
Это делается тоже комбинаторно - мощная разработка, гораздо концептуально сложнее чем комбинаторный перебор 4 карт дилера. при желании могу объяснить, как это делается, но сразу скажу, что очень не просто. Правда у меня там есть дублирующий алгоритм, который работает в 4 раза медленнее (если не изменяет память), он намного проще, но полностью эквивалентен. Его я ипользовал (после переделки) для покупки игры, когда нет комбинации туз-король - когда меняется младшая, а не старшая карта дилера.

Все-таки мне очень хочется разобраться, почему мой алгоритм хуже. Ответьте на следующий вопрос:
Пусть на 1-ом боксе есть какая-то комбинация (-, AK, 2, 2+2, 3, S, F, 3+2, 4, FS, FR).
Я получаю количества всех комбинаций у дилера (AK, 2, 2+2, 3, S, F, 3+2, 4, FS, FR). Получаю количество пустых комбинаций у дилера вычитанием из его общего количества этих. Если у игрока не пустая комбинация, то производится подсчет таких же по достоинству комбинаций у дилера, равных или больших по сравнению всех карт - это наибольшее сложная и большая часть кода по количеству строк.

Так ли делаетcя в вариантах, лучших чем мой? Например, ищется ли количество всех стритов и флеш-стритов по отдельности у делера, если у игрока пара? Или, если у игрока нет игры, может быть сразу ищется в скольких случаях у дилера она есть, то есть хотя бы 2 одного достоинства, флеш или стрит (придется еще искать количество FS).

Я не проверял какие части этой процедуры имеют какую составную часть во времени выполнения. Мне казалось, что его нельзя убыстрить.

Ладно, возможно, попытаюсь переписать этот алгоритм. Дело в том, что у меня была идея, заключающаяся в том, что для получения количества комбинаций у дилера, можно сначала расчитать массивы всех случаев, по количеству неизвестных карт по достоинствам (0..12) (количеству этих количеств (0..4), то есть [13][12][12][12][12][12], где первый элемент - достоинство карты дилера). Когда мне пришла в голову эта идея, то я понял что процедуру можно ускорить в разы, но что это не стоит делать, потому что и так быстро, и будет тормозить покупка игры, которая сделана идеально - ее я делал 3 года тому назад, а ту процедуру - 8 лет тому назад. Но пару месяцев тому назад я вернулся к этому вопросу, посмотрел свой код, и не смог понять почему можно добиться убыстрения, хотя эту идею я помнил. Теперь мне опять кажется, что убыстрение возможно. Ответьте что-нибудь. Можно на мой e-mail. Как пользоваться форумом? Например, удобно цитировать несколько раз. Как подписаться на новые сообщения, чтобы уведомления приходили по почте?
Шамсутдинов вне форума      
Старый 14.03.2007, 15:56   #76 (permalink)
Новичок
 
Регистрация: 06.03.2007
Адрес: Москва
Сообщений: 27
Цитата:
Сообщение от Grey
Ну рецепт простой. Все, что можно просчитать заранее, просчитать и засунуть в таблицы. Остальное оптимизировать до посинения
Я вас уважаю, но если вы поймете, как я написал покупку игры, то еще непонятно, кому кого уважать придется.
Шамсутдинов вне форума      
Старый 14.03.2007, 16:15   #77 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Шамсутдинов писал
Я вас уважаю, но если вы поймете, как я написал покупку игры, то еще непонятно, кому кого уважать придется.
Уже уважаю. Потому что я покупку игры не писал и в ближайшее время не собираюсь. На этот алгоритм подсчета комбинаций дилера я потратил в общей сложности пару месяцев. Первый месяц 5 лет назад, потом забросил, полностью переключившись на блэкджек. Ну и еще месяц год назад. И снова забросил. Писал для себя, а не для соревнования с кем-либо. Так что те, кто выставил мне "временный" рейтинг -- не парьтесь, можете сразу снять.
__________________
Arthur Grey
Grey вне форума      
Старый 14.03.2007, 16:23   #78 (permalink)
Увлечённый
 
Регистрация: 26.10.2005
Адрес: Провинция
Сообщений: 462
Цитата:
Сообщение от Grey писал ср, 14 марта 2007 16:15
Так что те, кто выставил мне "временный" рейтинг -- не парьтесь, можете сразу снять.
Я, конечно, понимаю, что между нами непреодолимый антагонизм, но я искренне уважаю людей, способных на деле показать свое преимущество.
Это Я вне форума      
Старый 14.03.2007, 16:50     TS Старый   #79 (permalink)
Ветеран
 
Регистрация: 26.11.2005
Адрес: Минск
Сообщений: 1,242
Мде, отстал я от жизни.. И все-таки Grey, как ты считаешь? Если 143K заготовок, то это одно, и сравнивать тесты так как мы имхо нельзя, или все пересчитываешь? Тогда снимаю шляпу.

2 Шамсутдинов: Абсолютно точную покупку игры уже я делал, и алгоритм был описан на страницах форума + демка была..
__________________
Единственный способ стать умнее -- играть с более умным противником. // Основы шахмат\'1883
Sharky вне форума      
Старый 14.03.2007, 17:50   #80 (permalink)
Бессмертный
 
Аватар для Grey
 
Регистрация: 30.04.2004
Сообщений: 3,612
Цитата:
Сообщение от Fabrica писал
При полной колоде я отстаю от Grey, а при не полной - почему-то опережаю, не могу объяснить этот феномен.
Частично можно, видимо, объяснить чрезмерным количеством вызовов Application.ProcessMessages у меня (ты ее вроде бы вообще не вызываешь). Сейчас исправил это дело, можешь заново сравнить:

P.S. Если во время расчета дергать форму мышкой, то время расчета существенно увеличится, т.к. во время перемещения все останавливается. Ты не дергал часом? По уму надо бы отдельным тредом сделать.
Вложения
Тип файла: zip greydemo101.zip (167.5 Кб, 56 просмотров)
__________________
Arthur Grey
Grey вне форума      

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Автозамена. TEST Grey Техническая поддержка форума 10 21.12.2008 13:01
Japanese IQ Test Vors Поговорим за жизнь 9 28.04.2008 11:40
был такой Donkey test Гламуризатор-р-р Около покерного стола 1 22.04.2007 03:25


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.

Быстрый переход
Правила форумов CGM Контакты Справка Обратная связь CGM.ru Архив Вверх Главная
 
Использование материалов сайта разрешено только при наличии активной ссылки на источник.
Все права на картинки и тексты принадлежат Информационному агентству CGM и их ПАРТНЕРАМ. Политика конфидециальности
CGM.ru на Youtube CGM.ru на Google+ CGM.ru в Twitter CGM.ru на Facebook CGM.ru в vKontakte CGM.ru в Instagram

В сотрудничестве с Pokeroff.ru
Текущее время: 14:29. Часовой пояс GMT +3.
Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2018, vBulletin Solutions, Inc. Перевод: zCarot