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

Langage Java Discussion :

récursivité sur liste de listes, regroupement de points


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Par défaut récursivité sur liste de listes, regroupement de points
    Bien le bonsoir.
    J'ai un gros soucis d'algorithmique, et j'avoue complètement bloquer...

    Je dispose d'une liste de points, appelons-la listePoints.

    Chaque point possède des coordonnées, et il m'est possible de calculer la distance entre chaque points.
    J'ai un paramètre distMin qui est la distance minimum entre deux points pour que je les considère comme "voisins".

    Mon but est de parvenir à créer une liste pour chaque zone comprenant des points voisins.
    J'obtiendrais ainsi une liste de listes de points proches.

    En gros, je prends un point, je regarde s'il a des voisins. Si oui, alors je crée une liste dans laquelle je mets ce point + ses voisins, et je cherche alors si chacun de ses voisins a lui aussi des voisins, etc.. que je rajoute à cette même liste.

    Toute remarque bienvenue, d'avance merci : )

  2. #2
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    distMin est la distance minimum entre deux points pour que je les considère comme "voisins"
    C'est pas plutôt :
    distMin est la distance maximum entre deux points pour que je les considère comme "voisins"

    je prends un point, je regarde s'il a des voisins. Si oui, alors je crée une liste dans laquelle je mets ce point + ses voisins, et je cherche alors si chacun de ses voisins a lui aussi des voisins, etc..
    C'est un peu rustique comme algorithme. Avec ce genre de truc, tu risque d'obtenir des résultats différents suivant l'ordre de traitement des points. Sans plus de détails, à oublier très vite.

    Mon but est de parvenir à créer une liste pour chaque zone comprenant des points voisins.
    Déjà commence par bien définir la notion de "zone" pour après pouvoir trouver l'algo qui te permettra de les construire.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Par défaut
    oui bien sûr distMin est la distance max séparant deux points pour qu'ils soient considérés comme voisins, erreur de ma part. C'est plutôt distMax qu'il faut l'appeler d'ailleurs.

    Une zone est un ensemble de points dont chacun a des voisins proches. L'idéal serait même de rajouter une constante minPoints, et il faudrait que chaque point ait au minimum minPoints dans son voisinage pour être conservé.

    Je vois un truc du genre:

    -choisir un point
    -trouver ses voisins (ceux dont la distance est inférieure à distMax)
    -si le nombre de voisins est supérieur à minPoints, créer une liste et effectuer la même opération sur chacun de ces points.

    J'arrive pour l'instant à créer une liste pour chaque point, comprenant lui-même en tête de liste ainsi que tous ses voisins.

    Les deux soucis majeurs que je rencontre sont:
    -Comment effectuer cette opération récursivement?
    -La suppression d'un point de la liste initiale provoque des erreurs, et ce même en passant par un iterator.

  4. #4
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Une question, le problème à résoudre est "comment faire une fonction récursive ?" ou "comment partitionner un ensemble de points via une notion de distance ?"

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 17
    Par défaut
    Je dirais les deux...
    De quelle manière appliquer la récursivité à une fonction afin de partitionner un ensemble de points via une notion de distance

  6. #6
    Membre chevronné Avatar de ngpub
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    449
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 449
    Par défaut
    Donc on est d'accord la question principale est "comment faire une fonction récursive ?" ce qui explique la qualité de l'algo de partition.

    Montre voir ta méthode de création de listes des points proches.

  7. #7
    Membre émérite Avatar de Heimdal
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    549
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 549
    Par défaut
    Salut,

    les classes Shape(Ellipse plus particulierement) et Area devraient pouvoir t'aider.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Regrouper une liste en liste de listes
    Par West01 dans le forum Prolog
    Réponses: 12
    Dernier message: 14/03/2008, 14h07
  2. Récursivité sur une liste
    Par shelzy01 dans le forum Pascal
    Réponses: 2
    Dernier message: 06/01/2008, 19h08
  3. Réponses: 4
    Dernier message: 08/12/2006, 11h15
  4. Evènement sur zone de liste
    Par Mout85 dans le forum IHM
    Réponses: 3
    Dernier message: 20/06/2005, 11h44
  5. [Collections] hasPrevious() et previous() sur Iterateur de List
    Par red210 dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 19/04/2005, 14h00

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