szó jelentését keresi. A DICTIOUS-ban nem csak a
szó összes szótári jelentését megtalálod, hanem megismerheted az etimológiáját, a jellemzőit és azt is, hogyan kell a
szót egyes és többes számban mondani. Minden, amit a
szóról tudni kell, itt található. A
szó meghatározása segít abban, hogy pontosabban és helyesebben fogalmazz, amikor beszélsz vagy írsz. A
és más szavak definíciójának ismerete gazdagítja a szókincsedet, és több és jobb nyelvi forráshoz juttat.
Főnév
A* search algorithm (tsz. A* search algorithms)
- (informatika) A* algoritmus
Az A* (ejtsd: „A csillag”) egy útkereső algoritmus, amelyet széles körben használnak mesterséges intelligenciában, robotikában, játékszoftverekben, térképekben és grafokban a legrövidebb út megtalálására egy kezdőpont és egy célpont között.
Az A* algoritmus az egyik leghatékonyabb és legmegbízhatóbb keresési algoritmus, amely ötvözi a Greedy Best-First Search és a Dijkstra-algoritmus előnyeit.
🚀 1. Alapötlet
Az A* algoritmus a csomópontokhoz két értéket rendel:
- g(n) – a kezdőponttól a csomópontig megtett út költsége (eddig megtett út)
- h(n) – egy heurisztika, amely becsüli a csomóponttól a célhoz vezető út költségét
A keresés során a következő érték alapján rangsorolja a csomópontokat:
Az algoritmus mindig azt a csomópontot vizsgálja meg következőként, amelynek az
értéke a legkisebb.
📦 2. A* működése lépésekben
- Tedd a kezdőpontot az Open listába (vizsgálatra váró csomópontok)
- Az Open listából válaszd ki a legkisebb f(n) értékű csomópontot
- Ha ez a cél, akkor út megtalálva
- Egyébként:
- Mozgasd a csomópontot a Closed listába (már feldolgozott)
- Vizsgáld meg a szomszédait:
- Számold ki a g(n), h(n), f(n) értékeket
- Ha a csomópont már az Open listában van jobb úttal, frissítsd
- Ha nincs rajta, tedd fel az Open listára
- Ismételd, amíg Open lista üres vagy cél elérve
💡 3. Heurisztikák – a h(n) becslés
A sikeres A* működésének kulcsa a jó heurisztika:
- Admissible: sosem becsli túl a valódi távolságot (pl. mindig kisebb vagy egyenlő)
- Consistent (monoton): teljesül, hogy

Példák:
Helyzet
|
h(n) (heurisztika)
|
|
|
|
|
Rács (4 irány)
|
Manhattan-távolság: (
|
x_1 - x_2
|
+
|
y_1 - y_2
|
)
|
Rács (8 irány)
|
Diagonális távolság
|
|
|
|
|
Térkép (valóságos)
|
Euklideszi távolság:
|
|
|
|
|
📍 4. Példa
Rács (grid) – kezdő: A(0,0), cél: B(3,3)
Szomszédos lépések költsége = 1
Heurisztika: Manhattan-távolság
Pont
|
g(n)
|
h(n)
|
f(n)
|
A(0,0)
|
0
|
6
|
6
|
… következő
|
|
|
|
Az algoritmus azokat a csomópontokat vizsgálja meg, amelyek a legkisebb
értékűek, és folyamatosan közelít a célhoz.
🧮 5. Pseudokód
function A*(start, goal):
open_set := {start}
came_from := empty map
g_score := 0
f_score := h(start)
while open_set not empty:
current := node in open_set with lowest f_score
if current = goal:
return reconstruct_path(came_from, current)
remove current from open_set
for each neighbor of current:
tentative_g = g_score + dist(current, neighbor)
if tentative_g < g_score:
came_from := current
g_score := tentative_g
f_score := g_score + h(neighbor)
if neighbor not in open_set:
add neighbor to open_set
return failure
✅ 6. Előnyök
- Optimális megoldás: ha h(n) admissible, akkor garantáltan a legrövidebb utat találja meg
- Hatékonyabb, mint Dijkstra, ha jó a heurisztika
- Általánosítható sokféle problémára (játék, robot, térkép)
⚠️ 7. Hátrányok
- Tárigényes: az Open és Closed listák sok memóriát igényelhetnek
- Sebesség: nagy gráfokon lelassulhat, ha h(n) túl gyenge
- Heurisztika tervezése nem mindig egyszerű
🤖 8. Alkalmazási példák
- Google Maps: útvonaltervezés
- Játékfejlesztés: NPC mozgás, labirintus keresés
- Robotika: akadálykerülés, mozgástervezés
- Webrobotok: keresési problémák optimalizálása
- AI problémák: puzzle-k, gráfoptimalizálás, logikai játékok
🧠 9. Változatok
Algoritmus
|
Leírás
|
Dijkstra
|
Mint A*, de nincs h(n) (h = 0)
|
Greedy Best-First Search
|
f(n) = h(n) – gyors, de nem garantáltan optimális
|
IDA*
|
Iteratív mélységkorlátos A*, kevesebb memória
|
Theta*
|
A* módosítás, amely átlós mozgást is enged
|
Weighted A*
|
f(n) = g(n) + w × h(n) – gyorsabb, de nem mindig optimális
|
🧪 10. Összefoglalás
Az A* algoritmus a leghatékonyabb útkeresési algoritmusok egyike, amely pontos eredményeket ad, ha a heurisztika megfelelően van megválasztva. Kombinálja az ismert legolcsóbb út nyilvántartását a jövőbeni költség jóslásával, így biztosítja az optimalitást és hatékonyságot. Az A* máig az egyik legfontosabb algoritmus az AI és a számítástudomány világában.