• Aucun résultat trouvé

Parcours du graphe d’alignement, recherche de pseudo-cliques avec N injas

5.3.1 Définitions : clique, pseudoclique

Soit G = (VG, EG) un graphe d’alignement et H = (VH, EH) ⊂ G un graphe impli-

cite. La définition générale d’une clique est la suivante :

Définition 5.6 (Clique). Une clique d’un graphe est un ensemble de sommets du graphe tel que chaque sommet de l’ensemble est adjacent à tous les autres.

L’énumération de toutes les cliques de k-sommets dans le sous-graphe H est donc la recherche des graines selon la définition 5.5.

Une pseudoclique est une clique relâchée, c’est à dire un ensemble de sommets qui ne sont pas tous adjacents les uns aux autres. Ici cela correspond à une graine du graphe H étendue dans G (définition 5.7).

Définition 5.7 (Pseudoclique). Soit une graine g du graphe H, la pseudoclique pseudo(g) = v1, v2, ..., vnassociée à la graine dans G est la graine g plus l’ensemble des sommets de G

tel que chaque sommet est adjacent à tous les sommets de la graine (soit au plus |VG| − 3

sommets).

Chaque sommet de la pseudoclique étant adjacent à la graine (contenue elle aussi dans la pseudoclique), rechercher la pseudoclique pseudo(g) associée à la graine g revient à énumérer toutes les k+1 cliques de G engendrées par g.

5.3.2 Procédure globale de N injas

Soient G = (VG, EG) un graphe d’alignement et H = (VH, EH) ⊂ G le graphe

implicite de G. L’algorithme deN injas (5.3.2) est constitué de trois étapes majeures : (i) l’énumération des graines du graphe implicite (H), (ii) l’extension de ces graines (création des pseudo-cliques) dans le graphe d’alignement (G) et enfin (iii) un filtrage des pseudo-cliques par sélection des sommets valides (sélection relative à la déviation tolérée). La validité d’un sommet d’une pseudo-clique est discuté en détail dans la section 5.3.5. Ninjas renvoie entre une et n pseudo-cliques (n étant un paramètre défini par l’utilisateur) triées par taille décroissante.

5.3.3 Enumération des graines (3-cliques) du graphe implicite

Comme expliqué plus haut, dans N injas , une graine du graphe implicite H = (VH, EH) est une 3-clique. Chacun des sommets correspondant à deux points a,b issus

respectivement des objets A et B, une graine est donc un ensemble de six points ap- pareillés deux à deux. Soit une graine (vi, vj, vk) composée de trois sommets et (i,i’),

(j,j’), (k,k’) les points correspondants respectivement aux sommets vi, vj et vk. Par

construction, la condition de création de la graine (vi, vj, vk) est l’existence des arêtes

N injas Overview

function find_pseudocliques(G) Input : an undirected graph Output : A list of pseudocliques

Result_list res_list = empty_result_list()

Graph implicit_graph = create_implicit_graph(G) Seed_list seeds = enumerate_seeds(implicit_graph) for each seed in seeds do

Vertex_set set = extend_seed(seed) Vertex_set result = empty_set() for each vertex in set do

if is_valid(vertex) then result.add(vertex) end if end for res_list.insert_if_better(set) end for end function

arête entre deux sommets du graphe H (définition 5.4), une graine (vi, vj, vk) correspond

à deux triangles ijk et i’j’k’ dont les distances (ij,i’j’),(ik,i’k’) et (jk,j’k’) sont similaires deux à deux à λsÅprès. Par conséquent, une graine (vi, vj, vk) est une 3-clique dans

le graphe H comme le montre la figure 5.3 et énumérer toutes les graines équivaut à rechercher toutes les 3-cliques de H.

