/ / Minimale Flächenmatrixabdeckung - Algorithmus, Matrix

Minimale Flächenmatrixabdeckung - Algorithmus, Matrix

Betrachten wir eine n-mal-n binäre Matrix, würde ich gerneum die minimale Fläche von zwei Rechtecken zu finden, die alle Einsen (1s) abdecken würde. Das heißt, die Summe der Bereiche der Rechtecke muss minimal sein. Die Rechtecke können sich überlappen.

Beispiel:

0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1 1
0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0
0 0 0 1 1 1 0 0 0

Die minimale Fläche ist: 3 * 9 + 9 * 3 = 54

Ich bin interessiert zu wissen, ob es eine bessere Lösung gibt als O(n^4).

Antworten:

1 für die Antwort № 1

Sie können das Problem zuerst für ein Rechteck lösendurch Auffinden der obersten, untersten, ganz rechts und ganz links 1s in der Matrix. Dann wissen Sie, dass Sie Ihr Ergebnis verbessern können, wenn Sie nur ein zweites Rechteck verwenden, wenn Sie symmetrische Stücke aller 0s ausschneiden können.