<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>danielbeck.net: Blog feed		</title> 
		<link>http://danielbeck.net</link>
		<description>				Blog feed for danielbeck.net		</description>
		<language>en-us</language>		
			<item>
				<title>A*++				</title> 
				<link>http://danielbeck.net/blog/1342.html</link>
				<guid>http://danielbeck.net/blog/1342.html</guid>
				<description>&lt;p&gt;Just discovered a nifty new-to-me &lt;a href=&quot;http://harablog.wordpress.com/2011/09/07/jump-point-search/&quot;&gt;improvement on A*&lt;/a&gt;, via a &lt;a href=&quot;http://qiao.github.io/PathFinding.js/visual/&quot;&gt;nifty interactive demonstration&lt;/a&gt; of various pathfinding algorithms.&lt;/p&gt;
&lt;p&gt;I&amp;#8217;m supposed to be working on other things today, so I haven&amp;#8217;t fully digested the &lt;a href=&quot;http://users.cecs.anu.edu.au/~dharabor/data/papers/harabor-grastien-aaai11.pdf&quot;&gt;paper&lt;/a&gt; explaining the algorithm and may be misunderstanding it entirely. But at least part of the trick turns out to be one of those it&amp;#8217;s-easy-when-you-know-how things: its inventor &lt;a href=&quot;http://harablog.wordpress.com/2011/09/07/jump-point-search/&quot;&gt;explains&lt;/a&gt; you want to &amp;#8220;prune the set of immediate neighbours around a node by trying to prove that an optimal path&amp;#8230; exists from the parent of the current node to each neighbour and that path does not involve visiting the current node.&amp;#8221; &lt;/p&gt;
&lt;p&gt;In other words, at each step of the pathfinding, instead of subjecting every neighbor of the current node to A*, you try to draw a path from the previous step in the path to each neighbor. If that path crosses through the current node, then you can discard that neighbor as a possible next step.&lt;/p&gt;
&lt;p&gt;Easy once you know how. And the speed increase compared to other pathfinding algorithms is shocking (seriously, play with that &lt;a href=&quot;http://qiao.github.io/PathFinding.js/visual/&quot;&gt;interactive demo&lt;/a&gt; for a bit, the difference is amazing.)&lt;/p&gt;
						&lt;br /&gt;
						&lt;br /&gt;
						&lt;p&gt;&lt;small&gt;&lt;i&gt;This post was syndicated from &lt;a href=&quot;http://danielbeck.net/blog/1342.html&quot;&gt;http://danielbeck.net/blog/1342.html&lt;/a&gt;&lt;/i&gt;&lt;/small&gt;&lt;/p&gt;
						
				</description>
			</item>
		
	</channel>
</rss>
