1. A method for finding a migration target, comprising: building a constrained, layered graph from a catalog of possible configuration combinations and a distance function for each layer in the graph; and determining an available path through the graph, said path having a minimum overall distance from a source instance, by performing an optimized search that selectively evaluates available paths through the graph based on cumulative distances of paths through the graph from the source instance.