Problem solving

Generic strategies

Brooma, October 2019

Definition

Problem solving is the act of defining a problem; determining the cause of the problem; identifying, prioritizing, and selecting alternatives for a solution; and implementing a solution.

American Society of Quality

Bites of knowledge

  • problem-solving strategies
  • problem-solving methods
  • metacognitive knowledge

Strategy 1

Find a ready strategy

Yes, just find a ready strategy!

Strategy 2

Division

Just divide the problem to subproblems

It makes sense no matter if your problem is to understand a problem, or to find a solution.

Strategy 3

The most general algorithm

  • Understand the problem
    • Understand what we have
    • Understand what we want to achieve
  • Find the path from the given state to the desired state
    • Find a division to understandable and solvable subproblems.
      • Apply this algorithm to subproblems.
  • Follow the path

Strategy 4

Enumeration

Enumerate all the possible variations of solutions or proofs (brute-force search).

Strategy 5

Patterns

Look for patterns

Flavor 1

First principles

Flavor 2

Abstraction

Abstraction makes the concept more vague.

The class concept is vague:

  • a publication
    • a newspaper
      • The San Francisco Chronicle
        • the May 18 edition of The San Francisco Chronicle
          • ❓ my copy of the May 18 edition of The San Francisco Chronicle
            • ❔ my copy of the May 18 edition of The San Francisco Chronicle as it was when I first picked it up.

Flavor 3

Algorithmic paradigm

Classification of algorithms by design paradigm

Flavor 4

Design patterns

Inventor's paradox

"Instead of solving a specific type of problem, which would seem intuitively easier, it can be easier to solve a more general problem, which covers the specifics of the sought-after solution."

AOSA

Strategy 6

Constraints

Not all solutions are equally useful.

Strategy 7

Incremental solving

Flavor 1

Offer and refute

  • Repeat:
    • Offer a theory
    • Try to refute it
    • After each satisfaction of a previous condition, you can try to find a simpler theory.

Flavor 2

Declare and define

  • Declare your function
  • Define it
    • Write the definition using pseudocode
    • Replace each term to a variable use or a function call
    • Declare each variable and function
    • Define each variable and function

Flavor 3

Test-driven development

The dangerous one

Trial and error

Testing possible solutions until the right one is found. It's an inherent empiric method of human thinking.

Strategy 8

Take into account the reality

Strategy 9

Reduction

Transform the problem to a solved one.

Approach 1

Research

You can never know enough mathematics.

How To Think Real Good

Strategy 10

Creative approaches

  • Divergent thinking
  • Shoshin (初心) - beginner's mind

Approach 2

Build your problem-solving arsenal

Flavor 1

Self-reflection, yaaay!

  • Solve a problem
  • Self-reflect on your progress

Flavor 2

Write your own problem-solving algorithm

Thanks 👏🏼

Could you add something?