Evolving a Path-Finding Algorithm

Rick Strom has a nice page showing how he used genetic programming to create a path-finding algorithm. This is real genetic programming, which differs from a genetic algorithm in that GP evolves an actual behavior tree of (potentially) arbitrary size, while a GA evolves the optimal parameters for a complex but pre-existing function.

GP is generally less accessible than GA programming and virtually all GP code is implemented in LISP. Strom’s code is in C++ and thus may be appealing to a broader audience.  

Posted in AI

.NET Parser Roundup

Interested in writing a domain-specific language for the CLR? Explore:

Microsoft DSL Toolkit CTP : This is a step towards Microsoft’s Software Factories concept (which seems to be gaining buzz at the marketing level even though I’m not sure that the “factories” being released are actually aligned with the technical concept). Anyhow, very different from traditional parser construction tools.

ANTLR (my favorite, but perhaps just because I’ve become familiar with it)

Garden Points Parser Generator (YACC-style, used in the creation of RubyCLR. If I hadn’t climbed the ANTLR learning curve, I’d probably turn to this.)

GOLD Parser

NParsec

Packrat Parsing and Parsing Expression Grammars