Один из способов использования физического движка:
Положите положительные электрические заряды (или какую-то отталкивающую силу) на каждый прямоугольник и смоделируйте силы и движения.Кроме того, как Эйал был достаточно любезен, чтобы указать, вам также нужны некоторые привлекательные силы, чтобы не дать им уйти.Это может быть смоделировано пружинами (опять же, как указывает Эяль).Они , мы надеемся, окажутся в каком-то равновесии, которое может включать неперекрывающиеся прямоугольники.
Я полагаю, что подобные идеи (эвристика, основанная на силе) используются при определении привлекательных схем графиковузлы и ребра один).
Отказ от ответственности: я сам этим не пользовался.
Надеюсь, это поможет!