Week 7 Flashcards

1
Q

Characteristics of flocking?

A
  • Rapid directed movement of the whole flock
  • Reactivity to predators (flash expansion, fountain effect)
  • Reactivity to obstacles
  • No collisions between flock members
  • Coalescing and splitting of flocks
  • Tolerant of movement within the flock, loss or gain of flock members
  • No dedicated leader
  • Different species can have different flocking characteristics — easy to recognise but not always easy to describe
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Benefits of flocking

A

Energy saving
Geese flying in Vs can extend range by over 70%
Flash expansion, fountain effect in fish, confuse predators

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

How can we work out error of a flock direction?

A

IF
* Each individual has only a vague and noisy idea of which direction to fly in, or is a really incompetent flyer…
* and if a flock averaged out all the individual directions…
* Individual error in measuring the global field is uncorrelated

THEN
* From a simple statistical computation, flock direction should have an error proportional to
1/sqrt(𝑛) = # of individuals in the flock

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

Examples of migration in nature

A

Monarch butterflies reach the same trees every year
Wrenecks do the same from Africa to Valais
Fish reach the same tiny spawning grounds

Application:
fishery statistics: models based on averaged navigational errors

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

Who is Boids?

A

Computer animator who wanted to find a way of animating flocks that would be
realistic looking
computationally efficient (no worse than linear)
3D

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

What is Boids sensory system?

A

Idealized system
Local, omni-directional sensory system
Relative range and bearing system
Can identify all teammates within range of detection
Immediate response
Homogenous system
No noise
Second order variables (velocity) estimated with 2 first order measures (position)

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

What are Reynold’s Rules for Flocking

A

Separation: steer to avoid crowding local flockmates
Alignment/Velocity Matching: steer towards the average heading of local flockmates & attempt to match velocity
Cohesion: steer to move toward the average position of local flockmates.

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

Characteristics of Reynold’s flocks

A

spontaneously polarize
synchronise their changes in direction
flocks join when they meet
if started too close together, flash expansion occurs
if started too far apart, they may slowly aggregate or form flockettes which later merge.

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

What is particle swarm optimisation

A

Each particle is a candidate solution
- no mass or volume BUT velocity and acceleration apply
Swam - velocity matching not included (no coordination unlike flocking, collaboration instead)
Optimisation - discovery of near optimal solution by means of a population of individuals.

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

The Cornfield Vector/ Rooster effect

A

How does swarming/flocking get us to a near optimal solution?
When food is left for birds, within minutes many birds are there, so we can define a fitness representing the quality of the solution (odor of food)
Knowledge of the swarm is incorporated into the local behaviour of each particle. All collaborate to find the food quickly.

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

Basic PSO

A

Create N random particles (solutions)
For each timestep
For each individual
- update the position of particle by adding a velocity to current particle pos
- update velocity
next individual
next timestep

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

How do we update the velocity of a particle?

A

vij[t+1] = vij[t] +c1rand()(pbestxij-presentxij)
+c2rand()(gbestxij-presentxij)

Where c1 & c2 are constants and rand() is a function which returns a random number between 0 and 1.
As before i is the individual and j is the dimension.
pbestx is that particle’s previous best position
gbestx is the population’s best position

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

Why do we use rand() in PSO velocity update

A

Stops swarm from converging too quickly

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

Why c1 and c2 in velocity update?

A

Change weighting between personal and population experience/knowledge

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

Neighbour based PSO

A

Similar to global based PSO
lbest computed instead of gbest where lbest is best solution in current neighbourhood.
Neghbourhoods are normally not defined by closeness in search space
-no velocity matching required
- good solutions are spread throughout the population

gbest vs lbest
- gbest will converge earlier as every particle has access to best
- lbest has larger diversity, wont get trapped in local minima.

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

PSO parameters

A

Swarm size
Neighbourhood size
Number of iterations
Acceleration coefficients (c1 & c2)

17
Q

PSO termination criteria

A

Max iterations
Acceptable solution found
No improvement for N iterations
Normalized swarm radius close to zero

18
Q

PSO applications

A

Design of:
antennae, aircraft wings, amplifiers
Scheduling of
TSP, task assignment
Generally requires a real vector representation.

19
Q

What is Binary PSO?

A

Can be modified to work on discrete spaces e.g. binary strings
Approach 1: interpret velocities as probabilities (traditional BPSO)
Approach 2: generalise motion to discrete spaces (geometric BPSO)

20
Q

Traditional BPSO

A

Velocity remains continuous using the original update rule
Positions are updated using the velocity as a probability threshold to determine if the jth component of the ith particle is a zero or 1
xij[t+1] = 1 if rand() < sig(vij[t])
0 otherwise