Пример #1
0
def find_best_match():
    """Find the best matching word from the dictionary."""
    i = input().split()
    time_limit = int(i[0])
    letter_multiset_size = int(i[1])
    initial_size = int(i[2])
    multiset = {}
    initial_words = []
    start_time = time.time()

    for _ in range(letter_multiset_size):
        e = input().split()
        if e[0] in multiset.keys():
            multiset[e[0]]['count'] += 1
        else:
            multiset[e[0]] = {'count': 1, 'value': int(e[1])}

    for _ in range(initial_size):
        initial_words.append(input().replace('\r', ''))

    trie = read_dict(multiset)
    matcher = WordMatcher(trie)
    genetic = GeneticAlgorithm(matcher)

    preprocessing_time = time.time() - start_time
    result = genetic.search(time_limit - preprocessing_time, initial_words)

    print(result, file=sys.stderr)
    print(matcher.fitness(result))
Пример #2
0
def escape():
    """Perform genetic algorithm on a maze from the input data."""
    i = list(map(int, input().split()))
    time_limit = i[0]
    n = i[1]
    m = i[2]
    initial_size = i[3]
    population_size = i[4]

    grid = []
    start_field = -1
    exit_field = -1
    for i in range(n):
        row = list(map(lambda u: Field(int(u)), input().replace('\r', '')))
        if Field.AGENT in row:
            start_field = (i, row.index(Field.AGENT))
        if Field.EXIT in row:
            exit_field = (i, row.index(Field.EXIT))
        grid.append(row)

    maze = Maze(grid, start_field, exit_field)

    initial_paths = []
    for i in range(initial_size):
        initial_paths.append(path_from_string(input().replace('\r', '')))

    genetic = GeneticAlgorithm(maze, population_size)
    unchanged_iterations = 10 * (n * m)
    result = genetic.search(time_limit, initial_paths, unchanged_iterations)

    print(result[1])
    print_path(result[0])
Пример #3
0
def main():
    # Define objective class
    objective_class = Objective_function(func1, 2, lo_bounds1, up_bounds1)

    #set PSO optimizer
    ga = GeneticAlgorithm(nb_generations=20,
                          nb_populations=10,
                          objective_class=objective_class)

    ga.evolve()
    for i in ga.populations:
        print(i.fitness)
Пример #4
0
def optimize_route(objects, generations, crossover_chance, mutation_chance,
                   population):
    """
    Return list of points ordered by genetic algorithm.
    """
    generator = RouteGenerator(objects)
    ga = GeneticAlgorithm(generator, crossover_chance, mutation_chance,
                          population)

    print '\nINITIAL ROUTES'
    print ', '.join(
        [str(int(route.get_length())) for route in ga.get_solutions()])

    # initial = [route.get_length() for route in ga.get_solutions()]
    # best_initial = min(initial)
    # while ga.get_best_solution().get_length() > best_initial * 0.5:
    #     # step condition instead of generations number
    #     # print ga.get_best_solution().get_length(), best_initial
    #     ga.evolve()

    for _ in range(generations):
        ga.evolve()

    print '\nLAST GENERATION'
    print ', '.join(
        [str(int(route.get_length())) for route in ga.get_solutions()])

    best = ga.get_best_solution()
    print '\nLENGTH OF ROUTE AFTER OPTIMIZATION'
    print int(best.get_length())

    return best.objects
Пример #5
0
def optimize_route(objects, generations, crossover_chance, mutation_chance,
                   population):
    """
    Return list of points ordered by genetic algorithm.
    """
    generator = RouteGenerator(objects)
    ga = GeneticAlgorithm(
        generator, crossover_chance, mutation_chance, population
    )

    print '\nINITIAL ROUTES'
    print ', '.join([
        str(int(route.get_length())) for route in ga.get_solutions()
    ])

    # initial = [route.get_length() for route in ga.get_solutions()]
    # best_initial = min(initial)
    # while ga.get_best_solution().get_length() > best_initial * 0.5:
    #     # step condition instead of generations number
    #     # print ga.get_best_solution().get_length(), best_initial
    #     ga.evolve()

    for _ in range(generations):
        ga.evolve()

    print '\nLAST GENERATION'
    print ', '.join([
        str(int(route.get_length())) for route in ga.get_solutions()
    ])

    best = ga.get_best_solution()
    print '\nLENGTH OF ROUTE AFTER OPTIMIZATION'
    print int(best.get_length())

    return best.objects
Пример #6
0
def main(arguments):
    trainer = Trainer(arguments.path, arguments.log)
    ga = GeneticAlgorithm({
        'model_arch': ['conv->lstm', 'lstm->conv', 'conv', 'lstm'],
        'optimizer': ['adam', 'sgd', 'RMSprop'],
        'conv_filters': [4, 8, 16, 32, 64, 128],
        'conv_layers': [1, 2, 3, 5],
        'conv_filter_size': [3, 5],
        'use_max_pooling': [False, True],
        'activation': ['relu', 'tanh', 'sigmoid'],
        'lstm_cells': [4, 8, 16, 32, 64, 128],
        'lstm_layers': [1, 2],
        'loss': ['mse', huber_loss_mean],

        'epochs': [10, 20, 30, 40, 50],
        'batch_size': [32, 64, 128, 256],
        'window_size': [5, 10, 20, 30, 40, 50],
        'num_derivatives': [0, 1, 2, 3, 4, 5],
        'scaler_class': [utils.StandardScaler, utils.MinMaxScaler, utils.NoScaler],
        'num_points_to_predict': [1, 2, 3]
    }, trainer.fitness, hall_of_fame=100)

    kwargs = ga.get_kwargs(ga.sample())

    kwargs['scaler_class'] = utils.StandardScaler
    kwargs['epochs'] = 10
    kwargs['model_arch'] = 'conv'
    kwargs['num_derivatives'] = 3
    kwargs['window_size'] = 30
    kwargs['epochs'] = 40
    kwargs['loss'] = huber_loss_mean
    kwargs['use_max_pooling'] = False
    kwargs['conv_filters'] = 64
    kwargs['conv_layers'] = 2
    kwargs['optimizer'] = 'adam'
    kwargs['batch_size'] = 128
    kwargs['num_points_to_predict'] = 1
    kwargs['activation'] = 'relu'
    kwargs['conv_filter_size'] = 5

    #trainer.fitness(**kwargs)

    ga.run(100, 100)
Пример #7
0
"""
"""
from genetic import GeneticAlgorithm

image = [[False for __ in xrange(50)] for _ in xrange(80)]
g = GeneticAlgorithm(100, 10, 5, 30, 80, 50, image)
g.init_population()
# g.crossover()
# g.mutation()
g.selection()
Пример #8
0
    'neurons_per_hidden_layer': [17, 17, 17],
    'input_layer_size': 17,
    'output_layer_size': 4,
    'input_af': Log2(),
    'hidden_af': [TanH(), ReLU(), Sigmoid()],
    'output_af': TanH()
}

game_parameters = {
    'manual_input': True,
    'random': False,
    'steps': 0,
    'sleep': 0
}

ga = GeneticAlgorithm(generation_size=GENERATION_SIZE, **nn_parameters)
ga.add_new_generation(weights_method=WEIGHTS_METHOD)
ga.populate_new_generation(ga[0], ga[0], weights_method=WEIGHTS_METHOD)

for k in range(GENRATION_COUNT):
    print ' --- Generation: %5i ---' % k
    for individual in ga[-1]:
        game = run2048(**game_parameters)
        runner = Runner(game, individual, print_steps=PRINT_STEPS)
        while runner.step():
            pass
        game.gamegrid.destroy()
        individual.set_fitness(runner.calculate_fitness())
        #        print individual.get_all_weights()
        print ' === Individual: %5i ===' % individual.get_fitness()
Пример #9
0
    genomes = []
    for i in range(20):
        genomes.append(Genome())

    listofGenome = genomes.copy()
    ga = GA()
    generation = 10

    while generation > 0:
        parents = run(genomes, 20, generation)


if __name__ == '__main__':
    generation = 10
    genomes = []
    ga = GA()
    for i in range(20):
        genomes.append(Genome())

    ls = genomes.copy()

    while generation > 0:
        print("length of genomes", len(genomes))
        parents = run(genomes, 20, generation)
        print("next generation", generation)
        best_gene = parents[0]
        ref_weights = best_gene.model.get_weights()
        fp = [g.flatten_weights(m1.model.get_weights()) for m1 in parents]
        nw = ga.applyGenetic(fp, fp[-1], 20)
        print(len(parents), len(ls))
        for i in range(20):
Пример #10
0
    "rail_length": 1.0, # m

    "timestep": 0.001,
}

