2
我正在研究一個需要我使用Python實現BFS算法的項目,這是我剛剛所熟悉的。Python中的BFS算法
算法完成9個謎(3×3)的執行,但它需要的時間真的大量這樣做(5分):
def bfs(self):
fringe = deque([])
# start it
fringe.append(self.stateObj.getState())
while len(fringe) > 0:
state = fringe.popleft()
self.visited.append(state)
# just for tracing
# self.helper.drawBoard(state)
if self.stateObj.isCurrentStateGoalTest(state):
return True
for next_state in self.stateObj.getNextStates(state):
if (next_state not in (self.visited + list(fringe))):
fringe.append(next_state)
任何人能指出什麼我可以改善這種取得更好的表現? 任何實際的答案都被接受。