Ejemplo n.º 1
0
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']
    }
Ejemplo n.º 2
0
        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()):
Ejemplo n.º 3
0
        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
Ejemplo n.º 4
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()