Concept

Marche de Jarvis

En géométrie algorithmique, la marche de Jarvis est un algorithme pour calculer l'enveloppe convexe d'un ensemble fini de points. L'idée de l'algorithme est d' « envelopper » l'ensemble de points dans un « papier cadeau » : on accroche ce papier à l'un des points, on le tend, puis on tourne autour du nuage de point. Soit le point initial, par exemple le point d'abscisse minima, où on accroche le papier. Le premier point rencontré par le papier sera , puis ... jusqu'à retrouver . Plus formellement, il s'agit pour chaque nouveau sommet de l'enveloppe convexe trouvé, de chercher le suivant en calculant le point d'angle polaire minimal par rapport à . En pratique, on divise le parcours en deux : à partir du point d'abscisse minimale, puis à partir du point d'abscisse maximale. fonction marcheJarvis(E) p := un point d'abscisse minimale dans E L := liste vide répéter insérer p dans L p := point p' de E tel que [pp') est le plus incliné vers la gauche (1) jusqu’à p = p0 retourner L La ligne (1) s'effectue de la manière suivante : pointAGauche = premier point de E pour tout pointCandidat de E Si pointAGauche = p ou pointCandidat est à gauche du segment entre p et pointAGauche alors pointAGauche=pointCandidat p := pointAGauche Le cas pointAGauche=p est une situation assez rare, qui peut intervenir lorsqu'on étudie le second point candidat de E, et qu'aucun meilleur pointAGauche n'a encore été trouvé dans la boucle. Le corps de la boucle répéter - jusqu'à est exécuté autant de fois qu'il y a de points dans l'enveloppe convexe. La ligne (1) est en . D'où une complexité en , où représente le nombre de sommets de l'enveloppe convexe. La boucle interne vérifie tous les point dans l'ensemble E, et la boucle externe se répète pour chaque point de l'enveloppe. Donc le nombre total de tour de boucle est en . Le temps d'exécution dépend de la taille de la sortie, on dit alors qu'il s'agit d'un algorithme sensible à la sortie.

À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.
Concepts associés (1)
Output-sensitive algorithm
In computer science, an output-sensitive algorithm is an algorithm whose running time depends on the size of the output, instead of, or in addition to, the size of the input. For certain problems where the output size varies widely, for example from linear in the size of the input to quadratic in the size of the input, analyses that take the output size explicitly into account can produce better runtime bounds that differentiate algorithms that would otherwise have identical asymptotic complexity.

Graph Chatbot

Chattez avec Graph Search

Posez n’importe quelle question sur les cours, conférences, exercices, recherches, actualités, etc. de l’EPFL ou essayez les exemples de questions ci-dessous.

AVERTISSEMENT : Le chatbot Graph n'est pas programmé pour fournir des réponses explicites ou catégoriques à vos questions. Il transforme plutôt vos questions en demandes API qui sont distribuées aux différents services informatiques officiellement administrés par l'EPFL. Son but est uniquement de collecter et de recommander des références pertinentes à des contenus que vous pouvez explorer pour vous aider à répondre à vos questions.