WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Réconciliation par consensus des mises à  jour des répliques partielles d'un document structuré.

( Télécharger le fichier original )
par Milliam Maxime Zekeng Ndadji
Université de Dschang - Master 2 2016
  

précédent sommaire suivant

Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy

2.6 qui sont des expansions de tmaj

v1 .

Génération des arbres à partir d'un automate

Tout comme il est possible de générer des mots du langage accepté par un automate classique (automate sur les chaînes de caractères) à partir de ce dernier, il est possible de générer des arbres à partir d'un automate d'arbres. En effet, il suffit de partir de l'état initial vers les états finals en se laissant guider par les transitions de l'automate. Il existe tout de même le risque de tourner en rond (indéfiniment) lorsque les transitions de l'automate décrivent un cycle ; on passe alors plusieurs fois par un même état. Pour régler ce problème, il suffit de fixer le nombre maximum d'utilisation d'un état dans la génération. Sur ce principe, un générateur (dont le code Haskell est donné dans l'an-nexe B) a été proposé dans [BTT08, BTT07] ; ce dernier énumère les arbres les plus simples acceptés par un automate d'arbre, c'est à dire, les arbres tels que dans aucune branche, un état de l'automate n'est utilisé plus d'une fois pour la génération des noeuds de la branche. L'application de cette fonction de génération à l'automate fournit l'AST P1[P5[P1[P5[P2[],P7[]],P3[P7[],P2[]]],P7[]],P3[P7[],P2[]]] correspondant au second arbre de la figure 2.6.

2.4. Fusion des répliques partielles mises à jour

La dernière étape du procédé d'édition coopérative présenté à la section 2.1.3 est la fusion des mises à jour portées par les co-auteurs sur les différentes répliques partielles. Pour cela, on synchronise les expansions des différentes répliques mises à jour. Ces expansions étant représentées par des automates d'arbre qui leur ont été associés, leur synchronisation implique une synchronisation à base d'une opération (produit synchrone) de ces automates. Dans cette section, nous définissons le produit synchrone de plusieurs automates d'arbre puis nous montrons comment ce produit peut être utilisé pour réaliser la fusion des mises à jour portées sur les répliques partielles.

2.4.1. Produit synchrone des automates d'arbre

Définition 14 Produit synchrone de k automates

Soient (1) = (E,Q(1),R(1),qo1)),. ., (k) = (Ó,Q(k),R(k),qak)) k automates d'arbre. Le produit synchrone de cesi k automates (1) ®··· ® (k) noté ®i (i), est l'automate (sc) = (Ó,Q,R,q0) défini comme suit :

Ses états sont les vecteurs d'états : Q = Q(1) x ··· x Q(k) ;

Son état initial est formé par le vecteur des états initiaux des différents automates : q0 = (q(1)

0 ,···,q(k)

0 );

2.5. Synthèse 32

Mémoire - ZEKENG NDADJI Milliam Maxime LIFA

-- Ses transitions sont données par :

~ ~

(q(1),...,q(k)) a ? (q(1)

1 ,...,q(k) 1 ),...,(q(1)

n ,...,q(k)

n ) ?

a

q(i) ? (q(1i),...,qSii)) ?i, 1 = i = k)

L'automate d'arbre produit permet de représenter l'intersection des langages d'arbre acceptés par les automates intervenants dans le calcul de ce produit ; il (l'automate produit) accepte donc les arbres (documents) qui sont reconnus par tous les automates qui permettent de le calculer. Plus formellement,

(?k )
i
=191(i) ` t r (q1,··· ,qk)) ? (?i, 91(i) ` t r qi) donc 2' (?k i=191(i), (q1,··· ,qk)) = T2' (91(i), qi

2.4.2. Fusion des répliques partielles

Le but de la fusion des mises à jour portées sur les répliques partielles est celui de trouver un document tf conforme à la grammaire globale qui intègre toutes les contributions des différents co-auteurs. Pour chaque réplique partielle, on sait déjà représenter, à l'aide d'un automate, son expansion. Un arbre appartenant à l'expansion d'une réplique partielle est conforme à la grammaire globale et admet cette réplique comme trace visible (c'est à dire qu'il intègre tous les noeuds de cette réplique). Pour atteindre l'objectif de la fusion, il faut trouver des arbres qui appartiennent à toutes les expansions des différentes répliques partielles à fusionner : il faut donc calculer l'intersection de ces expansions. Comme ces expansions sont représentées par des automates d'arbre, leur intersection peut être représentée par un automate d'arbre qui est le produit synchrone de ces automates. On peut donc en déduire que, pour fusionner les mises à jour apportées à k répliques partielles tV1,··· ,tVk d'un document structuré t il faut :

1. Associer un automate d'arbre (91(i)) à chaque réplique partielle mise à jour (tma j

Vi , ? 1 =

i =k);

2. Calculer l'automate produit 91(SC) = ?i91(i) de ces automates;

3. Les documents reconnus par 91(SC) sont des documents globaux qui intègrent toutes les mises à jour des différents co-auteurs.

précédent sommaire suivant






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy








"I don't believe we shall ever have a good money again before we take the thing out of the hand of governments. We can't take it violently, out of the hands of governments, all we can do is by some sly roundabout way introduce something that they can't stop ..."   Friedrich Hayek (1899-1992) en 1984