# Computational Methods Flashcards

1
Q

Computable

A

Computable if we can come up with an algorithm which will solve the problem in a finite number of steps

2
Q

intractable problem

A

a problem that cannot be completely solved e.g. travelling salesperson problem

3
Q

problem decomposition

A

The process of taking a big problem and breaking it down into smaller problems until you have fully explored each of the problems. (Each smaller problem = one module of code)

4
Q

Abstraction

A

The process of deciding which details are needed to solve the problem and removing the unnecessary details to help solve the problem more easily.

5
Q

Divide and Conquer

A

reduces the size of the problem over successive iterations: look at a set of rules, discard data then repeat with left over information.

6
Q

Performance modelling

A

the process of carrying out mathematical approximations of how well models perform.

7
Q

benefits of performance modelling:

A
• tests a program before its made, helps prevent on air failure
• saves money (the complex calculations are not actually carried out
• helps find unexpected errors
• system is more easily analysed
8
Q

Pipelining

A

The process of taking a task and splitting it into smaller tasks then overlapping the processing to improve the overall performance

9
Q

A
• improves performance, increases throughput

-

10
Q

A
• doesn’t always improve performance
• physical design and code is more complex
• if a pipeline has to be flushed it wastes time
• not all instructions can take advantage of pipelines
11
Q

drawbacks of performance modelling

A
• can be expensive to build a model

- sometimes it is difficult to interpret the results

12
Q

A
• simplifies the problem (it can process faster/ has better memory requirements)
13
Q

A
• may remove too much detail (i.e. the program may be too simple and not reach the users needs.
14
Q

disadvantages of divide and conquer

A
• may not be complex enough/ may not be able to be split
• can result in full stacks
• may end up duplicating subproblems
15
Q

A
• Work can divided between a team, saves time as work takes place in parallel
• each team must only know what values to go into their subroutine and their expected functionality
• breaks problem down, easier to understand/test/debug/read
• Modules can be given to teams with specific expertise
• each subroutine can be tested individually before its combined to the main program
• code can be reused
16
Q

A
• it can be hard to join all the modules together
• extra memory space and time for execution required
• testing and debugging can be more time consuming
17
Q

Visualisation

A

The ability to picture a problem and its solution in a visual way to make it easier to understand

18
Q

A
• helps understanding
19
Q

A
• time consuming
20
Q

backtracking

A

the process of incrementally building up towards a solution, abandoning partial success then going back and trying again a different way.

21
Q

concurrent programming

A

where one computation occurs simultaneously with another and doesn’t wait for the other one before advancing.

22
Q

A
• sometimes it is the best option to solve a problem

- simple to implement

23
Q

A
• not efficient for solving a strategic problem
• runtime is slow
• need alot of memory space
• to solve larger problems other algorithms may be required
24
Q

Heuristic

A

Making use of experience to find an acceptable solution (not always the optimal solution).
e.g. rules of thumb, educated guessed, common sense. Often derived from a previous experience with a similar problem

25
Q

advantages of concurrent programming

A
• increased program throughput

- processor time not wasted

26
Q

disadvantages of concurrent programming

A
• potential slow down if many users request a similar action

- some problems are not paralisable

27
Q

A
• can help businesses (target ads, look at trends, predict demand etc)
• analyse records to build patterns and stop criminal activities
28
Q