A* (A star) algoritmust el tudná magyarázni valaki, esetleg C# vagy C++-ban példákat mutatni?
Szerintem ne akard másnak a példáit megérteni, mert az ugyanannyi időt fog felvenni, mintha nekifognál és gondolkodnál. Én anno nulla gráftudással (nem tanították), leültem és addig próbálkoztam amíg c-ben 2dimenzióban megírtam.
A lényeg, hogy kell keress egy jó heurisztikát, ami megmondja, hogy melyik a legjobb "út". Minden "körben" kiterjeszted a legjobbnak ígérkező utat.
Pl legyen egy pálya amin van egy cél és egy start, meg akadályok. A start és a cél egy-egy pixelt jelentsen, valahol a térben. Az első körben a start pixel körüli pixeleket kiterjeszted. Kiterjesztés alatt azt értem, hogy ahányadik körben (azaz hányadik pixel körüli területet terjeszted ki) vagy plusz a kiterjesztendő pixel távolsága a starttól. A következő körben a legkisebb értékű pixel körüli részt terjeszted ki.
Nem annyira bonyolult, mint ahogy leírtam, csak kell egy kicsit gondolkodni. A kiterjesztés folyamat így néz majd ki:
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!