Страницы(7): [ «  <  #  1  2  3  4  5  6  7  >  »]   Перейти вниз
Re: Soft Speed Test   ID:24996   ответ на 24894 Вт, 13 марта 2007 16:26 («] [#] [»)
grey Форумы CasinoGames
Шамсутдинов писал
При расчете МО все расклады все равно не перебрать (особенно, если 2 бокса), а любая перестановка мастей симметрична, так что можно выбирать случайную.
Опаньки, сразу не заметил, ты еще и масти не учитываешь. У меня (и остальных в этом топике) считается все точно.
        
 
Re: Soft Speed Test   ID:24997   ответ на 24894 Ср, 14 марта 2007 00:06 («] [#] [»)
korovin Форумы CasinoGames
Уважаемый Шамсутдинов, в данной теме мы сравнивали скорости функций анализа одной руки игрока против карты дилера (вычисление числа возможных комбинаций дилера младще/старше/равно для подсчета МО руки). Так тот факт что на одном и том же оборудовании ваш софт анадизирует 350 000 рук в секунду а у Грея например 950 000 говорит о том что при использовании его функции Ваш софт будет считать почти втрое быстрее. Тест с полным перебором был предложен мной для исключения неоднозначности в постановке задачи. То, что наш код может работать с неполной колодой - само собой разумеется, просто для теста СКОРОСТИ это не требовалось. И еще, не совсем понятно как Вы успеваете анализировать все варианты обменов (Русский покер) без упрощений, ведь один только пятак на первом боксе требует анализа 1370754 вариантов (3 секунды при вашей скорости).
        
 
Re: Soft Speed Test   ID:24998   ответ на 24894 Ср, 14 марта 2007 07:10 («] [#] [»)
grey Форумы CasinoGames
Korovin писал
Так тот факт что на одном и том же оборудовании ваш софт анадизирует 350 000 рук в секунду а у Грея например 950 000 говорит о том что при использовании его функции Ваш софт будет считать почти втрое быстрее.
Ну оборудование-то разное, так что не втрое, а почти вшестеро.
        
 
Re: Soft Speed Test   ID:24999   ответ на 24894 Ср, 14 марта 2007 07:22 («] [#] [»)
korovin Форумы CasinoGames
<img src="http://forum.cgm.ru/attachments/casino_soft/49712-soft_speed_test_-poker-test.jpg" border="0" alt="Название: test.jpg
Просмотров: 394

Размер: 41.6 Кб" style="margin: 2px" />

Оказывается я отстал от жизни и у нас новый лидер по моему тесту - Grey с результатом 50 сек на анализ 52*51*50*49*48*47/5/4/3/2= 122 151 120 вариантов рук игрока против 1-й карты дилера, или 2,5 миллиона рук в секунду на моем железе. ПОЗДРАВЛЯЮ. Я пока на почетном 3-м месте со 123 секундами, Sharky на втором.
        
 
Re: Soft Speed Test   ID:25000   ответ на 24894 Ср, 14 марта 2007 10:32 («] [#] [»)
grey Форумы CasinoGames
Korovin писал
Оказывается я отстал от жизни и у нас новый лидер по моему тесту - Grey с результатом 50 сек на анализ 52*51*50*49*48*47/5/4/3/2= 122 151 120 вариантов рук игрока против 1-й карты дилера, или 2,5 миллиона рук в секунду на моем железе. ПОЗДРАВЛЯЮ.
Спасибо. А то я уже хотел к доктору обращаться, типа меня все игнорируют. Smile
        
 
Re: Soft Speed Test   ID:25001   ответ на 24894 Ср, 14 марта 2007 11:19 («] [#] [»)
Это Я Форумы CasinoGames
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 (пустая, наверное, высчитывается из общей). Вроде очень мало. Сравню со своим приближенным методом.
        
 
Re: Soft Speed Test   ID:25002   ответ на 24894 Ср, 14 марта 2007 12:00 («] [#] [»)
korovin Форумы CasinoGames
Цель теста - сравнение скорости функции анализа руки игрока против каты дилера, используемой в нашем покерном софте, на одинаковом железе. Для этого я и предложил оформить ее в виде демо-модуля и выложить здесь, чтобы любой мог запустить разные демки на своем железе. Почему итменно эта функция: это ядро любого покерного софта, от которого напрямую зависит производительность всего комплекса. Есть еще алгоритмя оптимизации более высокого порядка, но это уже другая история. Как сравнивать - не принципиально, для сравнение важно лишь чтобы демки выполняли ОДНУ и туже работу. В данном случае предлагалось именно 6 честных циклов с вызовом функции внутри последнего и накоплением результата. Под тестовой функцией понимался именно рабочий модуь из покерного софта, специально не заточеный под эту задачу, т.к. сама задача уже давно решена.
        
 
Re: Soft Speed Test   ID:25003   ответ на 24894 Ср, 14 марта 2007 12:29 («] [#] [»)
Это Я Форумы CasinoGames
Я не сторонник точных формул, поэтому в вашем соревновании не участвую. Хотел просто прикинуть, можно ли при точном расчете получить скорость необходимую для поставленной мной задачи (уже отставленной, правда).
        
 
Re: Soft Speed Test   ID:25004   ответ на 24894 Ср, 14 марта 2007 12:32 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Вынужден признать, что моя процедура подсчета комбинаций у дилера (4 карты) в 4,3 раза меденнее, чем у Грея. Совпадение с ним результата МО абсолютно точное при любом количестве выкинутых из колоды карт, известных игроку.
Насчет используемой памяти моей программой. В прошлый раз я непонятно каким образом ошибся. Действительно, моя программа занимает 22-25 МБ в памяти. 15,2 МБ занимают массивы, определяющие сортировку и комбинацию 5 или 6 карт. Причем, большая часть - для 6-карточных комбинаций, например, в русском покере.
Самая сложная часть моей программы - покупка игры. Но я уже не строю иллюзий насчет правильности моих претензий. Но быть в вакууме тоже нелегко.
Теперь я полностью в теме - еще раз перечитал все сообщения этого форума. Про масти никаких разногласий нет. Моя программа все делает правильно, но медлено (я считал, что быстро). Какими-то преимуществами, она безусловно обладает, в ней сделано очень многое и очень хорошо (опять, с оговогкой, что другие могли бы сделать в 4,3 раза лучше). Например, можно одсчитывать точное МО, когда нет мен карт, но для этого нужно вручную перебирать все карты дилера, потом находить реднее арифметическое. Дело в том, что когда в моей программе варьируются только карты на 1 боксе и 0 Change, то ведется полный перебор этих карт. Нажав на кнопку слева от таблицы результатов появится окно с более полной информацией о результатах, от туда можно взять в буфер обмена точное МО последней операции - с большим числом знаков после запятой.

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

Извиняюсь за поспешные заявления и выставление своей программы. Буду очень признателен, за объяснения как сделать более быстрый алгоритм подсчета комбинаций у дилера (Grey).
        
 
Re: Soft Speed Test   ID:25005   ответ на 24894 Ср, 14 марта 2007 12:49 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Непонятно, что такое Strait payoff=8
        
 
Re: Soft Speed Test   ID:25006   ответ на 24894 Ср, 14 марта 2007 13:00 («] [#] [»)
Это Я Форумы CasinoGames
Шамсутдинов писал ср, 14 марта 2007 12:49
Непонятно, что такое Strait payoff=8
Выплата за стрит. Сделали плавающим для выявления ошибок (или махинаций).

Cool
        
 
Re: Soft Speed Test   ID:25007   ответ на 24894 Ср, 14 марта 2007 13:00 («] [#] [»)
korovin Форумы CasinoGames
Cool
        
 
Re: Soft Speed Test   ID:25008   ответ на 24894 Ср, 14 марта 2007 15:45 («] [#] [»)
Fabrica Форумы CasinoGames
Не хотелось бы огорчать г-на Коровина, но я тут исправил ошибки у себя в программе и вот результаты:

<img src="http://forum.cgm.ru/attachments/casino_soft/49718-soft_speed_test_-poker-pt.jpg" border="0" alt="Название: PT.jpg
Просмотров: 327

Размер: 167.4 Кб" style="margin: 2px" />

При полной колоде я отстаю от Grey, а при не полной - почему-то опережаю, не могу объяснить этот феномен.
<img src="http://forum.cgm.ru/attachments/casino_soft/49720-soft_speed_test_-poker-pt1.jpg" border="0" alt="Название: PT1.jpg
Просмотров: 327

Размер: 73.0 Кб" style="margin: 2px" />

Кстати, выделил процедуру подсчета (<,>,=,нет игры) в отдельный unit для Delphi, могу отправить интересующимся. Тока надо написать help нему с параметрами всех процедур, которые можно из него вызвать. В главной процедуре на входе 5-ка карт игрока, карта дилера, отсутствующие карты - на выходе 3 числа - >, <, =. Дальше в зависимости от параметров оплаты можно все посчитать. Начал делать для русского с двойными комбинациями, но пока не доделал.

Вложение: STest4.exe
(Размер: 601.50KB, Загружено 803 раз)
        
 
Re: Soft Speed Test   ID:25009   ответ на 24894 Ср, 14 марта 2007 15:45 («] [#] [»)
grey Форумы CasinoGames
Шамсутдинов писал
Буду очень признателен, за объяснения как сделать более быстрый алгоритм подсчета комбинаций у дилера (Grey).
Ну рецепт простой. Все, что можно просчитать заранее, просчитать и засунуть в таблицы. Остальное оптимизировать до посинения Smile
        
 
Re: Soft Speed Test   ID:25010   ответ на 24894 Ср, 14 марта 2007 15:50 («] [#] [»)
Шамсутдинов Форумы CasinoGames
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. Как пользоваться форумом? Например, удобно цитировать несколько раз. Как подписаться на новые сообщения, чтобы уведомления приходили по почте?
        
 
Re: Soft Speed Test   ID:25011   ответ на 24894 Ср, 14 марта 2007 15:56 («] [#] [»)
Шамсутдинов Форумы CasinoGames
Grey
Ну рецепт простой. Все, что можно просчитать заранее, просчитать и засунуть в таблицы. Остальное оптимизировать до посинения Smile
Я вас уважаю, но если вы поймете, как я написал покупку игры, то еще непонятно, кому кого уважать придется.
        
 
Re: Soft Speed Test   ID:25012   ответ на 24894 Ср, 14 марта 2007 16:15 («] [#] [»)
grey Форумы CasinoGames
Шамсутдинов писал
Я вас уважаю, но если вы поймете, как я написал покупку игры, то еще непонятно, кому кого уважать придется.
Уже уважаю. Потому что я покупку игры не писал и в ближайшее время не собираюсь. На этот алгоритм подсчета комбинаций дилера я потратил в общей сложности пару месяцев. Первый месяц 5 лет назад, потом забросил, полностью переключившись на блэкджек. Ну и еще месяц год назад. И снова забросил. Писал для себя, а не для соревнования с кем-либо. Так что те, кто выставил мне "временный" рейтинг -- не парьтесь, можете сразу снять.
        
 
Re: Soft Speed Test   ID:25013   ответ на 24894 Ср, 14 марта 2007 16:23 («] [#] [»)
Это Я Форумы CasinoGames
Grey писал ср, 14 марта 2007 16:15
Так что те, кто выставил мне "временный" рейтинг -- не парьтесь, можете сразу снять.
Я, конечно, понимаю, что между нами непреодолимый антагонизм, но я искренне уважаю людей, способных на деле показать свое преимущество.
        
 
Re: Soft Speed Test   ID:25014   ответ на 24894 Ср, 14 марта 2007 16:50 («] [#] [»)
Sharky Форумы CasinoGames
Мде, отстал я от жизни.. И все-таки Grey, как ты считаешь? Если 143K заготовок, то это одно, и сравнивать тесты так как мы имхо нельзя, или все пересчитываешь? Тогда снимаю шляпу.

2 Шамсутдинов: Абсолютно точную покупку игры уже я делал, и алгоритм был описан на страницах форума + демка была..
        
 
Re: Soft Speed Test   ID:25015   ответ на 24894 Ср, 14 марта 2007 17:50 («] [#] [»)
grey Форумы CasinoGames
Fabrica писал
При полной колоде я отстаю от Grey, а при не полной - почему-то опережаю, не могу объяснить этот феномен.
Частично можно, видимо, объяснить чрезмерным количеством вызовов Application.ProcessMessages у меня (ты ее вроде бы вообще не вызываешь). Сейчас исправил это дело, можешь заново сравнить:

P.S. Если во время расчета дергать форму мышкой, то время расчета существенно увеличится, т.к. во время перемещения все останавливается. Ты не дергал часом? Wink По уму надо бы отдельным тредом сделать.

Вложение: greydemo101.zip
(Размер: 167.51KB, Загружено 790 раз)
        
 
Страницы(7): [ «  <  #  1  2  3  4  5  6  7  >  »]  
Предыдущая тема:ПРОСТАЯ ПРОГА ДЛЯ РУЛЕТКИ (БЕСПЛАТНО)
Следующая тема:Карманный бильярд и проч.
Быстрый переход к форуму
  
Текстовая версия  RSS лента
Вернуться вверх

Текущее время: Пт, 22 ноября 09:52:36 2024
Время, затраченное на генерацию страницы: 0.01678 секунд