The Analysis of Efficiency Dependence of the Shortest Path Finding Algorithms A* and HPA*

Abstract Many pathfinding problems in real-world applications require real-time computation of the shortest path between two points in a grid-based environment. It is not a trivial task. While some shortest pathfinding algorithms may perform admissibly in one condition, they may prove inadmissible in other conditions. HPA* path finding algorithm is faster and more memory efficient than the A*algorithm in relatively large two dimensional grids, but this advantage may not apply to very small or very large grids. The paper deals with the efficiency of A* and HPA*in two-dimensional grids of different sizes. For the sake of completeness of the analysis, HPA* efficiency is measured taking into consideration the number of hierarchy levels and different cluster sizes. Both algorithms have been implemented and tests conducted. Experimental evidence is proposed to demonstrate the algorithm efficiency in various conditions. Daudzas reālās pasaules ceļa meklēšanas problēmas prasa īsākā ceļa atrašanu starp diviem punktiem divdimensiju režģī reālajā laikā. Kamēr daži īsākā ceļa meklēšanas algoritmi var darboties pieņemami vienos apstākļos, citos tie var būt nepieņemami. A* ir universāls algoritms, ko izmanto gan ceļa meklēšanā, gan grafu apiešanā. HPA* ir relatīvi jauns algoritms, kas ir ātrāks un atmiņu efektīvāk izmantojošs nekā A* relatīvi lielos divdimensiju režģos, bet šī priekšrocība var neattiekties uz ļoti maziem vai ļoti lieliem statiskiem divdimensiju režģiem. Rakstā tiek skaitļota A* un HPA* efektivitāte dažādu izmēru divdimensiju režģiem, ņemot vērā tādus parametrus kā dažādu hierarhijas līmeņu skaitu un dažādus klasteru izmērus. Algoritmi tiek realizēti un izpildīti eksperimentāli. Lai demonstrētu algoritmu efektivitāti dažādos apstākļos, tika realizēta eksperimentu sērija, kas arī parādīja HPA* priekšrocības salīdzinājumā ar A*. Izvēlēto izmēru divdimensiju režģos, kas ir aizpildīti ar nejaušā kartībā izvietotiem šķēršļiem, HPA* ātrdarbība vienāda ar A* ātrdarbību tikai 64x64 mezglu divdimensiju režģī, izmantojot klastera izmēru 16.Visos citos gadījumos HPA* izpildes laiks bija īsāks nekā A*. Vairāku hierarhijas līmeņu izmantošana samazināja HPA* ceļa meklēšanas ilgumu, kas īpaši labi bija redzams lielāko izmēru režģos. Pieaugot izmantojamo hierarhijas līmeņu skaitam, HPA* reālā laika ceļa meklēšanas fāzes ilgums samazinājās, kamēr priekšapstrādes laiks pieauga, rezultātā sniedzot īsākus summāros algoritma izpildes laikus. Klasteru izmēra palielināšana samazina ceļa meklēšanas laikā apieto mezglu skaitu visiem apskatītajiem divdimensiju režģu izmēriem, tādā veidā samazinot algoritma izpildei nepieciešamās atmiņas apjomu. HPA* algoritma priekšrocība pār A* būtu vēl lielāka situācijās, kad statiskā divdimensiju režģī ir nepieciešama atkārtota ceļa meklēšana. HPA* priekšapstrādes fāzi būtu pietiekami veikt tikai vienu reizi un visas vēlākās reālā laika meklēšanas balstīt uz priekšapstrādes rezultātiem. Kamēr A* katru reizi nāktos sākt meklēšanas procesu no jauna. В реальном мире многие задачи поиска кратчайшего пути требуют нахождения пути между двумя точками в реальном времени. В то время как некоторые алгоритмы поиска кратчайшего пути в одних обстоятельствах работают приемлемо, в других они неприемлемы. А* - универсальный алгоритм, который применяется как для нахождения кратчайшего пути, так и для обхождения графов. HPA* - относительно новый алгоритм, который быстрее и употребляет меньше памяти, чем А* в сравнительно больших статичных решетках, но это преимущество может не применяться к очень маленьким или очень большим решеткам. В статье определяется эффективность алгоритмов А* и HPA*, примененных к двумерным решеткам разных размеров, учитывая такие параметры, как количество уровней иерархии и размеры кластеров. Алгоритмы были реализованы и над ними проведены эксперименты. Чтобы продемонстрировать эффективность алгоритмов в разных обстоятельствах, была проведена серия экспериментов, которая показала преимущество алгоритма HPA* над А*. В использованных двумерных решетках, заполненных препятствиями случайным образом, производительность HPA* была равна А* только в решетке с размером 64х64 узлов при размере кластера 16. Во всех других случаях скорость выполнения HPA* была выше А*. Использование нескольких уровней иерархии в алгоритме HPA* снижало потребляемое время для поиска кратчайшего пути, что особенно хорошо было заметно в решетках большого размера. Увеличение размера кластеров снижает количество пройденных узлов, таким образом, снижая количество используемой памяти. С увеличением количества используемых уровней иерархии HPA* снизилось время выполнения фазы поиска пути в реальном времени и возросло время выполнения предварительной обработки, снижая в результате суммарное время выполнения алгоритма. Преимущество HPA* по сравнению с А* было бы еще больше в случае, когда в статичной решетке нужен многократный поиск пути. Достаточно было бы провести фазу предварительной обработки только один раз, и эти результаты в дальнейшем использовать для всех поисков пути в реальном времени. В то время как для А* понадобилось бы начинать поиски заново каждый раз.