This work is licensed under a Creative Commons Attribution-Share Alike 3.0 Unported License. CS 312: Algorithm Analysis Lecture #39: Problem Solving Credit: Eric Ringger A Rough-Draft Set of Questions for Problem Solving Problem-Solving Problem Formulation Algorithm Design Algorithm Analysis Theoretical Analysis: classify as asymptotic order of growth Empirical Analysis Proofs of Correctness Questions for Problem Formulation What do I know? What do I not know but I want to know? What are my assumptions? Can I formulate the problem as a graph? Can the problem be reduced to a familiar problem? Is the problem an optimization problem? Is the objective linear? Does the problem have constraints? Are the constraints linear? Questions for Algorithm Design Do I recognize the problem and know an algorithm that solves this problem? Is the problem NP-Hard but not NP-Complete? Is the problem NP-complete? Is it in NP? Can I reduce a known NP-complete problem to it? Does the problem decompose nicely into subproblems? Do the sub-problems overlap? Does the optimality property hold? Exercise Can you organize these questions (both problem formulation and algorithm design) into a usable decision tree to guide you in the practice of problem-solving?
© Copyright 2026 Paperzz