A planning problem selects and organizes actions over time to meet goals when a useful solution must be found within seconds or minutes. It occupies the tactical middle ground between design problems, which tolerate long searches for quality, and control problems, which prioritize repeated, rapid decisions. section 1.2 section 2.1.5
Use the time-quality distinction to frame the planning task:
- Accept some loss of optimality when delaying the decision would damage performance or user experience. section 1.2 section 2.1.5
- Distinguish planning from design: planning runs on a shorter operational horizon, while design can be solved offline and revisited infrequently. section 2.1.5
- Scale a hand-worked example into Python, then tune parameters and problem size to study solution quality and scalability. section 1.2
Ride-sharing and districting
Ride-sharing illustrates a time-sensitive planning problem: delays can mean lost trips and a poor user experience. Districting provides a broader planning example, where geographic units are grouped into acceptable districts subject to criteria such as balance, contiguity, compactness, boundaries, and socio-economic heterogeneity. section 2.1.5 section 2.1.5
Figure 2.12 Qualities of solutions vs. search time. Some types of problems require fast computations but do not require incredibly accurate results, while others (such as design problems) allow more processing time in return for higher accuracy.
Compare planning with design and control by relating allowable search time to the expected quality of the solution. section 2.1.5
