210 likes | 227 Views
CSCE 580 Artificial Intelligence Problem Spaces and Search. Fall 2011 Jingsong Wang wang82@engr.sc.edu. Abstraction and Generality in Java. The Interaction between AI theory and program architecture Implementation of search strategies Generality and reuse
E N D
CSCE 580Artificial IntelligenceProblem Spaces and Search Fall 2011 Jingsong Wang wang82@engr.sc.edu
Abstraction and Generality in Java • The Interaction between AI theory and program architecture • Implementation of search strategies • Generality and reuse • Abstraction mechanisms and design patterns
Search Algorithms • Uninformed algorithms: • Depth-first search (DFS) • Breadth-first search (BFS) • … • Informed algorithms • Best-first search • …
Search Algorithms • Model the structure of a problem graphically as a state—space • Elements defining a state-space: • A formal representation of possible states of a problem solution • Operators for generating new states from a given state • Some way of recognizing a goal state • A starting state of the problem, represented as the root of the graph
Search Algorithms • DFS – stack • BFS – queue • Best-first search – priority queue • Heuristic rank • sorted
Abstracting Problem States • The separation of representation and control • States and search engines • Goal: to define an abstract representation of problems states that supports the general search algorithm and can be easily specialized through the mechanism of class inheritance
Abstracting Problem States • Abstract class
Abstracting Problem States • Interface
Abstracting Problem States • Java’s generic • Collection-Type<Element-Type>
Traversing the Problem Space • Implementation of search itself • Define the list of states and the mechanisms for moving through them in search
Putting the Framework to Use • See the code in Eclipse