Content deleted Content added
ref fixes |
m Dating citation |
||
(11 intermediate revisions by 7 users not shown) | |||
Line 1:
{{Short description|Poker algorithm published in 1998}}
{{More citations needed|date=April 2013}}
'''Effective Hand Strength (EHS)''' is a poker algorithm conceived by [[computer scientists]] [[Darse Billings]], [[Denis Papp]], [[Jonathan Schaeffer]] and [[Duane Szafron]] that was published for the first time in the {{cite journal | last1 = research paper | url=http://www.cs.virginia.edu/~evans/poker/wp-content/uploads/2011/02/opponent_modeling_in_poker_billings.pdf | title=Opponent Modeling in Poker | journal=AAAI-98 Proceedings| year = 1998}}
It has since then been considered as a reference in the realm of poker artificial intelligence and has been the basis of further research such as:
* {{cite journal |last1=Rubin |first1=Jonathan |last2=Watson |first2=Ian |title=Computer poker: A review |journal=Artificial Intelligence |date=April 2011 |volume=175 |issue=
* {{cite thesis |last=Schuijtvlot |first = Erwin | url= http://www.few.vu.nl/en/Images/werkstuk-schuijtvlot_tcm39-225501.pdf |archive-url=https://web.archive.org/web/20190522091814/https://beta.vu.nl/nl/Images/werkstuk-schuijtvlot_tcm235-225501.pdf |archive-date=2019-05-22| title = Application of AI in poker |type=Master's thesis |publisher=Vrije Universiteit Amsterdam | year = 2011 | pages = 12–13}}
* {{
== Algorithm ==
Line 28 ⟶ 27:
ahead = tied = behind = 0
ourrank = Rank(ourcards, boardcards)
for each case(oppcards) {
opprank = Rank(oppcards, boardcards)
Line 34:
else behind += 1
}
handstrength = (ahead + tied / 2) / (ahead + tied + behind)
return handstrength
}
Line 42 ⟶ 44:
<pre>
HandPotential(ourcards, boardcards) {
// Hand potential array, each index represents ahead, tied, and behind
integer array HP[3][3] // initialize to 0
integer array HPTotal[3] // initialize to 0
ourrank = Rank(ourcards, boardcards)
// Consider all two card combinations of the remaining cards for the opponent
for each case(oppcards) {
Line 54 ⟶ 57:
else index = behind
HPTotal[index] += 1
// All possible board cards to come
for each case(turn, river) {
Line 65 ⟶ 69:
}
}
// Ppot: were behind but moved ahead
Ppot = (HP[behind][ahead] + HP[behind][tied] / 2 + HP[tied][ahead] / 2) / (HPTotal[behind] + HPTotal[tied])
// Npot: were ahead but fell behind
Npot = (HP[ahead][behind] + HP[tied][behind] / 2 + HP[ahead][tied] / 2) / (HPTotal[ahead] + HPTotal[tied])
return [ Ppot, Npot ]
}
Line 77 ⟶ 83:
Given the complexity of the algorithm, it can not be computed manually and has to be used in an Artificial Intelligence context.
== References ==
{{Reflist}}
[[Category:Poker probability]]
|