title: Need some help for understanding search algorithms (A*, IDA*, DFS, BFS, IDDFS, etc. )
body: <p>I have some troubles understanding some of the algorithms for searching, used in AI (artificial intelligence). </p>
  
  <ul>
  <li>What is the exact difference between <a href="http://en.wikipedia.org/wiki/A%2A_search_algorithm" rel="nofollow"><strong>A*</strong></a> and <a href="http://en.wikipedia.org/wiki/IDA%2A" rel="nofollow"><strong>IDA* (Iterative Deeping A Star)</strong></a>? Is just the heuristic function? If so, I still just can't imagine how IDA* works.. :/</li>
  <li>Is <strong>IDA*</strong> the same as <a href="http://en.wikipedia.org/wiki/Breadth-first_search" rel="nofollow"><strong>BFS (Breadth-First search)</strong></a> (when the depth of expanding is just 1 level, I mean - moving just one by one level "down", is there any difference between <strong>IDA*</strong> and <strong>BFS</strong>)</li>
  <li>Is <a href="http://en.wikipedia.org/wiki/Iterative_deepening_depth-first_search" rel="nofollow"><strong>IDDFS (Iterative-Deeping Depth-First Search)</strong></a> the same as <strong>IDA*</strong>, except the heuristic function (which is equivalent to 0 in <strong>IDDFS</strong>)</li>
  <li>What exactly is <strong>IDDFS</strong> - moving down <strong>just one</strong> level, then using <a href="http://en.wikipedia.org/wiki/Depth-first_search" rel="nofollow"><strong>DFS (Depth-First Search)</strong></a>? If so, this way lots of the states are calculated (expanded) much more than ones.. Or it's like this - use <strong>DFS</strong> with particular depth, then store the "leaves" (the last expanded nodes), and iterate through them to use <strong>DFS</strong> again (which, actually, is <strong>BFS</strong>?)</li>
  <li>Where "<em>iterative</em>" comes from? As I see, <strong>IDDFS</strong> is not iterative at all, it's still recursiive, just mixes <strong>BFS</strong> and <strong>DFS</strong>? Or I'm wrong? Or this "<em>iterative</em>" has nothing to do with the opposite of recursion?</li>
  <li>What is "<em>iterative</em>" for <strong>IDA*</strong> ?</li>
  </ul>
  
  <p>Could you, please, provide some examples? I read all day about these algorithms, I know their advantages and disadvantages, the complexity, etc., but I just couldn't find any good examples (except for A*; I know BFS and DFS, the others bother me). I found some pseudo-code for IDA* on different places, but they were all completely different.</p>
  
  <p>Examples would be the best way to understand algorithms..but I can't find. Even in <a href="http://www.topcoder.com/" rel="nofollow">TopCoder</a> I didn't find anything about IDA*. </p>
  
  <p>I've read the wiki articles and I'm looking for something new (:</p>
  
  <p>Thanks a lot!</p>
  
  <hr>
  
  <p><strong>EDIT:</strong> <a href="http://intelligence.worldofcomputing.net/category/ai-search" rel="nofollow">Here some nice articles</a>, but they are too theoretical. No examples, no any specific things. But still very useful. I'd recommend them (=</p>