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 :

sélection d'un sous ensemble de points en 2D


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    CEO/CSO
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : CEO/CSO
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut sélection d'un sous ensemble de points en 2D
    Bonjour a tous,

    J'ai un nuage de point qui peut aller jusqu'à 100000 points. Chaque point est défini par deux valeurs numériques X et Y. Je cherche à déterminer LE polygone convexe de surface minimale incluant une fraction fixe du nuage de point. Par exemple, on cherche le plus petit polygone incluant 90% des points. Je ne cherche pas de solution exacte car ce serait trop long à calculer, je cherche une bonne approximation.

    J'ai pensé faire une méthode style level-set en flouant et mappant le nuage de point sur une grille carrée. Mais j'ai peur que la grille doivent être extrêmement grande pour obtenir un résultat correct.

    Je pensais aussi utiliser un algo de densité comme le dBScan mais les paramètres du dBScan ne sont qu'indirectement liés à la fraction de point dans le cluster. De plus le dBScan n'inclue pas de notion de convexité.

    Avez vous des idées ?
    Merci
    Victor

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    De prime abord, je dirais de tracer l'enveloppe convexe du nuage global, puis de retirer le point de l'enveloppe qui à le minium de densité locale. Et recommencer jusqu'a avoir retiré le nombre adéquat de points.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    De prime abord, je dirais de tracer l'enveloppe convexe du nuage global, puis de retirer le point de l'enveloppe qui à le minium de densité locale. Et recommencer jusqu'a avoir retiré le nombre adéquat de points.
    Marche pas... cf. dessin ci-joint:



    Le principe de minimum de densité local ne te permet pas de décider si tu enlèves dans le rectangle de gauche ou droite...

    Je procèderai par algo génétique, ça marche très bien avec ce genre de problème (convergence très rapide).

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Citation Envoyé par Nemerle Voir le message
    Le principe de minimum de densité local ne te permet pas de décider si tu enlèves dans le rectangle de gauche ou droite...
    Oui, ce n'est pas décidable. Mais bon, quand on veut une approximation, il faut bien faire des choix.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    alors si je reprend l'idée de départ de pseudocode, un algo me semblerait :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    prendre le polygone convexe entourant le total des points
        éliminer l'angle le plus obtus
        calculer le nb de points situés entre les 2, et en déduire le % de points restants
    
    itérer

    Mais on n'aura sans doute pas un % exact...


    d'où ma remarque sur l'élimination des points...

    PS: si on avait un polygone concave, ce serait enlever l'angle le plus aigu...

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Mon idée de départ était de se servir du fait que tous les points sont forcément contenus dans l'enveloppe convexe:

    Prenons N=100 points.

    1. Si je prend l'enveloppe convexe, elle contient N=100 points , soit 100% du total.

    2. Si je retire un des points de l'enveloppe convexe, il me reste N-1=99 points.

    3. Si je prend l'enveloppe convexe de ces N-1 points, elle contient N-1=99, soit 99/100 = 99% du total.

    et ainsi de suite.

    Donc, dans cet exemple, si on veut garder 90% de points, il faut itérer 10 fois
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par victor.racine Voir le message
    Je cherche à déterminer LE polygone convexe de surface minimale incluant une fraction fixe du nuage de point.

    Pour répondre simplement, il n'y en a pas...


    Comment veux-tu déterminer les bons points à éliminer ???


    Basée sur quoi, la sélection ? comme le dit pseudocode, la densité ? la distance ? par rapport aux voisins ? au barycentre ??

    Apprend à poser les bonnes questions, et tu auras déjà 50% de la réponse.. On t'aidera pour le reste..


    Donc il n'y a pas UN polygone répondant à la question.. Il y en a une foultitude, suivant tes critères d'élimination des points... ou d'angles du polygones, ....

  8. #8
    Nouveau membre du Club
    Profil pro
    CEO/CSO
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : CEO/CSO
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut
    Bonjour et merci pour vos réponses.

    à Pesudo code: merci pour cette piste. C'est vrai qu'en rognant le polygone là où la densité locale est faible on devrait après quelques itérations arriver à n'inclure que pourcentage de points désiré. Par contre je ne vois pas exactement comment définir le rayon de la fenêtre de voisinage pour le calcul de la densité locale, ni comment choisir la la distance de rognage. Probablement que le rayon de la fenêtre de voisinage peut être égal à la distance de rognage.
    Je vais essayer de tâtonner dans cette direction pour voir ce que ça donne.

    à souviron34: merci de m'apprendre à me poser les bonnes questions ! Je suis d'accord qu'il n'existe pas UN polygone convexe incluant une fraction fixe du nuage de point. Par contre, bien que je ne sache pas en faire la démonstration, je pense bien qu'il existe UN polygone convexe de surface minimale incluant une fraction fixe du nuage de point. La minimisation de la surface étant le critère de sélection.
    Maintenant je suis d'accord qu'il n'y a surement pas de methode de complexité acceptable permetant de trouver l'optimum. C'est pourquoi dans mon post j'ai dis :
    Je ne cherche pas de solution exacte car ce serait trop long à calculer, je cherche une bonne approximation
    Je n'ai peut être pas été clair dans la formulation du problème: je ne cherche pas LE meilleur polygone mais une bonne approximation de ce polygone.

    Merci

  9. #9
    Nouveau membre du Club
    Profil pro
    CEO/CSO
    Inscrit en
    Avril 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : CEO/CSO
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2010
    Messages : 6
    Par défaut
    Bonjour Nemerle,

    Je ne comprends pas bien ton explication. Tu veux dire que si les densité à gauche et à droite sont les mêmes alors on ne sait pas décider par lequel commencer ? C'est ça que tu veux dire ?

    Pour les algo génétiques je suis d'accord avec toi mais j'aurais préféré une implémentation un peu plus simple quitte à compromette un peu la qualité du résultat.

    Merci
    Victor

  10. #10
    Membre Expert Avatar de Nemerle
    Inscrit en
    Octobre 2003
    Messages
    1 106
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 106
    Par défaut
    Citation Envoyé par victor.racine Voir le message
    Tu veux dire que si les densité à gauche et à droite sont les mêmes alors on ne sait pas décider par lequel commencer ? C'est ça que tu veux dire ?
    oui!

Discussions similaires

  1. séparation sous ensemble nuages de points
    Par Cibou dans le forum Mathématiques
    Réponses: 8
    Dernier message: 24/10/2012, 11h45
  2. glMap2 et sous-ensemble de points
    Par coberle dans le forum OpenGL
    Réponses: 0
    Dernier message: 04/11/2008, 19h50
  3. [DBGrid] Affichage d'un sous-ensemble de données
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 3
    Dernier message: 02/09/2004, 16h31
  4. Sous-ensembles de tuples
    Par HPJ dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 07/10/2003, 16h24
  5. Réponses: 3
    Dernier message: 12/06/2002, 19h03

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