Overview Defining a problem Types of solutions The different algorithms to achieve these solutions Conclusion Questions and Answers Session
Defining a problem A problem is well defined for an agent to solve if: There exists a state space, this is a set of all possible states an agent can be in. Within the state space there exists an initial state and a goal state. There exists a set of actions which an agent can take to progress from one state to another There exists at least one path from the initial state to the goal state, that is to say, there exists a sequence of actions by which the agent, parting from the initial state, can assume a number of states that lead to the goal state. (Implicit from points 1 to 3) There exists a goal test, this is, a means which allows the agent to know it has achieved, or not, the goal state There exists a cost associated to each path, this is, a numeric value which allows the agent to compare the optimality between two, or more, paths to the goal state. There exists a cost associated with each action, from these in a sequence of actions, one derives the path cost (For problems with more than one solution)
Types of solutions There are two types of solutions: A solution in which, alongside the goal, the path is also a constituent of the solution. Ex: What is the shortest path between reuter A and reuter B in network X? A solution which is only the goal, that is to say, the path which leads to the solution is irrelevant. Ex: What is the minimum number of moves needed to win a chess match?
Types of solutions Solutions of the first kind, the ideal algorithms are path finding algorithms, these are algorithms which explore the state-space systematically, keeping points along the path in memory. Solutions of the second kind, are typically solutions to optimization problems and have solution searching algorithms based simply on the current state. They occupy less memory and can, given enough time, find solutions which would not be possible in path finding algorithms, due to memory constraints.
Path Finding algorithms There are 2 types of path finding algorithms: Uniformed search algorithms These search strategies just generate successors and analyze whether or not the new state is the goal state. Informed search algorithms These search strategies have a former knowledge of which non-goal states are more promising.
Greedy Best-First Search This algorithm has the following basic process: Each node has an f(n) = h(n). Select the node with the lowest f(n) If f(n) > 0 then expand the node repeat the process Else if f(n) = h(n) == 0, then it is the goal-node
Greedy Best-First Search
A* Search A* search is similar the the best-first algorithms however f(n) is not h(n) but g(n) + h(n), where: g(n) is the cost to get to n h(n) is the cost from n to the the goal
A* search is optimal if h(n) is an admissible heuristic, that is to say, it never overestimates the cost of the solution.
A* Search Disadvantages of A* Search Exponential growth in the number of nodes (memory can fill up quick A* must search all the nodes within the goal contour Due to memory or time limitations, suboptimal goals may be the only solution Sometimes a better heuristic may not be admissable
Memory bounded heuristic search In order to reduce the memory footprint of the previous algorithms, some algorithms attempt to take further advantages of Heuristics to improve performance: Iterative-Deepening A* (IDA*) Search Recursive Best-First Search (RBFS) SMA*
Memory bounded heuristic search To deal with the issue of exponential memory growth in A*, Iterative deepening A * (IDA*) was created. This practically the same as the normal iterative deepening algorithm, except that it
IDA* Search The IDA* is basically the iterative deepening first depth search, but with the cutoff at f = g+h
SMA* Search It follows like A* search, however when memory reaches it’s limit, the algorithm drops the worst node.
Recursive Best-First Search (RBFS) The Recursive best-first search works by: Keeping track of options along the fringe If the current depth-first exploration becomes more expensive of best fringe option, back up to fringe and but update node costs along the way
Recursive Best-First Search (RBFS)
Effective Branching Factor, b* The branching factor is such that if a uniform tree of depth d contains N+1 nodes, then: N+1 = 1 + b* + (b*) 2 + … + (b*) d The closer b* is to 1, the better the heuristic.
How to come up with new Admissible Heuristics Simplify problem by reducing restrictions on actions. This is called a relaxed problem The cost of optimal solution to relaxed problem is an admissible heuristic for original problem, because it is always less expensive than the solution to the original problem
Pattern Databases Pattern databases made by storing patterns which have actions that are statistically favorable. Ex: Chess plays in certain states of the board
Local Search algorithms They only keep track of the current solution (state) Utilize methods to generate alternate solution candidates They use a small amount of memory Can find acceptable solutions in infinite search spaces
Simulated Annealing Select some initial guess of evaluation function parameters: x 0 Evaluate evaluation function, E(x 0 )=v Compute a random displacement, x ’ 0 – The Monte Carlo event Evaluate E(x ’ 0 ) = v ’ – If v ’ < v; set new state, x 1 = x ’ 0 – Else set x 1 = x ’ 0 with Prob(E,T) This is the Metropolis step Repeat with updated state and temp