def gera_grafo(df) -> Grafo: global grafo grafo = Grafo(df) for i in range(len(colunas)): # Pega o nome da cidade pelo índice cidade_origem = colunas[i] for j in range(len(colunas)): # Pega o peso e o destino da aresta e adiciona no objeto Grafo destino = df.index[j] peso = df.iloc[j][cidade_origem] #aresta = dict(rota=(cidade_origem, destino), peso=peso) if peso != '-': aresta = (int(cidade_origem), int(destino), int(peso)) grafo.adiciona_arestas(aresta) fitness = mlrose.TravellingSales(distances=grafo.arestas) # Define optimization problem object problem_fit = mlrose.TSPOpt(length=8, fitness_fn=fitness, maximize=False) best_state, best_fitness = mlrose.genetic_alg(problem_fit, mutation_prob=0.2, max_attempts=100, random_state=2) print(fitness) return grafo