.[ ČeskéHry.cz ].
problém s pathfindingem

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
kr0pac



Založen: 15. 08. 2009
Příspěvky: 2

PříspěvekZaslal: 10. duben 2010, 11:11:33    Předmět: problém s pathfindingem Odpovědět s citátem

Dobrý den,
napsal jsem si jednoduchou aplikaci pro vyhledávání cest, bohužel sem narazil na problém, který nevím jak odstranit, proto se obracím na Vás.

Problém nastane vždy, když zvolím počet směrů, kterými se může algoritmus z bodu vydat na 8. Heuristiku mám (v případě A* a GBFS) zvolenu na manhattan, ale ta samá věc se děje i u ostatních Sad

Manhattan: h = abs(startx - endx) + abs(starty - endy)

Budu vděčnej za každou odpověď,..díky

EDIT: nenechte se zmást z obrázku, i GBFS má ten samí problém, jen jsem chtěl poukázat na to, jak si myslím, že by cesta měla vypadat v normálu

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
OndraSej



Založen: 28. 07. 2007
Příspěvky: 767
Bydliště: Brandýs nad Labem

PříspěvekZaslal: 10. duben 2010, 11:16:38    Předmět: Odpovědět s citátem

Jak máš nastavené ceny za kroky po diagonále? Pokud stejně jako cenu za krok vodorovně nebo svisle, tak ty cesty na obrázku jsou nejkratší (podle definice součet cen za všechny kroky) a jejich tvar je daný tím, v jakém pořadí ten algoritmus vybírá nová políčka do množiny Open.
_________________
http://trionteam.net
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 10. duben 2010, 11:24:59    Předmět: Odpovědět s citátem

skus h = max(abs(startx - endx), abs(starty - endy))
_________________
Najjednoduchšie chyby sa najtažšie hľadajú.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
kr0pac



Založen: 15. 08. 2009
Příspěvky: 2

PříspěvekZaslal: 10. duben 2010, 11:35:05    Předmět: Odpovědět s citátem

OndraSej: takže jestli to dobře chápu, tak bych měl buď pozměnit cenu za diagonální krok, nebo pozměnit výběr uzlu z OL,...zkusim

nou: pokud se nepletu, tak je to Diagonal, to mě bohužel taky dlěá problémy Sad

díky moc za rady, jdu to vyzkoušet
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
pcmaster



Založen: 28. 07. 2007
Příspěvky: 1824

PříspěvekZaslal: 10. duben 2010, 14:36:14    Předmět: Odpovědět s citátem

Zmen cenu za diagonalu na sqrt(2) (v pripade, ze normalna je 1) a mozes skusit aj obycajnu L2 heuristiku (euklides, najlepsie kvadrat aby si sa vyhol odmocnine Smile) a bude ti to fachat, presne ako hovoria ostatni Smile
_________________
Off-topic flame-war addict since the very beginning. Registered since Oct. 2003!
Interproductum fimi omne est.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna