|
|
|
|
|
|
|
|
|
|
|
RBFS
(node : N, value:
F(N), bound : B)
|
|
|
IF
f(N)>B, RETURN f(N)
|
|
|
IF N
is a goal, EXIT algorithm
|
|
|
IF N
has no children, RETURN infinity
|
|
|
FOR
each child Ni of N
|
|
|
|
IF f(N)<F(N) THEN F[i] := MAX(F(N),f(Ni))
|
|
|
|
ELSE F[i] := f(Ni)
|
|
|
sort Ni and F[i] in increasing order of F[i]
|
|
IF
only one child, F[2] := infinity
|
|
|
WHILE
(F[1] <= B and F[1] < infinity)
|
|
|
|
F[1]
:= RBFS(N1, F[1], MIN(B, F[2]))
|
|
|
|
Insert
N1 and F[1] in sorted order
|
|
|
RETURN
F[1]
|
|