TGViewer
Python RU Python RU @pro_python_code · 12.3K subscribers
Post #914 1.92K
▫️Как реализовать алгоритм поиска путей в графе с помощью алгоритма A* в Python?◽️

Вот пример кода на Python, который реализует алгоритм A* для поиска путей в графе:

from queue import PriorityQueue

# Реализация алгоритма A* для поиска кратчайшего пути в графе
def a_star(graph, start, goal):
# Инициализация очереди с приоритетами и добавление начальной вершины в очередь
frontier = PriorityQueue()
frontier.put(start, 0)

# Инициализация словаря с расстояниями от начальной вершины до остальных вершин графа
distance = {start: 0}

# Инициализация словаря с предыдущими вершинами на кратчайшем пути
previous = {}

# Пока очередь не пуста, извлекаем вершину с наименьшим приоритетом
while not frontier.empty():
current = frontier.get()

# Если мы достигли целевой вершины, то возвращаем путь
if current == goal:
path = []
while current in previous:
path.append(current)
current = previous[current]
path.append(start)
path.reverse()
return path

# Итерируемся по соседним вершинам текущей вершины
for next in graph.neighbors(current):
# Вычисляем расстояние от начальной вершины до следующей вершины
new_distance = distance[current] + graph.distance(current, next)

# Если мы не посещали следующую вершину или обнаружили более короткий путь до нее, то обновляем информацию
if next not in distance or new_distance < distance[next]:
distance[next] = new_distance
priority = new_distance + graph.heuristic(next, goal)
frontier.put(next, priority)
previous[next] = current


В этом примере мы использовали очередь с приоритетами из модуля queue для хранения вершин графа, которые нужно обойти, и словарь distance для хранения расстояний от начальной вершины до остальных вершин графа. Также мы использовали словарь previous для хранения предыдущих вершин на кратчайшем пути. Функция neighbors возвращает соседние вершины текущей вершины, а функция distance возвращает расстояние между двумя вершинами графа. Функция heuristic возвращает эвристическую оценку расстояния от следующей вершины до целевой вершины.

@pro_python_code
  • 👍 7
  • ❤ 1
  • 🔥 1
More from @pro_python_code
  1. Oct 6, 2026🐍 Python умеет сравнивать числа как в математике Проверку диапазона можно записать короче…
  2. Oct 4, 2026Hugging Face исследовали multi-harness RL: обучение с подкреплением сразу через Claude Cod…
  3. Oct 1, 2026DeepSeek Harness вышел на десктоп: плагины без терминала и задачи по расписанию DeepSeek в…
  4. Sep 30, 2026Пишем игру на Python: неоновая аркада с разбором кода и ИИ Pygame часто считают библиотеко…
  5. Sep 29, 2026photo post
  6. Sep 28, 2026photo post
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →