27
Construction du graphe Construction du graphe de Spehner. de Spehner.

Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

Embed Size (px)

Citation preview

Page 1: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

Construction du graphe de Construction du graphe de Spehner.Spehner.

Construction du graphe de Construction du graphe de Spehner.Spehner.

Page 2: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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.

Page 3: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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}

Page 4: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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}

Page 5: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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, εε}.}.

Page 6: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

Affichage des sommets de notre Affichage des sommets de notre graphe graphe

ε b a

Page 7: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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.

Page 8: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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}

Page 9: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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)

Page 10: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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)

Page 11: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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)

Page 12: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents
Page 13: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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

Page 14: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

AlphabetAlphabet

ClonageClonage Ajout de lettresAjout de lettres Test de contenanceTest de contenance EngendrementEngendrement ÉgalitéÉgalité UnionUnion Retrait de lettresRetrait de lettres

Page 15: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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

Page 16: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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

Page 17: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

GrapheGraphe

Implantation séparée:Implantation séparée: ArcsArcs ÉtiquettesÉtiquettes SommetsSommets

Page 18: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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

Page 19: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

Obtention d’un circuitObtention d’un circuit

5

1 2

3

4

Circuit={1}

Bloqués={1}

Page 20: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

Obtention d’un circuitObtention d’un circuit

5

1 2

3

4

Circuit={1,2}

Bloqués={1,2}

Page 21: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

Obtention d’un circuitObtention d’un circuit

5

1 2

3

4

Circuit={1,2,3}

Bloqués={1,2,3}

Page 22: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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é

Page 23: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

Obtention d’un circuitObtention d’un circuit

5

1 2

3

4

Circuit={1,2,3,5}

Bloqués={1,2,3,4,5}

Page 24: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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}

Page 25: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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

Page 26: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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?

Page 27: Construction du graphe de Spehner.. Différentes étapes 1) Alphabet. 2) Langage. 3) Création des sommets du graphe de Spehner. 4) Ajout des différents

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