Title: A New Evolutionary Approach for the Optimal Communication Spanning Tree Problem
1A New Evolutionary Approach for the Optimal
CommunicationSpanning Tree Problem
- Sang-Moon Soak
- Speaker ???????????????
2Outline
- OCST problem
- Evolutionary Algorithm
- 4 kinds of encodings for the Spanning tree
- Proposed encodings evolutionary algorithm
design - Experiment conclusion
3Outline
- OCST problem
- Evolutionary Algorithm
- 4 kinds of encodings for the Spanning tree
- Proposed encodings evolutionary algorithm
design - Experiment conclusion
Speaker ???
4OCST Problem
- Goal a spanning tree with minimum communication
cost - dT(i, j) distance between i and j on T
- R(i, j) communication requirements
- associated with each pair of nodes
- e.g. of telephone calls between two cities
5Example
Example tree
6How to find it?
- NP-hard problem!
- Search problem
- Search for a better solution
7Evolutionary Algorithm
- One kind of local search
- Genetic algorithm
- the most popular type of EA
- Uses some mechanisms inspired by biological
evolution - Reproduction, mutation, recombination, natural
selection, survival of the fittest - Add some random mechanism
8Evolutionary Algorithm
- Population Start with k randomly generated
individuals (i.e. states) - Individual each is represented as a string over
a finite alphabet - Fitness function evaluation of the goodness of
a given state. - A successor is generated by combining two parents
from the current population. - Produce the next generation of states by
selection, crossover, and mutation
Chapter 4 Local Search, Jane Hsu, Artificial
Intelligent, 2006
9Evolutionary Algorithm
next generation
fitness function
24
2 4 7 4 8 5 5 2
3 2 7 5 2 4 1 1
3 2 7 4 8 1 5 2
20
3 2 7 5 2 4 1 1
2 4 7 4 8 5 5 2
2 4 7 5 2 4 1 1
16
2 4 4 1 5 1 2 4
3 2 7 5 2 4 1 1
3 2 2 5 2 1 2 4
11
3 2 5 4 3 2 1 3
2 4 4 1 5 1 2 4
2 4 4 1 5 4 1 7
Initial population
selection
cross-over
mutation
Chapter 4 Local Search, Jane Hsu, Artificial
Intelligent, 2006
10Evolutionary Algorithm
- Initialize the population
- Evaluate initial population
- Repeat
- Perform competitive selection
- Apply genetic operators to generate new solutions
- Evaluate solutions in the population
- Until some convergence criteria is satisfied
11OCST Use EA
- Encode spanning tree to a string
- Generate valid initial population
- Design selection method
- Design crossover and mutation operator
- To generate new spanning tree
- Evaluate the cost
3 1 5 2 5 1 4
12OCST Use EA
- Encode spanning tree to a string
- Generate valid initial population
- Design selection method
- Design crossover and mutation operator
- To generate new spanning tree
- Evaluate the cost
13OCST Use EA
- Encode spanning tree to a string
- Generate valid initial population
- Design selection method
- Design crossover and mutation operator
- To generate new spanning tree
- Evaluate the cost
14OCST Use EA
- Encode spanning tree to a string
- Generate valid initial population
- Design selection method
- Design crossover and mutation operator
- To generate new spanning tree
- Evaluate the cost
15OCST Use EA
- Encode spanning tree to a string
- Generate valid initial population
- Design selection method
- Design crossover and mutation operator
- To generate new spanning tree
- Evaluate the cost
Cost 93
Cost 75
Cost 86
better solutions!!
16Outline
- OCST problem
- Evolutionary Algorithm
- 4 kinds of encodings for the Spanning tree
- Proposed encodings evolutionary algorithm
design - Experiment conclusion
Speaker ???
17Encodings for the Spanning Tree
- Prüfer
- The Prüfer Encoding
- LNB
- The Link and Node Biased Encoding
- NetKey
- The Network Random Key Encoding
- ES
- The Edge Set Encoding
18Prüfer
- Vertex set is 1, 2 ,3, 4, 5, 6, 7, 8
- Encode in Prüfer sequence
- 6 3 2 5 4 1 (a line)
- 5 6 3 2 1 8
- 1 1 1 3 3 3 (two-star)
- 1 1 1 1 1 1 (star)
19Prüfer Decoding
- P (3, 3, 4, 5, 4, 6)
- V 1, 2, 3, 4, 5, 6, 7, 8
20LNB The Link and Node Biased Encoding
- Encode in the bias value
- Decode by calculating the modified cost function
- Cmax is the maximum link cost
- b(i, j) is the link bias associated with the
edge from i to j - bi is the node bias associated with node i
21LNB Decoding
- Use Prims algorithm with the modified cost
matrix C
22NetKey The Network Random Key Encoding
- Encode in key sequence
- Construct the permutation
- 10 ? 8 ? 6 ? 9 ? 2 ? 7 ? 1 ? 5 ? 4 ? 3
23NetKey Decoding
- Use Kruskals algorithm
- 10 ? 8 ? 6 ? 9 ? 2 ? 7 ? 1 ? 5 ? 4 ? 3
24ES The Edge Set Encoding
- Degree constrained minimum spanning tree
- ES with heuristic (ESWH)
- ES without heuristic (ESWOH)
- Encode in edge set
- (a, c), (c, d), (b, d), (d, e)
25Evolutionary Algorithm Design Crossover and
Mutation
- Prüfer
- Mutation Swap
- LNB
- Crossover One-Point
- Mutation Random Perturbation
- NetKey
- Crossover Uniform
- Mutation Swap
- ES
- Crossover KruskalRST
- Mutation Edge Insertion
26Outline
- OCST problem
- Evolutionary Algorithm
- 4 kinds of encodings for the Spanning tree
- Proposed encodings evolutionary algorithm
design - Experiment conclusion
Speaker ???
27A New Encoding for the OCST
- Each spanning tree is encoded as a string of
length 2(N-1) - Each elements is in the range 1, N
- Each adjacency pair in the string represents an
edge in G - Defines the possible edge set on the spanning
tree
28How to decode the string?
- Cycle-Free Tree Construction Routine
- Add edges that do not induce a cycle
- Cycle-Breaking Tree Construction Routine
- Add edges one by one, on cycle remove the edge
with the largest cost.
29Cycle-Breaking Tree Construction Routine
- E (N1, N2), (N2, N3), , (N2n-2, N2n-1)
- U 1,2,,n, T
- For i 1..2n-2
- Remove (Ni, Ni1) from E
- If Ni and Ni1 not in U, put (Ni, Ni1) into T
and remove Ni, Ni1 from U - If Ni is in U but Ni1 is not, put (Ni, Ni1) in
T and remove Ni1 from U - If both Ni and Ni1 are not in U and (Ni, Ni1)
is in T, do nothing - If both Ni and Ni1 are not in U and (Ni, Ni1)
is not in T, add (Ni, Ni1) into T and find out
the largest edge in the cycle to remove
30A New Encoding for OCST
5
1
5
1
4
1
5
4
1
5
2
7
2
7
8
8
3
2
3
2
9
9
31Theorem 1
- Any string of 2(N-1) node identifiers, which
contains each node at least once, encodes a valid
spanning tree when using CB-TCR - Each node appears in the string and will be added
into T - Once a node is added, it is not removed
- As cycle induced, some edge is removed from T to
ensure cycle-free property
32Theorem 2
- Given any spanning tree on N nodes, there is a
string of at most 2(N-1) node identifiers which,
when using CB-TCR, encodes precisely that tree - Use induction construct tree of n nodes from
tree of n-1 nodes by adding an edge with leaf
node on the tree - When k 2, the tree could be encoded in a string
of length 2
33Theorem 2 (cond.)
- Assume the when k n, each n-node spanning tree
could be generated by a string of length at most
2(n-1) without any edge removal in the
tree-construction process - At k n1, choose a leaf node y and its
adjacency node x. If (a, x) is some edge in the
representation of remaining n nodes, replace (a,
x) by (a, x, y, x) to form a new string - The new string has length at most
- 2(n-1) 2 2n
34Evolutionary Algorithm Design
- How to do reproduction and crossover in the new
coding scheme? - Reproduction Real World Tournament Selection
(RWTS) - Crossover Adjacent Node Crossover (ANX)
35Real World Tournament Selection
- Score each string and give higher score ones more
probability to mate - Pair each 2 strings in the last generation and
choose the floor(m/2) higher score ones to be the
level 1 winner - Pair level i winner and choose the higher score
ones to generate level i1 winner
36Real World Tournament Selection (cond.)
- Algorithm RWTS
- i
- for i 1, 2,
- Generate level i winner and put it into I
- if level i winner 1 then break
- If I lt m, copy level i winner multiple times to
fill up the slots.
37Adjacent Node Crossover
- Construct the offspring in string format
element-wise one by one - Starting from some node c, check parent A1 and A2
for nodes adjacent to c, choose one from them to
get the next node - Define Aij be the set of nodes adjacent to j of
tree Ai
38Adjacent Node Crossover
- Build adjacent map A1t and A2t
- Select starting point c randomly, O1 c
- For i 2 ..N
- S lt- A1c n A2c, V lt- A1c ? A2c
- If S is not empty then choose
- p argmin_j in S d(c, j)
- remove p from A1and2c
- remove c from A1and2p
-
39Adjacent Node Crossover
- else if V is not empty then choose
- p argmin_j in V d(c, j)
- remove p from A1or2c
- remove c from A1or2p
- else
- random choose a valid p
- Oi lt- p, c lt- p
-
40An example
41An example
42Some notes
- Is the generated tree is always a valid spanning
tree? - Not necessary!
- Some node may not be traversed at all!
- Solve it by post-processing to repair this
43Outline
- OCST problem
- Evolutionary Algorithm
- 4 kinds of encodings for the Spanning tree
- Proposed encodings evolutionary algorithm
design - Experiment conclusion
Speaker ???
44Experiment
- Each algorithm repeat 20 times
- Use published benchmark instances
- Symbol define
- Gap
- Gen mean of generations to achieve best sol
- Time cost time of achieving best sol
- Opt of trials that find best sol
45Locality and Diversity
- Locality
- Phenotype distance
- Mutation innovation (MI)
- Compare with mutant and its parent
-
- Diversity
- The relation between phenotype and fitness
distance - Fitness distance
46Experimental results
47Comparison of Locality
- Redundancy
- Heuristic bias of encodings
High value represent low degree of locality
48Diversity of CB-TCR
Solutions with small fitness values can easily
find the optimal solution
49ESWH
ESWOH
LNB
NetKey
P24
B35U
50Conclusion
- The optimal solution of the OCST problem is
biased towards the MST - Propose a new encoding CB-TCR, and use EA with
RWTS strategy in addressing the OCST problem - CB-TCR has better performance
- Relative high locality
- Preserve the population diversity for a long
generation