Informed Search Idea: be smart about what paths to try.

Slides:



Advertisements
Similar presentations
Informed search algorithms
Advertisements

Review: Search problem formulation
Informed Search Algorithms
An Introduction to Artificial Intelligence
Problem Solving: Informed Search Algorithms Edmondo Trentin, DIISM.
Greedy best-first search Use the heuristic function to rank the nodes Search strategy –Expand node with lowest h-value Greedily trying to find the least-cost.
Solving Problem by Searching
1 Heuristic Search Chapter 4. 2 Outline Heuristic function Greedy Best-first search Admissible heuristic and A* Properties of A* Algorithm IDA*
Review: Search problem formulation
Informed Search Idea: be smart about what paths to try.
Informed (Heuristic) Search
Informed search algorithms Chapter 4. Outline Best-first search Greedy best-first search A * search Heuristics Memory Bounded A* Search.
Informed search algorithms Chapter 4. Outline Best-first search Greedy best-first search A * search Heuristics.
Informed search algorithms Chapter 4. Best-first search Idea: use an evaluation function f(n) for each node –estimate of "desirability"  Expand most.
Informed search strategies Idea: give the algorithm “hints” about the desirability of different states – Use an evaluation function to rank nodes and select.
For Friday Finish reading chapter 4 Homework: –Lisp handout 4.
For Monday Read chapter 4, section 1 No homework..
CS344: Introduction to Artificial Intelligence (associated lab: CS386)
Review: Tree search Initialize the frontier using the starting state While the frontier is not empty – Choose a frontier node to expand according to search.
1 Kuliah 4 : Informed Search. 2 Outline Best-First Search Greedy Search A* Search.
Search (continued) CPSC 386 Artificial Intelligence Ellen Walker Hiram College.
Informed Search and Heuristics Chapter 3.5~7. Outline Best-first search Greedy best-first search A * search Heuristics.
Feng Zhiyong Tianjin University Fall  Best-first search  Greedy best-first search  A * search  Heuristics  Local search algorithms  Hill-climbing.
Best-first search Idea: use an evaluation function f(n) for each node –estimate of "desirability"  Expand most desirable unexpanded node Implementation:
Informed Search CSE 473 University of Washington.
Searching for Solutions
Chapter 3.5 and 3.6 Heuristic Search Continued. Review:Learning Objectives Heuristic search strategies –Best-first search –A* algorithm Heuristic functions.
CPSC 420 – Artificial Intelligence Texas A & M University Lecture 5 Lecturer: Laurie webster II, M.S.S.E., M.S.E.e., M.S.BME, Ph.D., P.E.
Chap 4: Searching Techniques Artificial Intelligence Dr.Hassan Al-Tarawneh.
Chapter 3 Solving problems by searching. Search We will consider the problem of designing goal-based agents in observable, deterministic, discrete, known.
Chapter 3.5 Heuristic Search. Learning Objectives Heuristic search strategies –Best-first search –A* algorithm Heuristic functions.
Lecture 3: Uninformed Search
Review: Tree search Initialize the frontier using the starting state
Last time: Problem-Solving
Heuristic Functions.
Heuristic Search A heuristic is a rule for choosing a branch in a state space search that will most likely lead to a problem solution Heuristics are used.
Department of Computer Science
Heuristic Search Introduction to Artificial Intelligence
Artificial Intelligence Problem solving by searching CSC 361
Chap 4: Searching Techniques Artificial Intelligence Dr.Hassan Al-Tarawneh.
HW #1 Due 29/9/2008 Write Java Applet to solve Goats and Cabbage “Missionaries and cannibals” problem with the following search algorithms: Breadth first.
The A* Algorithm Héctor Muñoz-Avila.
Discussion on Greedy Search and A*
Discussion on Greedy Search and A*
CS 4100 Artificial Intelligence
EA C461 – Artificial Intelligence
Informed search algorithms
Informed search algorithms
Artificial Intelligence
BEST FIRST SEARCH -OR Graph -A* Search -Agenda Search CSE 402
CS621: Artificial Intelligence
(1) Breadth-First Search  S Queue S
CSE 473 University of Washington
Chap 4: Searching Techniques
HW 1: Warmup Missionaries and Cannibals
State-Space Searches.
Heuristic Search Generate and Test Hill Climbing Best First Search
State-Space Searches.
The Rich/Knight Implementation
HW 1: Warmup Missionaries and Cannibals
CS621: Artificial Intelligence
Artificial Intelligence
CS 416 Artificial Intelligence
Reading: Chapter 4.5 HW#2 out today, due Oct 5th
Solving Problems by Searching
State-Space Searches.
Informed Search Idea: be smart about what paths to try.
Informed Search.
Supplemental slides for CSE 327 Prof. Jeff Heflin
The Rich/Knight Implementation
Presentation transcript:

Informed Search Idea: be smart about what paths to try.

Expanding a Node successor list How should we implement this?

