Exemplo n.º 1
0
	def buscar(self):
		arbol = Arbol(self.__n)
		arbol.estadoFinal = self.__edoFnl
		arbol.raiz = Nodo(self.__edoIni, None, None)

		arbol.estadosPendientes.add(arbol.raiz)

		encontrado = False
		nodoFinal = None
		while not encontrado:
			
			nodosTmp = []

			while len(arbol.estadosPendientes) != 0:
				nodo = arbol.estadosPendientes.pop()
				if nodo.estado == arbol.estadoFinal:
					encontrado = True
					nodoFinal = nodo
					break
				else:
					nodosTmp.append(nodo)
			for nodoT in nodosTmp:
				arbol.estadosPendientes.update(arbol.expandirNodos(nodoT))
		msg = []
		msg.append('Estado final encontrado a una profundidad de: ')
		msg.append(str(arbol.obtenerProfundidad(nodoFinal)))
		msg.append('\n\nSe utilizaron %i nodos' % len(arbol.estadosRevisados))
		msg.append('\n\nSe utilizaron las siguientes acciones:\n')
		msg.append(str(arbol.obtenerAcciones()))
		return ''.join(msg)