• Aucun résultat trouvé

4.2 Graphes

4.2.1 Généralités

Un graphe est un objet mathématique utilisé pour modéliser des connexions entre un ensemble d’objets. Les objets sont représentés par des points appelés sommets ou nœuds et les relations entre eux par des traits les reliant. Nous évoquons dans cette sous-section quelques notions de la théorie des graphes utiles pour la suite. Pour plus de détails, nous invitons le lecteur à consulter [40], par exemple.

Formellement, un grapheG est un couple G = (V, E) où V est un ensemble

de nœuds (ou sommets) de G et E une relation binaire sur V . Il est fini si

l’ensemble de ses sommets est fini, sinon il est infini.

Un graphe non orienté G est un graphe (V, E) où les éléments de E sont

des paires non ordonnées de nœuds différents appelées arêtes de G . Par non

ordonné on veut dire que (n, n0) et (n0, n) désignent la même arête reliant les

nœuds n et n0, n 6= n0, qu’on note aussi par {n, n0}. Les éléments d’une arête

e = {n, n0} ∈ E sont appelés les extrémités de e. On dit alors que e joint n et

n0 et que n et n0 sont connectés. Dans ce type de graphe, une arête joignant les nœuds n et n0 décrit une relation symétrique entre n et n0. Dans un graphe fini non orienté G , une chaîne de n ∈ V vers n0 ∈ V est une suite n, n1, . . . , nk, n0

de nœuds telle que k = 0 et n et n0 sont connectés ou k > 0 et n est connecté à

n1, n0 est connecté à nk, et pour tout i ∈ [k − 1], ni est connecté à ni+1. Cette chaîne est un cycle si k ≥ 2, n = n0 et les nœuds n1, . . . , nk, n0 sont distincts.

Le graphe G est acyclique s’il ne contient pas de cycle. Il est connexe si pour

toute paire s, s0∈ V , s 6= s0, il existe une chaîne de s vers s0. Un graphe connexe et acyclique est appelé arbre. Les arbres ont notamment la particularité d’avoir

pour chaque paire de nœuds différents n, n0 exactement une chaîne, dont tous

les nœuds sont différents, de n vers n0.

Exemple 4.2.1. Le poset N représenté dans la Figure 1.7 et reproduit dans la

Figure 4.1, pour plus de commodité, peut être assimilé au graphe suivant :

({x1, x2, x3, x4}, {{x1, x2}, {x2, x3}, {x3, x4}})

C’est un graphe connexe et acyclique : un arbre.

x2 x4

x1 x3

4.2 - Graphes 4 - Automates sur les Posets et P-MSO

Un graphe orienté G est un graphe (V, E) où les éléments de E sont des

paires ordonnées de nœuds appelées arcs de G . Dans ce cas les arcs (n, n0) et (n0, n) sont différents. Dans l’arc e = (n, n0), n est appelé la source de e et n0sa

destination. On dit que l’arc e va de n à n0. Remarquons qu’à chaque grapheG orienté on peut associer un graphe non orienté. Il suffit d’enlever l’orientation

des arcs. Le graphe non orienté obtenu s’appelle le graphe sous-jacent de G .

Un graphe orienté est connexe si son graphe sous-jacent est connexe. Un arc

e = (n, n0) est représenté par une flèche allant du nœud n au nœud n0. On dit que e sort de n et entre dans n0. Il est noté n → n0. Le degré sortant (resp.

entrant) d’un nœud n de V dans G , noté degout(n) (resp. degin(n)), est le nombre d’arcs sortants de (resp. entrants à) n.

Dans un graphe fini orientéG = (V, E), les nœuds de la suite n1, . . . , nk, pour

k > 0, sont dits consécutifs s’il existe un arc ni→ ni+1 ∈ E, pour tout i ∈ [k−1]. On dit aussi que la suite de nœuds n1, . . . , nk va de n1 à nk. Similairement, les arcs de la suite e1, . . . , eksont dits consécutifs si la destination de eiest la source

de ei+1, pour tout i ∈ [k − 1]. Un nœud p de V est un ancêtre d’un nœud n

de V s’il existe dans G une suite de nœuds consécutifs n1, . . . , nk, pour k ∈ N telle que p, n1, . . . , nk, n est aussi une suite de nœuds consécutifs. Le nœud n

est dit être un descendant de p. Quand k = 0, on dit que p est un parent pour

n et n un enfant de p. Un cycle dans G est une suite n1, . . . , nk, k > 1, de nœuds consécutifs de G telle que n1 = nk. Un graphe orienté est acyclique s’il ne contient pas de cycle. Un graphe orienté acyclique est appelé DAG (Directed Acyclic Graph). Dans un DAG, il y a deux types de nœuds :

