コード例 #1
0
ファイル: assigmt3.py プロジェクト: obedmr/ec-ea
def genetic_algorithm(args):

    minmax = (args.min, args.max)
    N = args.N
    gens = args.gens

    solution = common.initialize(N,minmax)
    best_fitness = common.fitness(solution[0])

    for gen in range(1, gens):
        if gen % 10 == 0:
            print("Generation :#%d" % gen)

        mutated = mutation.ga_mutation(solution, minmax)
        fitness = common.fitness(mutated[0])

        if fitness <= best_fitness:
            best_fitness = fitness
            solution = mutated
            common.write_data(gen, fitness, 'ga.dat')

        if fitness == 0:
            break

    print("#########################")
    print("# Strategy              : Genetic Algorithms")
    print("# Generations           : " + str(gens))
    print("# Best Solution Fitness : %.3f" % best_fitness)
    print("# Log File              : ./ga.dat")
    print("# Graph                 : Genetic_Algorithm_Ackleys_Function.png")
    print("#########################")
    
    common.plot('Genetic Algorithm: Ackleys Function', 'ga.dat')
コード例 #2
0
ファイル: assigmt4.py プロジェクト: obedmr/ec-ea
def genetic_algorithm(args):

    minmax = (args.min, args.max)
    N = args.N
    gens = args.gens

    solution = common.initialize(N,minmax)
    best_fitness = common.fitness(solution[0])

    for gen in range(1, gens):
        if gen % 10 == 0:
            print("Generation :#%d" % gen)

        mutated = mutation.ga_mutation(solution, minmax)
        fitness = common.fitness(mutated[0])

        if fitness >= best_fitness:
            best_fitness = fitness
            solution = mutated
            common.write_data(gen, fitness, 'ga.dat')

    print("#########################")
    print("# Strategy              : Genetic Algorithms")
    print("# Generations           : " + str(gens))
    print("# Best Solution Fitness : %.3f" % best_fitness)
    print("# Log File              : ./ga.dat")
    print("# Graph                 : Genetic_Algorithm_Ackleys_Function.png")
    print("#########################")
    
    common.plot('Genetic Algorithm: Ackleys Function', 'ga.dat')
コード例 #3
0
def evolutionary_strategies(args):

    minmax = (args.min, args.max)
    N = args.N
    gens = args.gens

    solution = common.initialize(N, minmax)
    best_fitness = common.fitness(solution[0])

    p = 1.5

    for gen in range(1, gens):
        if gen % 10 == 0:
            print("Generation :#%d" % gen)

        mutated = mutation.es_mutation(solution, minmax, p)
        #print(solution[0])
        #print(mutated[0])
        #print(list(map(operator.sub, mutated[0], solution[0])))

        fitness = common.fitness(mutated[0])

        if fitness <= best_fitness:
            best_fitness = fitness
            solution = mutated
            p = 1.5
            common.write_data(gen, fitness, 'es.dat')
        #elif fitness == best_fitness:
        #    p = 1
        else:
            p = 1.5**(-1 / 4)

        if fitness == 0:
            break

    print("#########################")
    print("# Strategy              : Evolutionary Strategies")
    print("# Generations           : " + str(gens))
    print("# Best Solution Fitness : %.3f" % best_fitness)
    print("# Log File              : ./es.dat")
    print(
        "# Graph                 : Evolutionary_Strategies_Ackleys_Function.png"
    )
    print("#########################")

    common.plot('Evolutionary Strategies: Ackleys Function', 'es.dat')
コード例 #4
0
ファイル: assigmt3.py プロジェクト: obedmr/ec-ea
def evolutionary_strategies(args):

    minmax = (args.min, args.max)
    N = args.N
    gens = args.gens

    solution = common.initialize(N,minmax)
    best_fitness = common.fitness(solution[0])

    p = 1.5
    
    for gen in range(1, gens):
        if gen % 10 == 0:
            print("Generation :#%d" % gen)

        mutated = mutation.es_mutation(solution, minmax, p)
        #print(solution[0])
        #print(mutated[0])
        #print(list(map(operator.sub, mutated[0], solution[0])))

        fitness = common.fitness(mutated[0])

        if fitness <= best_fitness:
            best_fitness = fitness
            solution = mutated
            p = 1.5
            common.write_data(gen, fitness, 'es.dat')
        #elif fitness == best_fitness:
        #    p = 1
        else:
            p = 1.5 ** (-1/4)
        
        if fitness == 0:
            break

    print("#########################")
    print("# Strategy              : Evolutionary Strategies")
    print("# Generations           : " + str(gens))
    print("# Best Solution Fitness : %.3f" % best_fitness)
    print("# Log File              : ./es.dat")
    print("# Graph                 : Evolutionary_Strategies_Ackleys_Function.png")
    print("#########################")
    
    common.plot('Evolutionary Strategies: Ackleys Function', 'es.dat')
コード例 #5
0
ファイル: plot.py プロジェクト: obedmr/ec-ea
#!/bin/env python3

import common

# Function 2 and 3
f2 = open('f2.dat', 'w')
f3 = open('f3.dat', 'w')

for x in range(0,20000):
    fitness_f2 = common.fitness(x * 0.001, 'f2')
    fitness_f3 = common.fitness(x * 0.001, 'f3')
    f2.write("%d, %.3f\n" % (x, fitness_f2))
    f3.write("%d, %.3f\n" % (x, fitness_f3))
    
f2.close()
f3.close()

common.plot('F2', 'f2.dat')
common.plot('F3', 'f3.dat')

# Function 5
f5 = open('f5.dat', 'w')

for x in range(0,1000):
    fitness_f5 = common.fitness(x * 0.001, 'f5')
    f5.write("%d, %f \n" % (x, fitness_f5))
    
f5.close()

common.plot('F5', 'f5.dat')
コード例 #6
0
    parser = argparse.ArgumentParser()
    parser.add_argument('-n', help="N value for Ackley Function",
                        dest='N', type=int)
    parser.add_argument("--min", help="Minimal value", type=int)
    parser.add_argument("--max", help="Maximum value", type=int)
    parser.add_argument('-g', "--generations", help="Number of Generations",
                        dest='gens', type=int)

    args = parser.parse_args()
    
    minmax = (args.min, args.max)
    N = args.N
    gens = args.gens

    solution = common.initialize(N,minmax)
    best_fitness = common.fitness(solution[0])

    p = 1.5
    
    for gen in range(1, gens):
        mutated = mutation.es_mutation(solution, minmax, p)
        fitness = common.fitness(mutated[0])

        if fitness <= best_fitness:
            best_fitness = fitness
            solution = mutated
            p = 1.5
            common.write_data(gen, fitness, 'data.dat')
        else:
            p = 1.5 ** (-1/4)
        
コード例 #7
0
#!/bin/env python3

import common

# Function 2 and 3
f2 = open('f2.dat', 'w')
f3 = open('f3.dat', 'w')

for x in range(0, 20000):
    fitness_f2 = common.fitness(x * 0.001, 'f2')
    fitness_f3 = common.fitness(x * 0.001, 'f3')
    f2.write("%d, %.3f\n" % (x, fitness_f2))
    f3.write("%d, %.3f\n" % (x, fitness_f3))

f2.close()
f3.close()

common.plot('F2', 'f2.dat')
common.plot('F3', 'f3.dat')

# Function 5
f5 = open('f5.dat', 'w')

for x in range(0, 1000):
    fitness_f5 = common.fitness(x * 0.001, 'f5')
    f5.write("%d, %f \n" % (x, fitness_f5))

f5.close()

common.plot('F5', 'f5.dat')