Blind Search vs. Informed Search What’s the difference? How do we formally specify this?

General Tree Search Paradigm (adapted from Chapter 3) function tree-search(root-node) fringe  successors(root-node) while ( notempty(fringe) ) {node  remove-first(fringe) state  state(node) if goal-test(state) return solution(node) fringe  insert-all(successors(node),fringe) } return failure end tree-search Does this look familiar?

General Graph Search Paradigm (adapted from Chapter 3) function graph-search(root-node) closed  { } fringe  successors(root-node) while ( notempty(fringe) ) {node  remove-first(fringe) state  state(node) if goal-test(state) return solution(node) if notin(state,closed) {add(state,closed) fringe  insert-all(successors(node),fringe) }} return failure end graph-search What’s the difference between this and tree-search?

Tree Search or Graph Search What’s the key to the order of the search?

Best-First Search Use an evaluation function f(n). Always choose the node from fringe that has the lowest f value. 3 5 1

Best-First Search Example 3 5 1 4 6

Old Friends Breadth first = best first with f(n) = depth(n) Dijkstra’s Algorithm = best first with f(n) = g(n) where g(n) = sum of edge costs from start to n space bound (stores all generated nodes)

Heuristics What is a heuristic? What are some examples of heuristics we use? We’ll call the heuristic function h(n).

Greedy Best-First Search f(n) = h(n) What does that mean? Is greedy search optimal? Is it complete? What is its worst-case complexity for a tree with branching factor b and maximum depth m?

{ A* Search Hart, Nilsson & Rafael 1968 Best first search with f(n) = g(n) + h(n) where g(n) = sum of edge costs from start to n and h(n) = estimate of lowest cost path n-->goal If h(n) is admissible then search will find optimal solution. Never overestimates the true cost of any solution which can be reached from a node. { Space bound since the queue must be maintained.

Shortest Path Example start end

A* Shortest Path Example

A* Shortest Path Example

A* Shortest Path Example

A* Shortest Path Example

A* Shortest Path Example

A* Shortest Path Example

8 Puzzle Example f(n) = g(n) + h(n) What is the usual g(n)? two well-known h(n)’s h1 = the number of misplaced tiles h2 = the sum of the distances of the tiles from their goal positions, using city block distance, which is the sum of the horizontal and vertical distances

8 Puzzle Using Number of Misplaced Tiles 2 3 4 7 6 5 8 3 6 4 7 5 goal

Continued

Optimality of A* Suppose a suboptimal goal G2 has been generated and is in the queue. Let n be an unexpanded node on the shortest path to an optimal goal G1. f(n) = g(n) + h(n) < g(G1) Why? < g(G2) G2 is suboptimal = f(G2) f(G2) = g(G2) So f(n) < f(G2) and A* will never select G2 for expansion. n G1 G2

Algorithms for A* Since Nillsson defined A* search, many different authors have suggested algorithms. Using Tree-Search, the optimality argument holds, but you search too many states. Using Graph-Search, it can break down, because an optimal path to a repeated state can be discarded if it is not the first one found. One way to solve the problem is that whenever you come to a repeated node, discard the longer path to it.

The Rich/Knight Implementation a node consists of state g, h, f values list of successors pointer to parent OPEN is the list of nodes that have been generated and had h applied, but not expanded and can be implemented as a priority queue. CLOSED is the list of nodes that have already been expanded.

Rich/Knight /* Initialization */ OPEN <- start node Initialize the start node g: h: f: CLOSED <- empty list

Rich/Knight 2) repeat until goal (or time limit or space limit) if OPEN is empty, fail BESTNODE <- node on OPEN with lowest f if BESTNODE is a goal, exit and succeed remove BESTNODE from OPEN and add it to CLOSED generate successors of BESTNODE

Rich/Knight for each successor s do 1. set its parent field 2. compute g(s) 3. if there is a node OLD on OPEN with the same state info as s { add OLD to successors(BESTNODE) if g(s) < g(OLD), update OLD and throw out s }

Rich/Knight 4. if (s is not on OPEN and there is a node OLD on CLOSED with the same state info as s { add OLD to successors(BESTNODE) if g(s) < g(OLD), update OLD, throw out s, ***propagate the lower costs to successors(OLD) } That sounds like a LOT of work. What could we do instead?

Rich/Knight 5. If s was not on OPEN or CLOSED { add s to OPEN add s to successors(BESTNODE) calculate g(s), h(s), f(s) } end of repeat loop

The Heuristic Function h If h is a perfect estimator of the true cost then A* will always pick the correct successor with no search. If h is admissible, A* with TREE-SEARCH is guaranteed to give the optimal solution. If h is consistent, too, then GRAPH-SEARCH without extra stuff is optimal. h(n) < c(n,a,n’) + h(n’) for every node n and each of its successors n’ arrived at through action a. If h is not admissable, no guarantees, but it can work well if h is not often greater than the true cost.