def pruebas_tarjan(): print("\n\nPRUEBAS COMPONENTES CONEXAS\n") grafo = Grafo() grafo.add_edge('A', 'B') grafo.add_edge('B', 'C') grafo.add_edge('C', 'A') grafo.add_edge('C', 'D') grafo.add_edge('B', 'E') grafo.add_edge('E', 'D') grafo.add_edge('D', 'F') grafo.add_edge('F', 'E') grafo.add('G') #! H e I tienen que ser una sola componente grafo.add_edge('H', 'I') grafo.add_edge('I', 'H') cfc(grafo)
def pruebas_camino_minimo(): print("PRUEBAS CAMINO MINIMO\n") grafo = Grafo() grafo.add_edge(1, 2) grafo.add_edge(2, 3) grafo.add_edge(3, 4) camino = funciones.camino_minimo(grafo, 1, 4) for v in camino[:-1]: print(v, "-> ", end='') print(camino[-1]) camino2 = funciones.camino_minimo(grafo, 2, 4) for v in camino2[:-1]: print(v, "-> ", end='') print(camino2[-1]) grafo.add_edge(2, 4) camino = funciones.camino_minimo(grafo, 1, 4) for v in camino[:-1]: print(v, "-> ", end='') print(camino[-1]) camino2 = funciones.camino_minimo(grafo, 2, 4) for v in camino2[:-1]: print(v, "-> ", end='') print(camino2[-1]) grafo.add(5) camino = funciones.camino_minimo(grafo, 1, 5) print(camino)
def pruebas_beetweeness(): print("\n\nPRUEBA BEETWEENESS\n") grafo = Grafo() grafo.add_edge(1, "centro") grafo.add_edge(2, "centro") grafo.add_edge(3, "centro") grafo.add_edge(4, "centro") grafo.add_edge(5, "centro") grafo.add_edge(2, 5) importantes = funciones.beetweeness(grafo, 2) print(importantes[0]) print(importantes[1])
def pruebas_ciclo(): print("\n\n PRUEBAS CICLO DE LARGO n\n") grafo = Grafo() grafo.add_edge('A', 'B') grafo.add_edge('B', 'C') grafo.add_edge('C', 'A') grafo.add_edge('C', 'D') grafo.add_edge('B', 'E') grafo.add_edge('E', 'D') grafo.add_edge('D', 'F') grafo.add_edge('F', 'E') grafo.add('G') lista = funciones.ciclo(grafo, 'B', 3) print(lista)
def str_maze_to_maze(str_maze, ui_n_rows, ui_n_columns): str_maze_as_lines = StructArray(str_maze.splitlines()) maze = Grafo() for i in range(len(str_maze_as_lines)): line = str_maze_as_lines[i] if i % 2 == 1: for j in range(len(line)): if j % 2 == 1: row = int((i - 1) / 2) column = int((j - 1) / 2) maze.add_node((row, column)) adjacents = obtain_adjacents_in_str_maze( str_maze_as_lines, i, j, ui_n_rows, ui_n_columns) for w in adjacents: maze.add_edge((row, column), w, True) return maze
def cargar_grafo(archivo): lineas = csv.reader(archivo, delimiter='\t') grafo = Grafo() for salida, llegada in lineas: grafo.add_edge(salida, llegada) return grafo
def pruebas_camino_varios(): print("\n\n PRUEBAS CAMINO VARIOS\n") grafo = Grafo() grafo.add_edge(1, 3) grafo.add_edge(1, 2) grafo.add_edge(2, 3) grafo.add_edge(2, 4) grafo.add_edge(4, 5) grafo.add_edge(5, 3) grafo.add_edge(2, 'y') grafo.add_edge(3, 'y') grafo.add_edge(4, 'y') grafo.add_edge(5, 'y') grafo.add_edge('enc1', 1) grafo.add_edge('enc2', 'enc1') lista = "enc1,enc2" persecucion(grafo, lista, 2)