Computer Chess Club Archives


Search

Terms

Messages

Subject: Re: Branching Factor = q/p ?

Author: Robert Hyatt

Date: 07:40:21 11/23/01

Go up one level in this thread


On November 23, 2001 at 09:21:26, Matthias Gemuh wrote:

>
>Hi Experts,
>look at this piece of code:
>
>
>p = 0; q = 0;
>
>int AlphaBeta(int depth, int alpha, int beta)
>{
>    nLegalMoveCount = 0;
>    if (depth == 0) return Evaluate();
>    GenerateMoves();
>    while (MovesLeft()) {
>        MakeNextMove();
>        if (!inCheck()) {
>
>            nLegalMoveCount++; p = p + 1;
>            if (nLegalMoveCount == 1) q = q + 1;
>
>            val = -AlphaBeta(depth - 1, -beta, -alpha);
>            UnmakeMove();
>            if (val >= beta) return beta;
>            if (val > alpha) alpha = val;
>        }
>    }
>    return alpha;
>}
>
>
>Is the ratio q/p the thing bearing the sophiscated name "Branching Factor" ?
>Optimal move ordering should mean q/p = 1. Do Profis come close to this?
>In my pogram q/p is about 1/6 or 1/7. Must I weep ?
>
>Thanx,
>Matthias.


Nope.  Branching factor would be total_moves_generated / total_movgen_calls
or some such estimate that tells you, on average, how many moves you generate
for a specific node.

Effective branching factor (much more commonly used here) is the time to
search iteration N+1 divided by the time to search iteration N.



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.