Überlappende Rechtecke zusammenführen und teilen, um nicht überlappende Rechtecke zu erhalten

Ich suche nach einem Algorithmus wie folgt:

Bei einer Reihe von möglicherweise überlappenden Rechtecken (alle "nicht gedreht", können einheitlich als (links, oben, rechts, unten) Tupel usw. dargestellt werden) wird eine minimale Menge von (nicht gedrehten) zurückgegeben ) nicht überlappende Rechtecke, die den gleichen Bereich einnehmen.

Auf den ersten Blick scheint es einfach genug zu sein, aber es erweist sich als schwierig (zumindest effizient).

Gibt es dafür einige bekannte Methoden / Ideen / Hinweise?

Methoden für nicht unbedingt minimale, aber heuristisch kleine Mengen sind ebenfalls interessant, ebenso Methoden, die überhaupt eine gültige Ausgabemenge erzeugen.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage