def testDivideIntoSubgraphs(self): # 1 - tworzenie macierzy adjacencyMatrix = [[0, 1, 1, 0, 1, 1, 1, 1], [1, 0, 1, 0, 1, 1, 1, 0], [1, 1, 0, 1, 1, 1, 1, 1], [0, 0, 1, 0, 1, 0, 0, 0], [1, 1, 1, 1, 0, 1, 1, 1], [1, 1, 1, 0, 1, 0, 0, 0], [1, 1, 1, 0, 1, 0, 0, 0], [1, 0, 1, 0, 1, 0, 0, 0]] network = Network(adjacencyMatrix) # sprawdzenie metody alg = PlanarMIS(network) alg.divideIntoSubgraphs() # wezly z podgrafu i musza miec jako sasiadow tylko inne wezly z podgrafu i - albo zadnych for node in network.ndList: if node.memory.has_key('tree_num'): i = node.memory['tree_num'] neigh_cp = node.memory['neighbors_cp'] for neigh in neigh_cp: if not network.ndList[neigh].memory.has_key('tree_num'): self.fail("sasiad nie jest w tym zadnym podgrafie") else: self.failIf(network.ndList[neigh].memory['tree_num'] != i) else: # wszystkie wezly musza byc w jakims podgrafie self.fail("sasiad nie jest w zadnym podgrafie") # sprawdzanie ilosci sasiadow for node in network.ndList: neigh_len = len(node.memory['neighbors_cp']) self.failIf(neigh_len > 6) # wypisywanie pogrfaow for i in range(5): print 'wezly z podgrafu', i, ':' for node in network.ndList: if node.memory['tree_num'] == i: print node.ID, print ' '
from graph_tool.all import * adjacencyMatrix = getUnitDiskGraph(10) # tworzenie sieci network = Network(adjacencyMatrix) alg = PlanarMIS() network.algorithm = alg alg.network = network nodes = network.ndList alg.divideIntoSubgraphs() # czesc rysujaca g = Graph(directed=False) # dodawanie wezlow - indeksowanie bedzie sie zgadzalo for node in nodes: g.add_vertex() # dodawanie krawedzi - tu trzeba isc po macierzy incydencji # i - wiersze macierzy # j - kolumny macierzy # n - ilosc wezlow n = len(adjacencyMatrix)