# Searching State Space

### 1. Problem solving as graph search

One of the earliest AI approaches is to see intelligence as problem-solving capability, and to specify problem-solving as state-space search, that is, by selecting applicable actions, changing the initial state into a goal state, step by step.

Example: 8-puzzle

A generic searching algorithm: a sequence of selections

Direction of search: forward (data-driven), backward (goal-driven), or bidirectional.

• Fully informed search: human-designed problem-specific algorithm, no "search" is necessary. Example: sorting.
• Uninformed (blind, brute-force) search: only consider graph structure, such as Breadth-First and Depth-First, where the "Frontier" data structure is a queue and a stack, respectively.
• Partially informed search: there are hints among the branches, though they can be wrong.
Exhaustive search can be considered as a general-purpose solution if the graph is finite and resource expense is ignored, though in reality resource is limited and response time matters. Therefore, combinatorial (exponential) explosion is a hard problem in AI, though the issue is not merely on computational complexity or hardware.

### 2. Heuristic search

AI research focuses on partially informed search, such as heuristic search, or "Best-first" search, where the "Frontier" is a priority queue with a heuristic function to decide the search order of nodes, as in A* algorithm.

Example: General Problem Solver (GPS) using means-ends analysis to get heuristics.

Newell-Simon76: "A physical symbol system has the necessary and sufficient means for general intelligent action", "physical symbol systems solve problems by means of heuristic search".

A general principle: under bounded rationality, an agent should seek a satisfactory solution rather than an optimal one. This principle is acknowledged as widely applicable.

### 3. Game playing

Two-player zero-sum games are often handled as state-space search using minimax algorithm, which find the most "rational" moves for both palyers.

Example: Tic-tac-toe.

To improve the efficiency of searching, various ideas have been tried:

• Alpha_beta pruning reduces the search scope without missing the right solution.
• Arthur Samuel used rote-learning and play-against-itself to learn an scoring function of positions.
• Deep Blue used parallel processing, opening-position and endgame databases, and a complicated evaluation function designed by experts.
• AlphaGo combines Monte Carlo tree search with learned evaluation functions to deal with the huge state-space of Go. The search algorithm uses random sampling to estimate the value of a node.

### 4. Analysis

When deciding whether to use heuristic search to solve a problem, the major questions to be asked are:
• Can this problem-solving process be naturally represented as state-space search?
• Can a good heuristic function be obtained to satisfy the time requirement?
In general, a problem-solving process involves a sequence of decisions or choices, even though not necessarily among enumerable alternatives at well-defined states. AI problems are often characterized by partially-informed decisions in changing environments, where traditional theories (on computability, computational complexity, decision making, gaming playing, operations research, etc.) are no longer fully applicable.

In particular, dealing with real-time requirement is even beyond the restriction of "bounded rationality". One possible approach is parallel search with dynamic resource allocation basing on learned priority.