Алгоритм пошуку A* є популярною методикою трафаретизації та графічної траверсальної техніки, яка використовується в різних додатках, таких як робототехніка, розвиток ігор та розгін мережі. Він поєднує в собі особливості пошуку однокоштабних та greedy Best-first search для ефективного пошуку найбільш коротких шляхів від початкового вузла до кінцевого вузла. Цей посібник надає покроковий процес для реалізації алгоритму A* з такими підрахунками, щоб ілюструвати кожен етап.

Розуміння A* Альгоритм

Алгоритм A* використовує функцію вартості, f(n) = g(n) + h(n), де:

  • g(n):]] Фактична вартість від початкового вузла до вузла n.
  • h(n):]]. Геністичний розрахунок вартості з вершини n до мети.

Алгоритм досліджує вершини з найнижчою вартістю f(n), балансуючи фактичні та оцінені витрати, щоб знайти оптимальний шлях ефективно.

Покрокова реалізація

Дотримуйтесь цих кроків для реалізації алгоритму A*:

1. Встановити відкриті та закриті списки

Відкритий список містить вузли, які слід оцінити, починаючи з початкового вузла. Замкнений список містить вузли вже оцінені.

2. Виберіть вузол з найнижчою f(n)

Видаліть цей вузол з відкритого списку і додайте його до закритого списку.

3. Генерувати сусідні вузли

Розрахувати g(n) і h(n) для кожного сусіда. Якщо сусід не перебуває у відкритому списку або має нижній g(n), оновити його значення і встановити його батьківщину в поточний вузол.

4. Повторювати до досягнення мети

Продовжити процес до моменту додання вершини цілі до закритого списку, що вказує на найкоротший шлях.

Приклад розрахунку

Розглянемо просту сітку з початковим вершиною А і кінцевим вершиною Г. Геристичний h(n) є прямим доступом. Початкові розрахунки такі:

Початок в вершині А, г(А) = 0, h(A) = 4. f(A) = 4. Обстежені вузли B і C:

Для вузла B: g(B) = g(A) + вартість(A, B) = 0 + 1 = 1, h(B) = 3, f(B) = 4.

Для вершини C: g(C) = 1, h(C) = 2, f(C) = 3. Node C має найнижчий f(n), тому він обраний далі.

Цей процес продовжує, оновлення g, h і f значення, доки вершина досягається з найбільшою кількістю шляхів, визначених.