def ast(board_state): 'Uses A* to search for solution' startTime = time.time() tree = Tree() tree.add(NodeHeuristic(board_state, None, None)) tree.frontier = Queue.PriorityQueue() tree.frontier.put(tree.find(board_state)) result = None while tree.frontier.empty() == False: current_node = tree.frontier.get() if current_node.reached_goal(): tree.result = current_node break children = current_node.children() for child in children: if tree.already_added(child) == False: tree.add(child) tree.frontier.put(child) tree.expanded.append(current_node) elapsed_time = time.time() - startTime tree.total_time = elapsed_time build_file(tree)
def dfs(board_state): 'Uses Depth First Search to search for solution' startTime = time.time() tree = Tree() tree.add(Node(board_state, None, None)) tree.frontier.append(tree.find(board_state)) result = None while tree.has_frontier(): current_node = tree.frontier.pop(0) if current_node.reached_goal(): tree.result = current_node break children = current_node.children() for child in children[::-1]: if tree.already_added(child) == False: tree.add(child) tree.frontier.insert(0, child) tree.expanded.append(current_node) elapsed_time = time.time() - startTime tree.total_time = elapsed_time build_file(tree)