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 :

Noeuds caractérisant des arbres


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 61
    Par défaut Noeuds caractérisant des arbres
    Bonjour !

    J'ai énormément de mal à donner un titre à ma question mais je vais vous exposer les faits.

    Je cherche à obtenir un sous ensemble de nœuds dans chaque arbre de telle façon que pris 2 à 2, les arbres soient différents et que ces arbres soient minimaux. Par arbre minimal je veux dire qu'on ne peut pas trouver un sous-ensemble de noeuds plus petit qui soit différenciable des autres sous-ensembles issus des autres arbres.

    Pour le moment, j'ai un algo qui retire les noeuds qui sont communs à tous les arbres de ma liste que j'appellerai diffArbre.

    J'ai pensé à l'algorithme suivant, il a une compléxité exponentielle :
    Je possède une liste d'arbres dont les noeuds sont triés (au moins 2) issue de diffArbre.
    J'itère sur les arbres :
    J'itère sur les noeuds :
    Je retire le noeud courant de l'arbre courant
    Si diffArbre contient un sous arbre nul, je remet le noeud que j'ai retiré et j'entre dans les fils et j'applique l'algo courant sur l'ensemble des sous-arbres de même niveaux (je ne sais pas si c'est clair)
    Sinon, je m'intéresse au noeud voisin
    Fin itération sur les noeuds
    Je passe à l'arbre suivant
    Fin itération sur les arbres

    Cet algorithme rend des arbres minimaux mais pas optimaux. Enfin... je crois, j'ai écrit l'algo de tête et je l'ai aussi fait tourné de tête.

    Le fait que l'arbre minimal soit optimal est un gros plus, mais il n'est pas indispensable.

    Le truc important est que j'aimerai diminuer ma complexité. J'aimerai savoir si vous aviez des idées pour y parvenir ou si vous aviez connaissance de problèmes similaires ou de thèses à ce sujet ou encore des mots clés précis pour m'aider à trouver des informations à ce sujet.

    je vous remercie

  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 : 53
    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 subtree matching ?
    J'ai bien tout lu mais je n'ai pas tout compris... tu souhaites extraire une sorte de "signature" unique pour chaque arbre en "élaguant" les sous-arbres communs ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    ce que j'ai compris:

    tu as N arbres: A1,A2....An

    ce que tu veux c'est trouver le plus petit ensemble (en nombre de noeuds ?) B1,B2,...,Bn
    où pour tout i: Bi est un sous-arbre de Ai,
    et où pour tout i,j: i différent de j => Bi différent de Bj

    le cas le plus simple serait: si Q est une feuille de Ai, et n'est dans aucun autre arbre, alors Bi = Q

    le cas général serait (complexité en N^2 ?):
    - pour chaque sous arbre de chaque arbre, on regarde s'il est sous arbre d'un des autres arbres
    - ainsi on a pour chaque arbre la liste de ses sous arbres qui ne sont pas dans les autres arbres
    - finalement pour chaque arbre on prend le plus petit sous arbre qui n'est pas dans les autres arbres

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 61
    Par défaut OK
    Je vais regarder le subtree Merci de tout coeur pour les indications.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 61
    Par défaut
    Citation Envoyé par pseudocode Voir le message
    J'ai bien tout lu mais je n'ai pas tout compris... tu souhaites extraire une sorte de "signature" unique pour chaque arbre en "élaguant" les sous-arbres communs ?
    Oui, tout à fait

    Citation Envoyé par acx01b Voir le message
    ce que tu veux c'est trouver le plus petit ensemble (en nombre de noeuds ?) B1,B2,...,Bn
    Oui, plus petit ensemble en nombre de noeuds

    En tout cas, je vais regarder ton algorithme, mais il n'est pas en N^2 car il y a au moins le nombre de noeuds de chaque arbre qui entre en jeu ^^

  6. #6
    Membre très actif

    Profil pro
    Étudiant
    Inscrit en
    Décembre 2004
    Messages
    499
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2004
    Messages : 499
    Par défaut
    en N^2 ou peut - être moins vu les algo de subtree matching que tu trouves sur google: N c'est le nombre de neuds en tout pas le nombre d'arbre

Discussions similaires

  1. arbre LinkTree dont les noeuds sont des liens
    Par caro_caro dans le forum Wicket
    Réponses: 5
    Dernier message: 05/06/2009, 02h32
  2. edition ou modification des noeuds d'une arbre JTREE
    Par foufoulina2007 dans le forum Composants
    Réponses: 1
    Dernier message: 30/11/2007, 22h52
  3. somme des noeuds d'un arbre binaire
    Par bibi182 dans le forum Langage
    Réponses: 6
    Dernier message: 08/11/2007, 12h30
  4. les noeuds des arbres,de quel type?
    Par erman_yazid dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 29/04/2007, 18h06
  5. Réponses: 3
    Dernier message: 27/07/2004, 13h01

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