Biologically Inspired Computation - PowerPoint PPT Presentation

About This Presentation
Title:

Biologically Inspired Computation

Description:

Biologically Inspired Computation Really finishing off EC – PowerPoint PPT presentation

Number of Views:60
Avg rating:3.0/5.0
Slides: 55
Provided by: macsHwAc1
Category:

less

Transcript and Presenter's Notes

Title: Biologically Inspired Computation


1
Biologically Inspired Computation
Really finishing off EC

2
But first
  • Finishing off encodings
  • Information about mandatory reading
  • Information about CW2

3
E.g. encoding a timetable I
mon tue wed thur
900 E4, E5 E2 E3, E7
1100 E8
200 E6
400 E1

4, 5, 13, 1, 1, 7, 13, 2
Exam2 in 5th slot
Exam1 in 4th slot
Etc
  • Generate any string of 8 numbers between 1 and
    16,
  • and we have a timetable!
  • Fitness may be ltclashesgt ltconsecsgt etc
  • Figure out an encoding, and a fitness function,
    and
  • you can try to evolve solutions.

4
E.g. encoding a timetable II
mon tue wed thur
900 E4, E5 E3, E7
1100 E8
200 E6, E2
400 E1

4, 5, 13, 1, 1, 7, 13, 2

Etc
Use the 13th clash-free slot for exam3
Use the 5th clash-free slot for exam2 (clashes
with E4,E8)
Use the 4th clash-free slot for exam1
5
So, a common approach is to build an encoding
around an algorithm that builds a solution
  • Dont encode a candidate solution directly
  • instead encode parameters/features for a
    constructive algorithm that builds a candidate
    solution

6
e.g. bin-packing given collection of items,
pack them into the fewest possible number of bins
7
e.g. bin-packing given collection of items,
pack them into the fewest possible number of bins
8
Engineering Constructive Algorithms
  • A typical constructive algorithm for bin-packing
  • Put the items in a specific sequence (e.g.
    smallest to largest)
  • Initialise solution
  • Repeat nitems times
  • choose next item, place it in first bin it fits
    (create a new empty bin if necessary)
  • Indirect Encodings often involve using a
    constructive algorithm,

9
Example using First-Fit Ascending (FFA)
constructive algorithm for bin-packing
FFA
10

First-fit Ascending
11

First-fit Ascending
12

First-fit Ascending
13

First-fit Ascending
14

First-fit Ascending
15

First-fit Ascending
16
Example using First-Fit Descending
First-fit Descending
17

First-Fit Descending
18

First-Fit Descending
19

First-Fit Descending
20

First-Fit Descending
21

First-Fit Descending
22
Notes
  • In other problems, FFA gets better results than
    FFD
  • There are many other constructive heuristics for
    bin packing, e.g. Using formulae that choose next
    item based on distribution of unplaced item sizes
    and empty spaces ...
  • There are constructive algorithms for most
    problems (e.g. Timetabling, scheduling, etc ....)
  • Often, indirect encodings for EAs use
    constructive algorithms.
  • Common approach the encoding is permutation,
    and the solution is built using the items in that
    order
  • READ THE FALKENAUER PAPER TO SEE GOOD EA ENCODING
    FOR BIN-PACKING

23
Encodings that use constructive algorithms
  • The indirect encoding for timetabling, a few
    slides ago, is an example.
  • The underlying constructive algorithm is
  • Line up the exams in order e1, e2, eN
  • Repeat until all exams are scheduled
  • take the next exam in the list, and put it in
    the first place it can go without clashes
  • This provides only a single solution, the same
    every time we run it. This may be very bad in
    terms of other factors, such as consecutive
    exams, time allowed for marking, etc.
  • How did we modify it so that it could generate a
    big space of different solutions?

24
Encodings that use constructive algorithms
  • Line up the exams in order e1, e2, eN
  • Repeat until all exams are scheduled
  • take the next exam in the list, and put it in
    the first place it can go without clashes

25
Encodings that use constructive algorithms
  • Line up the exams in order e1, e2, eN
  • Repeat until all exams are scheduled
  • take the next exam in the list, and put it in
    the first place it can go without clashes

