Although Vicki is no push-over any more, a significant amount of work still lies ahead. In order of implementation this is:
- A long, hard look at the evaluation function of end-games. Vicki struggles with KQ vs. K (never mind KR vs. K).
- Move ordering within alpha-beta can still be improved.
- Killer-moves, history heuristics and null moves (I may implement transposition tables before null moves though).
- Transposition tables.
- Hash tables (evaluation, pawns, etc.).
- Opening books (adaptive?) and perhaps even end-game databases.
- Pondering.
- Learning.
- Factor X.
Version 0.031alpha an now be downloaded at Vicki's home.
5 comments:
I thought I needed special treatment for KQvK and KRvK as well, but I put it off and when I was going to implement it it wasn't needed anymore. :)
The reason was a deeper search depth combined with my piece tables including bonus for king in the center in end games.
So basically Mediocre understands that pushing the king to the edges is a good thing, and the searchdepth in such endings is very deep so it handled itself.
KBNvK and KBBvK might still need special treatment though, but I haven't even looked at that yet since it happens so rarely.
At this point my evaluation focusses on opening\middle game and not on the endgane.
It's good to get confimation from you on this as I were of the opinion that better evaluation (for endgame, specifically) will negate the need for any special treatment.
I need to look into this as well.
2. 3. 4.
1. happens because of bugs.
...the rest is not that important at this stage.
I don't agree though. My evaluation function works well in openings/middle-games, where mobility of pieces is important and moving the king should be avoided (king moves are sorted just before losing captures).
In the end-game where the king should be activated the current evaluation function does not work well. It is not because of bugs, but because of poor endgame knowledge.
I was mostly referring to the KQK and KRK endgames. In this situation:
7Q/8/8/3k4/8/8/8/K7 w - - 0 1
white will mate very quickly. Basically any move will either bring the queen or the king closer to the center, any piece/square table will give that. After a couple of moves, the mate should be in sight so the endgame is "automatically" won. If this does not happen, there might be a bug somewhere. You can setup other position but the idea is the same: king and queen try to gain some advantage by moving to the center, and soon this brings the mate within the horizon. May take some extra moves for the rook but not too much!
Post a Comment