Computer Chess Club Archives


Search

Terms

Messages

Subject: Newbie CC question

Author: Dustin Moore

Date: 13:21:35 11/21/03


One basic assumption seems to be that engines assume the opposing
player will play the "best" move that the engine would play were it
playing for the other side.

Is there anything that can be gained by breaking this assumption?
Let's say an engine is on a search extension or a quiescence search
out to some deep ply can it skip calculating some of deepest plys for
the opposing machine if it knows that the other machine doesn't
search as deep normally?

Or a more obvious method of exploiting this. Let's say one engine,
engine A is playing engine B. Wouldn't A have an edge if it talked
with another engine B' that was running the same software as B so
it could figure out how the other engine would respond?


Another question, most the algorthims based on the mini-max
(alpha-beta/MUD/whatever) are oriented twords finding the one branch with
alternating global maxes and mins out to some depth.

What if there was an additional search (in addition to all the standard
ones that a good engine like crafty does) that was oriented twords going
very deep but not hoping to find a global max. Let's say I have two
CPU's working the problem. One CPU is a standard crafty that runs out to
14ply and the other that intelligently tries single branches out to
20-ply in the hopes of finding a single branch of the tree that is better
than what the main crafty's current evaluation. The principle is, if
both competitors are drawn at a 14-ply or whatever calculation, it only
takes a single "supernatural move" to change the course of the game. This
move doesn't have to be the best move that a 20ply computer would make,
just better than what the 14 ply computer has at the time. It would sort of
be a modification of the alpha beta algorithm. Instead of cutting off the
search when all of the branches have been proven to have scores less than
the first or second branch's max, cut off the search and move another
ply deeper when a branch has been found that is better than the current
14 ply crafty calculation.

I guess I'm just trying to figure out ways to get deeper searches at the
expense of complete searches. I hope the second idea doesn't come off as
just the same thing as a search extension whicn I don't think it is. A
search extension happens when favorable conditions are found for extending
the search. My idea is to ALWAYS be searching random deep branches in the
hopes that some game-turning discovery is found.

Lastly, I'm sure that both of my ideas arise from basic
mis-understandings about the way things work. I'm just interested in the
comments given the amazing knowledge of this group.



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.