I am a bit confused. You start off by talking about "generalization" but then you are enlarging small polygons and want to move them around? I don't quite get how enlarging small polygons and moving them around fits into "generalization." Typically, generalizing layers means small polygons go away or get merged with larger neighboring polygons.
The other issue I see is that these are not shapes in some abstract space, they are georeferenced polygons. If you move the polygon, you are moving what it represents on the Earth to a different place on the Earth. Granted, you are generalizing, but that gets back to my question above about making small polygons bigger instead of having them go away or merge with other polygons.
Yeah, sorry for giving you misunderstanding.
You are very true to say that small polygons less than certain amount should definitely dealt with, either removed as you have mentioned or aggregated.
However, considering importance of the small features from geological point of view, some small portion of polygons little less than threshold, considered for enlargement. Thus, once I got some of the polygons enlarged, the other constraint is violated, which is distance between polygons are less than it should be.
For topology, yes polygons are moved, but considering scale and the moving amount they are unnoticeable, as any generalized map surely has to some extent abstraction which lead to different type of errors.
Again, here we have to choose between aggregation (if the polygons of the same or similar category) and displacement.
So, making long story short, some portion of polygons are considered for enlargement to make them visible, as they may have important value to the geologist.
Thanks for your answer.
some variants of cartograms do just that... I haven't explored those available on the code site, but options may exist elsewhere. It is definitely an 'old school' when one needs to represent polygon area/shape by an attribute rather than its geometry