If you find any of this useful, please consider donating via PayPal to help keep this site going.

# Problem Solving

1/18/12

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: