Problem Solving Heuristics

Ian recalls some of the basic problem solving heuristics:

  • If you are having difficulty understanding a problem, try drawing a picture.
  • If you can’t find a solution, try assuming that you have a solution and seeing what you can derive from that (“working backward”).
  • If the problem is abstract, try examining a concrete example.
  • Try solving a more general problem first. This is the “inventor’s paradox”: a more ambitious plan may actually have more chances of success.

While I never studied these heuristics, I think I use them all. I probably learned them by trial and error. Maybe we ought to teach those.

I would add a few which I feel are very potent:

  • Try to sketch a solution hastily, then try to find faults in your solution.
  • If you can’t solve a problem, try to solve a related, but simpler problem.
  • If you can’t solve a problem, try dividing into smaller problems (divide-and-conquer).

Published by

Daniel Lemire

A computer science professor at the University of Quebec (TELUQ).

Leave a Reply

Your email address will not be published.

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    
    Markdown is turned off in code blocks:
     [This is not a link](http://example.com)

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see http://daringfireball.net/projects/markdown/syntax

You may subscribe to this blog by email.