1 / 27

Implementing Search

Implementing Search. Lecture 2-2 January 14 th /19 th , 1999 CS250. 8-Puzzle. States? Operators? Goal test? Path cost?. 8-Queens. Place 8 queens on a chess board, with no one attacking any other Goal test? Path cost? States Operators?. Cryptarithmetic.

collin
Download Presentation

Implementing Search

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. Implementing Search Lecture 2-2 January 14th/19th, 1999 CS250 CS250: Intro to AI/Lisp

  2. 8-Puzzle • States? • Operators? • Goal test? • Path cost? CS250: Intro to AI/Lisp

  3. 8-Queens • Place 8 queens on a chess board, with no one attacking any other • Goal test? • Path cost? • States • Operators? CS250: Intro to AI/Lisp

  4. Cryptarithmetic • Puzzles with numbers replaced by letters FORTY + TEN + TEN ===== SIXTY CS250: Intro to AI/Lisp

  5. Missionaries & Cannibals • Three missionaries and three cannibals wish to cross a river in a boat that won’t hold all three • States? • Operators? • Goal test? • Path cost? CS250: Intro to AI/Lisp

  6. Real-World Problems • Route finding • TSP • VLSI • Robot navigation • Paint booth scheduling CS250: Intro to AI/Lisp

  7. Search Trees CS250: Intro to AI/Lisp

  8. What’s in a Node? • State - what state are we in? • Parent - Which node generated the current node? • Operator - Action which generated node from parent • Node depth - Number of nodes from root • Cost - Path cost from initial node CS250: Intro to AI/Lisp

  9. Lieutenant Node & General Search function GENERAL-SEARCH(problem, QUEUEING-FN) returns solution or failure nodes  MAKE-QUEUE(MAKE-NODE(INITIAL-STATE[problem])) loop do ifnodes is empty thenreturn failure node  REMOVE-FRONT(nodes) if GOAL-TEST[problem] applied to STATE(node) succeeds then return node nodes  QUEUING-FN(nodes, EXPAND(node, OPERATORS[problem])) end CS250: Intro to AI/Lisp

  10. Coding Goals • Create the initial node list • Need the right ordering • Write a loop • If test • Functions for: • QUEUEING-FN, REMOVE-FRONT, GOAL-TEST, EXPAND, MAKE-NODE CS250: Intro to AI/Lisp

  11. In Lisp... (defun general-search (problem queuing-fn) "Expand nodes according to the specification of PROBLEM until we find a solution or run out of nodes to expand. The QUEUING-FN decides which nodes to look at first. [p 73]” (let ((nodes (make-initial-queue problem queuing-fn)) node) (loop (if (empty-queue? nodes) (RETURN nil)) (setq node (remove-front nodes)) (if (goal-test problem (node-state node)) (RETURN node)) (funcall queuing-fn nodes (expand node problem))))) CS250: Intro to AI/Lisp

  12. A Few Lisp Ends special form: A list (but not a macro), which is a form with special syntax or special evaluation rules or both, possibly manipulating the evaluation environment or control flow or both. The first element of a special form is a special operator. (setq var1 form1 var2 form2 ...) return terminates a loop and returns the value of the specified expression as the value of the loop CS250: Intro to AI/Lisp

  13. Dumb & Smart Searching • Does the search algorithm use information beyond GOAL-TEST? • Uninformed/blind searching does not • Informed/heuristic search does CS250: Intro to AI/Lisp

  14. Factors in Search Strategy • Completeness - Are we guaranteed to find a solution, if one exists? • Time complexity - How long does it take? • Space complexity - How much memory? • Optimality - Find the best of several solutions? CS250: Intro to AI/Lisp

  15. Different Strokes for Different Searches • Why is GENERAL-SEARCH general? CS250: Intro to AI/Lisp

  16. Breadth-First Search • Go sideways before you go down • How do we do this in GENERAL-SEARCH? • How good is it? • Completeness? • How long does it take? • How much memory? • Optimality? CS250: Intro to AI/Lisp

  17. Uniform Cost • BFS: No shorter path is a solution, but what about cost? • Uniform cost expands the lowest cost node • When is BFS also uniform? g(node) = DEPTH(node) CS250: Intro to AI/Lisp

  18. Depth-first Search • Go down before you go sideways • Saves memory over BFS - why? • How good is it? • Completeness? • How long does it take? • Optimality? • Depth-limited search CS250: Intro to AI/Lisp

  19. Iterative Deepening Search • Repeated depth-limited search • Depth 0, depth 1, depth 2, … • Same states expanded multiple times • Higher branching factors make repeated expansion less important • How good is it? • Good choice when: • Big search space • Unknown solution depth CS250: Intro to AI/Lisp

  20. Bidirectional Search • Start from the beginning and the end, meet in the middle • Divide and conquer • Cut the depth of each search in half • From O(bd) to O(2bd/2) • For b = 10, d = 6: • BFS searches 1,111,111 • Bidirectional searches 2,222 CS250: Intro to AI/Lisp

  21. Sounds Great, Where do I Sign Up? • Searching backwards? • Calculating predecessors can be tricky • Many goal states are a problem • Generate a node and ask, “Is it in the other half of the tree?” • Different halves can have different searches CS250: Intro to AI/Lisp

  22. Search Comparison d = depth of the goal m = max tree depth l = depth limit CS250: Intro to AI/Lisp

  23. And the Winner is... • Depth-first iterative deepening • Asymptotically optimal in time • Asymptotically optimal in space among blind searches that find optimal solutions CS250: Intro to AI/Lisp

  24. Constraint Satisfaction Search • Constraint Satisfaction Problem (CPS): additional structural properties • States are values of a set of variables • Goal test specifies constraints on variable values • Unary - cryptarithmetic • Binary - 8-Queens • 3rd and higher-order • Absolute or just nice to have CS250: Intro to AI/Lisp

  25. Why Bother? • Less general than the notion of ‘problem’ • More efficient algorithms • Constraints are fine-grained CS250: Intro to AI/Lisp

  26. Domains • Variables Vi have domains, Di • Discrete or continuous? CS250: Intro to AI/Lisp

  27. AIMA Code (for homework) • Code from AIMA /courses/current/CS250/Code/AIMA/doc/overview.html CS250: Intro to AI/Lisp

More Related