“If there is a problem you can’t solve, then there is an easier problem you can solve: find it.” [George Pólya]
Abstract
Anyone looking to solve problems in a structured way should start by reading How to Solve It by George Pólya.
While Pólya focused primarily on mathematical problems, his methods are broadly applicable to problem-solving in general.
Pólya’s Principles
In his book, Pólya outlines four basic phases of problem-solving.
We’ll illustrate these phases with an example:
Example:
Convert a decimal number to its binary representation using Microsoft Excel.
1. Principle - Understand the Problem
First, we need to understand the problem: read and rephrase, visualize.
- What is the unknown, what is the target?
- Can we rephrase the problem with our own words?
- What is the condition?
- Is the condition sufficient to determine the unknown?
Example:
We are given a decimal number and asked to determine its binary representation. Unfortunately, this condition is not always sufficient to determine the unknown precisely.
This limitation stems in part from Excel’s built-in constraints:
- Excel can only represent decimal numbers with a precision of 15 digits.
- The smallest negative representable decimal number in Excel is -2.2251E-308.
- The smallest positive representable decimal number in Excel is 2.2251E-308.
- The largest negative representable decimal number in Excel is -9.99999999999999E+307.
- The largest positive representable decimal number in Excel is 9.99999999999999E+307.
We can extend these limits considerably by representing both decimal and binary numbers as strings. Excel supports up to 32,767 characters per cell. Although this still doesn’t allow for a truly general solution, it is sufficient for most practical use cases.
Another issue arises in how we represent negative numbers: In binary, they are typically expressed using two’s complement, where the leading bit indicates the sign (0 for positive, 1 for negative). However, with variable-length decimals, computing a two’s complement isn’t feasible. As a workaround, we can either use fixed-point representations or limit our binary conversion to positive decimal numbers.
Fortunately, we can introduce explicit sign symbols (’+’ or ‘-’) for decimal inputs to overcome this limitation.
2. Principle - Devise a Plan
Next step is devising a plan: Remember and repeat solution approaches and definitions.
- For which similar problems do we know solutions?
- Can we divide the problem in smaller parts?
- Which dimensions stay unchanged?
- Are the dimension units correct?
- We always go from unknown to the solution.
Example:
Excel has a built-in function DEC2BIN but this function is limited to integers from -512 to +511 and decimal digits will be ignored.
So we need to implement the conversion of decimal numbers represented by string on our own. These user-defined-functions are of help:
- sbBinNeg - Calculate the two’s complement of a binary number.
- sbDivBy2 - Divide a positive decimal number by 2.
- sbDecAdd - Add two positive decimal numbers.
3. Principle - Carry out the Plan
Now we carry out our plan.
We check each step thoroughly.
Can we prove that each step is correct?
Is the description of our solution comprehensive?
Which important insights did we gather?
Example:
See the implementation: sbDec2Bin.
4. Principle - Look Back
Finally we need to examine our solution obtained.
- Can we check the result? Can we check the argument?
- Can we derive the solution differently? Can we see it at a glance?
- Can we use the result, or the method, for some other problem?
Example:
We notice that we cannot avoid inaccuracies. We cannot implement periodical representations in the binary system (the decimal number 0.1 has no finite binary representation, for example). And we are facing necessary cut-offs of decimal places because of limited numbers of digits.
Note: The IEEE Standard 754 was introduced to deal with such inaccuracies. But we cannot avoid them completely.
References
German
Pólya, George (2010). Schule des Denkens. A. Francke Verlag Tübingen and Basel.
ISBN 978-3-7720-0608-1. This is the German translation of his English title How to Solve It.
University of Düsseldorf (2-Apr-2012). Anleitungstabelle nach G. Pólya, Schule des Denkens.
(External Link!) https://www.math.uni-duesseldorf.de/~khalupczok/MSLehre/Rep/PolyaTabelle.pdf
English
Schoenfeld, Alan (21-Mar-2020). Solving the Problem of Powerful Instruction.
(External Link!) https://www.nottingham.ac.uk/education/documents/news-events/problem-solving-polya.pdf
Michigan State University (8-Jan-2018). G. Polya and “How to Solve It!”.
(External Link!) https://people.nscl.msu.edu/~hergert/phy820/material/pdfs/problem_solving.pdf
Download
Please read my Disclaimer.
This article as PDF document:
Plumhoff_How_to_Solve_It_by_Pólya.pdf [87 KB PDF file, open and use at your own risk]