【发布时间】:2017-02-09 15:57:28
【问题描述】:
我正在做一个需要我使用 Python 来实现 BFS 算法的项目,我是新手。
算法完成了一个 9 块拼图 (3x3) 的执行,但它需要很长时间(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)
谁能指出我可以改进它以获得更好的性能? 任何实际的答案都被广泛接受。
【问题讨论】:
标签: python algorithm performance artificial-intelligence breadth-first-search