1. les nœuds internes : les nœuds ayant un degré sortant non nul ; 2. les feuilles : les nœuds ayant un degré sortant nul.

Remarquons qu’un arbre orienté est un DAG.

Les nœuds et/ou les arêtes (resp. arcs) d’un graphe non orienté (resp. orienté) peuvent être étiquetés. Un graphe étiqueté par un ensemble de symboles F est un 3-uplet (V, E, l) tel que (V, E) est un graphe et l une application associant à chaque nœud et/ou arête (resp. arc) du graphe non orienté (resp. orienté) un élément de F , appelé son étiquette.

Exemple 4.2.2. L’automate de la Figure 2.4 reproduit dans la Figure 4.2, pour

plus de commodité, peut être assimilé au graphe suivant :

({0, 1}, {(0, 0), (0, 1), (1, 0), (1, 1)}, {((0, 0), a), ((0, 1), b), ((1, 0), a), ((1, 1), b)})

C’est un graphe orienté dont les arcs sont étiquetés par un alphabet {a, b}. Il n’est pas acyclique puisqu’il existe un cycle entre 0 et 0 par exemple.

0 b 1

a b a

Figure 4.2 – Un graphe orienté dont les arcs sont étiquetés.

Un arbre enraciné T est un arbre dont l’ensemble des nœuds contient un nœud unique appelé la racine de T. La particularité de la racine d’un arbre

enraciné est le fait qu’elle induise une orientation des arêtes. En effet, un arbre enraciné T peut être assimilé à un arbre orienté T0 où la racine de T est le seul

nœud de T0 n’ayant pas de parents et qui est ancêtre de tous les autres nœuds,

et où il y a un arc de n à n0 dans T0 s’il existe une chaîne de r, n1, . . . , nk, n, n0

dans T , k ≥ 0. Par conséquent, nous utilisons pour les arbres enracinés le vo-cabulaire défini pour les graphes orientés. Ainsi, la racine d’un arbre enraciné est facilement identifiable. Il s’agit du seul nœud dont le degré entrant est de 0. En effet, tous les nœuds différents de la racine sont de degré entrant 1. Notons qu’un DAG connexe n’est pas toujours un arbre enraciné. Inversement, un arbre enraciné est un DAG. Tous les arbres que nous aurons à utiliser sont des arbres enracinés. Par soucis de simplification, les arbres enracinés sont appelés simple-ment arbres dans la suite. Ainsi, en disant « l’arbre (T, E) », il faut comprendre « l’arbre orienté (T, E) où il existe un unique nœud r ∈ V tel qu’il n’existe pas

n ∈ V avec (n, r) ∈ E »

Soit T = (V, E) un arbre. Alors T0 = (V0, E0) est un sous-arbre de T si les conditions suivantes sont vérifiées :

— V0⊆ V et E0⊆ E ;

— T0 est un arbre ;

— pour tout n ∈ V , si n ∈ V0 alors, pour tout descendant n0 de n dans T ,

n0 est aussi un descendant de n dans T0.

Un sous-arbre de T0 différent de T est un sous-arbre strict de T . Un arbre a

autant de sous-arbres qu’il a de nœuds. Un sous-arbre à partir d’un nœud n de T est le sous-arbre de T enraciné par n. Il est induit par les descendants de

n. Le sous-arbre T0 de T est un sous-arbre direct de T si T0 6= T et il n’existe pas T006= T, T0 sous-arbre de T tel que T0 est un sous-arbre de T00. Remarquons que les sous-arbres directs d’un arbre T ont pour racines les enfants de la racine de T .

Étant donné un arbre T et un nœud x de T , la profondeur de x est la longueur de l’unique suite d’arcs consécutifs menant de la racine de T à x. La

hauteur de x est la plus petite borne supérieure des longueurs des suites de

nœuds consécutifs menant de x vers une feuille de T . La hauteur de T est la hauteur de sa racine. On peut définir une relation d’ordre partielle sur l’ensemble des sous-arbres de T comme suit, pour tout T0, T00 sous-arbres de T :

T0< T00 si et seulement si T0 est un sous-arbre strict de T00

Un arbre T où toute suite décroissante de sous-arbres est bien ordonnée est idoine pour les preuves par induction. C’est le cas de tout arbre dont la hauteur est finie par exemple.

Un arbre ordonné est un arbre dont les enfants de chaque nœud sont to-talement ordonnés. Soit I un ordre linéaire dénombrable et dispersé. L’arbre ordonné de racine r et dont la suite ordonnée de ses sous-arbres directs est (Ti)i∈I est noté (r, (Ti)i∈I).

Un graphe enraciné est un graphe G = (V, E) dans lequel un nœud est

désigné et appelé racine du graphe, notée r(G ). Contrairement aux racines des

4.2 - Graphes 4 - Automates sur les Posets et P-MSO 1 2 3