- Ginsberg ch. 4

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.

- Proof technique: show that
- 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''.

- Iterative deepening:
- Heuristically-guided search
- The idea: where heuristic values come from.
- Cost/benefit in heuristic values.
- Local search using heuristics
- Local minima
- Tabu
- Noise

- 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

- Blind search revisited
- Some comments on the DDJ problem

Last Modified: 1999/4/6 Bart Massey, <bart@cs.pdx.edu>