def fitness(params):    
    traces = rocket_architectures.sim1(**params)

    time, position, velocity, acceleration = traces
    speed = sqrt(np.sum(velocity * velocity, axis=1))
    accel = sqrt(np.sum(acceleration * acceleration, axis=1)) / 9.81 # in Gs
    max_speed = max(speed)
    max_acceleration = max(sqrt(np.sum(acceleration * acceleration, axis=1)))
    max_distance = np.max(position[:,0])
    max_height = np.max(position[:,1])

    # print(f"Distance and speed: max height:{np.max(position[:,1]):0.1f}m, distance:{max_distance:0.0f}m, "
    #     + f"max speed:{max_speed:0.0f}m/s, {ms2kmh(max_speed):0.0f}km/h), acceleration:{max_acceleration/9.81:0.0f}g")

    return max_distance

ga = GeneticAlgorithm(params, fitness)
ga.run()

print(f"Rocket length:{length:0.01f}m, volume:{volume:0.01f}l")

best_params = ga.get_best_params()
traces = rocket_architectures.sim1(**best_params)
rocket_architectures.plot_basic(traces)

Пример #11
0
    return params


if __name__ == '__main__':
    if len(sys.argv) > 1:
        params = load_configuration(sys.argv[1])
    else:
        params = get_user_input()

    structure = parse_raw_structure(params["raw_structure"])
    gen_alg = GeneticAlgorithm(
        structure,
        mfold_command=params["mfold_command"],
        population_size=int(params["population_size"]),
        iterations=int(params["iterations"]),
        mutation_rate=int(params["mutation_rate"]),
        boltzmann_factor=float(params["boltzmann_factor"]),
        initial_sequences=[
            Sequence(definition, structure)
            for definition in params["input_sequence_definitions"]
        ],
        fixed_regions=params['fixed_regions'])
    try:
        gen_alg.run()
    finally:
        print(len(gen_alg.diversity_history) - 1, " iterations completed")
        print("Diversity history: ", gen_alg.diversity_history)
        print("Fitness history: ", gen_alg.fitness_history)
        with open("diversity.dat", "w") as outfile:
            for diversity in gen_alg.diversity_history:
                outfile.write(str(diversity) + '\n')
        with open("fitness.dat", "w") as outfile:
Пример #12
0
    print('Std Dev = ' + str(np.std(values)))
    print('Normalise Std Dev = ' + str(np.std(values) / parameter_ranges[i]))
    print('--------------------------------------')

#-----------------------------------------------------------------------------------
courses = []
course = Course()
for i in range(100):
    courses.append(course.popcornCourse(i))

threshold = 0.
generation_limit = 30
population_size = 48  # Divisible by 4
mutation_variance = 1.5

algorithm = GeneticAlgorithm(threshold, generation_limit, population_size,
                             mutation_variance, [courses[0]])


def testOneGenome(genome, courses, algorithm):
    drone, environment, stabiliser, preset_copy = algorithm.decodeGenome(
        genome)
    # For each obstacle course
    counter = 0
    energy = 0
    for c in range(len(courses)):

        # Reset all object parameters for new run (if not first run)
        environment.resetEnv(courses[c])
        drone.resetParams(preset_copy.drone_dict)
        environment.update(drone, False)
        drone.recieveLaserDistances(environment.laser_distances)
Пример #13
0
from genetic import GeneticAlgorithm
from output import Output

if __name__ == "__main__":
    print("Genetic Algorithms ..........")
    population_size = 150
    mutation_rate = 0.02
    perfect_score = 1
    target = "Fc Barcelona"
    output_object = Output(target, mutation_rate)
    genetic = GeneticAlgorithm(population_size, target, mutation_rate,
                               perfect_score, output_object)

    while True:
        finished = genetic.natural_selection()
        if finished:
            break
        output_object.print_pretty_output()
    print(
        " -----------------------      ------------------------------------------"
    )
    print(
        " -----------------------  SUCCESS    ------------------------------------------"
    )
    print(
        " -----------------------      ------------------------------------------"
    )
Пример #14
0
from product import Product
from genetic import GeneticAlgorithm

if __name__ == '__main__':
    list_products = []
    list_products.append(Product('Geladeira Dako', 0.751, 999.90))
    list_products.append(Product('Iphone 6', 0.0000899, 2911.12))
    list_products.append(Product('TV 55', 0.400, 4346.99))
    list_products.append(Product('TV 50', 0.290, 3999.90))
    list_products.append(Product('TV 42', 0.200, 2999.00))
    list_products.append(Product('Notebook Dell', 0.00350, 2499.90))
    list_products.append(Product('Ventilador Panasonic', 0.496, 199.90))
    list_products.append(Product('Microondas Eletrolux', 0.0424, 308.66))
    list_products.append(Product('Microondas LG', 0.0544, 429.90))
    list_products.append(Product('Microondas Panasonic', 0.0319, 299.29))
    list_products.append(Product('Geladeira Brastemp', 0.635, 849.00))
    list_products.append(Product('Geladeira Consul', 0.870, 1199.89))
    list_products.append(Product('Notebook Lenovo', 0.498, 1999.90))
    list_products.append(Product('Notebook Asus', 0.527, 3999.00))

    limit = 3
    size_population = 200
    prob_mutation = 0.01
    num_generations = 100

    ga = GeneticAlgorithm(size_population)
    ga.solve(list_products, limit, num_generations, prob_mutation)

    pyplot.plot(ga.get_result())
    pyplot.title('Improvment through generations')
    pyplot.show()
