Problem Solving


1/18/2012

In our work and personal life we regularly encounter various problems. In our line of work, these problems can get very difficult very quickly. I believe we solve the majority of these problems. The (currently) unsolved problems provide opportunities for future research and constant improvement of products and staff knowledge.

One heuristic for solving problems that I really like arises from the mathematical notion of recursion. Recursion is the process of repeating a task in way that references the task itself. If you’ve ever opened one of those 3-panelled mirrors in your bathroom and stared into it, only to see yourself viewing your face viewing the mirror (etc., repeating off to infinity), that is recursion.

Here is the heuristic:

That is:

PROCEDURE SOLVE(problem)
   BEGIN
     IF problem is easy THEN
       Solve problem directly
     ELSE
       BEGIN
         Break problem into smaller problems P1, P2, …, Pn
         SOLVE(P1), SOLVE(P2), …, SOLVE(Pn)
         Assemble the solutions
       END
   END

I printed this out and put it in my work area to remind me that any problem, no matter how difficult, is only comprised of smaller chunks of easy tasks.


If you enjoyed any of my content, please consider supporting it in a variety of ways: