60 likes | 178 Views
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
E N D
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
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 sub-problems? • 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?