Iterative Refinement
The refinement of P is structured so that repeated solution of subproblem P� eventually solves P.
while (P not yet been solved)
/* Solve subproblem P� */
. . .
Question: How can repeatedly doing P� solve P ?
Answer: P� must be parameterized in terms of some state variable(s). Each execution of P� must change the state so progress is made, i.e., with each iteration, we move to a state that is �closer� to a solution for P.
Different notions of �distance� lead to different programs.