Beispiel #1
0
def main():
    while True:
        printMenu()
        inputs = input("Seleccione una opción para continuar\n")
        if int(inputs[0]) == 1:
            print("Cargando información de los archivos ....")
            catalog = initCatalog()
            loadData(catalog)
        elif int(inputs[0]) == 2:
            verticesNum, edgesNum = controller.countNodesEdges(catalog)
            print("El grafo tiene: ", verticesNum, " nodos y", edgesNum,
                  " enlaces")
        elif int(inputs[0]) == 3:
            vertices = input(
                "Ingrese el vertice origen y destino. (Ejemplo: 'ALB-5-12 LAX-5-12')\n"
            )
            path = controller.getShortestPath(catalog, vertices)
            if path == 'No hay camino' or path == 'No existen los vértices':
                print(path)
            else:
                print("El camino de menor costo entre los vertices es:")
                totalDist = 0
                while not stk.isEmpty(path):
                    step = stk.pop(path)
                    totalDist += step['weight']
                    print(step['vertexA'] + "-->" + step['vertexB'] +
                          " costo: " + str(step['weight']))
                print("Total: " + str(totalDist))
        else:
            sys.exit(0)
    sys.exit(0)
Beispiel #2
0
def main():
    while True: 
        printMenu()
        inputs =input("Seleccione una opción para continuar\n")
        if int(inputs[0])==1:
            print("Cargando información de los archivos ....")
            catalog = initCatalog ()
            loadData (catalog)
        elif int(inputs[0])==2:
            verticesNum, edgesNum = controller.countNodesEdges(catalog) 
            print("El grafo tiene: ", verticesNum," nodos y", edgesNum," enlaces")
        elif int(inputs[0])==3:
            vertices =input("Ingrese el vertice origen y destino\n")
            lst = controller.getPath(catalog,vertices)
            if lst:
                print("El camino entre los vertices es:",lst)
            else:
                print("No hay camino")
        elif int(inputs[0])==4:
            vertices =input("Ingrese el vertice origen y destino\n")
            leastPath=controller.getPathLeastEdges(catalog, vertices)
            if leastPath:
                print("El camino más corto entre los vértices es: ",leastPath)
            else:
                print('No hay camino')
        elif int(inputs[0])==5: #Requerimento 1, contar componentes conectados
            ccs = controller.countCC(catalog)
            print("El grafo tiene :", ccs, 'componentes conectados')            
        else:
            sys.exit(0)
    sys.exit(0)
Beispiel #3
0
def main():
    datos_cargados = False
    while True:
        printMenu()
        inputs = input("Seleccione una opción para continuar\n")
        if int(inputs[0]) == 1:  # 1- Cargar información
            if not datos_cargados:
                print("Cargando información de los archivos ....")
                catalog = initCatalog()
                loadData(catalog)
                datos_cargados = True
            else:
                print("Los datos ya han sido cargados previamente.")
        elif int(inputs[0]) == 2:  # 2- Contar nodos y enlances cargados
            if datos_cargados:
                verticesNum, edgesNum = controller.countNodesEdges(catalog)
                print("El grafo tiene: ", verticesNum, " nodos y", edgesNum,
                      " enlaces")
            else:
                print(
                    "No se han cargado los datos previamente. Carguelos e intente de nuevo."
                )

        elif int(inputs[0]) == 3:  # 3- Contar componentes conectados
            if datos_cargados:
                Num_comp_conectados = controller.ComponentesConectados(
                    catalog['flightGraph'])
                print("El grafo tiene: ", Num_comp_conectados,
                      " componentes conectados ó Clusters.")
            else:
                print(
                    "No se han cargado los datos previamente. Carguelos e intente de nuevo."
                )

        elif int(
                inputs[0]
        ) == 4:  # 4- Obtener el camino de menor costo entre dos vértices usando Dijkstra (origen destino)
            if datos_cargados:
                vertices = input("Ingrese el vertice origen y destino\n")
                try:
                    path = controller.getShortestPath(catalog, vertices)
                    print("El camino de menor costo entre los vertices es:")
                    totalDist = 0
                    while not stk.isEmpty(path):
                        step = stk.pop(path)
                        totalDist += step['weight']
                        print(step['vertexA'] + "-->" + step['vertexB'] +
                              " costo: " + str(step['weight']))
                        print("Total: " + str(totalDist))
                except:
                    print("No existe un camino entre los dos vértices")
            else:
                print(
                    "No se han cargado los datos previamente. Carguelos e intente de nuevo."
                )

        else:
            sys.exit(0)
    sys.exit(0)
