def run1(self): timeStep = 1 while timeStep <= self.timeSteps: self.paramsGA1["simulator"].clear() self.paramsGA1["timeSteps"] = timeStep ga1 = GA1(self.paramsGA1) bestIndividuals = ga1.run() newPopulation = self.addTimeStep(bestIndividuals) self.paramsGA1["populationGA1"] = newPopulation if timeStep <= self.timeSteps//2: timeStep *= 2 elif timeStep < self.timeSteps and timeStep > self.timeSteps//2: timeStep = self.timeSteps elif timeStep == self.timeSteps: break bestIndividual = newPopulation[0][0:self.params["crossroads"]] self.params["simulator"].clear() self.params["simulator"].setState(bestIndividual) fitness = 0 for timeStep in range(self.params["timeSteps"]): population = [] for individual in newPopulation: population.append( individual[timeStep*self.params["crossroads"]:(timeStep+1)*self.params["crossroads"]]) print("Timtestep: " + str(timeStep)) self.paramsGA2["densities"] = None self.paramsGA2["population"] = population ga2 = GA2(self.paramsGA2) best, bestIndividual = ga2.run() fitness += best self.params["simulator"].setState(bestIndividual) print(fitness) self.params["simulator"].exit() return fitness
def run1(self): newPopulation = self.params["populationGA2"] if newPopulation is not None: bestIndividual = newPopulation[0][0:self.params["crossroads"]] fitness = 0 for timeStep in range(self.params["timeSteps"]): if newPopulation is not None: population = [] for individual in newPopulation: population.append(individual[timeStep*self.params["crossroads"]:(timeStep+1)*self.params["crossroads"]]) else: population = None print("Timtestep: " + str(timeStep)) self.paramsGA2["population"] = population ga2 = GA2(self.paramsGA2) best, bestIndividual = ga2.run() fitness+=best self.positions[timeStep] = self.params["simulator"].getPositions(bestIndividual[0], True) self.params["simulator"].setState(bestIndividual) print(self.positions) print(fitness) self.params["simulator"].exit() return fitness
def run2(self): fitness = 0 for timeStep in range(self.params["timeSteps"]): self.paramsGA2["densities"] = None self.paramsGA2["population"] = None ga2 = GA2(self.paramsGA2) fitness += ga2.run() self.params["simulator"].exit() return fitness
def run2(self): self.params["simulator"].clear() fitness = 0 for timeStep in range(self.params["timeSteps"]): print("Timtestep: " + str(timeStep)) self.paramsGA2["densities"] = None self.paramsGA2["population"] = None ga2 = GA2(self.paramsGA2) best, improvement, population = ga2.run() fitness += best self.params["simulator"].setState(population) print(fitness) self.params["simulator"].clear() return 0
def run2(self): self.ga1.run() self.params["simulator"].changeRoutes() print("\n\n\nGA2:") print("*"*40) for timeStep in range(self.timeSteps): print("*"*40) print("Time step: " + str(timeStep+1)) self.paramsGA2["densities"] = self.ga1.getDensities(timeStep) self.paramsGA2["population"] = self.ga1.getTimings(timeStep) ga2 = GA2(self.paramsGA2) ga2.run() print("*"*40) self.params["simulator"].exit()
def run(self, timeStep): newPopulation = self.params["populationGA2"] if newPopulation is None: population = None elif any(isinstance(i, list) for i in newPopulation): population = [] for individual in newPopulation: population.append(individual[timeStep*self.params["crossroads"]:(timeStep+1)*self.params["crossroads"]]) else: population = [] population.append(newPopulation[timeStep*self.params["crossroads"]:(timeStep+1)*self.params["crossroads"]]) self.paramsGA2["population"] = population ga2 = GA2(self.paramsGA2) fitness, improvement, bestIndividual = ga2.run() positions = self.params["simulator"].getPositions(bestIndividual) self.params["simulator"].setState(bestIndividual) return improvement, bestIndividual[0], positions
def run2(self): timings = [] self.params["simulator"].clear() fitness = 0 for timeStep in range(self.params["timeSteps"]): print("Timtestep: " + str(timeStep)) self.paramsGA2["densities"] = None self.paramsGA2["population"] = None ga2 = GA2(self.paramsGA2) best, improvement, population = ga2.run() timings.append(population[0]) fitness+=best self.params["simulator"].setState(population) print(fitness) print(timings) print(fitness) print(timings) self.params["simulator"].exit() return ((worstFitness-bestFitness)/worstFitness)*100