Re: Option Chess
I have no doubt that there will be plenty of duplicates. As a simple example, a position reached after 3 turns could also be reached after 2 turns if both players used an option. But both players don't need to have used their option at the same turn, so you already got at least 5 ways to reach the exact same position with White to play. If we do the same after 5 turns, it gets complicated just to calculate the number of ways the same position could be reached.
The only corner case you need to handle is the possibility of a prise en passant from Black last move, but if he didn't used an option or nobody can take en passant the piece that just moved twice, then no problem.
To be precise, there is 4 identical positions, and the fifth differ only by the fact that both player still have one more option each, but unless there is very few options left, I guess it is enought to simply give those options a value (that could be the result of a sophisticated calculation if needed).
What needs more investigation, is if the search tree will grow much faster than I can simplify it (compared to regular chess). Because the board have a finite size and so a finite number of positions, it puts some limits on how fast the search tree can grow completely new positions and I suspect that once enough ply will have been calculated, the increased complexity to calculate more ply will be of the same magnitude than with regular chess (slower, but not much slower). Of course, if proper optimization is used.
Of course, I would expect someone using a double move on a single piece to change direction, but computers got to handle even stupid moves. It seems unlikely, but maybe there is some special situation where wasting an option could be a good idea. Anyway, the computer got to handle every cases, including the situation where it would take en passant such bishop by accident.
A very long time ago as a teenager, I built a small chess engine in Pascal. It was incredibly bad, but at least it played legal moves. Of course I didn't had the knowledge to build a decent algorithm, but it gave me an insight of how difficult it is.
It is quite easy to have a high level conception of the general algorithm, but actually implementing it properly is very difficult because of all of the optimization tricks and corner cases to handle. To do it properly, I would probably need to work with a mathematician. Optimizing it for Option chess seems very feasible, but it probably won't be easy. I don't plan to put the time for coding this, but adapting Crafty or Toga for Option Chess could be a great project for a group of students.
Simon
Originally posted by Paul Bonham
View Post
The only corner case you need to handle is the possibility of a prise en passant from Black last move, but if he didn't used an option or nobody can take en passant the piece that just moved twice, then no problem.
To be precise, there is 4 identical positions, and the fifth differ only by the fact that both player still have one more option each, but unless there is very few options left, I guess it is enought to simply give those options a value (that could be the result of a sophisticated calculation if needed).
What needs more investigation, is if the search tree will grow much faster than I can simplify it (compared to regular chess). Because the board have a finite size and so a finite number of positions, it puts some limits on how fast the search tree can grow completely new positions and I suspect that once enough ply will have been calculated, the increased complexity to calculate more ply will be of the same magnitude than with regular chess (slower, but not much slower). Of course, if proper optimization is used.
Originally posted by Paul Bonham
View Post
Originally posted by Paul Bonham
View Post
It is quite easy to have a high level conception of the general algorithm, but actually implementing it properly is very difficult because of all of the optimization tricks and corner cases to handle. To do it properly, I would probably need to work with a mathematician. Optimizing it for Option chess seems very feasible, but it probably won't be easy. I don't plan to put the time for coding this, but adapting Crafty or Toga for Option Chess could be a great project for a group of students.
Simon
Comment