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)
예제 #5
0
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
예제 #6
0
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)