Zum Inhalt springen

Sweep (Informatik)

aus Wikipedia, der freien Enzyklopädie
Dies ist die aktuelle Version dieser Seite, zuletzt bearbeitet am 24. April 2023 um 17:58 Uhr durch Kmschaal (Diskussion | Beiträge) (Replaced animation with a more sophisticated version for better illustration).
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Animation eines Sweep-Algorithmus, der ein Voronoi-Diagramm konstruiert (Algorithmus von Fortune)

Als Sweep, Sweep-Verfahren oder manchmal auch Scan-Verfahren wird ein Paradigma in der Informatik verstanden, das beim Design von Algorithmen Anwendung findet. Ein derartiger Algorithmus wird auch Sweep-Algorithmus genannt. Kern eines Sweep im Zweidimensionalen ist die Sweep-Line (Sweep-Gerade) bzw. im Dreidimensionalen die Sweep-Plane (Sweep-Ebene). Durch sie wird der Raum „ausgefegt“, das heißt, man bewegt sie durch den gesamten Raum, bis alle Objekte des Problems besucht und verarbeitet wurden. Dazu wird eine Datenstruktur verwendet, die die von der Sweep-Line oder -Plane berührten Objekte speichert. Eine solche Datenstruktur wird dann als Sweep-Status-Struktur bezeichnet. Besonders häufig werden dadurch Probleme der Algorithmischen Geometrie gelöst. Allgemein wird bei einem Sweep ein -dimensionales statisches Problem in ein (n-1)-dimensionales dynamisches Problem umgewandelt.

Sweep-Algorithmen

[Bearbeiten | Quelltext bearbeiten]

Für das Lösen folgender zweidimensionaler Probleme gibt es bekannte und zeiteffiziente Sweep-Algorithmen:

  • Bestimmung der Schnittpunkte von Liniensegmenten, Zeitkomplexität
  • Konstruktion eines Voronoi-Diagramms, in -Zeit
  • Durchschnitt zweier Polygone, in -Zeit, wobei k die Anzahl der Kantenschnittpunkte beider Polygone ist
  • Dichtestes Punktpaar in der Ebene,