 
 
 
 
 
   
 Next: 9.5 最良優先探索法(best-first search)
Up: 9 見込み探索
 Previous: 9.3 ヒューリスティック関数
 
現在の頂点から次の候補の頂点を展開した時に,
その展開したものの中でもっともゴールに近そうな
ものを次の探索コースと決める方法である.
(defun hill-climb
  (graph start goal)
  (hill-climb-aux graph start goal
                  (list (list start))))
(defun hill-climb-aux
  (graph start goal path-queue)
  (let ((path (first path-queue)))
    (cond
        ((null path-queue) nil)
      ((node-equal goal (first path)) (reverse path))
      (t (hill-climb-aux
          graph start goal
          (append
           (sort
            (new-paths path graph)
            #'(lambda (p1 p2) (closerp p1 p2 goal)))
           (rest path-queue)))))))
> (hill-climb *graph1* 's 'f)
(s a b e f)
> (path-length '(s a b e f))
19.9137144
> (hill-climb *graph1* 'f 's)
(f e d s)
> (path-length '(f e d s))
13.0735922
 
generated through LaTeX2HTML. M.Inaba 平成18年5月7日