Алгоритм силы руки (Effective Hand Strength, EHS) — это математический метод оценки силы покерной комбинации, разработанный учёными-информатиками в 1998 году. Он учитывает не только текущую силу руки, но и её потенциал к улучшению на следующих улицах. Этот алгоритм стал основой для создания покерных ботов и систем анализа игры.
Effective Hand Strength (EHS) — это покер-алгоритм, разработанный в 1998 году для оценки силы руки в процентилях. Алгоритм учитывает текущую силу руки и её потенциал к улучшению, используется в системах искусственного интеллекта для анализа покера.
Покер-алгоритм, опубликованный в 1998 году
Effective Hand Strength (EHS) — это покер-алгоритм, разработанный учёными-информатиками Дарсом Биллингсом (Darse Billings), Денисом Паппом (Denis Papp), Джонатаном Шеффером (Jonathan Schaeffer) и Дуэйном Сзафроном (Duane Szafron). Впервые он был опубликован в исследовательской статье в 1998 году в сборнике трудов конференции AAAI-98 под названием «Opponent Modeling in Poker».
С тех пор алгоритм считается эталонным в области искусственного интеллекта в покере и послужил основой для множества дальнейших исследований.
Алгоритм
Алгоритм представляет собой численный подход к оценке силы покерной руки. Его результат выражает силу конкретной руки в процентилях (от 0 до 1) в сравнении со всеми остальными возможными руками.
Основная идея заключается в том, что эффективная сила руки (EHS) состоит из текущей силы руки (HS) и её потенциала к улучшению или ухудшению (PPOT и NPOT):
EHS = HS × (1 − NPOT) + (1 − HS) × PPOT
где:
- **EHS** — эффективная сила руки
- **HS** — текущая сила руки (без учёта потенциала улучшения или ухудшения в зависимости от будущих карт на столе)
- **NPOT** — отрицательный потенциал (вероятность того, что наша текущая сильнейшая рука ухудшится и станет проигрышной)
- **PPOT** — положительный потенциал (вероятность того, что наша текущая проигрышная рука улучшится и станет выигрышной)
Псевдокод
Сила руки (HS) перебирает все возможные комбинации карт противника и подсчитывает случаи, когда наша рука сильнейшая (плюс 50% случаев ничьей):
«`
HandStrength(ourcards, boardcards) {
ahead = tied = behind = 0
ourrank = Rank(ourcards, boardcards)
for each case(oppcards) {
opprank = Rank(oppcards, boardcards)
if (ourrank > opprank) ahead += 1
else if (ourrank == opprank) tied += 1
else behind += 1
}
handstrength = (ahead + tied / 2) / (ahead + tied + behind)
return handstrength
}
«`
Кроме того, EHS учитывает потенциал руки (вероятности её улучшения или ухудшения):
«`
HandPotential(ourcards, boardcards) {
// Массив потенциала руки, каждый индекс представляет впереди, ничья и позади
integer array HP // инициализация нулями
integer array HPTotal // инициализация нулями
ourrank = Rank(ourcards, boardcards)
// Рассмотрим все двухкартовые комбинации оставшихся карт противника
for each case(oppcards) {
opprank = Rank(oppcards, boardcards)
if (ourrank > opprank) index = ahead
else if (ourrank == opprank) index = tied
else index = behind
HPTotal += 1
// Все возможные карты на флопе и ривере
for each case(turn, river) {
// Финальная пятикартовая комбинация на столе
board =
ourbest = Rank(ourcards, board)
oppbest = Rank(oppcards, board)
if (ourbest > oppbest) HP += 1
else if (ourbest == oppbest) HP += 1
else HP += 1
}
}
// Ppot: были позади, но вышли вперёд
Ppot = (HP + HP / 2 + HP / 2) / (HPTotal + HPTotal)
// Npot: были впереди, но упали позади
Npot = (HP + HP / 2 + HP / 2) / (HPTotal + HPTotal)
return
}
«`
Применение
EHS применим к широкому спектру покерных игр, таких как техасский холдем (Texas hold ’em) и омаха (Omaha hold ’em).
Учитывая сложность алгоритма, его невозможно вычислить вручную. Он используется исключительно в контексте систем искусственного интеллекта.
🔑 Ключевые факты
- EHS разработан в 1998 году учёными Биллингсом, Паппом, Шеффером и Сзафроном
- Алгоритм оценивает силу руки в диапазоне от 0 до 1 (процентили)
- EHS состоит из трёх компонентов: текущей силы (HS), положительного (PPOT) и отрицательного (NPOT) потенциала
- Формула: EHS = HS × (1 − NPOT) + (1 − HS) × PPOT
- Алгоритм невозможно вычислить вручную из-за сложности
- Применяется в техасском холдеме и омахе
- Считается эталонным в области ИИ в покере и основой для дальнейших исследований
Что такое алгоритм силы руки и как он работает
❓ Часто задаваемые вопросы
💡 Интересные факты
- Алгоритм EHS был опубликован в исследовательской статье под названием «Opponent Modeling in Poker», которая стала основой для множества дальнейших разработок в области покер-ИИ
- Формула EHS балансирует между текущей силой руки и её потенциалом, позволяя ИИ принимать более стратегические решения, чем простая оценка текущей позиции
- Хотя алгоритм был разработан более 25 лет назад, он остаётся эталонным в области искусственного интеллекта в покере и продолжает использоваться в современных покер-ботах