Skip to content

Commit 8dc4ec1

Browse files
authored
Merge pull request firefly-cpp#1 from lukapecnik/master
Sort optimization
2 parents c5f09f6 + 83ec5b7 commit 8dc4ec1

File tree

1 file changed

+3
-17
lines changed

1 file changed

+3
-17
lines changed

FireflyAlgorithm.py

+3-17
Original file line numberDiff line numberDiff line change
@@ -38,23 +38,9 @@ def alpha_new(self, a):
3838
delta = 1.0 - math.pow((math.pow(10.0, -4.0) / 0.9), 1.0 / float(a))
3939
return (1 - delta) * self.alpha
4040

41-
def sort_ffa(self): # implementation of bubble sort
42-
for i in range(self.NP):
43-
self.Index[i] = i
44-
45-
for i in range(0, (self.NP - 1)):
46-
j = i + 1
47-
for j in range(j, self.NP):
48-
if (self.I[i] > self.I[j]):
49-
z = self.I[i] # exchange attractiveness
50-
self.I[i] = self.I[j]
51-
self.I[j] = z
52-
z = self.Fitness[i] # exchange fitness
53-
self.Fitness[i] = self.Fitness[j]
54-
self.Fitness[j] = z
55-
z = self.Index[i] # exchange indexes
56-
self.Index[i] = self.Index[j]
57-
self.Index[j] = z
41+
def sort_ffa(self):
42+
self.Index = [i for i in range(self.NP)]
43+
self.I, self.Fitness, self.Index = [list(l) for l in zip(*sorted(zip(self.I, self.Fitness, self.Index)))]
5844

5945
def replace_ffa(self): # replace the old population according to the new Index values
6046
# copy original population to a temporary area

0 commit comments

Comments
 (0)