Quickgraph
For anyone who wants to go .Net, check out the open source QuickGraph library for all your graph / tree based processing. He neatly separates all concepts related to graphical representation, -algorithms, -mutations, and -representation. It has many extension points, so it should support most of the problems associated with graphics.
[EDIT] The set of algorithms supplied with QuickGraph does not include alpha-beta cropping or ray search at the moment, although there are 11 other methods in the search algorithm section that provide sufficient recommendations for implementing your favorite bypass algorithm, and over time I would suggest that it would support alpha beta and ray.
ad. 1 However, it satisfies your first criterion, because you can insert a delegate function in it that returns a few more specific solutions (for example, neighboring nodes) based on an incomplete solution (i.e. the Current node). This is handled by DelegateImplicitGraph (and variations) and is assumed to be memory efficient, as it prevents the simultaneous use of the entire search space in memory. ad. 2 In addition, custom delegates such as max / min / expected cost hueristics can accept algorithms (see AStarShortestPathAlgorithm ). This satisfies your second criteria.
In short, QuickGraph helps structure your problem, provides drop-in algorithms for various types of problems, and allows you to improve it by delivering new algorithms.
source share