Esempio n. 1
0
def eval_ga(row, arguments, fit_val):
	start=time.time()

	args=arguments

	path_old = row[2]
	xpath_old = row[4]
	path_new = row[3]
	xpath_new = row[5]

	fit_val_temp=fit_val # *, tag, position, class, id
	ga = GA(
		pop_size=args.p,
		eval_lim=args.f,
		mut_rate=args.r,
		mut_k=args.k,
		crossover_rate=args.c,
		tournament_k=args.t,
		use_elitism=args.e,
		use_lin_ranking=args.l,
		dom_filepath=path_old.strip(),
		xpath=xpath_old,
		fitness_values=fit_val_temp,
		verbose=args.s
		)
	ga.select_parents()
	ga.evolve()

	xpath_robust = ga.optimum.xpath
	xpath_fitness = ga.optimum.fitness
	end=time.time()
	# print("{} seconds elapsed.".format(round(end-start,2)))
	return xpath_robust, xpath_fitness
Esempio n. 2
0
File: tsp.py Progetto: Seraphli/ga
def ga_p(city_list):
    cfg = GACfg(gene_len=25,
                gene_size=25,
                pop_size=1000,
                elite_size=50,
                tournament_num=50,
                tournament_size=100,
                mutation_rate=0.03,
                repeatable=False)
    ga = GA(fitness_func, cfg)
    ga.prepare_kwargs(city_list=city_list)
    ga.init_population()
    progress = []
    progress.append(1 / ga.cal_fitness()[0][1])
    for _ in range(100):
        early_stop = ga.evolve()
        progress.append(1 / ga.cal_fitness()[0][1])
        if early_stop:
            break

    print("Final distance: " + str(1 / ga.cal_fitness()[0][1]))
    plt.plot(progress)
    plt.ylabel('Distance')
    plt.xlabel('Generation')
    plt.show()
Esempio n. 3
0
from ga import GA
import random

arr = [[(-1 if random.randint(0, 1) == 0 else 1) for i in range(30)] for i in range(100)]
data = []
for row in arr :
  decision = -1 if random.randint(0, 1) == 0 else 1
  row[0] = decision
  data.append( (True if decision==1 else False, row) )

print(data)
######
host = GA(data=data, poolSize=10)
best = host.evolve(stableFactor=100, breedRate=0.3, mutateRate=0.2, mutationDegree=0.05, mutationComplexity=0.3)
print(best)
Esempio n. 4
0
		file = row[0]
		xpath = row[1]
		result.append(file)
		result.append(xpath)

		for fit_val in fit_vals:
			ga = GA(
				pop_size=args.p,
				eval_lim=args.f,
				mut_rate=args.r,
				mut_k=args.k,
				crossover_rate=args.c,
				tournament_k=args.t,
				use_elitism=args.e,
				use_lin_ranking=args.l,
				dom_filepath=file,
				xpath=xpath,
				fitness_values=fit_val,
				verbose=args.s
				)
			ga.select_parents()
			ga.evolve()
			result.append(ga.optimum.xpath)
		results.append(result)

	with open("results.csv", "w", newline='') as csvfile:
		writer = csv.writer(csvfile)
		for row in results:
			writer.writerow(row)