Rotierende Bremssättel - Rotating calipers

Sequenz von Sonden um die konvexe Hülle eines Polygons, um seinen Durchmesser unter Verwendung der Rotating Caliper-Methode zu bestimmen.

In der Computergeometrie ist das Verfahren zum Drehen von Bremssätteln eine Algorithmusentwurfstechnik , die verwendet werden kann, um Optimierungsprobleme zu lösen, einschließlich des Ermittelns der Breite oder des Durchmessers eines Satzes von Punkten.

Die Methode wird so genannt, weil die Idee analog zum Drehen eines federbelasteten Messschiebers um die Außenseite eines konvexen Polygons ist . Jedes Mal, wenn eine Klinge des Bremssattels flach an einer Kante des Polygons anliegt, bildet sie ein antipodales Paar, wobei die Spitze oder Kante die gegenüberliegende Klinge berührt. Die vollständige "Drehung" des Bremssattels um das Polygon erkennt alle antipodalen Paare; Die Menge aller Paare, die als Grafik betrachtet wird, bildet einen Knackpunkt . Das Verfahren zum Drehen von Bremssätteln kann als das projektive Dual eines Sweep-Linien-Algorithmus interpretiert werden, bei dem der Sweep über Steigungen von Linien und nicht über x- oder y- Koordinaten von Punkten erfolgt.

Geschichte

Ein antipodales Scheitelpunktpaar und ihre unterstützenden parallelen Linien .

Die Methode der rotierenden Bremssättel wurde erstmals 1978 in der Dissertation von Michael Shamos verwendet . Shamos verwendet diese Methode, um alle antipodalen Punktpaare auf einem konvexen Polygon zu erzeugen und den Durchmesser eines konvexen Polygons zeitlich zu berechnen . Godfried Toussaint prägte den Ausdruck "rotierende Bremssättel" und demonstrierte auch, dass die Methode zur Lösung vieler anderer Probleme mit der rechnerischen Geometrie anwendbar ist.

Rotierende Bremssättel, die eine Brücke zwischen zwei konvexen Polygonen finden

Shamos 'Algorithmus

Shamos gab in seiner Dissertation (S. 77–82) folgenden Algorithmus für die Methode der rotierenden Bremssättel an, mit der alle antipodalen Eckpunktpaare auf einem konvexen Polygon erzeugt wurden:

/* p[] is in standard form, ie, counter clockwise order, 
     distinct vertices, no collinear vertices.
   ANGLE(m, n) is a procedure that returns the clockwise angle 
     swept out by a ray as it rotates from a position parallel 
     to the directed segment Pm,Pm+1 to a position parallel to Pn, Pn+1
   We assume all indices are reduced to mod N (so that N+1 = 1).
*/
GetAllAntiPodalPairs(p[1..n])
    // Find first anti-podal pair by locating vertex opposite P1
    i = 1
    j = 2
    while angle(i, j) < pi
        j++
    yield i, j

    /* Now proceed around the polygon taking account of
         possibly parallel edges. Line L passes through
         Pi, Pi+1 and M passes through Pj, Pj+1
    */

    // Loop on j until all of P has been scanned
    current = i    
    while j != n
        if angle(current, i + 1) <= angle(current, j + 1)
            j++
            current = j
        else
            i++
            current = i
        yield i, j

        // Now take care of parallel edges
        if angle(current, i + 1) = angle(current, j + 1)
            yield i + 1, j
            yield i, j + 1
            yield i + 1, j + 1
            if current = i
                j++
            else
                i++

Eine andere Version dieses Algorithmus erschien 1985 im Text von Preparata und Shamos, bei der die Berechnung von Winkeln vermieden wurde:

