コード例 #1
0
ファイル: driver.py プロジェクト: Adam-Okoth/CSMM.101x
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)
コード例 #2
0
ファイル: driver.py プロジェクト: Adam-Okoth/CSMM.101x
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)