well-defined problems

problems that are clear to understand and the solution has defined expectations.

ill-defined problems

messy problems which are not clear how to solve.

Stages of problem solving

- Understand the problem
- Devise a plan
- carry out the plan
- Review your work

- understand the problem

- do you have all the data?
- is the problem unsolvable?
- do you have to solve the whole problem?
- is it possible to divide the problem?

- Devise a plan

- are the patterns?
- can maths help?
- are the any similar problems that have already been solved?

- Carry out the plan

solve the problem continuously checking youre doing it right

- Review your work

- can the solution be improved?
- is any of the solution reusable?
- is it effectively solved?

Why do algorithms help

- helps understand the problem
- executed more quickly
- possible to resort to trial and error

problem recognition

The ability to recognize and acknowledge that an issue exists or that a situation needs attention in an existing process or program. The ability to define a problem and know exactly what it is.

Computable

a problem is computable is we can come up with an algorithm that will solve every instance of the problem in a finite number of steps

intractable problem

a problem which cannot be completely solved.

problem decomposition

the process of taking a big problem and breaking it down into smaller problems until you fully explored the problems. Each of these smaller problems translate into one task which is more easily programmable as an individual module, function or procedure.

Top-down Problem solving

an approach to solve a problem that involves breaking down the main problem into sub-problems.

divide and conquer

a technique based around reducing the size of a problem with successive iterations. You look at a problem, apply some rules and discard any data that does not match then repeat the process with any information which is left. E.g. binary search.

divide and conquer advantages

- efficient

- short runtime

examples of solving problems using mathematical techniques

- estimating time

- estimating cost

examples of messy problems that need humans to solve/help solve

- predicting the results of a race/ game
- planning shop layouts
- designing a new car

5 methods of problem solving

- enumeration
- simulation
- theoretical approach
- trial and error
- creative solution

enumeration (method of problem solving)

Designing an algorithm that performs an exhaustive search

enumeration example

find the solution to an anagram by testing every permutation of letters

simulation (method of problem solving)

The process of designing a model of a real system in order to understand the behavior of the system, and to evaluate various strategies for its operation

simulation examples

- Financial risk analysis
- Amusement park rides
- Population predications
- Managing inventory systems
- Queueing problems

Theoretical approach (method of problem solving)

the problem be broken down into pure theory and be represented by mathematics

Trial and error (method of problem solving)

If you don’t know how to solve a problem using trial and error may help the process/ completely solve the problem depending on its complexity.

creative solution (method of problem solving)

Finding a solution to a problem which doesn’t follow the expected algorithms and rules but still provides an alternative solution

abstraction

A way of managing complexity hiding some of the detail which is not neccessary and only representing what is important when solving the problem