Monday 25 May 2015

With best play by both sides

As a programming exercise (and because I have an interest), I am currently building a Double Dummy solver for Bridge (using Python for starters). Unlike a playing program, such a solver finds the optimal play by searching all the alternatives. At the end of the process it should end up with list of tricks which result in the best outcome for both sides.
This is not dissimilar to  building a search routine for a chess engine as the outcome there is also about finding an outcome that is based on best play by both sides. Normally there isn't a definitive result (eg 1-0 or 0-1) due to the size of the search space, but there are instances where this happens. Forced mates is one example, as is endgame positions.
In fact I cam across one such position in an article titled "Most difficult chess problem" It is from a maths blog (Complex Projective 4-Space) and was discussing longest minimal solutions to a couple of problems. The chess problem they showed was a mate in 549, which was discovered while compiling 7 man table bases. To be honest it does not look like a 'nice' problem, but that isn't the point in this case. What it says is the starting position is the furthest known position from ending in checkmate, assuming best play by both sides. Nonetheless I wouldn't say it's the most 'difficult' in terms of solving (as a human), but from a maths perspective, it probably is.

No comments: