

Fun with Clojure: Turning Cats into Dogs in Hanoi - wooby
http://jkkramer.wordpress.com/2010/08/27/fun-with-clojure%C2%A0turning-cats-into-dogs-in-hanoi/

======
merraksh
This can be cast as a shortest path problem. Implementations on huge graphs
(several million nodes), i.e. larger than the one defined by a dictionary, are
very efficient and usually take advantage of both the source and destination
rather than just performing breadth first search from the source. I can think
of Andrew Goldberg's work, see e.g.

<http://research.microsoft.com/en-us/people/goldberg/>

~~~
jkkramer
Thanks for the Goldberg pointer. I have a rudimentary bidirectional, parallel
BFS working which I'll be blogging about once it's ready. It runs very fast
even on huge graphs.

------
finin
In the fall of 1980 I taught my first class (AI) as a professor. The TA, Jeff
Shrager, suggested this word problem, which he called dog-cat, as a good
homework exercise for implementing the A* search algorithm. The students had
to do it for three letter words in Lisp and on a Univac computer that the
University of Pennsylvania’s Moore School had at the time. I’ve been using the
problem on and off for 30 years now in homework assignments.

------
leif
Never noticed before that Hanoi states are homomorphic to Sierpinski
triangles. That's gorgeous. :-)

~~~
phob
isomorphic?

~~~
leif
An isomorphism requires a metric, which metric do you mean?

I'm talking group homomorphic, though they're also topologically isomorphic,
a.k.a. homeomorphic.

~~~
phob
Saying that two groups are homomorphic doesn't tell me much more than there
exists a group homomorphism... As far as I know, isomorphism implies one can
be transformed into the other through renaming.

I don't know anything about topology, so I'll take your word for it.

