[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Split searches



 Hi All,
 
 Some time ago someone here mentioned that one of the greatest problems for
 computer go is to be able to separate two local problems so that they can be
 solved locally. I have thought about the matter, and here is what I have
 come up with. So far it is only speculation, I haven't tried to code
 anything yet...
 
 Anyway, the problem is that we have two siatuations on the board that need
 to be analyzed. When and how will it be sufficient to handle them
 separately.
 
 I'd start by analysing each problem on its own, and noting all the points
 considered in the search. This gives a 'halo' of the problem. If the two
 halos do not overlap, the problems can be considered independent, and we
 already have the solutions.
 
 If the halos overlap, the question becomes if there is a solution with a
 smaller halo. If we modify the success criteria of the search so that each
 solution (that solves the problem) is weighed by how few points it overlaps
 the halo of the other problem. In the best case we find a solution to (at
 least of one problem) that stays out ofthe way of the other problem, and
 both problems are solved independendly.
 
 If even this didn't help, we have one more thing to try. Run the same
 routine, but try to stay away from the minimal halo we found in the previous
 step, instead of the complete halo of the other problem. This just might get
 some results.
 
 I know this is not the whoel story, my 'minimal' halo might not be the ideal
 one to use. One could try to find alternative solutions to the problem by
 adjusting the success criteria to consider both avoidance of the other
 problem's halo and also avoidance of the previosuly found halo. This might
 to lead to a different 'minimal' solution, although I am not at all sure how
 to the adjustments, and if this would really give anything useful.
 
 I guess the directionality ought to be implemented in the move generation as
 well as evaluating the end positions... (order the moves so that I try first
 moves outside the other problem, the opponent tries to get into it?)
 
 Any comments? Is this well known theory I happened to rediscover, or a well
 known dead end? Or perhaps something useful??
 
 - Heikki
 

-- 
Heikki Levanto  LSD - Levanto Software Development   <heikki@xxxxxxxxxxxxxxxxx>