Beispiel #4
0
def main():
    datos_cargados = False
    while True:
        printMenu()
        if not datos_cargados:
            print("\nTodavía no se han cargado los datos")
        inputs = input('Seleccione una opción para continuar\n')
        if int(inputs[0]) == 1:  # 1- Cargar información
            if datos_cargados:
                print("Ya se han cargado los datos previamente")
            else:
                print("Cargando información de los archivos ....")
                catalog = initCatalog()
                loadData(catalog)
                datos_cargados = True
        elif int(inputs[0]) == 2:  # 2- Contar nodos y enlances cargados
            if datos_cargados:
                nodes, edges = controller.countNodesEdges(catalog)
                print("El grafo tiene: ", nodes, " nodos y", edges, " enlaces")
            else:
                print("No ha cargado los datos todavía")
        elif int(
                inputs[0]
        ) == 3:  # 3- Consultar cantidad de clusters (componentes conectados)
            if datos_cargados:
                ccs = controller.countConnectedComponents(catalog)
                print("El grafo tiene :", ccs, 'componentes conectados')
            else:
                print("No ha cargado los datos todavía")
        elif int(inputs[0]) == 4:  # 4- Insertar un nodo (vértice)
            if datos_cargados:
                vertice = input(
                    "Digite el vértice que desea agregar a los datos: ")
                controller.addFlightNode_user(catalog, vertice)
            else:
                print("No ha cargado los datos todavía")
        elif int(inputs[0]) == 5:  # 5- Crear un enlace (arco)
            if datos_cargados:
                vertice1 = input("Digite el vértice fuente del enlace: ")
                vertice2 = input("Digite el vértice destino del enlace: ")
                valor = int(
                    input("Digite el valor del enlace que desea crear: "))
                controller.addFlightEdge_user(catalog, vertice1, vertice2,
                                              valor)
            else:
                print("No ha cargado los datos todavía")
        elif int(inputs[0]) == 6:  # 6- DFS
            if datos_cargados:
                vertice = input("Digite el vértice fuente del DFS: ")
                controller.DFS(catalog, vertice)
            else:
                print("No ha cargado los datos todavía")
        else:
            sys.exit(0)
    sys.exit(0)
Beispiel #5
0
def main():
    while True:
        printMenu()
        inputs = input("Seleccione una opción para continuar\n")
        if int(inputs[0]) == 1:
            print("Cargando información de los archivos ....")
            catalog = initCatalog()
            loadData(catalog)
        elif int(inputs[0]) == 2:
            verticesNum, edgesNum = controller.countNodesEdges(catalog)
            print("El grafo tiene: ", verticesNum, " nodos y", edgesNum,
                  " enlaces")
        elif int(inputs[0]) == 3:
            vertices = input(
                "Ingrese el vertice origen y destino (EJEMPLO: HNL-1-25 ICT-1-25 ) \n"
            )
            lst = controller.getPath(catalog, vertices, 'dfs')
            print("El camino entre los vertices es:")
            if lst is not None:
                lst_it = it.newIterator(lst)
                route = ''
                while it.hasNext(lst_it):
                    city = it.next(lst_it)
                    route += city + " "
                print(route)
            else:
                print('\nNo hay camino para los vértices ingresados\n')

        elif int(inputs[0]) == 4:
            vertices = input(
                "Ingrese el vertice origen y destino (EJEMPLO: HNL-1-25 ICT-1-25 ) \n"
            )
            lst = controller.getPath(catalog, vertices, 'bfs')
            print("El camino entre los vertices es:")
            if lst is not None:
                lst_it = it.newIterator(lst)
                route = ''
                while it.hasNext(lst_it):
                    city = it.next(lst_it)
                    route += city + " "
                print(route)
            else:
                print('\nNo hay camino para los vértices ingresados\n')
        else:
            sys.exit(0)
    sys.exit(0)
