the population. The next generation is then created
by updating the position vectors of these individuals
to fill (N · (1 − Ψ)) individuals in the next
generation. The (N · Ψ) individuals needed to fill the
population are selected from the individuals whose
velocity is updated to undergo VPAC crossover and
mutation and the process is repeated. For clarity, the
flow of these operations is illustrated in Figure 1
where k = (N · (1 − Ψ)).
Figure 2: BPSO.
Here, we developed crossover operator to utilize
information available in the Breeding Swarm
algorithm, but not available in the standard GA
implementation. The new crossover operator,
velocity propelled averaged crossover (VPAC),
incorporates the PSO velocity vector. The goal is
creating two new child particles whose position is
between the parent’s positions, but accelerated away
from the parent’s current direction (negative
velocity) in order to increase diversity in the
population. Equations (8) show how the new child
position vectors are calculated using VPAC.
⎪
⎩
⎪
⎨
⎧
−
+
=
−
+
=
)(
0.2
)()(
)(
)(
0.2
)()(
)(
22
21
2
11
21
1
i
ii
i
i
ii
i
vp
xpxp
xc
vp
xpxp
xc
ϕ
ϕ
(9)
In these equations,
)(
1 i
xc
and
)(
2 i
xc
are the
positions of child 1 and 2 in dimension i,
respectively.
)(
1 i
xp
and
)(
2 i
xp
are the positions of
parents 1 and 2 in dimension i, respectively.
)(
1 i
vp
and
)(
2 i
vp
are the velocities of parents 1 and 2 in
dimension i, respectively.
is a uniform random
variable in the range [0.0:1.0]. Towards the end of a
typical PSO run, the population tends to be highly
concentrated in a small portion of the search space,
effectively reducing the search space. With the
addition of the VPAC crossover operator, a portion
of the population is always pushed away from the
group, increasing the diversity of the population and
the effective search space.
The child particles retain their parents’s velocity
vector
),()(
11
vpvc
)()(
22
vpvc
=
. The previous
best vector is set to the new position vector,
restarting the child’s memory by replacing new
)()(),()(
2211
xppcxppc
. The velocity and
position update rules remain unchanged from the
standard inertial implementation of the PSO. The
social parameters are set to 2.0 while inertia is
linearly decreased from 0.7 to 0.4 and a maximum
velocity (Vmax) of ±1 was allowed. The breeding
ratio was set to an arbitrary 0.3. Tournament
selection, with a tournament size of 2, is used to
select individuals as parents for crossover. The used
mutation operator is Gaussian mutation, with mean
0.0 and variance reduced linearly in each generation
from 1.0 to 0.0. Each weight in the chromosome has
probability of mutation 0.1.
4 NETWORK TRAINING
BP approach, as mentioned, has been mostly used
for training RFNN in previous works. This approach
is not easy to implement, when faced with the case
of a complete or a non-diagonal fuzzy rule base. As
we can see in Fig. 1, each rule of layer 3 is made by
only a diagonal variables, i.e. the i-th rule are made
by multiplication of the i-th outputs of layer 2.
However, if we want to use complete or non-
diagonal fuzzy rule base, it will make learning of
parameters in layer 2 totally complicated. In this
paper we propose Breeding Particle Swarm
Optimization for tuning parameters of layer 2
(
ij
m
,
ij
,
ij
) and original BP for tuning
jp
w
. These
two approaches are used simultaneously. Pseudo
code of the algorithm used in this study for training
RFNN parameters is shown in Fig. 3. The proposed
combination has various benefits for training RFNN.
First of all, there is no need to differentiate those
complex derivations for training the parameters of
the 2
nd
layer. The proposed algorithm utilizes BPSO
as a derivative-free approach for training these
parameters. The method is also a global optimization
approach that prevents training parameters from
converging to local minima. Because of simplicity
and high speed convergence, the parameters of 4
th
layer is learned by BP. Note that using a complete
fuzzy rule base doesn’t affect the tuning of
jp
w
by
BP and will not increase its complexity.
ICINCO 2008 - International Conference on Informatics in Control, Automation and Robotics
316