路径规划python demo
时间: 2024-07-03 10:01:18 浏览: 136
路径规划在Python中通常涉及到使用各种算法和库来解决从起点到终点的最短路径问题,常见的应用场景有图形搜索(如A*算法)、网络流(如Dijkstra或Floyd-Warshall)以及路径优化(如基于图的路径规划)。以下是一个简单的A*算法的Python实现示例:
```python
import heapq
def heuristic(a, b):
# 这里假设两点之间的曼哈顿距离作为启发式函数
return abs(a - b) + abs(a - b)
def astar_search(graph, start, goal):
frontier = [(0, start)]
came_from = {start: None}
cost_so_far = {start: 0}
while frontier:
_, current = heapq.heappop(frontier)
if current == goal:
break
for next in graph.neighbors(current):
new_cost = cost_so_far[current] + graph.cost(current, next)
if next not in cost_so_far or new_cost < cost_so_far[next]:
cost_so_far[next] = new_cost
priority = new_cost + heuristic(goal, next)
heapq.heappush(frontier, (priority, next))
came_from[next] = current
path = []
while current is not None:
path.append(current)
current = came_from[current]
path.reverse()
return path
# 假设我们有一个简单的图表示,使用邻接字典(每个节点的键是它的位置,值是一个列表,包含了相邻节点及其成本)
graph = {
'A': [('B', 1), ('C', 3)],
'B': [('A', 1), ('D', 2)],
'C': [('A', 3), ('D', 2)],
'D': [('B', 2), ('C', 2)]
}
start_node = 'A'
goal_node = 'D'
path = astar_search(graph, start_node, goal_node)
print(f"从{start_node}到{goal_node}的路径: {path}")
```