what is a computable problem?
a problem where an algorithm can solve every instance of it in a finite number of steps in a realistic amount of time
eg. cracking a 10 character secure password is theoretically possible but would take millions of years so its incomputable
what is exhaustive search?
trying all possible solutions until the correct one is found - very inefficient (exponential time increase)
what is simulation?
the process of designing a model of a real system in order to understand the behaviour of the system and to evaluate various strategies for its operations
what kinds of problems might simulation be used for?
what is top-down design?
breaking a large task down into several smaller tasks, which are again broken down until each one is a small manageable subtask
why is problem decomposition so important?
what is divide and conquer?
an algorithm that works by recursively breaking down a problem into 2 or more subproblems of the same type , until these become simple enough to be solved directly
eg. binary search, merge sort, quick sort
what are the stages of a divide and conquer algorithm?
what are the advantages of divide and conquer?
what are the disadvantages of divide and conquer?
what is representational abstraction?
when excessive details are removed to simplify a problem
often reduced down until it forms problems that have already been solved
why is abstraction useful?
how does abstraction by generalisation helps?
what is automation?
building and putting into action models to solve problems - can tell you more about the reality you are modelling
what is visualisation and why is it useful?
what is backtracking?
following one solution and following it until you find that it is not the solution that you want and returning to an earlier point and start looking again
eg. a maze
what is data mining?
what are some applications of data mining?
what is big data?
what considerations are required for data mining?
what are intractable problems?
although an algorithm would exist for a solution, it would take an unreasonably long amount of time to find the solution
eg. the Travelling Salesman Problem
what is a brute force method?
it is where every combination of routes or solutions to a problem are tested out until the right one is found
what is a heuristic method?
non optimal rule of thumb approach to problem solving, used to find an approximate solution to a problem where the standard solution is unreasonably time consuming or resource intensive to find - not perfectly complete or accurate but quick and good enough
what are some applications of the heuristic method?