[Pogamut-list] Restricted Navigation
jakub.gemrot
pogamut-forum at diana.ms.mff.cuni.cz
Wed Aug 8 08:17:39 CEST 2012
Re: Restricted Navigation
Author: jakub.gemrot
Hi!
Thanks for questions. Firstly, we cannot change the way native UT2004 path planner is working. Floyd-warshall algorithm cannot be bend every time you run it (obviously N^3).
What you're seeking is A* with customized "map view".
I've never found time yet to fully integrated my side-project amis-path-finding with UT2004.
You may checkout it from: http://artemis.ms.mff.cuni.cz/websvn/listing.php?repname=Pogamut&path=%2Ftrunk%2Fproject%2FUtils%2FAmisPathFinding%2F&#ae4a11e01bdf8672eef02129f56486530
It is a small library containing robust implementation of A* and Floyd-Warshal. Check "test" sources for usage. To quickly point you to few classes:
1) first you have to implement IPFMap, that will adapt NavPoint & NavPointNeighboutLink for A* hidden in the library,
this implementation should be honest and do not remove any arc/node from the graph
2) second you need to implement various "view" on the map via IPFMapView interface that may restrict/extend existing IPFMap
This view on the map means to be "agent-centric", here you should specify things like "jump links costs much more", etc.
3) just assemble it all together using new AStar(IPFMap<NODE> map, IPFMapView<NODE>l view)
and public synchronized AStarResult<NODE> findPath(IPFGoal<NODE> goal, long iterationsMax)
Note that path-computing are not-that-costly (few ms up to 10 ms I believe) so you might go for this strategy:
1) use conventional FloydWarshalMap
2) use one or two of your customized A*-path-planners
3) compare multiple paths and pick the most suitable one
Cheers!
Jakub
P.S.: please, if you create a few implementations of IPFMap and IPFMapView, would you consider donating that code
into our repo?
--
Reply Link: <http://diana.ms.mff.cuni.cz/main/tiki-view_forum_thread.php?forumId=4&comments_reply_threadId=4&comments_parentId=1027&post_reply=1#form>
More information about the Pogamut-list
mailing list