vpFREE2 Forums

Computer algorithm to calculate EV: brute force vs. elegance

mkl54321@yahoo.com wrote:

> Unfortunately, there's no real shortcut.

I don't know how to say this without coming across as a
bit abrupt, so I'll just blurt it out. You don't know what you
are talking about. You've never actually written a program
to evaluate poker hands, have you? Perhaps you missed
the part where he asked "... from those that have done this..".

Actually, I've written FIVE of them, two in Basic, one in Cobol, one
in assembly language, and one in C. The most recent one was written
over ten years ago. So I'm sorry, but I DO know what I'm talking
about. The consideration of not regarding different-ordered draws of
the same cards as unique is so obvious, I never considered it
a "shortcut". The only other "shortcuts" would involve telling the
program to consider all draws at certain points as equal, for
instance drawing to a 3SFDI in JOB; if for instance the draw is to
468 of clubs then all first cards that are not a club, a
4,5,6,7,8,J,Q,K, or A render the fifth card moot. So allowing the
program to realize this situation when it occurs, presuming it was
using the "brute force" method, would spare it the "trouble" of
evaluating that many equivalent (and losing) results. When I wrote
my programs, the fastest thing around was a 286. I HAD to code in
evaluations of certain draws--pruning the search tree as it were--so
that the already painfully slow process didn't take an eternity. My
point about there being no real shortcuts in the present--and I see
once again that I should have SPELLED OUT what I was saying in VERY
SHORT WORDS, making my point CRYSTAL CLEAR--is that the processor
speeds available make it easier to write and run a "brute force"
evaluation program rather than a "smart" program that prunes its own
logic trees, simply because the time spent in doing the extra coding
won't be repaid in the faster running of the program. The more
sophisticated program WILL run faster---but the difference will be
measured in seconds, not hours as was in the days of the 286. If you
are someone who writes code for a living, you may be appalled at the
inelegance and inefficiency of the brute force algorithm--but it
WILL work, and work adequately. To make an analogy, you can toast a
marshmallow over a campfire, or with a flamethrower; the fact that
the flamethrower is undoubtedly more efficient at the task doesn't
mean it's the best choice for the job.

MKL had done a good job of explaining how a hand is analyzed and why there is no viable shortcut beyond combining logically equivalent cards.

His point that the speed of modern computers makes it easier to write "brute force" analysis programs is significant. There's no longer any point in trying to do anything short of going through every possibility to calculate a precise result. Any modern computer can go through those millions of calculations in less than one millisecond.

Thanks to Yuri Sorkin's innovations and programming skill, our new program, Precision Video Poker, can do a complete game analysis in about one second on a 1 GHz computer with no sacrifice in accuracy. There is probably no point in anyone trying to do it any faster.

In spite of the improvements in technique, there will never be an "elegant" way to analyze a hand for more than one- or two-card draws, or to analyze a game more complex than Double Down Stud (and possibly Pick 'em), on a pocket calculator. There are just too many variables.

Dan

···

--

Dan Paymar, author of the book, "Video Poker - Optimum Play"
Editor and Publisher of "Video Poker Times" newsletter
Web site at http://www.OptimumPlay.com

"Chance favors the prepared mind."
-- Louis Pasteur

clipped

MKL had done a good job of explaining how a hand is analyzed and

why

there is no viable shortcut beyond combining logically equivalent
cards.

His point that the speed of modern computers makes it easier to

write

"brute force" analysis programs is significant. There's no longer

any

point in trying to do anything short of going through every
possibility to calculate a precise result. Any modern computer can

go

through those millions of calculations in less than one millisecond.

Thanks to Yuri Sorkin's innovations and programming skill, our new
program, Precision Video Poker, can do a complete game analysis in
about one second on a 1 GHz computer with no sacrifice in accuracy.
There is probably no point in anyone trying to do it any faster.

In spite of the improvements in technique, there will never be an
"elegant" way to analyze a hand for more than one- or two-card

draws,

or to analyze a game more complex than Double Down Stud (and

possibly

Pick 'em), on a pocket calculator. There are just too many

variables.

Dan

Dan, while it is fairly easy to do single hand analysis without ANY
shortcuts, it is not possible to do a FAST game analysis
without "combining logically equivalent hands", etc. I'm sure Yuri
Sorkin uses more than one.

For those non-programmers following this thread an example: you can
analyze all hands where 5 cards are of the same suit (a dealt flush)
by analyzing just one suit and then multiplying the result by 4. This
is suit symmetry. There are other symmetries as well that vary
somewhat by the game being analyzed.

None of these are required to do a simple hand analysis reasonably
fast.

Dick

···

--- In vpFREE@yahoogroups.com, Dan <vptimes@l...> wrote: