SLR24 Notes Flashcards
What is a computable problem?
A computable problem is one that can be solved with algorithms.
What is a tractable problem?
A tractable problem is one that can be solved in polynomial time or better, meaning it runs quickly enough to be practical and useful.
What is an intractable problem?
An intractable problem is one that cannot be solved in polynomial time or better, meaning it becomes unsolvable within a reasonable time frame as input size increases.
What is a heuristic method?
Heuristic methods can be used to solve intractable problems by sacrificing the optimal answer for one that is ‘good enough’.
How can abstraction and decomposition help solve problems?
Abstraction and decomposition simplify the complexity of a problem, making it easier to write an algorithm to solve the problem.
What is enumeration?
Enumeration involves designing an algorithm that performs an exhaustive search and attempts all possible solutions until the correct one is found. It is useful for puzzles.
What is a theoretical approach in problem-solving?
A theoretical approach involves reducing the problem to pure theory, represented using mathematical equations, making it easier for computers to solve.
What is simulation?
Simulation involves designing a model of a real system to understand its behavior.
What is automation?
Automation involves building problem-solving models and putting them into action, often using abstraction to turn complex problems into solvable ones.
What is problem recognition?
Problem recognition is the ability to recognize that a problem exists and to define it clearly, including identifying the system requirements.
What questions help with problem recognition?
Questions include: Is there a problem? What is its exact nature? What data is needed? What variables are involved? What processes and techniques should be considered?
What is problem decomposition?
Problem decomposition is the process of breaking a large problem into smaller, more manageable subproblems, making the project easier to manage.
What is step-wise refinement?
Step-wise refinement is a method of breaking down a problem into smaller modules, which can be tested in isolation before integration into the final solution.
How does problem decomposition aid in development?
Decomposition allows multiple parts of a project to be developed in parallel, speeding up delivery and making debugging easier.
What is the divide and conquer technique?
Divide and conquer reduces the size of a problem with each iteration by halving the problem and solving the subproblems recursively.