<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Building a Route Planner with Oracle SQL &#8211; Finding the quickest route in a graph</title>
	<atom:link href="http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/feed/" rel="self" type="application/rss+xml" />
	<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph</link>
	<description></description>
	<lastBuildDate>Fri, 12 Apr 2013 10:04:09 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.1</generator>
	<item>
		<title>By: Frank Zhou</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3387</link>
		<dc:creator>Frank Zhou</dc:creator>
		<pubDate>Wed, 12 Dec 2007 21:42:12 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3387</guid>
		<description><![CDATA[Here is a pure SQL solution for finding the shortest path (distance)  between the source and destination

http://www.jlcomp.demon.co.uk/faq/shortest_distance.html


Thanks,

Frank]]></description>
		<content:encoded><![CDATA[<p>Here is a pure SQL solution for finding the shortest path (distance)  between the source and destination</p>
<p><a href="http://www.jlcomp.demon.co.uk/faq/shortest_distance.html" rel="nofollow">http://www.jlcomp.demon.co.uk/faq/shortest_distance.html</a></p>
<p>Thanks,</p>
<p>Frank</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Lucas Jellema</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3386</link>
		<dc:creator>Lucas Jellema</dc:creator>
		<pubDate>Sun, 22 Oct 2006 18:45:28 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3386</guid>
		<description><![CDATA[We got a reference to this article on the SQL Server discussion forum: &lt;a href=&quot;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=800277&amp;SiteID=1&quot; rel=&quot;nofollow&quot;&gt;http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=800277&amp;SiteID=1&lt;/a&gt;. I doubt however this will work in SQL Server.

Lucas]]></description>
		<content:encoded><![CDATA[<p>We got a reference to this article on the SQL Server discussion forum: <a href="http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=800277&amp;SiteID=1" rel="nofollow">http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=800277&#038;SiteID=1</a>. I doubt however this will work in SQL Server.</p>
<p>Lucas</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Steffen Mazanek</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3385</link>
		<dc:creator>Steffen Mazanek</dc:creator>
		<pubDate>Mon, 21 Aug 2006 23:33:00 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3385</guid>
		<description><![CDATA[How does your algorithm scale?]]></description>
		<content:encoded><![CDATA[<p>How does your algorithm scale?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gracie</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3384</link>
		<dc:creator>Gracie</dc:creator>
		<pubDate>Tue, 20 Jun 2006 23:31:53 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3384</guid>
		<description><![CDATA[Using the above code on a table with each node having distance data for all the other nodes around, the result show that the route could go back to the original node - doesn&#039;t &quot; nocycle&quot; take acre of that?  Here is the a sample of the result
        3 +3+3+3          StRita/JCampbl/StRita/SisTheresa                            9
        3 +3+5+1          StRita/JCampbl/BrockHS/SisTheresa                           9
        4 +3+3+5+1        StRita/JCampbl/StRita/BrockHS/SisTheresa                   12
        5 +3+3+6+1+1      StRita/JCampbl/StRita/JrHigh/BrockHS/SisTheresa            14

As you can see, St Rita appears twice in the route. Any suggestions would be a great help.   Thanks]]></description>
		<content:encoded><![CDATA[<p>Using the above code on a table with each node having distance data for all the other nodes around, the result show that the route could go back to the original node &#8211; doesn&#8217;t &#8221; nocycle&#8221; take acre of that?  Here is the a sample of the result<br />
        3 +3+3+3          StRita/JCampbl/StRita/SisTheresa                            9<br />
        3 +3+5+1          StRita/JCampbl/BrockHS/SisTheresa                           9<br />
        4 +3+3+5+1        StRita/JCampbl/StRita/BrockHS/SisTheresa                   12<br />
        5 +3+3+6+1+1      StRita/JCampbl/StRita/JrHigh/BrockHS/SisTheresa            14</p>
<p>As you can see, St Rita appears twice in the route. Any suggestions would be a great help.   Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Karl</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3383</link>
		<dc:creator>Karl</dc:creator>
		<pubDate>Mon, 12 Jun 2006 17:52:14 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3383</guid>
		<description><![CDATA[I am  very impressed about what via SQL can be done. Even Lucas Example is an easy one it could be an idea for using it in an application. I see always an area of practical use without the demand of Oracle Spatial.
Greetings
Karl]]></description>
		<content:encoded><![CDATA[<p>I am  very impressed about what via SQL can be done. Even Lucas Example is an easy one it could be an idea for using it in an application. I see always an area of practical use without the demand of Oracle Spatial.<br />
Greetings<br />
Karl</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: salem</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3382</link>
		<dc:creator>salem</dc:creator>
		<pubDate>Wed, 07 Jun 2006 16:00:54 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3382</guid>
		<description><![CDATA[Ever looked at the network data model that is supported by oracle Spatial Option?]]></description>
		<content:encoded><![CDATA[<p>Ever looked at the network data model that is supported by oracle Spatial Option?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin Lokitz</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3381</link>
		<dc:creator>Justin Lokitz</dc:creator>
		<pubDate>Wed, 07 Jun 2006 06:06:51 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3381</guid>
		<description><![CDATA[The link in the last post for the Oracle10g Spatial Network Model should be: http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/spatial_twp_ntwrkdatamod_10gr2_0512.pdf]]></description>
		<content:encoded><![CDATA[<p>The link in the last post for the Oracle10g Spatial Network Model should be: <a href="http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/spatial_twp_ntwrkdatamod_10gr2_0512.pdf" rel="nofollow">http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/spatial_twp_ntwrkdatamod_10gr2_0512.pdf</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Justin Lokitz</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3380</link>
		<dc:creator>Justin Lokitz</dc:creator>
		<pubDate>Wed, 07 Jun 2006 06:04:31 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3380</guid>
		<description><![CDATA[Lucas...although I think what you&#039;ve done here is quite impressive, Oracle10g already has this functionality (and quite a bit more) and it&#039;s called Oracle Spatial.  In fact, Orace10g Spatial has actual multimodal route planning as well as complex network (graph) analysis.  Check out http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/spatial_twp_ntwrkdatamod_10gr2_0512.pdff for more.  Again, your work is pretty fantastic, but you may find that you are in fact trying to reinvent the wheel.]]></description>
		<content:encoded><![CDATA[<p>Lucas&#8230;although I think what you&#8217;ve done here is quite impressive, Oracle10g already has this functionality (and quite a bit more) and it&#8217;s called Oracle Spatial.  In fact, Orace10g Spatial has actual multimodal route planning as well as complex network (graph) analysis.  Check out <a href="http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/spatial_twp_ntwrkdatamod_10gr2_0512.pdff" rel="nofollow">http://www.oracle.com/technology/products/spatial/pdf/10gr2_collateral/spatial_twp_ntwrkdatamod_10gr2_0512.pdff</a> for more.  Again, your work is pretty fantastic, but you may find that you are in fact trying to reinvent the wheel.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jeroen van Wilgenburg</title>
		<link>http://technology.amis.nl/2006/06/06/building-a-route-planner-with-oracle-sql-finding-the-quickest-route-in-a-graph/#comment-3379</link>
		<dc:creator>Jeroen van Wilgenburg</dc:creator>
		<pubDate>Tue, 06 Jun 2006 12:37:49 +0000</pubDate>
		<guid isPermaLink="false">http://technology.amis.nl/blog/?p=1221#comment-3379</guid>
		<description><![CDATA[Really interesting that this is possible with a database. But I think it&#039;s more efficient to write a small program to solve this problem. The problem you described is called the shortest path problem http://en.wikipedia.org/wiki/Shortest_path_problem
The most famous algorithm to solve this problem is developed by Dijkstra.

The graph in the article is too simple to show the benefit of the algorithm, so I created my own to explain the basics of the algorithm:

http://technology.amis.nl/blog/wp-content/images/routeplangraafjeroen2.gif

First we have to pick a random path to start with. It&#039;s not completely random (but if you implement this with a computer it is). Let&#039;s take ABEG (yes, I know ADG is the shortest)
The length of ABEG is 5. This is the shortest path so far. From B we can also branch to H. But 1+5&gt;5, that path is to long, no matter what it does after point H. So we can stop here.

The algorithm also deals with cycles. Take ABEIJ for example. We can loop infinitely in the cycle EIJ, but at a certain moment it&#039;s longer than 5 and we can stop (note that you still need some kind of cycle detection if this is the branch you started with, but a simple maximum length would do the trick because you can guess that the shortest path is not more than 20)

Let&#039;s take the ADG now. ADG is length 3, it&#039;s less than 5 so our new shortest path is 3. When we take the branch AC it&#039;s 3, so we can stop immediately and conclude the shortest path is 3.

But the article still can be very useful for other problems or when you need the lengths of all routes (ie. for routing algorithms of computer networks)]]></description>
		<content:encoded><![CDATA[<p>Really interesting that this is possible with a database. But I think it&#8217;s more efficient to write a small program to solve this problem. The problem you described is called the shortest path problem <a href="http://en.wikipedia.org/wiki/Shortest_path_problem" rel="nofollow">http://en.wikipedia.org/wiki/Shortest_path_problem</a><br />
The most famous algorithm to solve this problem is developed by Dijkstra.</p>
<p>The graph in the article is too simple to show the benefit of the algorithm, so I created my own to explain the basics of the algorithm:</p>
<p><a href="http://technology.amis.nl/blog/wp-content/images/routeplangraafjeroen2.gif" rel="nofollow">http://technology.amis.nl/blog/wp-content/images/routeplangraafjeroen2.gif</a></p>
<p>First we have to pick a random path to start with. It&#8217;s not completely random (but if you implement this with a computer it is). Let&#8217;s take ABEG (yes, I know ADG is the shortest)<br />
The length of ABEG is 5. This is the shortest path so far. From B we can also branch to H. But 1+5&gt;5, that path is to long, no matter what it does after point H. So we can stop here.</p>
<p>The algorithm also deals with cycles. Take ABEIJ for example. We can loop infinitely in the cycle EIJ, but at a certain moment it&#8217;s longer than 5 and we can stop (note that you still need some kind of cycle detection if this is the branch you started with, but a simple maximum length would do the trick because you can guess that the shortest path is not more than 20)</p>
<p>Let&#8217;s take the ADG now. ADG is length 3, it&#8217;s less than 5 so our new shortest path is 3. When we take the branch AC it&#8217;s 3, so we can stop immediately and conclude the shortest path is 3.</p>
<p>But the article still can be very useful for other problems or when you need the lengths of all routes (ie. for routing algorithms of computer networks)</p>
]]></content:encoded>
	</item>
</channel>
</rss>
