From cube-lovers-errors@oolong.camellia.org Sat Jun 7 22:28:39 1997 Return-Path: cube-lovers-errors@oolong.camellia.org Received: from oolong.camellia.org (localhost [127.0.0.1]) by oolong.camellia.org (8.6.12/8.6.12) with SMTP id WAA04377; Sat, 7 Jun 1997 22:28:38 -0400 Precedence: bulk Errors-To: cube-lovers-errors@oolong.camellia.org Message-ID: <339A166F.5DD2@hrz1.hrz.th-darmstadt.de> Date: Sun, 08 Jun 1997 04:18:23 +0200 From: Herbert Kociemba X-Mailer: Mozilla 3.0 (Win95; I) MIME-Version: 1.0 To: SCHMIDTG@iccgcc.cle.ab.com, cube-lovers@ai.mit.edu Subject: Re: Detailed explanation of two phase algorithm References: <970607015004.21414d85@iccgcc.cle.ab.com> Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit SCHMIDTG@iccgcc.cle.ab.com wrote: > > On the subject of differences between IDA* and the phase1 algorithm, > Herbert Kociemba wrote: > > >Because h0<=9 in phase1 and b=18 for the first node, you generate at > >most 162 nodes too much, which from a practical point of view is > >nothing. In the general case, h0<=N, where N is the minimal solution > >length, and you generate at most (N-1)*b nodes too much - so it really > >makes no difference. > > If one can show that the cost values have a property such that they will > prune all nodes at levels less then h0, then I would agree with your > assessment. However, I do not see why that should necessarily be > the case as the costs examined at lower levels could be overly optimistic > with respect to h0. In phase1, the heuristic function is h(x,y,z):=max{h1(x,y),h2(x,z),h3(y,z)}, where for example h1(x,y):=min {lenght of maneuvers m with m(x,y,z)=(x0,y0,z0)|z<495}, and (x0,y0,z0) denotes the goal state. >From this it follows, that |h(x,y,z)-h(x',y',z')| <=1, if (x',y',z') is a state which is the result of a single move applied on (x,y,z). In particular this is true for the initial state (x,y,z) and any depth-one node (x',y',z'). The cost f of the depth-one node is f=1 + h(x',y',z'), and from the above we have h0:=h(x,y,z)<=1 + h(x',y',z')=f When we now make an iteration with an iteration depth d and d Given an A* search algorithm, certain hard conclusions can > be proven (such as the guarantee that the first solution found is optimal > if an admissible heuristic is employed). I don't know if these same > conclusions can be proven with the phase1 algorithm. Obviously the first solution is optimal for phase1, because the maneuverlength of a later solution cannot be smaller. Herbert