Ken Regan
cse.buffalo.edu/~regan · Personal blog · on HN since 2013
Ken Regan, a computer science professor at Buffalo, publishes papers and notes on chess cheating detection and computational complexity.
What HN saysHN links his chess work on statistical cheat detection, with one commenter calling his move-matching method simple and well justified.
17HN people shared it
17linked it in comments
0stories submitted
0story points
2 years agolast shared
2013people per year2026
Most-shared posts
- 1RubyBNF.pdf3 people · first shared 2013
- 2Fidelity3 people · first shared 2013
- 3Niemann2 people · first shared 2022
- 4Reg12IPRs.pdf2 people · first shared 2016
- 5ReHa11c.pdf2 people · first shared 2015
- 6ACPcover and report.pdf2 people · first shared 2013
- 7RMH11b.pdf2 people · first shared 2014
- 8RBZ14aaai.pdf1 people · first shared 2025
- 9FreestyleStudy1 people · first shared 2015
- 10Elista20061 people · first shared 2020
- 11FreestyleSt..1 people · first shared 2015
- 12JuneCLarticleKWR.pdf1 people · first shared 2022
- 13MLBNF.pdf1 people · first shared 2020
- 14Publications1 people · first shared 2014
What HN people wrote when they linked it
ovi256 · 2018-11-15
Advanced or centaur chess (where the team consists of a man plus a computer chess engine) tournaments routinely consist of 90% draws, and the best players are estimated at 3600 ELO, very close to the theoretical perfect play [1].
You may find Gwern's comments on Advanced chess interesting:
https://www.gwern.net/Notes#advanced-chess-obituary
[1] http://www.cse.buffalo.edu/~regan/papers/pdf/RMH11b.pdf
pk2200 · 2015-04-26
This title should be changed to "Computers AREN'T beating humans at advanced chess". Here's the key excerpt from the blog post that the Business Insider article links to:
"Computer chess expert Kenneth W. Regan has compiled extensive data on this question, and you will see that a striking percentage of the best or most accurate chess games of all time have been played by man-machine pairs."
http://www.cse.buffalo.edu/~regan/chess/fidelity/FreestyleStudy.html
amalcon · 2025-04-03
This is a thing, yes. Statistical cheat-detection methods are more or less required for online chess, for example, because anyone can run Stockfish. A lot of that came out of academia, so you can just find papers like this: https://cse.buffalo.edu/~regan/papers/pdf/RBZ14aaai.pdf
The techniques they use will always be a little secret-sauce, though, because anti-cheat is adversarial. The best public anti-cheat mechanisms I know of are not technical anyway:
- Play with friends or a small community that you trust not to cheat
- Structure the game to remove incentives for cheating. This is the entirety of how daily games like Wordle prevent cheating, but limits how competitive your game can be
- Closely control and monitor the environment in which the game is played. This is sometimes done at the ultra high end of competitive esports: "We provide the computer you will use. You don't have the unsupervised access necessary to install a cheat." The most common version of this, however, is in casinos.
hajile · 2020-10-26
StandardML really hits a nice sweet spot in language design.
The syntax is super-easy to learn (The BNF for the whole fits in a mere 2 pages[0]), but contains a lot of features in that small package. Rather than tacking on functional features (eg, Java with lambdas), these features have been carefully considered and streamlined and include bits like proper tail calls and currying.
You get nice bits like actually sound types (hindley-milner types as Milner was also one of the SML spec authors), generics (way better than typical interfaces), type inference that actually works, and modules (super-powerful encapsulation). Pattern matching in all it's awesomeness is also on display.
SML has an amazing concurrency story (CML is rather like golang channels, but better with better typing and a bit more flexibility) and compilers like PolyML or Mlton are very fast (once again, around the same as golang).
Despite this, the language doesn't have the academic flaws of its descendants like Haskell.
SML isn't a lazy language, so reasoning about performance is much easier than some other functional languages.
SML doesn't pretend the world is a pure function. You are free to make functions that have side effects.
While most primitives and data structures are immutable by default, they either have mutable variants (eg, vector and array) or can be used as if mutable with refs (something like typesafe pointers without all the reference/dereference bits).
[0]…
Nokinside · 2022-09-23
I think his method is straight forward, simple and well justified. He calculates "move match" agreement with engine's first line, move-match percentage, average error per move judged by computer, (uneven positions count less) and goes from there to calculate Raw Outlier Index.
Here is the data: https://cse.buffalo.edu/~regan/chess/fidelity/data/Niemann/
Here is some reasoning and links to articles: https://cse.buffalo.edu/~regan/chess/fidelity/
jsnell · 2022-09-23
> Here is the data: https://cse.buffalo.edu/~regan/chess/fidelity/data/Niemann/
Yes, that's what I mean by his presentation of results. That's a dozen text files with undocumented schemas, and no interpretation of the results or contextualizing them.
> Here is some reasoning and links to articles: https://cse.buffalo.edu/~regan/chess/fidelity/
Yes, I've also seen that page, and tried reading the papers. You know what the outcome is? That the links to the research description, overview, papers, and talks are all dead.
bumbledraven · 2022-09-06
Maybe Ken Regan will investigate.
HOW TO CATCH A CHESS CHEATER
Ken Regan Finds Moves Out of Mind
Chess Life, June 2014
https://cse.buffalo.edu/~regan/personal/JuneCLarticleKWR.pdf
dfan · 2021-12-04
Kenneth Regan's work on Intrinsic Performance Ratings includes estimated ratings for Morphy, which vary widely from event to event but average around 2300, which I think matches the intuitive perception of his strength that modern strong players have. https://cse.buffalo.edu/~regan/papers/pdf/Reg12IPRs.pdf
(Of course, as with all historical players, he would be stronger if he were re-animated today and exposed to modern principles and openings.)
pedrosorio · 2020-09-11
Analysis of the 2006 match by a CS professor:
https://cse.buffalo.edu/~regan/chess/fidelity/Elista2006.html
beefman · 2016-01-27
You just run multi-PV analysis and play moves to keep the intrinsic performance rating[1][2] at the desired level.
[1] http://www.cse.buffalo.edu/~regan/papers/pdf/ReHa11c.pdf
[2] http://www.cse.buffalo.edu/~regan/papers/pdf/Reg12IPRs.pdf
gwern · 2015-04-26
> This title should be changed to "Computers AREN'T beating humans at advanced chess"
How would anyone know? The OP is just linking to the same 2012 thread filled with speculation which you see pop up every so often. There's nothing hard in it establishing that centaurs are still useful/no longer useful, and in any case, 3 years is a long time.
> http://www.cse.buffalo.edu/~regan/chess/fidelity/FreestyleSt...
Which will be a lagging indicator (if computer chess AIs had just squeaked over the threshold where a grandmaster's contribution declined to the level of noise, how many years would it take for unaided chess programs to accumulate 'a striking percentage') and in any case, has just a few games post-2010 and none at all post-2013.
rozim · 2015-02-17
See also the papers by IM & PhD Kenneth Regan on "Intrinsic Chess Ratings" such as
http://www.cse.buffalo.edu/~regan/papers/pdf/ReHa11c.pdf .
dsjoerg · 2014-11-17
Kenneth Regan et al have done comprehensive and persuasive work on rating the intrinsic performance of chess players by measuring move strength itself. From one of their papers: "We have shown multiple, separate, and novel pieces of evidence that the Elo system employed by FIDE has remained stable in relation to intrinsic skill level."
See http://www.cse.buffalo.edu/~regan/papers/pdf/RMH11b.pdf and http://www.cse.buffalo.edu/~regan/publications.html#chess
Demiurge · 2014-06-03
First google result: http://www.cse.buffalo.edu/~regan/cse305/RubyBNF.pdf
I think 2 pages is not bad :) The point is, Perl is just impossible to formally define, it depends on the implementation to make arbitrary choices. This means multiple implementations are much harder, if possible.
dragonwriter · 2014-06-03
> First google result: http://www.cse.buffalo.edu/~regan/cse305/RubyBNF.pdf
Yeah, but its not:
1) One page, or
2) Current (it claims to be for Ruby v1.4), or
3) (apparently, I can't verify this for the version of Ruby it claims to represent) Accurate [1]
[1] http://stackoverflow.com/questions/663027/ruby-grammar
But, yes, Ruby can be parsed independent of being execution, which makes means you can separate the work of a separate implementation into (1) building (or reusing) a parser, and (2) building a system to execute the result of the parsing. Being able to divide the work (and, as a result, to share the first part between different implementations) makes it easier to implement.
joeroot · 2013-02-07
I came across this issue when looking to build a stripped down Ruby interpreter in JS last summer. A few attempts have been made at defining its grammar, though with each new version the task becomes more and more challenging.
If anyone's interested, this definition of Ruby 1.4 is pretty good:
http://www.cse.buffalo.edu/~regan/cse305/RubyBNF.pdf
jeresig · 2013-01-17
It's fascinating to read the report by the professor mentioned in the article:
http://www.cse.buffalo.edu/~regan/chess/fidelity/ACPcover-and-report.p…
The relevant conclusion: "My model projects that for a 2300 player to achieve the high computer correspondence shown in the nine tested games, the odds against are almost a million-to-one. The control data and bases for comparison, which are wholly factual, show several respects in which the performance is exceptional even for a 2700-player, and virtually unprecedented for an untitled player."
A NYT article from last year on his methodology:
http://www.nytimes.com/2012/03/20/science/a-computer-program-to-detect…
and more details on his site:
http://www.cse.buffalo.edu/~regan/chess/fidelity/