def __init__(self, path): start = time.time() print('Setting up graph') g = Graph(path) print('Graph set up in %s seconds' % (time.time() - start)) algo_list = ['[1]DFS'] algo_keys = [1] #print(g) #input_var = input("Which algorithm would you like to test? The available ones are: " + str(algo_list)) #if int(input_var) not in algo_keys: # print('Wrong input, try again!') #elif int(input_var) is 1: # print('DFS!') start = time.time() print('beginning DFS...') solved = dfs(g) print('DFS finished in %s seconds' % (time.time() - start)) if solved: pass #g.maze.paint_solved_path(solved) #g.maze.save_solved(path) else: print('No solution found!') g.maze.save_solved(path)
def get_set(self, index): fuzzy_matrix = self.get_fuzzy_matrix(index) # print "fuzzy_matrix %d " % index # print fuzzy_matrix assert fuzzy_matrix.shape[0] == fuzzy_matrix.shape[1] r = fuzzy_matrix.shape[0] sets = [] # 分类集合 set_matrix = np.ndarray(shape=fuzzy_matrix.shape, dtype=int) for i in range(r): for j in range(r): if i == j: set_matrix[i][j] = 1 elif fuzzy_matrix[i][j] < self.threshold[index]: set_matrix[i][j] = 0 else: set_matrix[i][j] = 1 # set_matrix中,值为1说明属于一个集合,否则属于不同集合 # print "set matrix = ",set_matrix # 把set_matrix看成一个邻接矩阵,DFS就可以得到的联通分量的个数,也就是集合的个数 # 以上得到两两的集合,下面合并集合 # set_num 集合的个数 # sets 聚类后的集合 file_object = open('fuzzy_matrix.txt', 'w') # print "set matrix = " #print set_matrix file_object.write(str(fuzzy_matrix.tolist())) #print "set matrix shape = ",set_matrix.shape sets = dfs(set_matrix) return sets
from time import time from DFS import dfs from puzzle import Puzzle initial_state = [2, 8, 3, 1, 6, 4, 7, 0, 5] Puzzle.num_of_instances = 0 t0 = time() solution = dfs(initial_state) t1 = time() - t0 print('Solution:', solution) print('space:', Puzzle.num_of_instances) print('time:', t1, "seconds") print()
from Node import Node from DFS import dfs node1 = Node("A") node2 = Node("B") node3 = Node("C") node4 = Node("D") node5 = Node("E") node6 = Node("F") node1.neighbourList.append(node2) node1.neighbourList.append(node3) node2.neighbourList.append(node4) node2.neighbourList.append(node5) node3.neighbourList.append(node6) dfs(node1)