Algorithm 1: Speed and position updating algorithm

1

for i n do

2

a 1 = ( 1 1 r | x i t x ¯ i t | ) ( x i t x ¯ i t )

3

a 2 = ( 1 1 r | x i t x ¯ i t | ) ( v i t v ¯ i t )

4

a 3 = j = 1 m 1 r c ( x i t x j t )

5

a 4 = c v i t | v i t |

6

a 5 = R a n d o m , s . t . | a 5 | | v max |

7

v i t + 1 = v i t + c 1 a 1 + c 2 a 2 + c 3 a 3 + c 4 a 4 + c 5 a 5

8

if | v i t + 1 | > | v max | then

9

v i t + 1 = v i t + 1 | v i t + 1 | | v max |

10

end

11

if x i t S l × l v i t ( s ¯ x i t ) < 0 then

12

v i t + 1 = v i t + 1

13

end

14

x i t + 1 = x i t + v i t + 1

15

end