Here is the problem:
--------------------

I have many sets of points, and want to come up with a function that can take one set and rank matches based on their similarity to the first. Scaling, translation, and rotation do not matter, and some points may be missing from any of the sets of points. The best match is the one that if scaled and translated in the ideal way has the least mean square error between points (maybe with a cap on penalty, or considering only the best fraction of points to handle missing points). 

I am trying to come up with a good way to do this, and am wondering if there are any well known algorithms that can handle this type of problem? Just the name of something would be awesome! I lack a formal CSCI or math education, and am doing the best to teach myself.

A few things I have tried
-------------------------

The first thing that comes to mind is to normalize the points somehow, but I dont think that this is helpful because the missing points may throw things off. 

The best way I can think of is to estimate a starting point by translating to match their centroids, scaling so that the largest distances from the centroid of the sets match. From there, do an A\* search, scaling, rotating, and translating until I reach a maximum, and then compare the two sets. (I hope I am using the term A\* correctly, I mean trying small translations and scalings and selecting the move giving the best match) I think this will find the global maximum most of the time, but is not guaranteed to. I am looking for a better way that will always be correct.

Thanks a ton for the help! It has been fun and interesting trying to figure this out so far, so I hope it is for you as well.