Author: Steven Edwards
Date: 12:23:36 05/28/05
Symbolic: Status report 2005.05.28 Using the 554 position mate attack Symbo1.epd test suite, I ran the GA evolution sequence some four thousand times. The result was an organism that matched 323 best moves (58.3%) as a best pick. Also, the total match score was 1,684 for an average of 3.04 points per problem (four points awarded for a top rank match, two points for a match of the second ranked move, and one point if the third ranked move matched). I've saved the results and will use them when implementing the MateAttack productions. -------- After spending more time with Symbolic's planning facility I decided that the plan representation was too unwieldy and it got another rewrite. A couple of coding sessions later, it was simplified yet again and it's now in its fourth version. This has been a bit frustrating, but it's often better to do a rewrite than to allow shortcomings to perfuse into the general code base. Fortunately each rewrite has gone much faster than the previous attempt. The problem is twofold. First, there is no generally accepted abstract representation of plans. Second, a particular implementation of a plan representation is dependent in part upon the actions that will access a plan, but these in turn are difficult to define precisely until a plan representation is chosen. So planning to plan is itself an iterative process. The current and hopefully final plan representation is a Lisp association list that contains some anchor data (e.g., the associated position search tree node), a root goal, a current goal, and a goal stack. Each goal is also an association list and contains items about its goal task (e.g., MateAttack) and a list of subgoals. The subgoal list enables a multiway recursive representation and the plan itself maintains a state indication of the current point of exploration. An important benefit of this arrangement is that plan editing operations such as elaboration and cloning are now relatively simple compared to the earlier versions. A freshly created plan has a special current goal: the RootGoal, a placeholder goal whose subgoals will be all of the top level goals of the plan. Immediately after it's made, Symbolic's planner calls AddSubGoal on the plan with a BestMove goal as the new subgoal. The result is the default plan for a particular node and requires elaboration for further use. I'm now working on the plan/goal elaboration process. This is encapsulated in the Lisp routine ElaborateSubGoal and it takes three arguments: the plan, the subgoal, and an effort parameter. A successful elaboration will remove the subgoal and insert one or more substitute subgoals in its place. The initial test will be to elaborate a BestMove subgoal into top level subgoals based on theme analysis placed in the associated IDB by the surveyor facility. (The theme identification process is a stub at the moment and only deposits MateAttack and TabsMove themes; this is sufficient for early testing.) So, (BestMove) + [themes] -> (Theme0) (Theme1) ... (MateAttack) + [GA analysis/effort=0] -> (PlayMove mv0) (PlayMove mv1) ... (MateAttack) + [GA analysis/effort=1] -> (PlayMove mv0 (MateDefend)) (PlayMove mv1(MateDefend)) ... (TabsMove) + [TABS search/iteration-limit=effort] -> (PlayMove mv) -------- More to come on subgoal elaboration.
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.