from node import Node
from problem import Problem
from search import Search

p = Problem()
s = Search(p)
r = s.DFS(graphSearch=True)

print(r.status)
path = r.path
path.reverse()
print(path)
print("number of expansions : ")
print(r.expandedNodes)
예제 #2
0
from node import Node
from problem import Problem
from search import Search
from printer import Printer


problem = Problem([1,2,5,3,4,0,6,7,8])
# problem.randomInitialStateGenerator()
s = Search(problem)
r = s.DFS()
r.path.reverse()
print(r.path)
예제 #3
0
    if menu.build:
        grid.build_wall()

    elif menu.remove:
        grid.remove_wall()

    if menu.run():
        for row in grid.grid:
            for node in row:
                node.visited = False
                node.in_path = False
        if menu.BFS:
            search.BFS(grid.start_node, grid.end_node)
        elif menu.DFS:
            search.DFS(grid.start_node, grid.end_node)
        elif menu.A_star:
            search.a_star(grid.start_node, grid.end_node)

# call back function for menu options
    menu.choose_serach()
    menu.build_walls()
    menu.remove_walls()
    menu.set_start()
    menu.set_end()
    menu.visulise()
    menu.clear_clicked()
    menu.choose_serach()

    if menu.solve():
        grid.user_solve()
예제 #4
0
from node import Node
from problem import Problem
from search import Search

p = Problem()
s = Search(p)

i = 2
while (s.DFS(i).status != "Success"):
    print(s.DFS(i).status + " at depth : " + str(i - 1))
    i = i + 1
    if (i > 100):
        print("No answer till depth 100")
        break
print(s.DFS(i).status + " at depth : " + str(i - 1))
r = s.DFS(i)
path = r.path
path.reverse()
print(path)
print("number of visited : ")
print(r.expandedNodes)
print("number of expansions : ")
print(r.expansions)
print("depth : ")
print(r.depth)

# print(r.status)
# path = r.path
# path.reverse()
# print(path)
# print("number of expansions : ")