Week 1 - Basics Flashcards
Which natural systems can benefit computing?
Evolution
Human-like activity (e.g. brain, immune system)
Collective behaviours (e.g. ant colonies, swarms)
Why should natural systems be used as inspiration for new algorithms?
Evolution - created some of the most complex objects we know of (ourselves)
Human-like activity - we solve many seemingly difficult problems
Collective behaviours - a collection of seemingly unintelligent individuals can display intelligence as a part of a collective.
What problems can be solved by using nature inspired
computation?
Some tasks that organisms have had to evolve to be good at, are also
tasks we’re interested in in computing:
- Recognising patterns
- Finding shortest paths
- Searching (e.g. for food etc..)
Name an advantage of nature-inspired computation, and give 3 examples.
Nature-Inspired techniques tend to produce good results in
reasonable computational time on a vast array of real-world
problems
Examples:
- Evolutionary algorithms are able to optimise complex systems on
relatively modest hardware – generally better than classical
optimisation methods. - Artificial neural networks are generally more successful than the
classical methods for pattern recognition. - Artificial immune system methods are better at spotting potential
threats than classical rule-based monitoring methods.
Name 6 application areas of nature-inspired computation.
- Planning (Routing, scheduling, packing)
- Design (Electronic circuits, neural networks, structure design)
- Simulation (Model economic interactions of competing firms in a market)
- Identification (Fit a function to medical data to predict future values)
- Control (Design a controller for gas turbine engine, design control system for mobile robots)
- Classification (Game playing, diagnosis of heart disease, detecting SPAM)
What are the 3 basic steps of EAs?
Selection, variation, population update.
Give some examples of uses for EAs.
Scheduling university lecture timetables.
Pipe network designs for delivering water.
Antenna designs within given requirements.
A formula that best fits a curve.
Placement strategy for mobile phone masts.
Finding the most efficient orbits for satellites.
Strategy for flying a fighter aircraft.
Finding the most accurate neural network for a data mining or control problem.
Finding the best treatment plan (beam shapes and angles) for radiotherapy cancer treatment.
What is optimisation?
Trying to find the best solution (usually in a short time) to a given problem. S is the set of possible solutions, which may be small or large or infinitely large.
What is a fitness function?
Every candidate solution s in S can be given a score, or a “fitness”, by a so-called fitness function. We usually write f(s) to indicate the fitness of solution s. We want to find the s in S which has the best score. The fitness function determines how “good” a solution is.
What is an exhaustive search?
Generate every possible solution, compute its fitness, and hence discover which is best (aka enumeration).
What is an Exact Algorithm?
An algorithm that can solve a problem, guaranteeing to find the best answer.
Describe problems with polynomial complexity.
These are called tractable, and easy problems. Fast algorithms are known which provide the best solution. Pairwise alignment of vectors is one such problem. Sorting is another.
Describe problems with exponential complexity.
These are called intractable, and hard problems. The fastest known algorithm which exactly solves it is usually not significantly faster than exhaustive search. An exponential curve always takes over a polynomial one.
What is Prim’s algorithm?
Start with empty tree (no edges)
Repeat: choose cheapest edge which feasibly extends the tree.
Until: n-1 edges have been chosen.
What do approximate algorithms do?
Deliver solutions in reasonable time.
Try to find pretty good (`near optimal’) solutions, and often get optimal ones.
Do not (cannot) guarantee that they have delivered the optimal solution.