construction du graphe de spehner.. différentes étapes 1) alphabet. 2) langage. 3) création des...
TRANSCRIPT
Construction du graphe de Construction du graphe de Spehner.Spehner.
Construction du graphe de Construction du graphe de Spehner.Spehner.
Différentes étapesDifférentes étapes
1) Alphabet.1) Alphabet.2) Langage.2) Langage.3) Création des sommets du graphe 3) Création des sommets du graphe
de Spehner.de Spehner.4) Ajout des différents arcs.4) Ajout des différents arcs.5) Recherche d’un circuit.5) Recherche d’un circuit.6) Mots en double décomposition si le 6) Mots en double décomposition si le
langage n’est pas un code.langage n’est pas un code.
AlphabetAlphabet
Notre Alphabet que l’on nommera A Notre Alphabet que l’on nommera A sera composé pour notre exemple sera composé pour notre exemple des lettres des lettres
a et b. a et b.
A={a,b}A={a,b}
LangageLangage
Après avoir défini notre alphabet, Après avoir défini notre alphabet, nous construisons notre langage L nous construisons notre langage L défini sur l’alphabet A={a,b} défini sur l’alphabet A={a,b} précédemment créé. Notre langage précédemment créé. Notre langage sera constitué des mots a, ab et ba.sera constitué des mots a, ab et ba.
L={a,ab,ba}L={a,ab,ba}
Création des sommetsCréation des sommets
Tout d’abord, nous créons l’ensemble Tout d’abord, nous créons l’ensemble K contenant les sommets du graphe. K contenant les sommets du graphe.
K={a, b, K={a, b, εε}.}.
Affichage des sommets de notre Affichage des sommets de notre graphe graphe
ε b a
Construction des arcs :Construction des arcs :
Les arcs sont construits à partir de chaque Les arcs sont construits à partir de chaque sommet de notre graphe. Un arc entre les sommet de notre graphe. Un arc entre les sommets (u,v) d’étiquette (x,y) est ajouté si : sommets (u,v) d’étiquette (x,y) est ajouté si :
x=u.y.v x=u.y.v avecavec x x ЄЄ L et y L et y ЄЄ L*, L*, u.y ≠ u.y ≠ εε et y.v ≠ et y.v ≠ εε,,
u,v u,v ЄЄ K. K.
Ajout des différents arcs :Ajout des différents arcs :
ε b a
(ab,a)
(ab,ε)
(ba,ε)
(ba,a)
Voici le graphe de Spehner associé au langage L={ab,ba,a}
Pourquoi ce n’est pas un code?Pourquoi ce n’est pas un code?Le graphe de Spehner nous permet de conclure que le langage n’est pas
un code s’il existe un circuit menant du sommet ε à lui-même. Recherchons ce circuit.
Il existe un arc de ε vers b.
ε b a
(ab,a)
(ab,ε)
(ba,ε)
(ba,a)
Pourquoi ce n’est pas un code?Pourquoi ce n’est pas un code?Le graphe de Spehner nous permet de conclure que le langage n’est pas
un code s’il existe un circuit menant du sommet ε à lui-même. Recherchons ce circuit.
Mais aussi un arc de b vers ε. Nous venons donc de trouver un circuit de ε vers ε.
Ce qui prouve que le langage L={a, ba, ab} n’est pas un code!
ε b a
(ab,a)
(ab,ε)
(ba,ε)
(ba,a)
Mots ayant une double Mots ayant une double décompositiondécompositionMais le graphe de Spehner permet aussi de trouver les mots ayant une
double décomposition grâce aux étiquettes des différents arcs se trouvant sur un circuit de ε vers ε. Reprenons l’exemple précédent :
L’équation associée à ce circuit est :
a.ba = ab.a
donc le mot aab de L* possède une double décomposition.
Cette équation est donnée grâce aux différents arcs traversés lors de ce circuit.
ε b a
(ab,a)
(ab,ε)
(ba,ε)
(ba,a)
Présentation des primitivesPrésentation des primitiveset des algorithmeset des algorithmes
1°)Alphabet
2°) Mots
3°) Langage
4°) Graphe
5°) Matrice d’adjacence
Présentation des primitives Exemples d’algorithmes
1°) Obtention d’un circuit
2°) Engendrer des mots
AlphabetAlphabet
ClonageClonage Ajout de lettresAjout de lettres Test de contenanceTest de contenance EngendrementEngendrement ÉgalitéÉgalité UnionUnion Retrait de lettresRetrait de lettres
MotMot Test des préfixes et suffixesTest des préfixes et suffixes Comparaison lexicographiqueComparaison lexicographique ConcaténationConcaténation ÉgalitéÉgalité Obtention des préfixes et suffixesObtention des préfixes et suffixes Soustraction d’élémentsSoustraction d’éléments
LangageLangage Ajout de mots, d’ensemblesAjout de mots, d’ensembles Test d’engendrementTest d’engendrement Générateur minimum: test et obtentionGénérateur minimum: test et obtention IntersectionIntersection Langage préfixe, suffixeLangage préfixe, suffixe Retrait de motsRetrait de mots
GrapheGraphe
Implantation séparée:Implantation séparée: ArcsArcs ÉtiquettesÉtiquettes SommetsSommets
Matrice d’adjacenceMatrice d’adjacence
Outils de représentation:Outils de représentation: Existence et obtention de cheminExistence et obtention de chemin Existence et obtention de circuitsExistence et obtention de circuits Existence et obtention d’arcs particuliersExistence et obtention d’arcs particuliers Test d’accessibilité des sommetsTest d’accessibilité des sommets Recherche des sommets sur les mêmes circuitsRecherche des sommets sur les mêmes circuits
Obtention d’un circuitObtention d’un circuit
5
1 2
3
4
Circuit={1}
Bloqués={1}
Obtention d’un circuitObtention d’un circuit
5
1 2
3
4
Circuit={1,2}
Bloqués={1,2}
Obtention d’un circuitObtention d’un circuit
5
1 2
3
4
Circuit={1,2,3}
Bloqués={1,2,3}
Obtention d’un circuitObtention d’un circuit
5
1 2
3
4
Circuit={1,2,3,4}
Bloqués={1,2,3,4}
4 est un sommet menant vers un autre sommet bloqué
Obtention d’un circuitObtention d’un circuit
5
1 2
3
4
Circuit={1,2,3,5}
Bloqués={1,2,3,4,5}
Obtention d’un circuitObtention d’un circuit
5
1 2
3
4
Circuit={1,2,3,5,1}
Bloqués={1,2,3,4,5}
On obtient le circuit {1,2,3,5,1}
Engendrer des motsEngendrer des motsAlphabet={a,b}
Langage={a,ab,bb}
Mot à tester:
abbab
Préfixes du mot:
a,ab,abb,abba,abbab
a est un préfixe et un mot du langage
Engendrer des motsEngendrer des motsAlphabet={a,b}
Langage={a,ab,bb}
Mot à tester:
abbab
Préfixes du mot:
a,ab,abb,abba,abbab
abbab=a.bbab
bbab est-il engendré par
le langage?
Engendrer des motsEngendrer des motsAlphabet={a,b}
Langage={a,ab,bb}
Mot à tester:
bbab
Préfixes du mot:
b,bb,bba,bbab
bbab=bb.ab
bb est un préfixe et un mot du langage
ab est un mot du langage donc le mot de départ, abbab, est bien engendré par le langage. abbab=a.bb.ab