Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: SEE implementation

Author: Michael Henderson

Date: 14:15:23 09/20/04

Go up one level in this thread


On September 20, 2004 at 15:20:31, Rick Bischoff wrote:

>Hello,
>
>I had previously implemented a SEE routine, but today while the professor was
>droning on about null hypothesis I revisited the subject and realized I had it
>wrong all along.
>
>The previous iteration worked as follows:  Add every piece that can attack
>square X to a priority queue (sorted by piece value in ascending order)
>depending on it's color.  A piece can attack a square on a ray if there is
>another piece on that same ray that can also attack X regardless of color.
>Then, alternately take the top values of the queue, adjusting the material
>score, until one of the queues is empty and then return.
>
>However, for positions like this:
>
>[D]7q/3n2b1/8/4p3/3P4/8/1B6/Q7 w - - 0 1
>
>The capture d4e5 would result in the following happening:
>
>White queue:  B, Q
>Black queue: N, B, Q
>
>PxP +1 for white
>NxP =
>BxN +3
>BxB =
>QxB +3
>QxQ -6
>
>But white could have stopped capturing after black recaptured-- so that in fact,
>PxP, in a SEE point of view only, is an even capture and not a -6 capture.
>
>How do you handle this?

"null" hypothesis is the key :) -- stand pat.

use the following key ideas for SEE implementation
1. captures are optional
2. only make captures to the target square
3. always capture with the least valuable piece, alternating between black and
white captures
4. minimax the "tree" of available moves--capture or null move

Michael



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.