Search can be defined as the systematic examination of states to find the path from a root state to the goal state. The search space is defined as the set of possible states and the connecting operators.

**For a problem to be solvable through search, it must be a well-defined problem:**

1. It should have an **initial state**

2. **Operators or successor functions** must be present (for any state x returns s(x), the set of states reachable from x with one action)

3. A **State space **must be present (all states reachable from initial by any sequence of actions)

4. A **Path **must be identifiable (sequence through the state space)

5. A **Path cost **must be identifiable (function that assigns a cost to a given path. Cost of a path is the sum of the costs of individual actions along the path)

6. A **Goal test ** must be identifiable (a test to determine if the goal state has been reached).

Leave a comment below if you found this explanation helpful.