Computational methods Flashcards

(29 cards)

1
Q

what is a computable problem?

A

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

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

what is exhaustive search?

A

trying all possible solutions until the correct one is found - very inefficient (exponential time increase)

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

what is simulation?

A

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

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

what kinds of problems might simulation be used for?

A
  • financial risk analysis
  • population predictions
  • queueing problems
  • climate change predictions
  • engineering design problems
  • physical models of spacecraft, ships, wind turbines, etc.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

what is top-down design?

A

breaking a large task down into several smaller tasks, which are again broken down until each one is a small manageable subtask

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

why is problem decomposition so important?

A
  • reduces complexity of the problem
  • saves time coding + testing by finding parts that can use pre-coded modules/libraries
  • easier to manage project
  • different teams code different parts of the project in parallel - faster delivery
  • modules are individually designed, developed, tested before being put together
  • easier to identify, locate + mitigate errors
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

what is divide and conquer?

A

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

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

what are the stages of a divide and conquer algorithm?

A
  1. divide - halving the size of the problem every iteration
  2. conquer - solve each problem individually (recursively)
  3. merge - recombine solutions to subproblems to form final solution
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

what are the advantages of divide and conquer?

A
  • problem size halves each iteration - simplifies very complex problems
  • time complexity O(log n)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

what are the disadvantages of divide and conquer?

A
  • recursive - stack overflow will cause program to crash
  • large problems - difficult to trace
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

what is representational abstraction?

A

when excessive details are removed to simplify a problem
often reduced down until it forms problems that have already been solved

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

why is abstraction useful?

A
  • focus on core aspects of program not unnecessary details
  • levels of abstraction break down large complex problem into simpler components
  • different teams deal with different components + details about other layers are hidden - more manageable
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

how does abstraction by generalisation helps?

A
  • group together different sections of problem with similar underlying functionality
  • saves time - they can be coded together + reused
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

what is automation?

A

building and putting into action models to solve problems - can tell you more about the reality you are modelling

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

what is visualisation and why is it useful?

A
  • presenting data in a way that is easier for humans to understand
  • can help identify trends that were not otherwise obvious
  • eg. graphs, trees, charts, tables
  • can be used by businesses to pick up on patterns to inform business decisions
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

what is backtracking?

A

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

17
Q

what is data mining?

A
  • the process of collecting + analysing huge amounts of data
  • many organisations collect millions of bytes of data about people
  • this is then analysed to find connections + associations
  • lots of modelling techniques are used to help identify patterns in the data
18
Q

what are some applications of data mining?

A
  • increasing the response rate to marketing campaigns by being able to target them more accurately to the needs of each customer
  • anticipating resource demand
  • detecting fraud + cybersecurity issues
  • finding connections between seemingly unconnected events
19
Q

what is big data?

A
  • huge amounts of data that are collected + stored - linked to data mining
  • defined by the 3 Vs - volume, variety, velocity
20
Q

what considerations are required for data mining?

A
  • handles personal data - should be dealt with current data protection legislation eg. GDPR within the EU
21
Q

what are intractable problems?

A

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

22
Q

what is a brute force method?

A

it is where every combination of routes or solutions to a problem are tested out until the right one is found

23
Q

what is a heuristic method?

A

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

24
Q

what are some applications of the heuristic method?

A
  • using a familiar route from A to B even if it isnt the most efficient
  • selecting a job candidate based on 2 or 3 factors and ignoring other potentially relevant ones
  • building circuit boards
  • virus checking
  • routing messages across the internet
  • DNA analysis
  • AI
25
what is performance modelling?
the process of simulating different user and system loads on a computer usinga mathematical approximation rather than doing actual performance testing which may be difficult and expensive
26
why is performance modelling useful?
- cheaper, less time consuming and safer method of testing - eg. not safe to test the safety systems of a plane in real life before the system is implemented
27
how is performance modelling findings used?
- judge capabilities of a system - how will it cope in different environments - is it safe to implement - planning - is it suited to organisation requirements
28
what is pipelining (macro)?
- an implementation technique where multiple instructions are overlapped in execution - instruction enters pipeline at one end -> part of instructions is completed -> move to next stage while another instruction enters pipeline - kind of like an assembly line
29
what is an example of pipelining?
microprocessors in PCs- one instruction is being fetched while another is being decoded and the third is being executed