Algorithmus für die maximale nicht dominierte Menge

8

Findet einen Algorithmus für das nächste Problem: Gegebene Menge S von n Punkten in der 2D-Ebene, ein Punkt (x1, y1) dominiert einen anderen Punkt (x2, y2), wenn x1 & gt; x2 und y1 & gt; y2. Finde die größte Menge von Punkten M, so dass M eine Teilmenge von S ist und kein Punkt von M von einem anderen Punkt von S dominiert wird.

    
user1256960 09.06.2013, 15:01
quelle

2 Antworten

8

Sortieren Sie alle Punkte, indem Sie x-Koordinaten erhöhen. Wenn zwei Punkte dieselbe x-Koordinate haben, sortieren Sie sie, indem Sie die y-Koordinaten verringern. Nun kann gezeigt werden, dass eine Teilmenge von Punkten genau dann nichtdominiert ist, wenn ihre y-Koordinaten in unserer sortierten Sequenz nicht ansteigend sind, was bedeutet, dass jede y-Koordinate kleiner oder gleich der vorherigen in der Teilsequenz ist. p>

Also wäre der Algorithmus:

  1. Sortieren Sie die Punkte wie oben beschrieben. Zeit: O (n * logn).
  2. Finde die längste nicht-steigende Teilfolge von y-Koordinaten. Zeit: O (n * logn). Dies kann durch Anpassen des Algorithmus zum Finden der längsten zunehmenden Untersequenz erreicht werden.

Dies gibt die größtmögliche Menge in O (n * logn).

    
interjay 09.06.2013 16:13
quelle
1

Es gibt einen Divide and Conquer-Algorithmus, der dies in O (n * logn) -Zeit macht.

Teilen wir die Punkte in zwei Hälften mit einer Größe von n / 2, basierend auf ihren x-Koordinaten. Wir finden den nicht dominierten Punkt in beiden Hälften. Sie müssen beachten, dass alle nicht dominierten Punkte in der rechten Hälfte in unserer endgültigen Liste vorhanden sind.

Mit dieser Beobachtung können wir unseren Kombinationsschritt schreiben, entfernen Sie alle nicht-dominierten Punkte in der linken Hälfte, deren y-Koordinate kleiner ist als die höchste y-Koordinate des Punktes in der nicht-dominierten Menge in der rechten Hälfte . Wir haben die Menge der nicht-dominierten Punkte.

Algorithmus:

%Vor%

Gleichung für die Zeit:

%Vor%

Sie können dies weiter zu O (n * logH) verbessern, wobei H die Anzahl der nicht dominierten Punkte ist, es erfordert mehr Einsicht in das Problem und es ist eine gute Erweiterung für Sie, um daran zu arbeiten.

    
Gopick 06.09.2016 14:07
quelle

Tags und Links