Beispiel #6
0
def main():
    while True:
        printMenu()
        inputs = input('Seleccione una opción para continuar\n')
        if int(inputs[0]) == 1:
            print("Cargando información de los archivos ....")
            catalog = initCatalog()
            loadData(catalog)
        elif int(inputs[0]) == 2:
            nodes, edges = controller.countNodesEdges(catalog)
            print("El grafo tiene: ", nodes, " nodos y", edges, " enlaces")
        elif int(inputs[0]) == 3:
            ccs = controller.countCC(catalog)
            print("El grafo tiene :", ccs, 'componentes conectados')
        else:
            sys.exit(0)
    sys.exit(0)
Beispiel #7
0
def main():
    while True:
        printMenu()
        inputs = input("Seleccione una opción para continuar\n")
        if int(inputs[0]) == 1:
            print("Cargando información de los archivos ....")
            catalog = initCatalog()
            loadData(catalog)
        elif int(inputs[0]) == 2:
            verticesNum, edgesNum = controller.countNodesEdges(catalog)
            print("El grafo tiene: ", verticesNum, " nodos y", edgesNum,
                  " enlaces")
        elif int(inputs[0]) == 3:  #Requerimento 3
            vertices = input("Ingrese el vertice origen y destino\n")
            path = controller.getShortestPath(catalog, vertices)
            print("El camino de menor costo entre los vertices es:")
            totalDist = 0
            if path:
                while not stk.isEmpty(path):
                    step = stk.pop(path)
                    totalDist += step['weight']
                    print(step['vertexA'] + "-->" + step['vertexB'] +
                          " costo: " + str(step['weight']))
            print("Total: " + str(totalDist))
        elif int(inputs[0] == 4):  #Requerimento 1
            ccs = controller.countCC(catalog)
            print("El grafo tiene :", ccs, 'componentes conectados')
        elif int(inputs[0] == 5):  #Requerimento 2
            vertices = input("Ingrese el vertice origen y destino\n")
            lst = controller.getPath(catalog, vertices)
            if lst:
                print("El camino entre los vertices es:", lst)
            else:
                print("No hay camino")
        elif int(inputs[0] == 6):  #Requerimento 4
            vertices = input("Ingrese el vertice origen y destino\n")
            leastPath = controller.getPathLeastEdges(catalog, vertices)
            if leastPath:
                print("El camino más corto entre los vértices es: ", leastPath)
        else:
            sys.exit(0)
    sys.exit(0)
Beispiel #8
0
def main():
    while True: 
        printMenu()
        inputs =input("Seleccione una opción para continuar\n")
        if int(inputs[0])==1:
            print("Cargando información de los archivos ....")
            catalog = initCatalog ()
            loadData (catalog)
        elif int(inputs[0])==2:
            verticesNum, edgesNum = controller.countNodesEdges(catalog) 
            print("El grafo tiene: ", verticesNum," nodos y", edgesNum," enlaces")
        elif int(inputs[0])==3:
            vertices =input("Ingrese el vertice origen y destino\n")
            lst = controller.getPath(catalog,vertices, "DFS")
            print("El camino entre los vertices es:",lst)
        elif int(inputs[0])==4:
            vertices =input("Ingrese el vertice origen y destino\n")
            lst = controller.getPath(catalog,vertices)
            print("El camino entre los vertices es:",lst)
        else:
            sys.exit(0)
    sys.exit(0)