Пример #15
0
def main():
    print('Started')
    GeneticAlgorithm(GuessText("Hello World!")).run()
Пример #16
0
#%%
import numpy as np
from genetic import GeneticAlgorithm
import time

#%%
def fitnessFunction(individual):
    x, y = individual.copy()
    z = np.sin(x) * np.cos(y) + np.sin(y ** 2) * x
    return z


#%%
startTime = time.time()
GA = GeneticAlgorithm(fitnessFunction)
bestCombo = GA.evolution()

print("Execution time: %.3f" % (time.time() - startTime))
print(bestCombo)

# %%
Пример #17
0
def fitness(params):
    try:
        traces = rocket_architectures.sim_3_boosters(**params)
    except Exception as ex:
        print(ex)
        return 0.0

    time, position, velocity, acceleration = traces
    speed = sqrt(np.sum(velocity * velocity, axis=1))
    accel = sqrt(np.sum(acceleration * acceleration, axis=1)) / 9.81  # in Gs
    max_speed = max(speed)
    max_acceleration = max(sqrt(np.sum(acceleration * acceleration, axis=1)))
    max_distance = np.max(position[:, 0])

    # print(f"Distance and speed: max height:{np.max(position[:,1]):0.1f}m, distance:{max_distance:0.0f}m, "
    #     + f"max speed:{max_speed:0.0f}m/s, {ms2kmh(max_speed):0.0f}km/h), acceleration:{max_acceleration/9.81:0.0f}g")

    return max_distance


ga = GeneticAlgorithm(params,
                      fitness,
                      population_size=40,
                      generations=30,
                      temperature_factor=0.91)
ga.run()

best_params = ga.get_best_params()
traces = rocket_architectures.sim_3_boosters(**best_params)
rocket_architectures.plot_basic(traces)
import numpy as np
import time
import os
import pickle
import random

from genetic import GeneticAlgorithm
from environment import Course

import neat

# Generate obstacles
course = Course()
course_1 = course.popcornCourse(1.5)
course_2 = course.popcornCourse(11.5)
course_3 = course.avoidCourse()
courses = [course_1, course_2, course_3]

random.seed(1)
# Algorithm Paramaters
threshold = 0.  # Fitness Threshold
generation_limit = 30
population_size = 48  # Divisible by 4
mutation_variance = 1.5

# Load Algorithm Object
algorithm = GeneticAlgorithm(threshold, generation_limit, population_size,
                             mutation_variance, courses)
# Run Genetic Algorithm
algorithm.run()
Пример #19
0
            individual.crossover_tag = None
            individual.mutation_tag = None
        genealogy_logger = logging.getLogger('genealogy')
        genealogy_logger.info(' '.join(tags))

    def __enter__(self):
        return self

    def __exit__(self, type, value, traceback):
        pass


if __name__ == "__main__":
    import sys
    import structopt
    import random
    import numpy as np
    from genetic import GeneticAlgorithm

    parameters = structopt.setup(sys.argv[1])
    random.seed(parameters.seed)
    np.random.seed(parameters.seed)

    population = Population(parameters=parameters)

    with GeneticAlgorithm(population=population,
                          convergence=parameters.convergence,
                          post_processing=parameters.post_processing,
                          adaptation=parameters.adaptation) as optimizer:
        optimizer.run()
Пример #20
0
 def draw(self, sizes):
     self.sizes = [(s[0] + 2 * self.space, s[1] + 2 * self.space) for s in sizes]
     maxvals = [self.width() - s[0] - 2 * self.space for s in sizes]
     maxvals.extend([self.height() - s[1] - 2 * self.space for s in sizes])
     ga = GeneticAlgorithm()
     ga.population = 150
     ga.n_iters = 1000
     ga.mutation_prob = 0.4
     ga.dim = 2 * self.count()
     ga.mutation_factor = int(round(min(self.width(), self.height()) / 2))
     ga.set_minvals(self.space)
     ga.set_maxvals(maxvals)
     _, minx = ga.minimize(self.fitness)
     return minx + self.space