2.2.2 Computational Methods Flashcards

1
Q

What is a computational problem?

A

A problem that has an algorithm that can solve it in a finite number of steps

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

When is a problem theoretically unsolvable?

A

When the problem can technically be solved but it would take so long that it would make no practical sense.
e.g. brute forcing a 10 character password will take too long to get any benefit from it.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What methods can be used to solve a problem?

A

Decomposition.
Abstraction.
Calculations.
Storage of Data.
Enumeration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is enumeration?

A

Trying all possible solutions to a problem until the correct one is found - bruteforce

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is Divide and Conquer?

A

A way of reducing the number of possibilities each iteration.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

How does Divide and Conquer work?

A

Splitting the data set into two (dividing) with each iteration. This happens until the problem is decomposed.
Then each subroutine is solved (conquered).
The solutions to all the problems are then recombined in the merge stage to form the final product.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What is problem recognition?

A

Working out what the actual problem is.

Stakeholders typically give requirements of the finished product and the inputs and outputs needed. You have to work out the problem at hand.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What is problem decomposition?

A

Breaking down the problem into smaller problems. This continues until each sub problem can be represented as a self contained sub-routine.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Where is Divide and Conquer used?

A

Problems where the problem can be reduced by half at every iteration.
e.g. binary search

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

How is divide and conquer used in binary search?

A

The middle value of the sorted list is compared to the value to be found. If it is less, then you know to look to the right. If it is more then you know to look to the left.
The other half of the list is discarded.
This repeats until the item is found, or there is one item left - not the one to be found - so the item isn’t in the list.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

What is the advantage of using Divide and Conquer?

A

The size of the problem is halved with each iteration. This greatly simplifies complex problems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

What strategies can be used to solve problems?

A

Backtracking.
Data Mining.
Heuristics.
Performance Modeling.
Pipelining.
Visualisation.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

What is backtracking?

A

Going so far down a certain route and then backtracking to see if there is a better route. It works methodically, visiting each path and and building a solution based on the paths found to be correct. If an incorrect path is found it goes back to the previous stage and goes down a different path.
e.g. Depth-first-Search

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

How can backtracking be visualised?

A

A maze.
Follow each path until you cant any more. Backtrack to the last point that a decision could be made and go down a different path.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

What is Data Mining?

A

Analysing large volumes of data (Big Data) in order to establish; Patterns, Trends, Successes, Problems and solutions to the problems.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

What is needed for Data Mining?

A

A Large Data Set.
Different problems need data sets of different sizes. So a data set that is large enough for the situation.

17
Q

What Is Heuristics?

A

A rule of thumb approach that uses educated guesses, intuitive judgements and common sense to find an approximate solution.
The solution is not perfectly accurate or complete but provides something that is ‘good enough’.

18
Q

What is Performance Modeling?

A

Using a simulation (model of the real system) to understand the behaviour of the system.

19
Q

What is the purpose of Performance Modeling?

A

To find out how efficient an algorithm is

20
Q

How is performance modeling done?

A

Through Load Testing.
A variety of different loads are ested to see how the system handles.

21
Q

What is the benefit of performance Modeling?

A

Provides a cheaper, less time consuming and safer way to test a system.
It means that you can test systems before using in the real world. - useful for safety critical systems such as airplanes