代价树搜索生活应用实例python代码
时间: 2023-10-13 10:16:10 浏览: 103
代价树搜索(Cost Tree Search)是一种常用的人工智能算法,可以应用于很多实际生活场景中,比如优化路径规划、机器人行走等。以下是一个基于 Python 的代价树搜索实例代码:
```python
import heapq
def cost_tree_search(graph, start, goal):
queue = [(0, start, [])]
visited = set()
while queue:
(cost, node, path) = heapq.heappop(queue)
if node not in visited:
visited.add(node)
path = path + [node]
if node == goal:
return (cost, path)
for neighbor in graph[node]:
c = graph[node][neighbor]
heapq.heappush(queue, (cost + c, neighbor, path))
return None
# 测试代码
graph = {
'A': {'B': 1, 'C': 5},
'B': {'D': 3},
'C': {'D': 2},
'D': {'E': 4},
'E': {}
}
print(cost_tree_search(graph, 'A', 'E'))
```
上述代码中,我们定义了一个 `cost_tree_search` 函数,接收一个图 `graph`、起点 `start` 和终点 `goal` 作为参数。在函数内部,我们使用了一个优先队列 `queue` 来存储代价和节点信息,以及一个集合 `visited` 来记录已经访问过的节点。不断从队列中取出代价最小的节点,并将其加入到 `visited` 集合中。如果当前节点为终点 `goal`,则返回代价和路径信息;否则,将当前节点的邻居节点加入到队列中。
在测试代码中,我们使用了一个简单的图作为输入,输出从起点 `A` 到终点 `E` 的最短路径和代价。
阅读全文