Ang A* search algorithm ay isang popular na patspending at graph na pamamaraang passing na ginagamit sa iba't ibang mga aplikasyon tulad ng robotics, game development, at network surge. Ito ay nagsasama ng mga tampok ng uniporme-cost search at sakim na pinakamahusay-unang paghahanap upang epektibong mahanap ang pinakamaikling landas mula sa isang starter node hanggang sa isang goal node. Ang guide na ito ay nagbibigay ng isang hakbang-by-ste-bace upang ipatupad ang A* algorithm na may halimbawang mga kalkulasyon upang ilarawan ang bawat yugto.

Pag - unawa sa A* Algorithm

Ang A* algorithm ay gumagamit ng isang function ng halaga, f(n) = g(n) + h(n), kung saan:

  • g(n): Ang aktuwal na halaga mula sa simula node hanggang node n.
  • h(n): Ang heuristikong pagtatantiya ng halaga mula node n hanggang sa goal.

Ang algorithm ay tumutuklas ng mga node na may pinakamababang halaga ng f(n), na binabalanse ang aktuwal at tinatayang halaga upang mahanap nang mahusay ang pinakamahusay na landas.

Hakbang-by-Tandaang Pag-iisyu

Sundin ang mga hakbang na ito upang ipatupad ang A* algorithm:

1. Unang binanggit ang bukas at saradong mga listahan

Ang bukas na talaan ay naglalaman ng mga node na susuriin, simula sa unang node. Ang saradong talaan ay naglalaman na ng mga node na sinuri na.

2. Pumili ng node na may pinakamababang f(n)

Alisin ang node na ito sa bukas na talaan at idagdag sa saradong talaan.

3. Maging Generate sa kalapit na mga node

Ang mga kalkulasyong g(n) at h(n) para sa bawat kapitbahay. Kung ang isang kapitbahay ay wala sa bukas na talaan o may mas mababang g(n), i-update ang mga pagpapahalaga nito at ilagay ang magulang nito sa kasalukuyang node.

4. Ulitin hanggang sa maabot ang tunguhin

Ipagpatuloy ang proseso hanggang sa ang goal node ay madagdag sa saradong listahan, na nagpapahiwatig ng pinakamaikling landas ay natagpuan.

Mga Pagkalkula sa Halimbawa

Isaalang - alang ang isang simpleng grid na may panimulang node A at goal node G. Ang huristikong h(n) ang tuwid-line na distansiya. Ang mga unang kalkulasyon ay ganito:

Simula sa node A, g(A) = 0, h(A) = 4. Ang f(A) = 4. Ang kalapit na nodes B at C ay sinuri:

Para sa node B: g(B) = g(A) + halaga(A, B) = 0 + 1 = 1, h(B) = 3, f(B) = 4.

Para sa node C: g(C) = 1, h(C) = 2, f(C) = 3. Ang Node C ay may pinakamababang f(n), kaya ito ang napiling susunod.

Ang prosesong ito ay nagpapatuloy, tumataas na mga halaga ng g, h, at f, hanggang sa ang goal node G ay maabot na may pinakamaikling landas na matutukoy.