def getElementValueAndFitness(el): mid = el.size/2 maxValueBS = BinaryString([0] + (mid-1)*[1]) multiplier = 1.0/maxValueBS.binToInt() [x,y] = divideElement(el) xValue = abs(10 * x.binToInt() * multiplier) - 5 yValue = abs(10 * y.binToInt() * multiplier) - 5 value = f(xValue,yValue) return [xValue, yValue, value]
def populationFitnessCalculation(population): fitnessList = [] bestFitness = 0 bestIndex = 0 maxValueBS = BinaryString([0] + (population[0].size-1)*[1]) multiplier = 1.0/maxValueBS.binToInt() for i in range(len(population)): value = abs(population[i].binToInt() * multiplier) fitnessList.append(g(value)) if fitnessList[i] > bestFitness: bestFitness = fitnessList[i] bestIndex = i return [fitnessList, bestIndex]
def populationFitnessCalculation(population): fitnessList = [] bestFitness = float('inf') bestIndex = 0 mid = population[0].size/2 maxValueBS = BinaryString([0] + (mid-1)*[1]) multiplier = 1.0/maxValueBS.binToInt() for i in range(len(population)): [x,y] = divideElement(population[i]) xValue = abs(10 * x.binToInt() * multiplier) - 5 yValue = abs(10 * y.binToInt() * multiplier) - 5 value = f(xValue,yValue) fitnessList.append(value) if fitnessList[i] < bestFitness: bestFitness = fitnessList[i] bestIndex = i return [fitnessList, bestIndex]
def getElementValueAndFitness(x): maxValueBS = BinaryString([0] + (x.size-1)*[1]) multiplier = 1.0/maxValueBS.binToInt() value = abs(x.binToInt() * multiplier) return [value, g(value)]