def main(): topo = {} file = open('berlin52.txt', 'r') #leitura do arquivo for i in range(5): conteudo = file.readline().strip('\n').split(": ") topo[conteudo[0]] = conteudo[1] dimenssao = int(topo['DIMENSION']) file.readline() #pula linha vet = [0 for i in range(dimenssao+1)] for i in range(1, dimenssao+1): #passa as linhas do arquivo para um vetor, pulando o numero da linha vet[i] = file.readline().strip('\n').split(' ')[1:] vet[i][0] = float(vet[i][0]) vet[i][1] = float(vet[i][1]) matriz = [[0 for i in range(dimenssao+1)] for i in range(dimenssao+1)] #matriz de adjacência #preenche a matriz com a distancia euclidiana dos pontos do vetor for i in range(1, dimenssao+1): for j in range(1, dimenssao+1): matriz[i][j] = euclidiana(vet[i][0], vet[j][0], vet[i][1], vet[j][1]) # print(matriz) file.close() populacao = genetico.gerar_populacao(300, dimenssao) f = open("testes.txt", "a") caminho, fit = genetico.genetico('mutacao1', populacao, genetico.fitness, 100, 5, matriz, 'alternativo', 30, 'elitismo') print(caminho, fit) f.write('\nAlternativo 1:\n') f.write(str(caminho)) f.write('\n') f.write(str(fit)) f.write('\n')
def main(argv): file = open(argv[1], 'r') # formata as coordenadas numa matriz, retorna coordenadas e # o cabecalho do arquivo coordenadas, header = utils.formatar_coord(file) # gera a matriz de distancias entre os pontos matriz = utils.gerar_matriz(header, coordenadas) # gera uma populacao inicial pop = genetico.gerar_populacao(200, int(header['DIMENSION'])) resultados = genetico.genetico( pop, genetico.fitness, 15, 5, matriz, elitismo=False, use_crossover_alternativo=True, id_mutacao=2) print(header['NAME']) for resultado in resultados: print(resultado)