Logic Programming Lecture 7: Search Strategies: Problem representations Depth-first, breadth-first, and AND/OR search.

Slides:



Advertisements
Similar presentations
Artificial Intelligence
Advertisements

Review: Search problem formulation
Artificial Intelligence By Mr. Ejaz CIIT Sahiwal.
PROBLEM SOLVING AND SEARCH
And-Or Graphs CSCE 580 Spr03 Instructor: Marco Valtorta Hrishikesh J. Goradia Seang-Chan Ryu.
Part2 AI as Representation and Search
Tree Searching. Tree searches A tree search starts at the root and explores nodes from there, looking for a goal node (a node that satisfies certain conditions,
Problem Solving Agents A problem solving agent is one which decides what actions and states to consider in completing a goal Examples: Finding the shortest.
1 Lecture 3 Uninformed Search. 2 Uninformed search strategies Uninformed: While searching you have no clue whether one non-goal state is better than any.
Solving Problems by Searching Currently at Chapter 3 in the book Will finish today/Monday, Chapter 4 next.
CS 480 Lec 3 Sept 11, 09 Goals: Chapter 3 (uninformed search) project # 1 and # 2 Chapter 4 (heuristic search)
CMSC 471 Spring 2014 Class #4 Thu 2/6/14 Uninformed Search Professor Marie desJardins,
CPSC 322, Lecture 5Slide 1 Uninformed Search Computer Science cpsc322, Lecture 5 (Textbook Chpt 3.4) January, 14, 2009.
1 Lecture 3: 18/4/1435 Uninformed search strategies Lecturer/ Kawther Abas 363CS – Artificial Intelligence.
Implementation and Evaluation of Search Methods. Use a stack data structure. 1. Push root node of tree on the stack. 2. Pop the top node off the stack.
Uninformed Search Jim Little UBC CS 322 – Search 2 September 12, 2014
Artificial Intelligence Lecture No. 7 Dr. Asad Safi ​ Assistant Professor, Department of Computer Science, COMSATS Institute of Information Technology.
CSE332: Data Abstractions Lecture 16: Topological Sort / Graph Traversals Tyler Robison Summer
Review: Search problem formulation
Artificial Intelligence
17-Jun-15 Searching in BeeperHunt (Mostly minor variations on old slides)
1 Solving Problems by Searching. 2 Terminology State State Space Initial State Goal Test Action Step Cost Path Cost State Change Function State-Space.
Blind Search-Part 2 Ref: Chapter 2. Search Trees The search for a solution can be described by a tree - each node represents one state. The path from.
Using Search in Problem Solving
CS 188: Artificial Intelligence Spring 2006 Lecture 2: Queue-Based Search 8/31/2006 Dan Klein – UC Berkeley Many slides over the course adapted from either.
UNIVERSITY OF SOUTH CAROLINA Department of Computer Science and Engineering Heuristic Search Notes for Ch.12 of Bratko and Ch.2 of Shoham For CSCE 580.
1 Lecture 3 Uninformed Search
State-Space Searches. 2 State spaces A state space consists of –A (possibly infinite) set of states The start state represents the initial problem Each.
Solving Problems by Searching
State-Space Searches.
Artificial Intelligence Course outline Introduction Problem solving Generic algorithms Knowledge Representation and Reasoning Expert Systems Uncertainty.
CMU Snake Robot
Review: Search problem formulation Initial state Actions Transition model Goal state (or goal test) Path cost What is the optimal solution? What is the.
CS 440 / ECE 448 Introduction to Artificial Intelligence Spring 2010 Lecture #3 Instructor: Eyal Amir Grad TAs: Wen Pu, Yonatan Bisk Undergrad TAs: Sam.
Introduction to search Chapter 3. Why study search? §Search is a basis for all AI l search proposed as the basis of intelligence l inference l all learning.
How are things going? Core AI Problem Mobile robot path planning: identifying a trajectory that, when executed, will enable the robot to reach the goal.
AND/OR Graphs Ivan Bratko Faculty of Information and Computer Sc. University of Ljubljana Useful for solving problems by problem decomposition Searching.
Introduction to search Chapter 3. Why study search? §Search is a basis for all AI l search proposed as the basis of intelligence l all learning algorithms,
CS 415 – A.I. Slide Set 5. Chapter 3 Structures and Strategies for State Space Search – Predicate Calculus: provides a means of describing objects and.
State-Space Searches. 2 State spaces A state space consists of A (possibly infinite) set of states The start state represents the initial problem Each.
CS.462 Artificial Intelligence SOMCHAI THANGSATHITYANGKUL Lecture 02 : Search.
Search Tamara Berg CS 560 Artificial Intelligence Many slides throughout the course adapted from Dan Klein, Stuart Russell, Andrew Moore, Svetlana Lazebnik,
Artificial Intelligence
Lecture 7: Uninformed Search Dr John Levine Algorithms and Complexity February 13th 2006.
Artificial Intelligence LECTURE 4 ARTIFICIAL INTELLIGENCE LECTURES BY ENGR. QAZI ZIA.
For Friday Finish reading chapter 4 Homework: –Lisp handout 4.
For Monday Read chapter 4, section 1 No homework..
Lecture 3: Uninformed Search
1 Solving problems by searching 171, Class 2 Chapter 3.
Search CPSC 386 Artificial Intelligence Ellen Walker Hiram College.
Advanced Artificial Intelligence Lecture 2: Search.
Computer Science CPSC 322 Lecture 6 Iterative Deepening and Search with Costs (Ch: 3.7.3, 3.5.3)
For Friday Read chapter 4, sections 1 and 2 Homework –Chapter 3, exercise 7 –May be done in groups.
CSCI 4310 Lecture 2: Search. Search Techniques Search is Fundamental to Many AI Techniques.
Problem Solving as Search. Problem Types Deterministic, fully observable  single-state problem Non-observable  conformant problem Nondeterministic and/or.
1 Solving Problems by Searching. 2 Terminology State State Space Goal Action Cost State Change Function Problem-Solving Agent State-Space Search.
Breadth First Search and Depth First Search. Greatest problem in Computer Science Has lead to a lot of new ideas and data structures Search engines before.
Logic Programming Lecture 8: Term manipulation & Meta-programming.
Graph Search II GAM 376 Robin Burke. Outline Homework #3 Graph search review DFS, BFS A* search Iterative beam search IA* search Search in turn-based.
CPSC 322, Lecture 5Slide 1 Uninformed Search Computer Science cpsc322, Lecture 5 (Textbook Chpt 3.5) Sept, 13, 2013.
Logic Programming Lecture 7: Search Strategies:
Source: David Lee Matuszek
Search Methodologies Fall 2013 Comp3710 Artificial Intelligence Computing Science Thompson Rivers University.
Logic Programming Lecture 8: Term manipulation & Meta-programming.
Search CSC 358/ Outline Homework #6 Game search States and operators Issues Search techniques DFS, BFS Beam search A* search Alpha-beta.
Brian Williams, Fall 041 Analysis of Uninformed Search Methods Brian C. Williams Sep 21 st, 2004 Slides adapted from: Tomas Lozano Perez,
Artificial Intelligence Solving problems by searching.
Lecture 3: Uninformed Search
Lecture 7: Search Strategies
Artificial Intelligence
Presentation transcript:

Logic Programming Lecture 7: Search Strategies: Problem representations Depth-first, breadth-first, and AND/OR search

Logic Programming Outline for today Problem representation Depth-First Search Iterative Deepening Breadth-First Search AND/OR (alternating/game tree) search

Logic Programming Search problems Many classical (AI/CS) problems can be formulated as search problems Examples: Graph searching Blocks world Missionaries and cannibals Planning (e.g. robotics)

Logic Programming Search spaces Set of states s 1,s 2,... Goal predicate goal(X) Step predicate s(X,Y) that says we can go from state X to state Y A solution is a path leading from some start state S to a goal state G satisfying goal(G).

Logic Programming Example: Blocks world A B C [[c,b,a],[],[]]

Logic Programming Example: Blocks world A B C [[b,a],[],[c]]

Logic Programming Example: Blocks world ABC [[a],[b],[c]]

Logic Programming Example: Blocks world A BC [[],[a,b],[c]]

Logic Programming Representation in Prolog State is a list of stacks of blocks. [[a,b,c],[],[]] Transitions move a block from the top of one stack to the top of another s([[A|As],Bs,Cs], [As,[A|Bs],Cs]). s([[A|As],Bs,Cs], [As,Bs,[A|Cs]]).... goal([[],[],[a,b,c]]).

Logic Programming An abstract problem space c b a d f(d) f(g(d)) f(g(g(d)))... s(a,b).s(b,c).s(c,a). s(c,f(d)).s(f(N),f(g(N))).s(f(g(X)),X). goal(d). g(d)

Logic Programming Depth-first search dfs(Node,Path) Path is a path to a goal starting from Node dfs(S,[S]) :- goal(S). dfs(S,[S|P]) :- s(S,T), dfs(T,P). This should look familiar

Logic Programming Problem 1: Cycles A B C

Logic Programming Solution 1: Remember where you've been Avoid cycles by avoiding previously visited states dfs_noloop(Path,Node,[Node|Path]) :- goal(Node). dfs_noloop(Path,Node,Path1) :- s(Node,Node1), not member(Node1,Path), dfs_noloop([Node|Path],Node1,Path1).

Logic Programming Problem 2: Infinite state space DFS has similar problems to Prolog proof search We may miss solutions because state space is infinite Even if state space is finite, may wind up finding "easy" solution only after a long exploration of pointless part of search space...

Logic Programming Solution 2: Depth bounding Keep track of depth, stop if bound exceeded Note: does not avoid loops (can do this too) dfs_bound(_,Node,[Node]) :- goal(Node). dfs_bound(N,Node,[Node|Path]) :- N > 0, s(Node,Node1), M is N-1, dfs_bound(M,Node1,Path).

Logic Programming Problem 3: What is a good bound? Don't know this in advance, in general Too low? Might miss solutions Too high? Might spend a long time searching pointlessly

Logic Programming Solution 3: Iterative deepening dfs_id(N,Node,Path) :- dfs_bound(N,Node,Path) ; M is N+1, dfs_id(M,Node,Path).

Logic Programming Breadth-first search Keep track of all possible solutions, try shortest ones first Maintain a "queue" of solutions bfs([[Node|Path]|_], [Node|Path]) :- goal(Node). bfs([Path|Paths], S) :- extend(Path,NewPaths), append(Paths,NewPaths,Paths1), bfs(Paths1,S). bfs_start(N,P) :- bfs([[N]],P).

Logic Programming Extending paths extend([Node|Path],NewPaths) :- bagof([NewNode,Node|Path], (s(Node,NewNode), not member(NewNode,[Node|Path])), NewPaths), !. % if there are no next steps, % bagof will fail and we'll fall through. extend(_Path,[]).

Logic Programming Problem: Speed Concatenating new paths to end of list is slow Avoid this using difference lists?

Logic Programming AND/OR search So far we've considered graph search problems Just want to find some path from start to end Other problems have more structure e.g. 2-player games AND/OR search is a useful abstraction

Logic Programming AND/OR search Search space has 2 kinds of states: OR: "we get to choose next state" AND: "opponent gets to choose" we need to be able to handle any opponent move

Logic Programming Example: Tic tac toe xxx x...

Logic Programming Representation or(S,Nodes) S is an OR node with possible next states Nodes "Our move" and(S,Nodes) S is an AND node with possible next states Nodes "Opponent moves" goal(S) S is a "win" for us

Logic Programming Example: A simple game a bc de and(a,[b,c]). or(b,[d,a]). or(c,[d,e]). goal(e). (works only if and nodes and or nodes disjoint)

Logic Programming Basic idea andor(Node) :- goal(Node). andor(Node) :- or(Node,Nodes), member(Node1,Nodes), andor(Node1). andor(Node) :- and(Node,Nodes), solveall(Nodes).

Logic Programming Solutions For each AND state, we need solutions for all possible next states For each OR state, we just need one choice A "solution" is thus a tree, or strategy Can adapt previous program to produce solution tree. Can also incorporate iterative deepening, loop avoidance, BFS heuristic measures of "good" positions - min/max

Logic Programming Further reading: Bratko, Prolog Programming for Artificial Intelligence ch. 8 (difference lists), ch. 11 (DFS/BFS) also Ch. 12 (BestFS), 13 (AND/OR) Next time: Advanced programming with terms (var/1, nonvar/1, =../2, ==/2,...) Meta-programming