Author Archives: admin
New Testing Rig
Prophet4 finally has a proper testing rig! A few weeks ago, I purchased a Dell Alienware system — an 8 core (16 logical) AMD Ryzen 7 5800 with 32 GB of RAM and an AMD Radeon RX600XT graphics card. This … Continue reading
Extending Lines
“Tree shaping” is an important component of a strong chess program. There are various ways to shape a search tree. One is by extending lines that seem interesting in some way; particularly those that cannot be fully resolved within the … Continue reading
Validations – and surprises
I’ve been pretty busy as of late, but in an effort to get some momentum going I picked some items that have been on my to do list that would take far more processor time than programming time – validating … Continue reading
Pragmatic Thinking and Learning: Refactor your Wetware
Pragmatic Thinking and Learning: Refactor your Wetware, by Andy Hunt was published in 2008, and for whatever reason has been sitting on my bookshelf for several years. I probably bought it based on a comment I read or an online … Continue reading
PVS – Another Fast Fail
After the failure with aspiration windows I decided to implement PVS . The idea here is that, with proper move ordering the first move is usually the best. That being the case, it makes sense to search all of the … Continue reading
Aspiration Windows – a Fast Fail
Earlier this week I implemented aspiration windows to chess4j. It’s a very simple concept. In the iterative deepening loop, the depth 1 iteration is processed as usual, with an alpha bound of “negative infinity” and a beta bound of “infinity.” … Continue reading
Stopping at half time – and on making small changes
Great things are done by a series of small things brought together. — Vincent Van Gogh. The last few changes — adding null move pruning, hashing, and a quiescence search — have had major impacts on playing strength, which was … Continue reading
Null move pruning
The null move heuristic has been added and yielded another pretty solid increase in Elo. For the uninitiated, a “null move” isn’t a real over-the-board move of course, it’s just a heuristic that can be used to terminate a line … Continue reading
Hashing
Both chess4j and Prophet now have hashing. Maybe I should say that chess4j has hashing again, because it did have hashing before as I wrote about here. As stated in a previous post, I basically “tore down” the search in … Continue reading
Quiescence Search
It’s not very often that you can make a change that will net your program 350 Elo, but that’s exactly what I just did! A quiescence search was added to chess4j and Prophet4, resulting in a dramatic increase in playing … Continue reading