Author: Marc van Hal
Date: 12:45:57 07/01/02
Go up one level in this thread
On June 30, 2002 at 22:27:55, Russell Reagan wrote: >I'm curious if there are any schools of thought when it comes to computer chess. >Earlier today at work while I was trying to avoid working I was thinking about >two different approaches to developing an engine. One approach (which as far as >I know seems to be the most popular) is to pick your data structures based on >personal preferences, recommendations by more experienced developers, or >whatever the reason may be. > >I was reading over some CCC archives on my break and I read about how Vincent >was doing something in his program (attacks I think), and I saw how he was able >to do attacks very fast, but my other thought was that he surely put some >thought into how he wanted to evaluate positions before he decided upon what >kind of data structures to use. > >I believe the example was that he had an array that incrementally kept track of >how many pieces attacked a particular square, so when it came time to evaluate, >he had everything ready to go and I imagine he probably does other things like >this, and so his evaluation is probably very efficient. > >So approach number two would be to decide how you'd like to evaluate positions >and then decide which data structures best accomplish that. For example, if >mobility is a factor that you think is very important, then you should choose >data structures that make it possible to calculate that efficiently and not do >extra move generation and recursive calls to calculate mobility. I've often >struggled with how to approach deciding on which data structures to use, and >this seems to at least be a better method (maybe) of choosing data structures. >This (to me) seems like a better way than saying, "I'm going to use 0x88 because >it can do fast edge detection and attack detection." If fast edge detection and >attack detection aren't significant factors in your programs evaluator, then >this might not be a wise method of choosing your data structures. > >A final thought I had regarding this was that the ultimate wise decision would >be to choose the method that best suits your strengths as the programmer. For >example, let's say that ideally bitboards were the fastest (just for the sake of >discussion). Now, if your strength lies in programming ability, then that is >probably the right decision for you, since you will get the most out of that. >What if your strength is not programming though? What if you are a good >programmer, but your true talent lies in the ability to find abstract ways of >evaluating positions (IE ways that would work in a chess program)? If that is >your talent, then maybe you should choose the second approach (choosing your >data structures based on evaluation factors). > >I'm not entirely sure if any of this would work better in practice than current >methods, but I think it sounds good in theory anyway. I like the idea of >"playing to your strengths" though. > >Russell I think a school for chessprogramers won't work Chessprogramers are to stuborn to learn from each other They always will claim there methode is best without even trying other aproges. And keep there methodes secret. Ok this counts a lot more for the comercial then the Amateur programs. For instance Robert always wants to be helpfull for other programmers. And more amateur programmers folowing his path. But also here some new methodes are turned down before they where tried. I also pointed to the fact of the horizon problems these are not solved as some claim. Which then actualy sounds like we don't have to solve that because it is already solved. While this is not the fact. Regards Marc van Hal
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.