2.2.2 Computational Methods Flashcards
How does hardware pose limits on computable algorithms?
A particular proem may require more memory than is feasible, rendering it ‘unsolvable.’
How does exponential complexity pose limits on computable algorithms?
The problem requires an exponential amount of work to be done. Using faster/more processors will make little difference.
What are the computational methods to solve tractable problems?
- Enumeration
- Abstraction
- Decomposition
- Theoretical approach
- Simulation and automation
What is enumeration?
Many problems, including puzzles, can be solved using this method.
This involves designing an algorithm that performs an exhaustive search and attempts all possible solutions until the correct one is found.
How is abstraction and decomposition good in solving algorithms?
These techniques simplify the complexity of the problem and break it down, making it easier to write an algorithm and solve the problem.
How does a theoretical approach help solve algorithms?
If a problem is reduced to pure theory, it can be represented using mathematic equations.
Computers are great at maths, so these problems are great candidates for being solved by algorithms.
What is simulation and automation?
Simulation - the process of designing a model of a real system in an attempt to understand its behaviour
Automation - building problem-solving models and putting them into action
How does simulation help in solving algorithms?
They tend to make heavy use of abstraction and are ways of turning complex problems into ones that can be solved more easily by algorithms.
What is 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 determine exactly what it is.
What is problem decomposition?
The process of taking a large problem and breaking it down into smaller several sub problems.
How can you tackle problem decomposition?
Using step-wise refinement to produce a top-down modular design.
What is Divide and Conquer?
Technique that reduces the size of a problem with each successive iteration.
It can also refer to the task of splitting a task into smaller tasks, which are then tackled separately.
How does (in general) the Divide and Conquer technique work?
- Take a problem (e.g., a data set)
- Apply some rules
- Based on the outcome of the rules, discard data that doesn’t match
- Repeat the process with data that is left
What is abstraction?
Hiding unnecessary detail and showing details that are important in context in order to reduce complexity.
A representation of reality, using symbols to show real-life features or irrelevant features left out.
What is backtracking?
The process of incrementally building towards a solution, abandoning partial success when the solution can’t be completed and going back to a previously successful match.