Author: Georg v. Zimmermann
Date: 05:11:34 04/30/03
Go up one level in this thread
Hi, On April 29, 2003 at 17:48:50, Magoo wrote: >Hello dear chess loving people. > >I'm working on a simple chess engine, i am having some hard problems to solve. >My program is TOO SLOW, and when i mean slow, i mean really slow. >It's not the "nps" measure, which i think is ok, i get around (approx.) 500 000 >nodes/1-2min, or something... nps = nodes per second. That means that your 500.000 nodes per minute are actually 8333 nps , which is slow. To correct your bugs in move ordering 1) throw out all the complicated stuff (like HT) and concentrate on simple move ordering first = isolate the bug 2) put ASSERTs _everywhere_ = making sure the bug is really in move ordering and not somewhere else 3) make your code as readable as possible, starting wíth clear variable names. 4) dump all relevant variables before and after the move ordering at 1 node 5) use a bounds checker One day of implementing all you descibed sounds like you have tons of bugs ... Georg >The problem im having is move ordering of some sort, i have done my homework, >i've >read almost everything there is to read about chess programming on the internet. >Anyway, initially i did not have move ordering at all, it worked fine with >depth=2 >and quiescent search until no more pieces can be captured. >Then today, after some hard work, i have implemented both a Transposition Table >and the History move ordering. I also implemented iterative deepening (to >benefith from the TT ..). I thought this would speed my program up so i could do >a 6 ply search in no time. Besides the History move ordering I use the MVV/LVA >ordering for the Quiescent search. >This is my move order: >1. Hash - if depth < stored_depth always try the stored "best_move" >2. Captures - orderd by MVV/LVA >3. History >This should be enough, but when, i looked at the move list for some positions, >i noticed that many bad moves were on top of the list, like losing captures, and >moving pieces to squares where the piece can be taken. >This makes me belive that you cannot just put all the captures on top of the >list, put winning/equal captures should be better? >But, the move list is not THAT bad (like there are no silly pawn/king moves near >the top of the list). I should be getting better results than just RANDOM order >(not really random but in the order move_gen produces them) not SLOWER!! >What am i doing wrong?? Im guessing i have a really nasty bug in my alpha_beta >function... there should be more prunning, 500 000 nodes for a 4-ply search is >too much..
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.