GetAllAntiPodalPairs(p[1..n])
    i0 = n
    i = 1
    j = i + 1
    while (Area(i, i + 1, j + 1) > Area(i, i + 1, j))
        j = j + 1
        j0 = j
    while (j != i0)
        i = i + 1
        yield i, j
        while (Area(i, i + 1, j + 1) > Area(i, i + 1, j)
            j = j + 1
            if ((i, j) != (j0, i0))
                yield i, j
            else 
                return
        if (Area(j, i + 1, j + 1) = Area(i, i + 1, j))
            if ((i, j) != (j0, i0))
                yield i, j + 1
            else 
                yield i + 1, j

Anwendungen

Pirzadeh beschreibt verschiedene Anwendungen der Methode der rotierenden Bremssättel.

Entfernungen

  • Durchmesser (maximale Breite) eines konvexen Polygons
  • Breite ( Mindestbreite ) eines konvexen Polygons
  • Maximaler Abstand zwischen zwei konvexen Polygonen
  • Mindestabstand zwischen zwei konvexen Polygonen
  • Breitester leerer (oder trennender) Streifen zwischen zwei konvexen Polygonen (eine vereinfachte niedrigdimensionale Variante eines Problems, das beim maschinenbasierten maschinellen Lernen von Unterstützungsvektoren auftritt )
  • Grenanderabstand zwischen zwei konvexen Polygonen
  • Optimale Streifentrennung (zur medizinischen Bildgebung und Festkörpermodellierung)

Begrenzungsrahmen

Triangulationen

Multi-Polygon-Operationen

  • Vereinigung zweier konvexer Polygone
  • Gemeinsame Tangenten an zwei konvexe Polygone
  • Schnittpunkt zweier konvexer Polygone
  • Kritische Stützlinien zweier konvexer Polygone
  • Vektorsummen (oder Minkowski-Summe) zweier konvexer Polygone
  • Konvexe Hülle aus zwei konvexen Polygonen

Durchquerungen

  • Kürzeste Transversale
  • Dünnstreifen-Transversale

Andere

  • Nichtparametrische Entscheidungsregeln für die maschinell erlernte Klassifizierung
  • Öffnungswinkeloptimierungen für Sichtbarkeitsprobleme in der Computersicht
  • Suche nach längsten Zellen in Millionen von biologischen Zellen
  • Vergleich der Präzision von zwei Personen am Schießstand
  • Klassifizieren Sie Gehirnabschnitte anhand von Scanbildern

Siehe auch

Verweise

  1. ^ "Rotierende Bremssättel" auf der Homepage von Toussaint
  2. ^ a b Shamos, Michael (1978). "Computational Geometry" (PDF) . Yale Universität. S. 76–81.
  3. ^ Toussaint, Godfried T. (1983). "Lösen geometrischer Probleme mit den rotierenden Bremssätteln". Proc. MELECON '83, Athen. CiteSeerX  10.1.1.155.5671 . Zitierjournal benötigt |journal=( Hilfe )
  4. ^ Shamos, Franco P. Preparata, Michael Ian (1985). Computergeometrie Eine Einführung . New York, NY: Springer New York. ISBN 978-1-4612-7010-2.
  5. ^ Pirzadeh, Hormoz (1999). "Computergeometrie mit den rotierenden Bremssätteln" . McGill Library .
  6. ^ Binay K. Bhattacharya und Godfried T. Toussaint, "Schnelle Algorithmen zur Berechnung des Durchmessers einer endlichen planaren Menge", The Visual Computer , Vol. 3 , No. 6, Mai 1988, S. 379–388.
  7. ^ Binay K. Bhattacharya und Godfried T. Toussaint, "Ein Gegenbeispiel zu einem Durchmesseralgorithmus für konvexe Polygone", IEEE Transactions on Pattern Analysis and Machine Intelligence , Vol. 3 , No. PAMI-4, Nr. 3, Mai 1982, S. 306–309.
  8. ^ Michael E. Houle und Godfried T. Toussaint, "Berechnung der Breite eines Satzes", IEEE Transactions on Pattern Analysis & Machine Intelligence , Vol. 3 , No. 10, nein. 5, September 1988, S. 761–765.
  9. ^ Godfried T. Toussaint und Jim A. McAlear, "Ein einfacher O ( n log n ) -Algorithmus zum Finden des maximalen Abstands zwischen zwei endlichen planaren Mengen", Pattern Recognition Letters , Vol. 3 , No. 1, 1982, S. 21–24.
  10. ^ Binay K. Bhattacharya und Godfried T. Toussaint, "Effiziente Algorithmen zur Berechnung des maximalen Abstands zwischen zwei endlichen planaren Mengen", Journal of Algorithms , vol. 14, 1983, S. 121–136.
  11. ^ Godfried T. Toussaint und Binay K. Bhattacharya, "Optimale Algorithmen zur Berechnung des Mindestabstands zwischen zwei endlichen planaren Mengen", Pattern Recognition Letters , vol. 2, Dezember 1983, S. 79–82.
  12. ^ "Rotierende Bremssättel" . 30.03.2015. Archiviert vom Original am 30.03.2015 . Abgerufen am 22.03.2017 .CS1-Wartung: BOT: Original-URL-Status unbekannt ( Link )
  13. ^ MARTINEZ, HUGO M. (1. Januar 1978). "Review of:" PATTERN SYNTHESIS ", von U. Grenander, Springer-Verlag, New York, 1976. 509 S.". Internationale Zeitschrift für allgemeine Systeme . 4 (2): 126–127. doi : 10.1080 / 03081077808960672 . ISSN  0308-1079 .
  14. ^ Barequet und Wolfers (1998). "Optimieren eines Streifens, der zwei Polygone trennt". Grafische Modelle und Bildverarbeitung . 60 (3): 214–221. doi : 10.1006 / gmip.1998.0470 .
  15. ^ Teichmann, Marek (1989). "Probleme bei der Optimierung der Keilplatzierung" . Zitierjournal benötigt |journal=( Hilfe )
  16. ^ Godfried T. Toussaint, "Ein einfacher linearer Algorithmus zum Schneiden konvexer Polygone, The Visual Computer , Vol. 1, 1985, S. 118–123.
  17. ^ Tomas Lozano-Perez, "Raumplanung: Ein Konfigurationsraumansatz", IEEE Transactions on Computers , Vol. 32, No. 2, 1983, S. 108–120.
  18. ^ Binay K. Bhattacharya und Godfried T. Toussaint, "Computing kürzeste Transversale", Computing , vol. 46, 1991, S. 93–119.
  19. ^ Binay K. Bhattacharya, Jurek Czyzowicz, Peter Egyed, Ivan Stojmenovic, Godfried T. Toussaint und Jorje Urrutia, "Berechnung kürzester Transversale von Mengen", International Journal of Computational Geometry and Applications , Vol.3, No. 4, Dezember 1992, S. 417–436.
  20. ^ Jean-Marc Robert und Godfried T. Toussaint, "Lineare Approximation einfacher Objekte", Computational Geometry: Theory and Applications , Vol. 4, 1994, S. 27–52.
  21. ^ Rasson und Granville (1996). "Geometrische Werkzeuge in der Klassifikation". Computerstatistik & Datenanalyse . 23 (1): 105–123. doi : 10.1016 / S0167-9473 (96) 00024-2 .
  22. ^ Bose, P.; Hurtado-Diaz, F.; Omaña-Pulido, E.; Snoeyink, J.; Toussaint, GT (2002-08-01). "Einige Probleme bei der Optimierung des Blendenwinkels". Algorithmica . 33 (4): 411–435. CiteSeerX  10.1.1.16.7118 . doi : 10.1007 / s00453-001-0112-9 . ISSN  0178-4617 .
  23. ^ "Falsche Durchmesseralgorithmen für konvexe Polygone" .