def setUp(self): self.graphA = graph.Graph(8) self.ListaSasiedztwaA = [ edge.Edge(1, 2, 2), edge.Edge(2, 3, 9), edge.Edge(3, 4, 13), edge.Edge(4, 5, 4), edge.Edge(5, 6, 33), edge.Edge(6, 2, 1), edge.Edge(2, 4, 6), edge.Edge(4, 6, 30), edge.Edge(1, 3, 20), edge.Edge(3, 5, 11), edge.Edge(5, 1, 17), edge.Edge(5, 7, 5), edge.Edge(6, 1, 35) ] for item in self.ListaSasiedztwaA: self.graphA.add_edge(item) self.kruskalA = MSTKruskal.Kruskal(self.graphA) self.graphB = graph.Graph(9) self.ListaSasiedztwaB = [ edge.Edge(0, 3, 9), edge.Edge(0, 1, 5), edge.Edge(0, 6, 3), edge.Edge(1, 5, 6), edge.Edge(1, 4, 8), edge.Edge(1, 7, 7), edge.Edge(1, 2, 9), edge.Edge(2, 3, 9), edge.Edge(2, 4, 4), edge.Edge(2, 7, 3), edge.Edge(3, 6, 8), edge.Edge(4, 6, 1), edge.Edge(4, 5, 2), edge.Edge(5, 6, 6), edge.Edge(6, 7, 9) ] for item in self.ListaSasiedztwaB: self.graphB.add_edge(item) self.kruskalB = MSTKruskal.Kruskal(self.graphB) self.graphC = graph.Graph(7) self.ListaSasiedztwaC = [ edge.Edge(1, 2, 15), edge.Edge(2, 5, 40), edge.Edge(1, 5, 60), edge.Edge(1, 3, 35), edge.Edge(3, 5, 30), edge.Edge(3, 4, 10), edge.Edge(1, 4, 30), edge.Edge(1, 6, 50), edge.Edge(5, 6, 70), edge.Edge(4, 6, 15) ] for item in self.ListaSasiedztwaC: self.graphC.add_edge(item) self.kruskalC = MSTKruskal.Kruskal(self.graphC)
def create_first_population(self): print "create first population" # création du graphe self.M=Chargement.EuclideanDistMatrix("./dev/data/n10-2") self.nb_nodes = len(self.M) F=MSTKruskal.MinimumSpanningTree(self.M) self.graph = MSTKruskal.convertToAdjacent(F, self.M) # création de la première population adLN = MSTKruskal.convertToAdjacentN(F) Lev = Chargement.getLevels(adLN) #for cycle in Chargement.getCycles(Lev, adLN, 3): # self.pop.append([int(i) for i in cycle]) self.pop = [Chargement.getCycles(Lev, adLN, 3)] print self.pop print type(self.pop), type(self.pop[0][0])
edge.Edge(1, 4, 30), edge.Edge(1, 6, 50), edge.Edge(5, 6, 70), edge.Edge(4, 6, 15) ] print "\nGraf 1:" for item in ListaSasiedztwa: graph1.add_edge(item) print "Lista wierzcholkow:" print graph1.list_nodes() graph1.show_graph() kruskal1 = MSTKruskal.Kruskal(graph1) kruskal1.show_mst(kruskal1.make_mst()) print "\nGraf 2:" for item in ListaSasiedztwa2: graph2.add_edge(item) print "Lista wierzcholkow:" print graph2.list_nodes() graph2.show_graph() kruskal2 = MSTKruskal.Kruskal(graph2) kruskal2.show_mst(kruskal2.make_mst()) print "\nGraf 3:"
M=EuclideanDistMatrix("./dev/data/n40-1") print("=====================") print("Matrice de couts") print("=====================") print(M) print("=====================") print("ACM sous forme de liste d'aretes") print("=====================") F=K.MinimumSpanningTree(M) print(F) print("=====================") print("Liste d'adjacence") print("=====================") adL=K.convertToAdjacentN(F) print(adL) print("=====================") print("Liste des Niveaux de l'ACM: par defaut, le noeud 0 est la racine") print("=====================") Lev=getLevels(adL) print(Lev) print("=====================") k=5 print("Solution finale: liste des cycles de longueur <=",k) print("=====================") print(getCycles(Lev,adL,k))