16 def readLogFile(self, fileName):
18 logFile = open(fileName,
'r')
20 print(
"Couldn't open the file ", fileName)
31 readMax = readMin = readAvg = readStd =
False
32 readEval = readTime =
False
35 items = [word
for word
in line.split()]
38 if(items[0] ==
"Generation:"):
39 generation.append(int(items[1]))
41 if(
not readEval
and items[0] ==
"Evaluations:"):
42 eval.append(int(items[1]))
44 if(
not readTime
and items[0] ==
"Elapsed"):
45 time.append(int(items[2]))
47 if(
not readMax
and items[0] ==
"max:"):
48 max.append(float(items[1]))
50 if(
not readMin
and items[0] ==
"min:"):
51 min.append(float(items[1]))
53 if(
not readAvg
and items[0] ==
"avg:"):
54 avg.append(float(items[1]))
56 if(
not readStd
and items[0] ==
"stdev:"):
57 std.append(float(items[1]))
59 if(inGeneration
and readMax
and readMin
and readAvg
and readStd):
60 inGeneration = readMax = readMin = readAvg = readStd =
False
61 readEval = readTime =
False
65 self.
times.append(time)
66 self.
evals.append(eval)
78 def getPartialLog(self, percentage):
81 logNo = int((len(self.
generations[i]) - 1) * percentage);
83 stat.append(self.
mins[i][logNo])
84 stat.append(self.
maxs[i][logNo]);
85 stat.append(self.
avgs[i][logNo]);
87 stat.append(self.
evals[i][logNo]);
88 stat.append(self.
times[i][logNo]);
97 stat.append(min(self.
mins[i]))
98 stat.append(max(self.
maxs[i]));
99 stat.append(self.
avgs[i][-1]);
100 stat.append(self.
stds[i][-1]);
101 stat.append(self.
evals[i][-1]);
102 stat.append(self.
times[i][-1]);
108 def getMean(self, values):
110 for i
in range(len(values)):
112 return sum / len(values)
115 def getStdDev(self, values):
120 for i
in range(len(values)):
121 numerator += ((values[i] - average) * (values[i] - average));
122 denominator = (len(values) - 1)
123 return math.sqrt(numerator / denominator)
126 def getMin(self, values):
128 for i
in range(len(values)):
134 def getMax(self, values):
136 for i
in range(len(values)):
142 def getMedian(self, values):
144 if len(values) % 2 == 0:
145 return (values[int(len(values) / 2) - 1] + values[int(len(values) / 2)]) / 2
147 return values[int(len(values) / 2)]