Lecture 3: Realistic Search Algorithms
Readings for next time:
Notes
- NP-Completeness Revisited
- Proof technique: show that
- Problem is in NP (easy).
- Problem is as hard as an NP-complete problem (hard).
- Usually show NP-hardness by many-one reduction: show
that every instance of some NP-complete problem A could be
solved by converting it (in polytime) to an instance of
the target problem B and solving that. We say that we reduce
A to B, and write A<=B.
- Polytime transformation is important (e.g., SAT is not in P)
- Transformations
- Restriction: the easy way.
- Local replacement: simple instance isomorphism.
- Component design: complicated instance construction.
- Search Algorithms
- Blind search revisited
- Iterative deepening: (b+1)/(b-1)
- Iterative broadening: 1 or b/d
- Iterative sampling: d (binary case)
- Accepting constant factors.
- Optimization via ``branch-and-bound''.
- Heuristically-guided search
- The idea: where heuristic values come from.
- Cost/benefit in heuristic values.
- Local search using heuristics
- Systematic search using heuristics
- Heuristic DFS and heuristic errors
- A* search and heuristic admissibility
- LDS and accepting constant factors
- Other algorithms
- Applications
- Blocks-world
- Scheduling
- General constraint satisfaction
- Some comments on the DDJ problem
Last Modified: 1999/4/6
Bart Massey,
<bart@cs.pdx.edu>