algo:start
This is an old revision of the document!
Algorithme
Le cœur de Triskele est un algorithme de construction d'arbre en complexité linéaire.
Pour maintenir une complexité linaire Triskele utilise le tri comptage
La construction d'un arbre utilise l'algorithme dérivé d'union-find
Schématiquement, tout les pixels font référence à un nœud et les nœuds font référence à un nœud (sauf la racine).
Représentation sous la forme de tableaux
- le tableau des parents (pixels et nœuds)
- les tableau des attributs (nœuds)
Présentation de l'Algorithmes de construction d’un arbre :
Nous allons expliquer le fonctionnement de l'Algorithmes de construction d’un arbre par un exemple, en détaillant les différentes étapes.
![]() | Pour le quatrième couple, aucun des deux pixels n'a déjà été ajoutés à l'arbre, on ajoute donc le parent au tableau parents en créant un noeud sans le raccorder a un autre parent. On créé ici une autre branche. Comme pour chaque parent créé : - On ajoute le poid du couple dans le tableau weights - On ajoute le nombre d'enfant raccordé au parent dans le tableau child-count - Le short-cut désigne le leader - A la position du leader on insère la valeur correspondant au placement du noeud dans l'arbre (2éme tableau) |
![]() | Pour le cinquiéme couple, un des pixels est déjà utilisé par le parent 3 (vert), on ne crée pas de parent car la branche actuelle n'est pas reliée à l'arbre, on ajoute simplement le pixel qui n'est pas déjà utilisé, au parent 3, on incrément donc la valeur child-count de 1 (voir 4eme case du tableau child-count) |
![]() | Pour le cinquième couple, |
![]() | L'arbre se construit au fur et à mesure de cette manière. |
![]() | |
![]() | Voici le rendu final de l'arbre après le traitement de tout le tableau. Cette exemple est très simple mais il permet de bien comprendre la création d'un arbre. |
![]() |
algo/start.1624400300.txt.gz · Last modified: 2021/06/22 22:18 by antoine