Eötvös Konferencia, 2008 április 26. Kovács Máté 1 Útkeresések optimalizálása számítógépes játékokban
Eötvös Konferencia, 2008 április 26.Kovács Máté2 Alapprobléma Keressünk A pontból B-be legkisebb költségű (legrövidebb) utat!
Eötvös Konferencia, 2008 április 26.Kovács Máté3 Gráfalgoritmusok Szélességi bejárás Szélességi bejárás Dijkstra-algoritmus Dijkstra-algoritmus A*-algoritmus A*-algoritmus
Eötvös Konferencia, 2008 április 26.Kovács Máté4 A gráf ábrázolása Szokásosak: Szokásosak: Szomszédsági mátrix Szomszédsági mátrix Éllistás ábrázolás Éllistás ábrázolás Játékprogramok esetében speciálisan: Játékprogramok esetében speciálisan: Gráf csúcsai -> 2d-s tömb elemei Gráf csúcsai -> 2d-s tömb elemei Általában csak a szomszédos mezőkre lehet lépni (kevés él) Általában csak a szomszédos mezőkre lehet lépni (kevés él) Terep felosztása Terep felosztása
Eötvös Konferencia, 2008 április 26.Kovács Máté5 A terep felosztása Négyzethálós
Eötvös Konferencia, 2008 április 26.Kovács Máté6 A terep felosztása Hexagonális
Eötvös Konferencia, 2008 április 26.Kovács Máté7 A terep felosztása Egyéb (pl.: térkép alapján)
Eötvös Konferencia, 2008 április 26.Kovács Máté8 Szélességi bejárás Irányított, élköltség nélküli gráfokon Irányított, élköltség nélküli gráfokon Egyszerű implementáció Egyszerű implementáció Kiterjesztésre váró csúcsok egy „sor”-ba kerülnek Kiterjesztésre váró csúcsok egy „sor”-ba kerülnek
Eötvös Konferencia, 2008 április 26.Kovács Máté9 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté10 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté11 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté12 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté13 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté14 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté15 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté16 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté17 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté18 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté19 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté20 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté21 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté22 Szélességi bejárás
Eötvös Konferencia, 2008 április 26.Kovács Máté23 Dijkstra-algoritmus Irányított, nem-negatív élköltségű gráfokon Irányított, nem-negatív élköltségű gráfokon Kiterjesztésre váró csúcsok egy „prioritásos sor”-ba kerülnek Kiterjesztésre váró csúcsok egy „prioritásos sor”-ba kerülnek Mohó algoritmus Mohó algoritmus
Eötvös Konferencia, 2008 április 26.Kovács Máté24 A*-algoritmus Dijkstra-algoritmus „kibővítése” Dijkstra-algoritmus „kibővítése” Heurisztikus függvény használata (pl.: légvonalbeli távolság) Heurisztikus függvény használata (pl.: légvonalbeli távolság) Átlagos esetben jelentős hatékonyságnövekedés Átlagos esetben jelentős hatékonyságnövekedés
Eötvös Konferencia, 2008 április 26.Kovács Máté25 Optimalizálás adatszerkezetekkel Folytassuk a legkisebb költségű utat! Folytassuk a legkisebb költségű utat! Rendezetlen tömb + minker Rendezetlen tömb + minker Bináris kupac Bináris kupac
Eötvös Konferencia, 2008 április 26.Kovács Máté26 Rendezetlen tömb + minker Könnyű implementáció Könnyű implementáció O(n)-es keresés O(n)-es keresés
Eötvös Konferencia, 2008 április 26.Kovács Máté27 Bináris kupac O(log(n))-es keresés O(log(n))-es keresés
Eötvös Konferencia, 2008 április 26.Kovács Máté28 Egyéb optimalizálási módszerek „Line Collision” „Line Collision” Térpartícionálás Térpartícionálás Csapatok(főnök kinevezése) Csapatok(főnök kinevezése) Stb… Stb…
Eötvös Konferencia, 2008 április 26.Kovács Máté29 „Line Collision” A kapott útvonalon olyan egyenes utakat keresünk, melyeken végighaladva nem ütközünk akadályba.
Eötvös Konferencia, 2008 április 26.Kovács Máté30 Térpartícionálás Előzetes vizsgálat, hogy a cél elérhető-e a kiindulópontból.
Eötvös Konferencia, 2008 április 26.Kovács Máté31 Csapatok Ha több egységet formációba rendezünk, elég csak az egyikre (főnök) lefuttani az útkeresést.
Eötvös Konferencia, 2008 április 26.Kovács Máté32 Megkerülő algoritmus „Steering algorithm” „Steering algorithm” Másfajta filozófiát képvisel Másfajta filozófiát képvisel Nincs szükség gráfra Nincs szükség gráfra Nagy távolságra illetve bonyolult terepen nem optimális Nagy távolságra illetve bonyolult terepen nem optimális Ötvözhető a gráfalgoritmusokkal Ötvözhető a gráfalgoritmusokkal
Eötvös Konferencia, 2008 április 26.Kovács Máté33 Megkerülő algoritmus
Eötvös Konferencia, 2008 április 26.Kovács Máté34 Megkerülő algoritmus
Eötvös Konferencia, 2008 április 26.Kovács Máté35 Köszönöm a figyelmet!