26
Encodings that use constructive algorithms
  • Line up the exams in order e1, e2, eN
  • Repeat until all exams are scheduled
  • take the next exam in the list, and put it in
    the Nth place it can go without clashes
  • The chromosome encodes each of the Ns. The
    original constructive algorithm corresponds to
    running the above on the chromosome
    111111111..
  • We could also engineer the original constructive
    algorithm into an encoding in a quite different
    way. How?

27
Encodings that use constructive algorithms
  • Line up the exams in order e1, e2, eN
  • Repeat until all exams are scheduled
  • take the next exam in the list, and put it in
    the first place it can go without clashes

28
Encodings that use constructive algorithms
  • Randomly permute the exams e1, , eN
  • Repeat until all exams are scheduled
  • take the next exam in the list, and put it in
    the first place it can go without clashes
  • This is a fine constructive algorithm, which
    will provide a different solution depending on
    the permutation.
  • It is easily used as an encoding the
    chromosome provides the permutation.

29
Other well known constructive algorithms
  • Prims algorithm for building the minimal
    spanning tree (see an earlier lecture) is an
    example.
  • Djikstras shortest path algorithm is also an
    example.
  • In both of these cases, the optimal solution is
    guaranteed to be found, since MST and SP are easy
    problems.
  • But usually we see constructive methods used to
    give very fast OK solutions to hard problems.

30
On engineering constructive methods
  • Some Constructive Heuristics are deterministic.
    I.e. they give the same answer each time.
  • Some are stochastic I.e. they may give a
    different solution in different runs.
  • Usually, if we have a deterministic constructive
    method such as FFD, we can engineer a stochastic
    version of it. E.g. instead of choosing the
    next-lightest item in each step, we might choose
    randomly between the lightest three unplaced
    items.

31
  • Bin packing example direct encoding
  • 2, 3, 2, 3, 1 .... ? item 1 is in bin 2, item
    2 is in bin 3, item 3 is in bin 2, etc...
  • (often a bin will be over capacity, so fitness
    function will have to include penalties)

Bin packing example indirect encoding
candidate solution is a perm of the items, e.g.
4, 2, 1, 3, 5 ...meaning First place item 4
in the first available bin it fits in, then place
item 2 in the first available ... etc.
32
Direct vs Indirect Encodings
  • Direct
  • straightforward genotype (encoding) ? phenotype
    (actual solution) mapping
  • Easy to estimate effects of mutation
  • Fast interpretation of chromosome (hence speedier
    fitness evlaluation)
  • Indirect/Hybrid
  • Easier to exploit domain knowledge (e.g. use
    this in the constructive heuristic)
  • Hence, possible to encode away undesirable
    features
  • Hence, can seriously cut down the size of the
    search space
  • But, slow interpretation
  • Neighbourhoods are highly rugged.

33
Example real-number Encoding (and How EAs can
innovate, rather than just optimize)
D1, D2, D3, D4 D5 D6
D1 gt D2 gt D3, D4 lt D5 lt D6 Fixed at six
diameters, five sections
Design shape for a two-phase jet nozzle
34
A simple encoding
2, 1.8, 1.1, 1.3 1.3 1.5
The encoding enforces these constraints D1
gt D2 gt D3, D4 lt D5 lt D6 Fixed at six
diameters, five sections
35
A more complex encoding bigger search space,
slower, but potential for innovative solutions
Num sections before smallest
Section diameters
Z1, Z2, D1, D2, D3 Dsmall, Dn, Dn1,
Num sections after smallest
Middle section constrained to be smallest, Thats
all Mutations can change diameters, add
sections, and delete sections
36
Mandatory reading
  • slides for
  • - Operators (typical mutation and crossover
    operators for different types of encoding)
  • - Selection (various standard selection
    methods)
  • - More encodings

37
About CW2
38
About CW2
39
About CW2
  • Pamela Hardaker, Benjamin N. Passow and David
    Elizondo. Walking State Detection from
    Electromyographic Signals towards the Control of
    Prosthetic Limbs UKCI 2013
  • got signals like this, but on her
  • thigh just above the knee

running
walking
standing
40
  • Current knee-joint prospects need manual
    intervention to change between standing/walking/ru
    nning modes (the wearer presses a button)
  • Can we train a Neural Network to automatically
    detect when to change, on the basis of nerve
    signals from the last 30ms ?

41
About CW2
  • Snapshot of Pamelas data
  • Time signal state

