
Making of “Introduction to A*” - phenylene
http://www.redblobgames.com/pathfinding/a-star/making-of.html
======
userbinator
"A* " may be one of the most un-Google-able algorithm names I've come across,
since the {asterisk} is used as a wildcard too. (Edit: and is significant for
formatting here too.)

As of this post, Googling "A* algorithm" gives more relevant hits about the
algorithm than the experience I had many years ago when I tried to learn about
it, but it still uses * as a wildcard so you get various _other_ algorithm
pages mixed in there too. Trying "A\\* algorithm" seems to yield even worse
results, which is counterintuitive to the programmers who are most likely to
try escaping metacharacters in queries...

~~~
unwind
It was first published in 1968 (not sure if the name was established then,
didn't read the paper) but there's a paper with "A*" in the title from 1985
too. I'm pretty sure "being easy to Google" wasn't a goal with naming things,
back then. :)

~~~
glenra
The name was established in 1968. The relevant wiki page is:

[http://en.wikipedia.org/wiki/A*_search_algorithm](http://en.wikipedia.org/wiki/A*_search_algorithm)

Peter Hart (one of the three co-authors of the paper) discusses naming on the
talk page, to wit:

> In response to this question about why it's called A* : The notation is
> borrowed from the statistical literature. Statisticians use a hat (also
> called a circumflex) to indicate an estimate for a quantity, and often use a
> star to indicate an estimate that's optimal with respect to a stated
> criterion (like, say, a minimum variance criterion). When I (Peter E. Hart)
> was developing this algorithm and especially the theory behind it with my
> colleagues Nils Nilsson and Bertram Raphael, we adopted this traditional
> notation. We used hats to indicate estimates of heuristic functions, and
> went on to compare any other algorithm, call it A, with our provably-optimal
> (by the criterion of number of nodes expanded) A*. Hart 02:16, 7 March 2006
> (UTC)

------
gameguy43
Great work. Reminds me of Choc, an implementation of Bret Victor's Learnable
Programming: [http://www.fullstack.io/choc/](http://www.fullstack.io/choc/)

I'm really interested in solutions for visually explaining what an algorithm
does. Anyone have any other resources they like?

~~~
krat0sprakhar
This came up on HN a couple of weeks back -
[http://www.algomation.com/](http://www.algomation.com/)

A few sorting algorithms - [http://www.sorting-
algorithms.com/](http://www.sorting-algorithms.com/)

Visualization of Path-Finding Algorithms -
[http://qiao.github.io/PathFinding.js/visual/](http://qiao.github.io/PathFinding.js/visual/)

Lastly, Mike Bostock (creator of D3) has a really cool bunch of algorithms
over at his blog - [http://bost.ocks.org/mike/](http://bost.ocks.org/mike/)

~~~
lebek
I like Cortesi's take on algorithm visualization:
[http://corte.si/posts/code/visualisingsorting/index.html](http://corte.si/posts/code/visualisingsorting/index.html)

My sense is that animated visualizations are good at giving an intuitive sense
about performance, but static visualizations are better for understanding how
an algorithm works. If I was implementing a sorting algorithm I'd rather have
one of Cortesi's visualizations on hand.

------
nerdy
You might recognize this as being similar to the Stanford page but a slightly
different header:

[http://theory.stanford.edu/~amitp/GameProgramming/AStarCompa...](http://theory.stanford.edu/~amitp/GameProgramming/AStarComparison.html)

The Stanford page links to a redblobgames e-mail so it's probably the same
person

------
reyman
There is the repository here also :
[https://github.com/enjalot/algovis](https://github.com/enjalot/algovis)

