def Run_GA(options, cities): # Log logging.debug('Running Genetic Algorithm') # Build the Initial Population population = Tour_Manager(cities).Build_Population( options.ga_params['population_size']) # Construct Genetic Algorithm ga = Genetic_Algorithm( population=population, fitness_function=lambda Tour: Tour.distance, crossover_algorithm=Tour.Tour.Crossover, selection_rate=options.ga_params['selection_rate'], mutation_algorithm=Tour.Tour.Mutate, mutation_rate=options.ga_params['mutation_rate'], preservation_rate=options.ga_params['preservation_rate'], exit_on_repeats=options.ga_params['exit_on_repeats']) # Run N Times now = time.time() logging.debug('Solving with Genetic Algorithm') population = ga.Run_Iterations(options.ga_params['max_iterations']) ga_time = time.time() - now # Log the Time logging.info('GA Runtime: ' + str(ga_time) + ' seconds') # Return results return { 'time': ga_time, 'solution': population[0], 'population_size': len(population), 'selection_rate': options.ga_params['selection_rate'] }
len_train = len(train) accept = 0 for inputs, correct in zip(train, target): output = mlp.output(inputs) if numpy.argmax(output) == numpy.argmax(correct): accept += 1.0/len_train return accept ga = Genetic_Algorithm(individuals = 1000, mutation_rate = 0.1, # (4 caracteristicas + 1 do bias) * 2 neuronios = 10 # (2 saidas de neuronio + 1 do bias) * 3 neuronios de saida = 9 # total de pesos 10+9 = 19 genotype = 19, fenotype = fenotype, genotype_type = Genetic_Algorithm.TYPE_FLOAT) # ga.print_individuals() ga.execute(generations = 100, log=True) # ga.print_individuals() print "Best Individual for all generations", ga.get_best_individual().get_genotype(), ga.get_best_individual_fenotype() genotype = ga.get_best_individual().get_genotype() pos = 0 for i, layer in enumerate(mlp.get_layers()): for j, neuron in enumerate(layer.get_neurons()):
accept = 0 for inputs, correct in zip(train, target): output = mlp.output(inputs) if numpy.argmax(output) == numpy.argmax(correct): accept += 1.0 / len_train return accept ga = Genetic_Algorithm( individuals=1000, mutation_rate=0.1, # (4 caracteristicas + 1 do bias) * 2 neuronios = 10 # (2 saidas de neuronio + 1 do bias) * 3 neuronios de saida = 9 # total de pesos 10+9 = 19 genotype=19, fenotype=fenotype, genotype_type=Genetic_Algorithm.TYPE_FLOAT) # ga.print_individuals() ga.execute(generations=100, log=True) # ga.print_individuals() print "Best Individual for all generations", ga.get_best_individual( ).get_genotype(), ga.get_best_individual_fenotype() genotype = ga.get_best_individual().get_genotype() pos = 0
''' Created on 15/09/2015 @author: renan ''' from ga.Genetic_Algorithm import Genetic_Algorithm import numpy def fenotype(individual): return numpy.sum(individual.get_genotype()) if __name__ == '__main__': ga = Genetic_Algorithm(individuals=4, mutation_rate=0.1, genotype=5, fenotype=fenotype, genotype_type=Genetic_Algorithm.TYPE_BINARY) ga.print_individuals() ga.execute(generations=10) ga.print_individuals() print "Best Individual for all generations", ga.get_best_individual().get_genotype(), ga.get_best_individual_fenotype()