004.206 6.064453124 standing
004.207 5.693359374 standing
004.208 4.946289061 standing
004.209 4.609374999 standing
004.210 4.589843749 standing
004.211 4.482421874 standing
004.212 4.809570311 standing
004.213 5.102539061 standing
004.214 5.507812499 standing
004.215 5.922851562 standing
004.216 5.561523436 standing
004.217 5.610351561 standing
004.218 5.605468749 standing
004.219 5.551757811 walking
004.220 5.952148437 walking
004.221 6.542968749 walking
004.222 6.923828124 walking
004.223 6.845703124 walking
004.224 6.958007812 walking
004.225 6.484374999 walking
004.226 6.118164062 walking
004.227 5.424804686 walking
004.228 4.023437499 walking
004.229 3.696289061 walking
004.230 3.798828124 walking
004.231 3.579101561 walking
42
About CW2
Max signal strength in last 30ms Max signal
strength in last 20ms Max signal strength
in last 10ms range of sig in last
30ms range last 20ms
range last 10ms
mean last 30ms
mean last 20ms
mean last 10ms
  • Snapshot of Pamelas data
  • Time signal state

004.206 6.064453124 standing
004.207 5.693359374 standing
004.208 4.946289061 standing
004.209 4.609374999 standing
004.210 4.589843749 standing
004.211 4.482421874 standing
004.212 4.809570311 standing
004.213 5.102539061 standing
004.214 5.507812499 standing
004.215 5.922851562 standing
004.216 5.561523436 standing
004.217 5.610351561 standing
004.218 5.605468749 standing
004.219 5.551757811 walking
004.220 5.952148437 walking
004.221 6.542968749 walking
004.222 6.923828124 walking
004.223 6.845703124 walking
004.224 6.958007812 walking
004.225 6.484374999 walking
004.226 6.118164062 walking
004.227 5.424804686 walking
004.228 4.023437499 walking
004.229 3.696289061 walking
004.230 3.798828124 walking
004.231 3.579101561 walking
1.37207031 1.37207031 1.25488281 2.39746 2.39746 1.7041 0.44873 0.338135 0.674805 0 0 1
1.37207031 1.25488281 0.971679685 2.39746 1.7041 1.37207 0.355469 0.532471 0.390137 0 0 1
2.294921873 2.294921873 2.294921873 2.75391 2.75391 2.75391 0.51709 0.438232 0.486328 0 0 1
2.324218748 2.324218748 2.324218748 3.17383 3.17383 3.17383 0.482422 0.528564 0.570801 0 0 1
2.324218748 2.324218748 2.084960936 3.17383 3.17383 2.69043 0.507975 0.518799 0.466797 0 1 0
2.324218748 2.084960936 1.860351561 3.17383 2.69043 2.37793 0.484701 0.44165 0.416504 0 1 0
2.084960936 1.860351561 1.674804686 2.72949 2.50488 2.31934 0.328939 0.26001 0.103516 0 1 0
Outputs 1 0 0, 0 1 0 or 0 0
1 (standing) (waking)
(running)
43
About CW2
Max signal strength in last 30ms Max signal
strength in last 20ms Max signal strength
in last 10ms range of sig in last
30ms range last 20ms
range last 10ms
mean last 30ms
mean last 20ms
mean last 10ms
  • Snapshot of Pamelas data
  • Time signal state

