Précédent
 
Suivant

Analyse combinatoire II

 

1) Structure quotient

Les structures en générale s'obtiennent en quotientant une structure libre par une relation d'équivalence respectant les foncteurs générateurs. Etant donné une relaton d'équivalence `"≈"`. On dit qu'elle respecte les foncteurs `f(".")` et `g(".,.")` si et seulement si : `AAxAAyAAaAAb,`

`x"≈"y => f(x)"≈"f(y)`
`x"≈"y "et" a"≈"b => g(x,a)"≈"g(y,b)`

L'ensemble des classes d'équivalence forme alors la structure quotient. Pour rappel une relation `"≈"` est dite d'équivalence si et seulement si elle est transitive, symétrique et reflexive : `AAxAAyAAz,`

`x"≈"y "et" y"≈"z => x"≈"z`
`x"≈"y => y"≈"z`
`x"≈"x`

Le quotientage de structures non-libres se fait de la même façon.

2) Relation d'équivalence et propagation

Etant donnée une relation d'équivalence `"≈"` quelconque, celle-ci engendre une équivalence (plus large ou égale) respectueuse des foncteurs générateurs. On la construit par un algorithme parcourant la structure. Prenons par exemple la structure libre suivante  : `E= "<"e,f("."),g(".,.")">"` et considérons une relation d'équivalence `"≈"` définie sur cette structure.

On va construire les classes d'équivalences sous forme d'arbres où la racine de l'arbre sera le représentant de la classe d'équivalence. Chaque élément est associé à un autre élément qui est son successeur dans sa classe. Au dépard, chaque élément est associé à lui-même. Le représentant de l'élément est parmi tous ses successeurs, celui du bout qui est son propre successeur. Puis on parcours tous les couples `(x,y)` d'éléments, et à chaque fois que `x"≈"y` on associe le représentant de `x` au représentant de `y`. En procédant ainsi, on construit les classes d'équivalence sous forme d'arbre.

Le parcours de `E` se fait par ordre de complexité, d'abord les éléments générateurs puis les termes ne comprenant qu'un foncteur générateur, puis ne comprenant que la composition de deux foncteurs générateurs, etc.. On peut alors parcourir `E^2` selon une comlexité en diagonal (de la même façon que l'on parcourt `NN^2`).

On perfectionne l'algorithme pour augmenter la relation d'équivalence juste ce qu'il faut afin qu'elle respecte les foncteurs. Lorsque l'on rencontre un couple `f(x),f(y)` tel que `x"≈"y` alors on fusionne les classes `f(x)` et `f(y)`, en associant le représentant de `f(x)` au représentant de `f(y)`. Et de même, lorsque l'on rencontre un couple `g(x,y),g(a,b)` tel que `x"≈"y` et `a"≈"b` alors on fusionne les classes `g(x,y)` et `g(a,b)`, en associant le représentant de `g(x,y)` au représentant de `g(a,b)`.

 

 

Précédent
 
Suivant

 

 


Dominique Mabboux-Stromberg