def exec_ag(prmt):
	
	populacao = Populacao(tipo_rep='real', selecao='roleta', cruzamento='alpha_beta', npop=prmt[0], nger=prmt[1], elitismo=prmt[5], gerar_log_exec=False, taxa_cruzamento=prmt[3], pv=0.9)
	
	if populacao.tipo_rep == 'real': populacao.inicializa_indiv_real(alpha=0.75, beta=0.25, taxa_mutacao=prmt[2], ndim=prmt[4], xmax=3, xmin=-3)
	else: populacao.inicializa_indiv_bin(nbits=prmt[5], ndim=prmt[4], taxa_mutacao=prmt[2], xmax=3, xmin=-3)

	for geracao_atual in range(0, populacao.nger):
		populacao.avalia_pop()
		populacao.exec_selecao()
		populacao.exec_cruzamento()
		populacao.calc_log_ger()
		populacao.subst_pop()
		if populacao.elitismo: populacao.exec_elitismo()

	return populacao
	inicio = time.time()
	print("\nAlgoritmo Genético em execução...")
	
	populacao = Populacao(tipo_rep='real', selecao='roleta', cruzamento='ponto', npop=100, nger=100, elitismo=True, gerar_log_exec=False, taxa_cruzamento=0.8, pv=0.9)
	
	if populacao.tipo_rep == 'real': populacao.inicializa_indiv_real(alpha=0.75, beta=0.25, taxa_mutacao=0.05, ndim=10, xmax=2, xmin=-2)
	else: populacao.inicializa_indiv_bin(nbits=10, taxa_mutacao=0.05, ndim=10, xmax=3, xmin=-3)
	
	print(colored('\033[1m' + populacao.parametros + '\033[0m', "green"))
	for geracao_atual in tqdm(range(0, populacao.nger), position=0, leave=True):
		populacao.avalia_pop()
		populacao.exec_selecao()
		populacao.exec_cruzamento()
		populacao.calc_log_ger()
		populacao.subst_pop()
		if populacao.elitismo: populacao.exec_elitismo()

	fim = time.time()
	log_ger = list(map(list, zip(*populacao.log_ger)))
	melhores_ger, media_ger, mediana_ger, std_fitness = log_ger[0], log_ger[1], log_ger[2], log_ger[3]

	print(colored('\033[1m'+"\n-> Solução Encontrada: ", "green")) 
	print(colored('\033[1m'+"\n-> Melhor Indivíduo: %.10f" % populacao.melhor_individuo.fitness, "green")) 
	if populacao.tipo_rep == "real": print(colored("Xns: ", "green"), populacao.melhor_individuo.cromossomo)
	else: print(colored("Xns: ", "green"), populacao.melhor_individuo.x_ns)
	print(colored('\033[1m'+"\n-> Media Fitness : %.10f" % populacao.media_fitness, "blue")) 
	print(colored('\033[1m'+"\n-> Media Fitness Geral: %.10f" % np.mean(media_ger), "blue")) 
	print(colored('\033[1m'+"\n-> Mediana Fitness : %.10f" % populacao.mediana_fitness, "blue")) 
	print(colored('\033[1m'+"\n-> Mediana Fitness Geral: %.10f" % np.mean(mediana_ger), "blue")) 
	print(colored('\033[1m'+"\n-> STD Fitness : %.10f" % populacao.std_fitness, "blue")) 
	print(colored('\033[1m'+"\n-> STD Fitness Geral: %.10f" % np.mean(std_fitness), "blue"))