Skip to content

Commit

Permalink
cambios efectivos sobre codigo
Browse files Browse the repository at this point in the history
  • Loading branch information
phillipus85 committed May 6, 2022
1 parent fad9f0c commit b626c05
Show file tree
Hide file tree
Showing 3 changed files with 86 additions and 74 deletions.
18 changes: 9 additions & 9 deletions App/controller.py
Original file line number Diff line number Diff line change
Expand Up @@ -128,30 +128,30 @@ def minimumCostPath(analyzer, destStation):
return model.minimumCostPath(analyzer, destStation)


def searchPaths(analyzer, initialStation, method="dfs"):
def searchPaths(analyzer, initialStation, searchMethod):
"""
Calcula todos los recorridos por "dfs" o "bfs" de initialStation a
todas las otras estaciones del sistemas
"""
# TODO mods Lab 11, conectar con la funcion del model searchPaths
return None
# TODO Lab 11, conectar con la funcion del model searchPaths
return model.searchPaths(analyzer, initialStation, searchMethod)


def hasSearchPath(analyzer, destStation, method="dfs"):
def hasSearchPath(analyzer, destStation, searchMethod):
"""
Informa si existe un camino entre initialStation y destStation segun
el metodo de busqueda ("bfs" o "dfs")
"""
# TODO mods Lab 11, conectar con la funcion del model hasSearchPath
return None
# TODO Lab 11, conectar con la funcion del model hasSearchPath
return model.hasSearchPath(analyzer, destStation, searchMethod)


def searchPath(analyzer, destStation, method="dfs"):
def searchPathTo(analyzer, destStation, searchMethod):
"""
Retorna el camino de busqueda entre initialStation y destStation
"""
# TODO mods Lab 11, conectar con la funcion del model searchPath
return None
# TODO Lab 11, conectar con la funcion del model searchPath
return model.searchPathTo(analyzer, destStation, searchMethod)


def servedRoutes(analyzer):
Expand Down
61 changes: 33 additions & 28 deletions App/model.py
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,10 @@
from DISClib.ADT import list as lt
from DISClib.Algorithms.Graphs import scc
from DISClib.Algorithms.Graphs import dijsktra as djk
# TODO Lab 11, agregar importaciones dfs y bfs
from DISClib.Algorithms.Graphs import dfs as dfs
from DISClib.Algorithms.Graphs import bfs as bfs
from DISClib.Utils import error as error
# TODO mods Lab 11, agregar importaciones dfs y bfs
assert config

"""
Expand All @@ -53,12 +55,13 @@ def newAnalyzer():
vertice determinado a todos los otros vértices del grafo
"""
try:
# TODO mods Lab 11, agregar llave "search" para usar dfs y bfs
# TODO Lab 11, agregar llave "search" para usar dfs y bfs
analyzer = {
'stops': None,
'connections': None,
'components': None,
'paths': None
'paths': None,
'search': None,
}

analyzer['stops'] = m.newMap(numelements=14000,
Expand Down Expand Up @@ -192,7 +195,17 @@ def hasPath(analyzer, destStation):
return djk.hasPathTo(analyzer['paths'], destStation)


def searchPaths(analyzer, initialStation, method="dfs"):
def minimumCostPath(analyzer, destStation):
"""
Retorna el camino de costo minimo entre la estacion de inicio
y la estacion destino
Se debe ejecutar primero la funcion minimumCostPaths
"""
path = djk.pathTo(analyzer['paths'], destStation)
return path


def searchPaths(analyzer, initialStation, method):
"""
searchPaths Calcula los caminos posibles desde una estacion de origen
y puede utilizar los algoritmos "dfs" o "bfs"
Expand All @@ -205,16 +218,18 @@ def searchPaths(analyzer, initialStation, method="dfs"):
Returns:
dict: devuelve el analyzer del modelo
"""
# TODO mods Lab 11, ejectutar DepthFirstSearch de dfs
# TODO Lab 11, ejectutar DepthFirstSearch de dfs
if method == "dfs":
pass
# TODO mods Lab 11, ejectutar BreadhtFisrtSearch de bfs
analyzer['search'] = dfs.DepthFirstSearch(analyzer['connections'],
initialStation)
# TODO Lab 11, ejectutar BreadhtFisrtSearch de bfs
elif method == "bfs":
pass
analyzer['search'] = bfs.BreadhtFisrtSearch(analyzer['connections'],
initialStation)
return analyzer


def hasSearchPath(analyzer, destStation, method="dfs"):
def hasSearchPath(analyzer, destStation, method):
"""
hasSearchPath indica si existe un camino desde la estacion inicial a
la estación destino. Se debe ejecutar primero la funcion searchPaths()
Expand All @@ -224,15 +239,15 @@ def hasSearchPath(analyzer, destStation, method="dfs"):
destStation (vertice): estacion de destino para el recorrido
method (str, optional): algoritmo de busqueda. Por defecto es "dfs"
"""
# TODO mods Lab 11, ejectutar hasPathTo por dfs
# TODO Lab 11, ejectutar hasPathTo por dfs
if method == "dfs":
pass
# TODO mods Lab 11, ejectutar hasPathTo por bfs
return dfs.hasPathTo(analyzer['search'], destStation)
# TODO Lab 11, ejectutar hasPathTo por bfs
elif method == "bfs":
pass
return bfs.hasPathTo(analyzer['search'], destStation)


def searchPath(analyzer, destStation, method="dfs"):
def searchPathTo(analyzer, destStation, method):
"""
searchPath retorna el camino de encontrado entre la estacion de inicio
y la estacion destino Se debe ejecutar primero la funcion searchPaths
Expand All @@ -246,22 +261,12 @@ def searchPath(analyzer, destStation, method="dfs"):
stack: devuele una pila con el camino encontrado en la busqueda.
"""
path = None
# TODO mods Lab 11, ejectutar pathTo por dfs
# TODO Lab 11, ejectutar pathTo por dfs
if method == "dfs":
pass
# TODO mods Lab 11, ejectutar pathTo por bfs
path = dfs.pathTo(analyzer['search'], destStation)
# TODO Lab 11, ejectutar pathTo por bfs
elif method == "bfs":
pass
return path


def minimumCostPath(analyzer, destStation):
"""
Retorna el camino de costo minimo entre la estacion de inicio
y la estacion destino
Se debe ejecutar primero la funcion minimumCostPaths
"""
path = djk.pathTo(analyzer['paths'], destStation)
path = dfs.pathTo(analyzer['search'], destStation)
return path


Expand Down
81 changes: 44 additions & 37 deletions App/view.py
Original file line number Diff line number Diff line change
Expand Up @@ -56,16 +56,16 @@
def printMenu():
print("\n")
print("*******************************************")
# TODO Lab 11, asegurarse de completar las opciones 4, 9 y 10
print("Bienvenido")
print("1- Inicializar Analizador")
print("2- Cargar información de buses de singapur")
print("3- Calcular componentes conectados")
print("4- Establecer estación base:")
print("5- Hay camino entre estacion base y estación: ")
print("6- Ruta de costo mínimo desde la estación base y estación: ")
print("7- Estación que sirve a mas rutas: ")
# TODO mods Lab 11, asegurarse de completar las opciones 8, 9 y 10
print("8- Cambiar metodo de busqueda ('bfs' o 'dfs'):")
print("4- Configurar metodo de busqueda ('bfs' o 'dfs'):")
print("5- Establecer estación base:")
print("6- Hay camino entre estacion base y estación: ")
print("7- Ruta de costo mínimo desde la estación base y estación: ")
print("8- Estación que sirve a mas rutas: ")
print("9- Existe un camino de busqueda entre base y estación: ")
print("10- Ruta de busqueda entre la estación base y estación: ")
print("0- Salir")
Expand All @@ -88,22 +88,26 @@ def optionThree(cont):


def optionFour(cont, initialStation):
print('Calculando costo de caminos')
controller.minimumCostPaths(cont, initialStation)
# TODO mods Lab 11, conectar con la funcion del controller searchPaths
if searchMethod is not None:
pass
else:
pass
print("FIN!")


def optionFive(cont, initialStation, searchMethod):
# TODO Lab 11, conectar con la funcion del controller searchPaths
print('Calculando caminos de busqueda con ' + searchMethod)
controller.searchPaths(cont, initialStation, searchMethod)
print("FIN!")


def optionFive(cont, destStation):
def optionSix(cont, destStation):
haspath = controller.hasPath(cont, destStation)
print('Hay camino entre la estación base : ' +
'y la estación: ' + destStation + ': ')
print(haspath)


def optionSix(cont, destStation):
def optionSeven(cont, destStation):
path = controller.minimumCostPath(cont, destStation)
if path is not None:
pathlen = stack.size(path)
Expand All @@ -115,28 +119,29 @@ def optionSix(cont, destStation):
print('No hay camino')


def optionSeven(cont):
def optionEight(cont):
maxvert, maxdeg = controller.servedRoutes(cont)
print('Estación: ' + maxvert + ' Total rutas servidas: '
+ str(maxdeg))


def optionEight(cont, searchMethod):
# TODO mods Lab 11, conectar con la funcion del controller searchPaths
pass


def optionNine(cont, destStation):
# TODO mods Lab 11, conectar con la funcion del controller hasSearchPath
haspath = None
def optionNine(cont, destStation, searchMethod):
# TODO Lab 11, conectar con la funcion del controller hasSearchPath
haspath = controller.hasSearchPath(cont, destStation, searchMethod)
print('Hay camino de busqueda entre la estación base : ' +
'y la estación: ' + destStation + ': ')
print(haspath)


def optionTen(cont, destStation):
# TODO mods Lab 11, conectar con la funcion del controller searchPath
path = None
def optionTen(cont, destStation, searchMethod):
# TODO Lab 11, conectar con la funcion del controller searchPath
path = controller.searchPathTo(cont, destStation, searchMethod)
if path is not None:
pass
pathlen = stack.size(path)
print('El camino de busqueda es de longitud: ' + str(pathlen))
while (not stack.isEmpty(path)):
stop = stack.pop(path)
print(stop)
else:
print('No hay camino')

Expand Down Expand Up @@ -168,30 +173,32 @@ def thread_cycle():
optionFour(cont, initialStation)

elif int(inputs) == 5:
destStation = input("Estación destino (Ej: 15151-10): ")
optionFive(cont, destStation)
# TODO Lab 11, completar inputs opt 8
msg = "Estación Base: BusStopCode-ServiceNo (Ej: 75009-10): "
initialStation = input(msg)
searchMethod = input("Seleccione 'dfs' o 'bfs' como algoritmo: ")
optionFive(cont, initialStation, searchMethod)

elif int(inputs) == 6:
destStation = input("Estación destino (Ej: 15151-10): ")
optionSix(cont, destStation)

elif int(inputs) == 7:
optionSeven(cont)
destStation = input("Estación destino (Ej: 15151-10): ")
optionSeven(cont, destStation)

elif int(inputs) == 8:
# TODO mods Lab 11, completar inputs opt 8
searchMethod = input("Seleccione 'dfs' o 'bfs' como algoritmo: ")
optionEight(cont, searchMethod)
elif int(inputs) == 7:
optionEight(cont)

elif int(inputs) == 9:
# TODO mods Lab 11, completar inputs opt 9
# TODO Lab 11, completar inputs opt 9
destStation = input("Estación destino (Ej: 15151-10): ")
optionNine(cont, destStation)
optionNine(cont, destStation, searchMethod)

elif int(inputs) == 10:
# TODO mods Lab 11, completar inputs opt 10
# TODO Lab 11, completar inputs opt 10
destStation = input("Estación destino (Ej: 15151-10): ")
optionTen(cont, destStation)
optionTen(cont, destStation, searchMethod)

else:
sys.exit(0)
Expand Down

0 comments on commit b626c05

Please sign in to comment.