def probando(pos_ini, tipo): """ Muestra el resultado de aplicar un tipo de búsqeda al problema del 8 puzzle con una posición inicial determinada. Por el momento muy manual, solamente descomentar las búsquedas que se deseen realizar. Recuerda que las búsquedas no informadas pueden ser muy lentas. Tipo: 0: busqueda_ancho, 1: busqueda_profundo, 2: busqueda_profundidad_iterativa, 3: busqueda_costo_uniforme, 4: busqueda_A_estrella con heuristica h1, 5: busqueda_A_estrella con heuristica h2 """ print(Modelo8puzzle.dibuja(pos_ini)) tipos = ["BFS", "DFS", "IDS", "UCS", "A* con h1", "A* con h2"] print("---------- Utilizando {} -------------".format(tipos[tipo])) problema = Ocho_puzzle(pos_ini) t_inicial = time() solucion = (busquedas.busqueda_ancho(problema) if tipo is 0 else busquedas.busqueda_profundo(problema, 50) if tipo is 1 else busquedas.busqueda_profundidad_iterativa(problema, 50) if tipo is 2 else busquedas.busqueda_costo_uniforme(problema) if tipo is 3 else busquedas.busqueda_A_estrella(problema, h_1) if tipo is 4 else busquedas.busqueda_A_estrella(problema, h_2)) t_final = time() print(solucion) print("Explorando {} nodos".format(solucion.nodos_visitados)) print("Tiempo: {} segundos".format(t_final-t_inicial))
def probando(pos_ini): """ Muestra el resultado de aplicar un tipo de búsqeda al problema del 8 puzzle con una posición inicial determinada. Por el momento muy manuel, solamente descomentar las búsquedas que se deseen realizar. Recuerda que las búsquedas no informadas pueden ser muy lentas. """ print(Modelo8puzzle.dibuja(pos_ini)) # ------- BFS ----------- print("---------- Utilizando BFS -------------") problema = Ocho_puzzle(pos_ini) solucion = busquedas.busqueda_ancho(problema) print(solucion) print("Explorando {} nodos\n\n".format(solucion.nodos_visitados)) # ------- DFS ----------- print("---------- Utilizando DFS -------------") problema = Ocho_puzzle(pos_ini) solucion = busquedas.busqueda_profundo(problema, 50) print(solucion) print("Explorando {} nodos\n\n".format(solucion.nodos_visitados)) # ------- IDS ----------- print("---------- Utilizando IDS -------------") problema = Ocho_puzzle(pos_ini) solucion = busquedas.busqueda_profundidad_iterativa(problema, 50) print(solucion) print("Explorando {} nodos\n\n".format(solucion.nodos_visitados)) # ------- UCS ----------- print("---------- Utilizando UCS -------------") problema = Ocho_puzzle(pos_ini) solucion = busquedas.busqueda_costo_uniforme(problema) print(solucion) print("Explorando {} nodos\n\n".format(solucion.nodos_visitados)) # # ------- A* con h1 ----------- print("---------- Utilizando A* con h1 -------------") problema = Ocho_puzzle(pos_ini) solucion = busquedas.busqueda_A_estrella(problema, h_1) print(solucion) print("Explorando {} nodos".format(solucion.nodos_visitados)) # # ------- A* con h2 ----------- print("---------- Utilizando A* con h2 -------------") problema = Ocho_puzzle(pos_ini) solucion = busquedas.busqueda_A_estrella(problema, h_2) print(solucion) print("Explorando {} nodos".format(solucion.nodos_visitados)) """
# x['nC_izq'] += accion[1] # x['canoa'] = 'izquierda' # return x def es_meta(estado): return estado[0] == estado[1] == 0 class PblCanibales(busquedas.ProblemaBusqueda): def __init__(self, nM, nC): super().__init__((nM, nC, 1), es_meta, ModeloCanibales(nM, nC)) if __name__ is "__main__": print("Problema de los canibales resuelto con busqueda a lo ancho:") print(busquedas.busqueda_ancho(PblCanibales(3, 3))) print("\nProblema de los canibales resuelto con busqueda a lo profundo:") print(busquedas.busqueda_profundo(PblCanibales(3, 3))) print( "\nProblema de los canibales resuelto con busqueda profundidad iterativa:" ) print(busquedas.busqueda_profundidad_iterativa(PblCanibales(3, 3))) print("\nProblema de los canibales resuelto con busqueda costo uniforme:") print(busquedas.busqueda_costo_uniforme(PblCanibales(3, 3)))