Une première sélection des résultats a lieu lors de cette étape, les graines dont les triangles ont leur angle obtus trop proche de 180◦ (donc des points colinéaires ou presque colinéaires) sont élaguées par la méthode décrite dans l’algorithme 2 de [25]. Ce car par la suite, l’algorithme va chercher à superposer de manière optimale les triangles associés à ces graines et essayer de calculer la transformation (unique) permettant cette super- position. Or dans le cas de points colinéaires, il n’existe pas une unique transformation optimale mais une infinité de transformation.

A la fin de cette première étape, on obtient donc l’ensemble des graines du graphe H.

Remarque : la condition de distance inférieure à ζsentre points d’un même ensemble

dans une graine contraint à la sélection de graines dites locales. Les points considérés sont proches dans l’espace. Cette proximité, ajoutée à la faible différence entre les distances d’un ensemble à l’autre crée des graines qui sont considérées robustes. Ce point est plus longuement abordé dans la discussion de ce chapitre.

5.3.4 Extension des graines (création des pseudo-cliques)

Cette étape consiste, pour une 3-graine g = (vi, vj, vk) donnée, à trouver l’ensemble

Figure 5.3 – Détection d’une graine (ABC, en rouge) dans un graphe non-orienté

g notées cliquesk+1(g) . Pour cela, N injas liste les voisins (définition 5.8) de chaque

sommet de la graine dans G et fait l’intersection des trois ensembles obtenus. Cela équivaut à écrire :

pseudo(g) = voisins(vi) ∩ voisins(vj) ∩ voisins(vk) (5.5)

ou : pseudo(g) = n [ i=1 cliquesk+1(g) (5.6)

Définition 5.8 (Voisin). Dans un graphe non-orienté G = (VG, EG), un sommet w ∈ VG

est dit voisin d’un sommet v ∈ VG s’il existe une arête ev,w ∈ EG .

Cette étape renvoie un ensemble de pseudo-cliques pseudo(g) dont les sommets sont des candidats aux pseudos-cliques finales.

5.3.5 Filtrage des graines étendues, limitation de la déviation

Les sommets des pseudocliques renvoyées à l’étape précédente ne sont pas tous conser- vés dans les pseudocliques finales, ce car les contraintes de sélections se font sur des mesures de distances internes à chaque ensemble A et B. Or deux points d’un sommet peuvent respectivement respecter les contraintes de distances posées par rapport à la graine mais ne pas se trouver du même côté du plan défini par les triangles des graines (voir figure 5.4). En conséquence les pseudocliques subissent ici une étape de filtrage pour identifier les sommets dans le cas cité, ces sommets sont dits non valides (définition 5.9) et retirés de la pseudoclique.

Soit pseudo(g) = {v1, ...vn} la pseudoclique de la graine g ∈ H dans G ; v1, ...vn∈ VG

sont les sommets de G connectés aux sommets de g. L’étape de filtrage débute par la recherche de la transformation optimale Tg qui va, après superposition des triangles ijk

et i’j’k’ issus des sommets de g, minimiser les distances ii’,jj’ et kk’. Cette transforma- tion est ensuite appliquée à l’ensemble des points (pi, p0i) associés à chacun des sommets

vi ∈ pseudo(g) de la pseudo-cliques et les distances piT (p0i) sont mesurées. Les sommets

limitant l’éloignement des points couplés après superposition. Le bénéfice ici est double, d’une part il permet de supprimer les sommets vi composés de points (pi, p0i) qui, après

superposition, se trouvent chacun de chaque côté du plan défini par les triangles super- posés de la graine (illustration sur la figure 5.4). D’autre part, cette sélection maintient

Figure 5.4 – [25]

la déviation globale moyenne sur les coordonnées de la pseudo-clique (RMSDc) inférieure au seuil τ ce qui est un fort avantage dans le cadres des applications développées dans ce manuscrit.

Définition 5.9 (Validité d’un sommet de la pseudoclique). Un sommet de la pseudo- clique pseudo(g) est dit valide si la distance entre ses points après la transformation Tg

est inférieure à un seuil τ .

L’ensemble des pseudocliques nettoyées correspond aux différentes zones de A et B géométriquement compatibles.