Untangling Segments in the Plane
Décroiser des segments dans le plan
Résumé
How can we reconfigure a given set of n segments with fixed endpoints in the plane into a crossing-free set?We remove a pair of crossing segments and insert one of the two pairs of non-crossing segments with the same four endpoints in an operation called a flip.If we restrict ourselves to sets of segments with a given property, say forming one polygon, the inserted pair must preserve this property.Untangling a set of segments amounts to iteratively flip the set of segments until no crossing remains.Why are flips useful?A flip shortens the total length of the segments.Hence, to efficiently compute approximations of the shortest tour through n given cities, many well known algorithms are supplemented with flips.How many flips are needed?At most n^3 flips may be performed in a sequence, but the longest sequence known uses only roughly n^2 flips.In general, no strategy for choosing which pairs of crossing segments to remove is known to untangle a set of segments using fewer than n^3 flips.Yet, when the endpoints form a convex polygon, the problem is well understood: the longest sequences use roughly n^2 flips, while the best strategies use roughly n flips.In this dissertation, we devise strategies to untangle segments for several versions of flips: the flips with nothing to preserve (the segments form a multigraph or a matching), the flips preserving a bipartite matching, the flips preserving a polygon (i.e., a tour), and the flips preserving a tree.We study the performance of each strategy in terms of their number of flips. Our results are organized by the type of choice the strategy uses, as follows.We first study the performance of the strategy choosing nothing, i.e., we improve the bounds on the number of flips in the longest flip sequences (in special cases).We then devise strategies for choosing which pairs of segments to remove to untangle segments using as few flips as possible.We also devise strategies for choosing which pairs of segments to insert, and strategies for choosing both removed and inserted pairs.Many of our results use a parameter measuring how far from a convex polygon the set of endpoints is.Furthermore, we prove the NP-hardness of the shortest flip sequence to untangle a bipartite matching.
Comment reconfigurer n segments avec un ensemble fixé d'extrémités pour qu'ils ne se croisent pas? Nommons décroisement l'opération qui consiste à retirer une paire de segments qui se croisent pour en insérer une autre parmi les deux paires de segments non croisés partageant les mêmes quatre extrémités.Si nous nous restreignons à des ensembles de segments ayant une propriété donnée, à des polygones par exemple, l'insertion de la paire doit préserver cette propriété.Décroiser totalement un ensemble de segments consiste à itérer les décroisements jusqu'à ce qu'il ne reste plus de croisement.À quoi sert de décroiser des segments ?Un décroisement raccourcit la longueur totale des segments.Pour calculer efficacement des approximations du plus court trajet passant par n villes données et revenant à son point de départ, de nombreux algorithmes bien connus font recours à des décroisements pour cette vertu.Combien de décroisements sont nécessaires pour un décroisement total?Un décroisement total est toujours atteint en au plus n^3 décroisements, pourtant, la plus longue séquence connue ne comporte qu'environ n^2 décroisements.En général, nous ne savons pas comment choisir stratégiquement quelles paires de segments retirer pour décroiser totalement les ensembles de segments en utilisant moins de n^3 décroisements.Le problème est cependant bien compris lorsque les extrémités des segments forment un polygone convexe : les séquences les plus longues comportent environ n^2 décroisements, tandis que les meilleures stratégies utilisent environ n décroisements.Dans cette thèse, nous élaborons des stratégies pour décroiser totalement des segments, et ce pour plusieurs versions de décroisements : les décroisements n'ayant rien à préserver (les segments forment par exemple un multigraphe ou un couplage), les décroisements préservant un couplage bipartite, les décroisements préservant un polygone (c'est-à-dire un trajet revenant à son point de départ), et les décroisements préservant un arbre.Nous étudions les performances de chaque stratégie en termes de nombre de décroisements utilisés.Nos résultats sont organisés suivant le type de choix autorisé pour les stratégies.Nous étudions d'abord les performances de la stratégie qui ne choisit rien, c'est-à-dire que nous améliorons les bornes connues sur le nombre de décroisements dans les séquences de décroisements les plus longues (dans certains cas particuliers).Nous élaborons ensuite des stratégies pour choisir les paires de segments à retirer pour décroiser totalement des segments en utilisant le moins de décroisements possible.Nous élaborons également des stratégies pour choisir les paires de segments à insérer, ainsi que des stratégies pour choisir à la fois les paires à retirer et les paires à insérer.Beaucoup de nos résultats utilisent un paramètre mesurant à quel point l'ensemble des extrémités des segments est proche d'un polygone convexe.D'autre part, nous prouvons qu'il est NP-dur de calculer la plus courte séquence de décroisements pour décroiser totalement un couplage bipartite donné.
Origine | Version validée par le jury (STAR) |
---|