3  Heuristics

“This principle is so perfectly general that no particular application of it is possible.”

– George Pólya (MacTutor 2025)

3.1 What is a heuristic?

A heuristic is a problem-solving device or strategy that provides a way to approaching a problem. Choosing a suitable heuristic often leads us closer to a solution. These strategies are versatile, applying across a wide range of domains and topics. However, heuristics alone are not enough to solve a problem; they must be combined with relevant knowledge and a refined ability to select and deploy mathematical resources effectively. By explicitly discussing and reflecting on problem-solving strategies, we aim to bring the use of heuristics into your conscious awareness. This focus will help you create connections between different areas of mathematical knowledge and enhance your reasoning skills. By honing these abilities, you will be equipped with the tools necessary to become a proficient and literate problem solver.

WarningHeuristics will not replace shaky mastery of a subject!

“Despite the fact that their application cuts across various mathematical domains, the successful implementation of heuristic strategies in any particular domain often depends heavily on the possession of specific subject matter knowledge.” (Schoenfeld 1985)

3.2 Compendium of heuristics

Below we include a collection of common heuristics, grouped by theme. Each of these heuristics should be viewed as a label for a closely related family of devices. That is, each heuristic in the compendium is not precise enough to allow for unambiguous interpretation or application to a particular problem! Key challenges that arise when trying to apply any of these heuristics is firstly to select appropriately and second to decompose the heuristic into a targeted strategy that you can actually execute. Use the prompts to trigger action.

For each heuristic we have indicated a source: (P) = after Pólya (Pólya 1945); (M) = after Mahajan (Mahajan 2010); (MF) = after (Michalewicz and Fogel 2004); (Z) = after (Zeitz 2016). The list is not exhaustive.

Variation of the problem

Break the task into subproblems (lemmas, cases), solve pieces, then reassemble.

Prompts: What minimal subgoal would help? Can I prove a lemma that reduces the main load?

Name intermediate targets that make progress observable.

Prompts: What would I need to show to make the last step trivial?

Widen the problem to expose structure (a parameter, a family).

Prompts: If n were real/complex/d-dimensional, what pattern emerges?

Test instructive instances (small, extreme, symmetric).

Prompts: What happens for n = 1, 2, 3? For an extreme or degenerate case?

Note: Trying special cases can suggest both direction and plausibility of a solution (S).

Map the problem to a known cousin and import its method.

Prompts: What solved problem has the same backbone (invariant, recurrence, symmetry)?

Auxiliary

Introduce a helper variable/point/construction (e.g., an extra line in a diagram, a slack variable).

Prompts: What new object would make the relation linear or symmetric?

Solve a carefully chosen easier or nearby problem, then adapt.

Prompts: What relaxation or stronger statement is tractable?

Representation

Choose symbols that expose structure (indices, function names, operators). Rename until the pattern is visible.

Prompts: Can I re-index or re-parameterise to simplify sums or products?

Draw to think: diagrams, timelines, tables, state graphs. Iterate the figure as the plan evolves.

Prompts: What picture would let me see the invariant or the bottleneck?

Translate words to algebra/constraints/recurrences. Define variables cleanly and encode conditions faithfully.

Prompts: What are the unknowns, and what relations tie them together?

Verification

Conjecture, then interrogate it (“invent then verify”). Try counterexamples or edge cases; refine if it survives.

Prompts: What would falsify my guess quickest?

Verify against all conditions; try alternative derivations; sanity-check units and orders of magnitude.

Prompts: Does this fail for any small or extreme case? Can I justify uniqueness or optimality?

Ensure expressions have the right kind: units, dimensions, domains, monotonicity.

Prompts: Do both sides have the same units/type? What scales does the answer depend on?

Inference

Start from the goal and seek necessary predecessors. Useful for equations, constructions, and proofs by equivalence.

Prompts: If the claim were true, what must also be true one step earlier?

Assume the opposite; derive a contradiction (impossible inequality, parity clash, minimal counterexample loop).

Prompts: What invariant would be violated if the claim were false?

Note: also called reductio ad absurdum.

Modern/computational

Replace an intractable object with a manageable surrogate (linearisation, asymptotics, bounding, surrogate loss).

Prompts: What can I ignore or approximate without changing the leading behaviour?

Get ballpark numbers (orders of magnitude, back-of-envelope). Use to choose plans and catch nonsense early.

Prompts: What’s a plausible scale? Is my result within it?

Systematically enumerate candidates (with pruning).

Prompts: How can I bound the search space? What constraints let me cut branches?

Make the best local choice at each step; accept that it may be suboptimal globally.

Prompts: What local score aligns with the global objective?

Use randomness to prove existence, estimate quantities, or guide search.

Prompts: What random construction has the right expectation? Can sampling expose the pattern?

Use a trained model to guide search and propose candidates or rank moves (proof search, construction hints).

Prompts: What features or examples could a model learn from? How do I verify its suggestions?