IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

Points les plus éloignés dans un groupe de points


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut Points les plus éloignés dans un groupe de points
    Bonjour,
    j'ai un ensemble E de N points (xi,yi), et je voudrais trouver les 3 points les plus éloignés les uns des autres (distance euclidienne). On doit pouvoir remplacer 3 par un autre nombre P.
    Merci
    Bien cordialement

  2. #2
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 324
    Points : 4 134
    Points
    4 134
    Par défaut Arc réflexe
    Bonjour,

    J'aurais tendance à penser qu'ils appartiennent au contour convexe (comme par hasard 3 est le nombre de points minimal d'un contour convexe). Le contour réduit singulièrement le nombre de points sur lesquels une recherche exhaustive est possible et peut certainement être optimisée peut être en cherchant le troisième point proche de la médiatrice du segment des deux autres.

    Enfin, cela mérite d'être vérifié car ce n'est qu'une réflexion à brule-pourpoint.

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  3. #3
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Bonjour

    J'aime bien quand on précise "distance euclidienne", comme pour être exhaustif, alors que la distance euclidienne n'a du sens qu'entre deux points. Pas trois.
    On cherche quoi ? Le polygone à p côtés qui a le plus grand périmètre ? La plus grande aire ? Autre ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    je voulais dire distance euclidienne entre deux points parmi trois, il faut maximiser la distance entre les trois points deux à deux

  5. #5
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 242
    Points : 13 457
    Points
    13 457
    Par défaut
    Voilà des précisions qui ne précisent rien.

    Qu'est-ce qui est le plus optimal ? 6 6 6 ou 5 6 7 ? Et pourquoi ?
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  6. #6
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    c'est les trois points les plus éloignés les uns des autres parmi l'ensemble des points. Mais c'est sûr il peut y avoir plusieurs solutions possibles.

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juillet 2017
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2017
    Messages : 337
    Points : 61
    Points
    61
    Par défaut
    j'ai trouvé ça :
    https://flothesof.github.io/farthest-neighbors.html

    après avoir lu cette page en diagonale je fais cet algo (trouver les M points les plus éloignés les uns des autres parmi N points) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    tableau de listes L
    pour chacun des points P :
       L[P]={}
       Point S=P
       pour i de 1 à M-1
           distance_max=0
           Point R
           pour chacun des points Q <>P :
              si distance(S,Q)>distance_max alors
                    distance_max=distance(S,Q)
                    R=Q
              findi
           finpour
           L[P].add(R)
           S=R
        finpour
    finPour
     
    Liste Résultat
    pour chaque liste I de L
         sommeMax=0
         si somme de L[i] >sommeMax alors
             sommeMax=somme de L[i]
             Résultat=L[i]
         finsi
    finpour

  8. #8
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 585
    Points
    188 585
    Par défaut
    Citation Envoyé par Sylvain255 Voir le message
    c'est les trois points les plus éloignés les uns des autres parmi l'ensemble des points. Mais c'est sûr il peut y avoir plusieurs solutions possibles.
    Tu ne réponds pas vraiment à la question de flodelarab. Que cherches-tu exactement à maximiser, c'est-à-dire une seule et unique expression mathématique ? Vu ton pseudocode, il s'agit de la somme des distances maximales par rapport à l'ensemble des autres points (X désigne l'ensemble de tes points et x_i un point en particulier) :

    Formule mathématique

    De ton texte, j'avais compris que tu voulais maximiser la distance entre les P points, que j'aurais écrit comme ceci (en utilisant la distance minimum pour écarter les points autant que possible, c'est-à-dire chercher à maximiser les "pires cas" que tu souhaites éviter, quand deux points sélectionnés sont proches) :

    Formule mathématique
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  9. #9
    Expert confirmé

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Mai 2013
    Messages
    1 324
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Service public

    Informations forums :
    Inscription : Mai 2013
    Messages : 1 324
    Points : 4 134
    Points
    4 134
    Par défaut Presque
    Bonjour,

    Si le but, tel que je l'ai compris, est de trouver un triplet de points (A, B, C) tel que D(A,B) + D(B,C) + D(C,A) maximal, L'algorithme ne me semble pas le bon.

    Si j'ai bien compris (ce qui n'est pas sûr) les listes récupèrent les points qui dessinent un parcours maximal sans revenir sur le point courant P. Comme les points déjà utilisés ne sont pas interdits, je ne vois pas ce qui empêche d'avoir des boucles comme{@R1, @R2, @R1, @R2, @R1,...}. Peut être que M = 3 (pour le triplet) ?

    Même si c'est le cas, le résultat sera un triplet qui maximise D(A,B) + D(B,C) ce qui ne correspond pas à l'objectif. Illustration :
    Nom : Dmax 3 points.png
Affichages : 266
Taille : 90,3 Ko

    Salutations
    Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better. (Samuel Beckett)

  10. #10
    Membre émérite

    Homme Profil pro
    Formation: Chimie et Physique (structure de la matière)
    Inscrit en
    Décembre 2010
    Messages
    1 333
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 77
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formation: Chimie et Physique (structure de la matière)
    Secteur : Enseignement

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 333
    Points : 2 570
    Points
    2 570
    Billets dans le blog
    9
    Par défaut Points les plus éloignés dans un groupe de points
    Bonjour,

    Citation Envoyé par Sylvain255
    j'ai un ensemble E de N points (xi,yi), et je voudrais trouver les 3 points les plus éloignés les uns des autres (distance euclidienne). On doit pouvoir remplacer 3 par un autre nombre P
    .
    Je crois qu'il faut se préserver des complications, et que la première intuition de Guesset était la bonne: le triangle constitué des points les plus éloignés se caractérise par une aire maximale, aisément calculable:
    S = (1/2)║MiMMiMk║ = (1/2)║MiMMjMk║
    Deux triangles de même aire pourraient être départagés en retenant celui présentant la plus grande des distances minimales.

    Le recours exclusif à ce dernier critère critère permettrait d'étendre la sélection sur un nombre quelconque (P) de points - sous réserve de l'alourdissement du procédé, exigeant le calcul de P(P- 1)/2 distances.

    Dans le cas d'un nuage tridimensionnel, on pourrait aussi rechercher le tétraèdre de volume maximal, celui-ci étant proportionnel à la valeur absolue du déterminant de 3 vecteurs:
    V = (1/6)│Det(MiMj, MiMk, MiMl)│ = (1/6)│Det(MiMj, MjMk, MkMl)│.

    Les relations proposées impliquent l'intervention de distances euclidiennes, et conduisent à des résultats indépendants de l'ordre d'indexation du nuage de points.


    Le français, notre affaire à tous
    Grand Dictionnaire Terminologique

Discussions similaires

  1. Trouver les deux points les plus éloignés dans un fichier .stp/.step (ISO-10303-21)
    Par delta07 dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 03/04/2017, 17h08
  2. Le plus court chemin entre deux points les plus éloignés
    Par takesrit dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 30/05/2011, 18h39
  3. Déterminer les deux points les plus éloignés dans un nuage de points
    Par moooona dans le forum Traitement d'images
    Réponses: 3
    Dernier message: 03/02/2011, 08h49
  4. recherche des deux points les plus éloignés
    Par moooona dans le forum API graphiques
    Réponses: 19
    Dernier message: 01/02/2011, 19h35
  5. Trouver les deux points les plus éloignés
    Par giloutho dans le forum Algorithmes et structures de données
    Réponses: 24
    Dernier message: 13/04/2008, 01h48

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo