1 / 15

“If I Only had a Brain” Search II

“If I Only had a Brain” Search II. Lecture 3-2 January 21 st , 1999 CS250. Monotonicity. Monotonic heuristic functions are nondecreasing Why might this be an important feature? Non-monotonic? Use pathmax : Given a node, n, and its child, n’ f(n’) = max(f(n), g(n’) + h(n’)). A* in Action.

ifeoma-head
Télécharger la présentation

“If I Only had a Brain” Search II

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. “If I Only had a Brain” Search II Lecture 3-2 January 21st, 1999 CS250 CS250: Intro to AI/Lisp

  2. Monotonicity • Monotonic heuristic functions are nondecreasing • Why might this be an important feature? • Non-monotonic? Use pathmax: • Given a node, n, and its child, n’ f(n’) = max(f(n), g(n’) + h(n’)) CS250: Intro to AI/Lisp

  3. A* in Action • Contoured state space • A* starts at initial node • Expands leaf node of lowest f(n) • Fans out to increasing contours CS250: Intro to AI/Lisp

  4. A* in Perspective • If h(n) = 0 everywhere, A* is uniform cost • If h(n) is an exact estimate of the remaining cost A* runs in linear time! • Different errors lead to different performance factors • A* is the best (in terms of expanded nodes) of optimal best-first searches CS250: Intro to AI/Lisp

  5. Proof of A*’s Optimality • Suppose that G is an optimal goal state with with path cost f*, and G2 is a suboptimal goal state, where g(G2) > f*. • Suppose A* selects G2 from the queue, will A* terminate? • Consider a node n that is a leaf node on an optimal path to G • Since h is admissible, f*>=f(n), and since G2 was chosen over n: f(n) >= f(G2) • Together, they imply f* >= f(G2) • But G2 is a goal, so h(G2) = 0, f(G2) = g(G2) • Therefore, f* >= g(G2) CS250: Intro to AI/Lisp

  6. A*’s Complexity • Depends on the error of h(n) • Always 0: Breadth-first search • Exactly right: Time O(n) • Constant absolute error: Time O(n), but more than exactly right • Constant relative error: Time O(nk), Space O(nk) • See Figure 4.8 CS250: Intro to AI/Lisp

  7. Branching Factors • Where f ’ is the next smaller cost, after f CS250: Intro to AI/Lisp

  8. Inventing Heuristics • Dominant heuristics: Bigger is better, if you don’t overestimate • How do you create heuristics? • Relaxed problem • Statistical approach • Constraint satisfaction • Most-constrained variable • Most-constraining variable • Least-constraining value CS250: Intro to AI/Lisp

  9. Improving on A* • Best of both worlds with DFID • Can we repeat with A*? • Successive iterations: • Increasing search depth (as with DFID) • Increasing total path cost CS250: Intro to AI/Lisp

  10. Iterative Deepening A* • Good stuff in A* • Limited memory CS250: Intro to AI/Lisp

  11. Iterative Improvements • Loop through, trying to “zero in” on the solution • Hill climbing • Climb higher • Problems? • Solution? Add a touch of randomness CS250: Intro to AI/Lisp

  12. Annealing an.neal vb [ME anelen to set on fire, fr. OE onaelan, fr. on + aelan to set on fire, burn, fr. al fire; akin to OE aeled fire, ON eldr] vt (1664) 1 a: to heat and then cool (as steel or glass) usu. for softening and making less brittle; also: to cool slowly usu. in a furnace b: to heat and then cool (nucleic acid) in order to separate strands and induce combination at lower temperature esp. with complementary strands of a different species 2: strengthen, toughen ~ vi: to be capable of combining with complementary nucleic acid by a process of heating and cooling CS250: Intro to AI/Lisp

  13. Simulated Annealing (defun simulated-annealing-search (problem &optional(schedule (make-exp-schedule))) (let* ((current (create-start-node problem)) (successors (expand current problem)) (best current) next temp delta) (for time = 1 to infinity do (setf temp (funcall schedule time)) (when (or (= temp 0) (null successors)) (RETURN (values (goal-test problem best) best))) (when (< (node-h-cost current) (node-h-cost best)) (setf best current)) (setf next (random-element successors)) (setf delta (- (node-h-cost next) (node-h-cost current))) (when (or (< delta 0.0) ; < because we are minimizing (< (random 1.0) (exp (/ (- delta) temp)))) (setf current next successors (expand next problem)))))) CS250: Intro to AI/Lisp

  14. Let* (let* ((current (create-start-node problem)) (successors (expand current problem)) (best current) next temp delta) BODY ) CS250: Intro to AI/Lisp

  15. The Body (for time = 1 to infinity do (setf temp (funcall schedule time)) (when (or (= temp 0) (null successors)) (RETURN (values (goal-test problem best) best))) (when (< (node-h-cost current) (node-h-cost best)) (setf best current)) (setf next (random-element successors)) (setf delta (- (node-h-cost next) (node-h-cost current))) (when (or (< delta 0.0) ; < because we are minimizing (< (random 1.0) (exp (/ (- delta) temp)))) (setf current next successors (expand next problem)))))) CS250: Intro to AI/Lisp

More Related