004.206 6.064453124 standing
004.207 5.693359374 standing
004.208 4.946289061 standing
004.209 4.609374999 standing
004.210 4.589843749 standing
004.211 4.482421874 standing
004.212 4.809570311 standing
004.213 5.102539061 standing
004.214 5.507812499 standing
004.215 5.922851562 standing
004.216 5.561523436 standing
004.217 5.610351561 standing
004.218 5.605468749 standing
004.219 5.551757811 walking
004.220 5.952148437 walking
004.221 6.542968749 walking
004.222 6.923828124 walking
004.223 6.845703124 walking
004.224 6.958007812 walking
004.225 6.484374999 walking
004.226 6.118164062 walking
004.227 5.424804686 walking
004.228 4.023437499 walking
004.229 3.696289061 walking
004.230 3.798828124 walking
004.231 3.579101561 walking
1.37207031 1.37207031 1.25488281 2.39746 2.39746 1.7041 0.44873 0.338135 0.674805 0 0 1
1.37207031 1.25488281 0.971679685 2.39746 1.7041 1.37207 0.355469 0.532471 0.390137 0 0 1
2.294921873 2.294921873 2.294921873 2.75391 2.75391 2.75391 0.51709 0.438232 0.486328 0 0 1
2.324218748 2.324218748 2.324218748 3.17383 3.17383 3.17383 0.482422 0.528564 0.570801 0 0 1
2.324218748 2.324218748 2.084960936 3.17383 3.17383 2.69043 0.507975 0.518799 0.466797 0 1 0
2.324218748 2.084960936 1.860351561 3.17383 2.69043 2.37793 0.484701 0.44165 0.416504 0 1 0
2.084960936 1.860351561 1.674804686 2.72949 2.50488 2.31934 0.328939 0.26001 0.103516 0 1 0
CW2 evolve a neural network that predicts the
state.
44
What you will do
  • From me, you get
  • Working NN code that does the job already
  • What you will do
  • Implement new mutation and crossover operators
    within my code, and test them on Pamelas data
  • Write a report comparing the performance of the
    different operators

45
If time, a look at the key bits of those operator
slides
46
Operators for real-valued k-ary encodings
  • Here the chromosome is a string of k real
    numbers, which each may or may not have a fixed
    range (e.g. between -5 and 5).
  • e.g. 0.7, 2.8, -1.9, 1.1, 3.4, -4.0,
    -0.1, -5.0,
  • All of the mutation operators for k-ary
    encodings, as previously described in these
    slides, can be used. But we need to be clear
    about what it means to randomly change a value.
    In the previous slides for k-ary mutation
    operators we assumed that a change to a gene mean
    to produce a random (new) value anywhere in the
    range of possible values

47
Operators for real-valued k-ary encodings
  • thats fine we can do that with a real
    encoding, but this means we are choosing the new
    value for a gene uniformly at random.

48
Mutating a real-valued gene using a uniform
distrution
  • Range of allowed values for gene 010
  • New value can be anywhere in the range, with any
    number equally likely.

49
But, in real-valued encodings, we usually use
Gaussian (Normal) distributions
  • so that the new value is more likely than not
    to be close to the old value.

  • typically we generate a perturbation

  • from a Gaussian distribution, like this

  • one, and add that perturbation to the
    old

  • value.

0.3
0.2
Probability of choosing this perturbation
0.1
0
-1 -0.5 0 0.5 1
perturbation
50
Mutation in real-valued encodings
  • Most common is to use the previously indicated
    mutation operators (e.g. single-gene, genewise)
    but with Gaussian perturbations rather than
    uniformly chosen new values.

51
Crossover in real-valued encodings
  • All of the k-ary crossover operators previously
    described can be used.
  • But there are other common ones that are only
    feasible for real-valued encodings

52
Box and Line crossover operators for real-valued
chromosomes figure is from this paper
http//cdn.intechopen.com/pdfs/30229/InTech-The_ro
les_of_crossover_and_mutation_in_real_coded_geneti
c_algorithms.pdf

  • Treat the parents like vectors


  • Fig assumes you are crossing over two 2-gene
    parents, x (x1,x2) and y (y1,y2)
  • Box child is
  • (x1 u1 (y1 x1), x2 u2(y2 x2) )
  • Where u1 and u2 are uniform random numbers
    between 0 and 1
  • Line child is x u (y x)
  • or (x1 u(y1 x1) , x2 u (y2 x2)
    )
  • Where u is a random number between 0 and 1

53
Box and Line crossover general form
  • Parent1 x1, x2, x3, ., xN
  • Parent2 y1, y2, y3, , yN
  • given parameter a (typically values are 0, 0.1
    or 0.25)
  • General form
  • Child is ((x1 a) u (y1 x1), ((x2 a)
    u (y2 x2), etc)
  • Where u is a uniform random number between 0
    and 12a
  • Line crossover a 0 u is generated once
    for each crossover, and is the same for every
    gene.
  • Extended line crossover a gt 0, u is generated
    once for each crossover, and is the same for
    every gene.
  • Box crossover a 0 u is different for
    every gene
  • Extended box crossover a gt 0 u is different
    for every gene

54
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com