• Aucun résultat trouvé

Les Arbres

N/A
N/A
Protected

Academic year: 2022

Partager "Les Arbres"

Copied!
9
0
0

Texte intégral

(1)

Jacques Duma

Voyez vous ci-dessous, les points communs entre toutes ces figures ?

(3)

/s/p/a /s/p/b /s/r/x /s/r/y

(4)

<s>

<p><a/><b/></p>

<r><x/><y/></r>

</s>

(5)

(s ( p a b) (r x y))

(6)

s( p(a, b), r(x, y))

(8)

123 Test

Jacques Duma 7 janvier 2007

I Tests en cours

s(p(a, b), r(x, y)) a×b

+

x

y

Alignement

f

(x) =

yyy g(x) = zzz h(x) = ttt

f

(x) =

yyy g(x) = zzz h(x) = ttt

f

(x) =

yyy g(x) = zzz h(x) = ttt

On d´eduit l’´equation (2) de l’´equation (1)

f

(x) =

yyy

(1)

f

(x) =

yyy

(2)

f

:

!f

(t) = si

t∈

[a;

b]

f

(t) = si

t∈

[c;

d]

II Tests pr´ ec´ edents

\usepackage{color}

...

Je peux ´ecrire en

rouge, en vert

et en

bleu.

Je peux aussi ´ecrire en

orange

ou avec

mon bleu.

Ce n’est pas toujours

tr`es beau

.

0 0

a

0 0 0

a

0 0 0

a

0

(11)

s r

x y

p

a b

(9)

{

{s,p,r,a,b,x,y}

, {

{s,p},{s,r},{p,a},{p,b},{r,x},{r,y}

} }

(1)

(7)

{ "s" : { "p" : ["a","b"] , "r" : ["x","y"] } }

(10) (2)

Certains disent que l’informatique est une jungle ...

C’est plutˆot une forˆet ! Il y a des arbres partout !

♣ ♦ ♥

(2)

Table des mati` eres

1 Au sujet de ce document 3

2 Th´eorie des Graphes 3

2.1 D´efinitions, Vocabulaire, Exemples . . . 3

2.2 Notation Math´ematique . . . 4

2.3 Applications . . . 4

3 Arbres 4 3.1 Exemples . . . 5

3.2 Propri´et´e. . . 5

3.3 Notations . . . 6

4 Applications 7 4.1 Expressions Math´ematiques . . . 7

4.2 Fonctions . . . 8

4.3 Bases de Donn´ees . . . 8

4.4 G´en´ealogie, D´enombrement, Probabilit´es . . . 9

5 Codage 9

(3)

1 Au sujet de ce document

Nous allons parler ici de Math´ematiques et d’Informatique. Pour les Math´ematiques, on fera une petite initiation `a la th´eorie des graphes. Pour l’Informatique, on pr´esentera quelques situations dans lesquelles s’applique cette th´eorie des graphes.

Pour ´eviter toute difficult´e th´eorique, les diff´erentes notions seront toujours pr´esent´ees `a l’aide d’exemples simples. En particulier, toutes les figures de la page 1 seront expliqu´ees en d´etail. Disons tout de suite que la case(2) contient un b´eb´e baobab !

Des liens vers Wikip´edia seront fournis pour obtenir des informations compl´ementaires.

2 Th´ eorie des Graphes

La th´eorie des graphes d´ecrit et ´etudie des structures abstraites compos´ees de noeuds et d’arcs. On peut, de fa¸con intuitive, comprendre assez facilement ce concept de graphe, car on peut le repr´esenter simplement `a l’aide de dessins. Sur Wikip´edia :«Th´eorie des graphes»

2.1 D´ efinitions, Vocabulaire, Exemples

Un graphe est compos´e de nœud et d’arc : – un nœuds est un point

un nœud peut ˆetre simple ou´etiquet´e.

– un arcs et une ligne reliant deux nœuds

un arc peut ˆetre simple ou´etiquet´e,non orient´e ouorient´e (les arc sont des fl`eches).

On appelle chemin une suite de nœuds reli´es par des arcs. La longueur d’un chemin est le nombre des arcs qu’il contient.

On appelle cycle (ou boucle) un chemin qui passe deux fois par un mˆeme nœuds.

On dit qu’un graphe est connexe (en un seul morceau) si tous couples de ses nœuds est reli´es par au moins un chemin.

Voici quelques exemples de graphes :

1 : non connexe 2 : connexe 3 : sans cycle

4 : orient´e ´etiquet´e 5 : arcs ´etiquet´es 6 : nœuds ´etiquet´es

f e

d c

a b g b

c

d e

f a

h b

d e

c a

g f

h

(4)

Remarques : Il y a des cycles dans les figures 1, 2, 4 et 5, pas dans les figures 3 et 6.

Dans la figure 4 un arc a le mˆeme nœud comme origine et comme extr´emit´e, c’est donc cycle de longueur 1.

Un chemin peut ˆetre d´ecrit comme une liste de nœuds : dans la figure 6, {a, g, c, b, d, e}

est un chemin de longueur 5.

Un chemin peut aussi ˆetre d´ecrit comme une liste d’arcs : dans la figure 5, {d, c, g, b, h}

est un chemin de longueur 5 ; {a, b, g, c, e, f} est un cycle de longueur 6.

2.2 Notation Math´ ematique

On repr´esente un graphe par une paire {S, A} o`u S est l’ensemble des nœuds et A est l’ensemble des arcs. Un arc est une paire de nœuds (ensemble de 2 nœuds) si le graphe est non orient´e, c’est un couple de nœuds (liste ordonn´ee de 2 nœuds) si le graphe est orient´e.

Exemple : Sur la figure de la page 1, les nœuds des graphes num´ero 4 et num´ero 6 sont

´etiquet´es, on peut donc facilement les d´efinir ces graphes `a l’aide de la notation propos´ee.

Graphe num´ero 4, orient´e, avec cycles : {S, A}=n

{a, b, c, d, e, f},

(a, c),(b, c),(b, f),(c, c),(d, e),(e, d),(e, c),(e, f) o Graphe num´ero 6, non orient´e, sans cycle :

{S, A}= n

{a, b, c, d, e, f, g, h},

{a, g},{b, c},{b, d},{c, h},{d, e},{f, g},{g, c} o

Remarques : Pour d´efinir un graphe ainsi, il est donc n´ecessaire d’´etiqueter les nœuds.

L’´etiquetage des arcs seuls ne suffit pas.

Sur la page 1 d’introduction, on remarque donc que la case (1) contient la d´efinition du graphe de la figure (9) dans le formalisme que nous venons de pr´esenter.

Pour des informations compl´ementaires sur Wikip´edia : «Th´eorie des graphes»

2.3 Applications

Le succ`es de la th´eorie de graphes est que ce mod´ele math´ematique permet de d´ecrire de tr`es nombreuses situations r´eelles.

On imagine facilement qu’un carte routi`ere peut ˆetre mod´elis´ee math´ematiquement `a l’aide d’un graphe. Il en est de mˆeme pour le r´eseau de distribution ´electrique, les rivi`eres et le fleuves, les labyrinthes etc.

L’informatique fait un usage intensif de la th´eorie de graphes, en particulier d’un certain type de graphe : les arbres.

3 Arbres

Un arbre est un graphe connexe sans cycle.

Un nœud appel´e racine est choisi comme origine.

(5)

Les nœuds reli´es `a la racine par des arcs sont appel´es fils de la racine, et chaque nœud-fils peut ensuite lui-mˆeme avoir ses propres fils ...

Dans le cas des arbres les arcs sont souvent appel´esbranches.

On appelle nœud terminal ou feuille un nœud qui n’a pas de fils.

Remarques : Sur la page 1d’introduction, on remarque donc que la figure (9) est un arbre.

s r

x y

p

a b

(9)

Dans cet arbre :

– s est la racine de l’arbre

– p etr sont les fils de la racine s – a et b sont les fils de p

– x et y sont les fils de r

– a, b,x, y sont des feuilles ou nœuds terminaux

3.1 Exemples

Un arbre, en principe, n’est pas orient´e. Cependant le choix d’une racine cr´ee implicitement une orientation de l’arbre depuis cette racine vers les feuilles.

Dans les exemples pr´esent´e sur la figure de la section2.1on constate que les graphes num´ero 3 et num´ero 6 sont des arbres.

Une petite d´eformation des dessins permet de montrer que n’importe quel nœud de ce graphe peut ˆetre choisi comme racine.

Par exemple voici pour la figures num´ero 6 trois fa¸cons de choisir la racine :

b

d e

c a

g f

h

b d e

c

a g f

h

b d e

c a g h f

b d e

c

a

g f

h

On remarque que n’importe quel nœud de ce graphe peut ˆetre la racine d’un arbre particulier, mais que seuls les nœudsa,e,f eth peuvent ˆetre des feuilles car ils ne sont li´es qu’`a un unique autre nœud (il n’ont qu’un seul voisin).

Les autres nœuds ont plusieurs voisins et donc, ne peuvent pas ˆetre des feuilles.

3.2 Propri´ et´ e

Dans un arbre, toute feuille peut ˆetre rep´er´ee par un chemin unique `a partir de la racine.

Par exemple : dans la figure de la section3.1 ci-dessus, on peut d´esigner, selon la racine, la feuillee par un chemin unique :

Racine : a→agcbde, Racine : b→bde ou Racine :c→cbde.

(6)

3.3 Notations

La d´efinition du graphe de la figure pr´ec´edente (3.1) en utilisant la notation pr´esent´ee `a la section2.2 est un peu lourde :

{S, A}=n

{a, b, c, d, e, f, g, h},

{a, g},{b, c},{b, d},{c, h},{d, e},{f, g},{g, c} o

De plus, ceci n’est que la d´efinition du graphe, la racine choisie n’est pas pr´ecis´ee, pour d´efinir les trois arbres ci-dessus, il faut pr´eciser le racine R, par exemple ainsi :

{a, S, A} ou {b, S, A} ou {c, S, A}

Mais dans ce cas, la structure de l’arbre n’est pas ´evidente.

Une autre notation possible, plus compacte, consiste `a donner la liste des chemins depuis racine jusqu’`a chacune des feuilles :

Racine a → {(a, g, f),(a, g, c, b, d, e),(a, g, c, h)}

Racine b → {(b, d, e),(b, c, h),(b, g, f),(b, g, a)}

Racine c → {(c, b, d, e),(c, h),(c, g, f),(c, g, a)}

Une autre fa¸con de noter les chemins permet de repr´esenter les trois arbres de la section3.1 comme des ensembles de chemins, ainsi :

Racine a→

/a/g/f /a/g/c/b/d/e /a/g/c/h

Racine b→

/b/d/e /b/c/h /b/g/f /b/g/a

Racinec→

/c/b/d/e /c/h /c/g/f /c/g/a

Remarques : Sur la page1d’introduction la figure(4)repr´esente l’arbre hi´erarchique des dossiers et fichiers visible sur les figures(3) et(7) sous une forme famili`ere aux informaticiens :

(7)

/s/p/a /s/p/b /s/r/x

/s/r/y

(4) (3)

L’ensemble des dossiers et des fichier enregistr´es sur un ordinateur est hi´erarchis´e sous la forme d’un arbre. La racine de cet arbre est le disque dur de l’ordinateur, les nœuds sont les dossiers et les feuilles sont les fichiers.

Tout fichier est ainsi accessible `a l’aide d’un chemin unique (path en anglais).

Les URLs sont aussi des chemins sur le Web.

(7)

Une autre notation possible, plus compacte, consiste `a d´efinir chaque nœud soit : – par son nom, si il n’a pas de fils (c’est une feuille)

– par une liste dont le premier ´el´ement est son nom et les suivants sont ses fils Racine a → (a(g f (c(b(d e)) (h)))

Racine b → (b(c d) (c h(g f a)))) Racine c → (c(b (d e))h(g f a))

Remarque : Sur la page 1 d’introduction la figure (6) repr´esente dans cette notation, aussi bien l’arbre de la figure(9), que l’arbre des dossiers et fichiers de la figure (3) :

s r

x y

p

a b

(9)

(s ( p a b) (r x y))

(6)

(3)

4 Applications

Pour l’instant nous n’avons fait que d´ecrire des structures.

Maintenant nous allons voir comment utiliser ces structures et pr´esenter quelques exemples o`u la pr´esence des arbres est un petit peu moins ´evidente que dans la hi´erarchie des dossiers et fichiers d’un ordinateur.

4.1 Expressions Math´ ematiques

Dans la figure (11) de la page 1d’introduction, nous voyons l’expression math´ematique : a×b+x

y

Pour ´evaluer cette expression en tenant compte des r`egles de calcul usuel, il faut effectuer le produit de a et b (premier r´esultat), effectuer le rapport de x par y (second r´esultat), puis enfin effectuer la somme des deux r´esultats pr´ec´edents.

Ce long discours aurait avantageusement ´et´e remplac´e par un sch´ema beaucoup plus clair et qui ressemble beaucoup `a la figure (9) de l’introduction.

+ /

x y

×

a b

123 Test

Jacques Duma 7 janvier 2007

I Tests en cours

s(p(a, b), r(x, y)) a×b+x

y Alignement

f(x) =yyy g(x) =zzz h(x) =ttt

f(x) =yyy g(x) =zzz h(x) =ttt

f(x) =yyy g(x) =zzz h(x) =ttt

On d´eduit l’´equation (2) de l’´equation (1)

f(x) =yyy (1)

f(x) =yyy (2)

f :

!f(t) = si t[a;b]

f(t) = si t[c;d]

II Tests pr´ ec´ edents

\usepackage{color}

...

Je peux ´ecrire en rouge, envertet enbleu.

Je peux aussi ´ecrire enorange ou avecmon bleu.

Ce n’est pas toujours tr`es beau.

0 0 a 0 0 0 a 0 0 0 a 0

(11)

s r

x y

p

a b

(9)

Dans la figure (9), on peut aussi interpr´eter pcomme une fonction qui calcule le produit de ses deux arguments, r une fonction qui fait le rapport et s la somme.

On peut alors penser `a une nouvelle ´ecriture.

♣♦♥

♠ 7 /9 LATEX 2ε

(8)

Arbres Arbres.tex

4.2 Fonctions

La figure (8) de la page 1d’introduction, est ainsi la notation fonctionnelle de l’expression math´ematique de la figure (11).

s( p(a, b), r(x, y))

(8)

Jacques Duma 7 janvier 2007

I Tests en cours

s(p(a, b), r(x, y)) a×b+x

y Alignement

f(x) =yyy g(x) =zzz h(x) =ttt

f(x) =yyy g(x) =zzz h(x) =ttt

f(x) =yyy g(x) =zzz h(x) =ttt

On d´eduit l’´equation (2) de l’´equation (1)

f(x) =yyy (1)

f(x) =yyy (2)

f :

!f(t) = si t[a;b]

f(t) = si t[c;d]

II Tests pr´ ec´ edents

\usepackage{color}

...

Je peux ´ecrire enrouge, envertet en bleu.

Je peux aussi ´ecrire enorangeou avecmon bleu.

Ce n’est pas toujours tr`es beau.

0 0 a 0 0 0 a 0 0 0 a 0

1

(11) (6) (s ( p a b) (r x y))

On a joint la figure (6) qui est une notation ´equivalente `a la notation usuelle des fonctions, utilis´ee dans le langage de programmation Lisp. On ´ecrit, entre parenth`eses, une liste dont le premier ´el´ement est la fonction et les suivants ses arguments.

Le langage Lisp, cr´e´e dans les ann´ees soixante sur des bases math´ematiques rigoureuse et `a l’origine de la plupart des progr`es de l’informatique actuelle. Sur Wikip´edia : «Lisp»

4.3 Bases de Donn´ ees

L’informatique utilise des fichiers et fait des calculs. On peut imaginer que la structure d’arbre y est utilis´ee bien souvent !

Mais l’ordinateur est aussi utilis´e pour traiter l’information sous toutes ses formes. Les informations contenues dans les bases de donn´ees sont souvent enregistr´es sous forme de textes

´ecrits avec des syntaxes rigoureuses.

Les langages `a balises comme le XML permettent de structurer les donn´ees sous forme d’arbres. Les balises sont comme des parenth`eses avec un nom :

– <toto> est la parenth`eses ouvrante nomm´ee «toto»ferm´ee par la parenth`eses </toto>.

– si il n’y a rien entre les parenth`eses, on remplace : <toto></toto> par <toto/>

La figure (5) de la page 1 d’introduction, est ainsi la forme cod´ee en XML de notre arbre favori de la figure(9). On peut comparer XML `a la forme fonctionnelle de la figure (8).

<s>

<p><a/><b/></p>

<r><x/><y/></r>

</s>

(5)

s r

x y

p

a b

(9)

s( p(a, b), r(x, y))

(8)

Le langage HTML utilis´e pour cr´eer des sites Internet, ressemble `a XML, mais avec une syntaxe souple et permissive. Il permet aussi de cr´eer des arbres que l’on peut analyser et modifier avec un programme en JavaScript, grˆace au mod`ele DOM de repr´esentation de la structure d’un document HTML ou XML.

En JavaScript, il existe une autre fa¸con de repr´esenter les donn´ees grˆace `a JSON une syntaxe de description de structure int´egr´e au langage.

La figure (10) de la page 1 d’introduction est la repr´esentation du mˆeme arbre dans le langage JSON dont la syntaxe est plus l´eg`ere que celle de XML :

{ "s" : { "p" : ["a","b"] , "r" : ["x","y"] } }

(10)

s r

x y

p

a b

(9)

Pour des informations compl´ementaires sur Wikip´edia : «XML» «HTML» «DOM» «JSON»

(9)

4.4 G´ en´ ealogie, D´ enombrement, Probabilit´ es

Nous ne parlerons pas ici de nombreuses autres utilisations des arbres...

Pour des compl´ements sur Wikip´edia ; «Arbre g´en´ealogique» «Arbre de probabilit´e»

5 Codage

Dans un ordinateur, il n’y a que Z ´ERO et UN !

O`u peuvent bien se cacher les arbres ? Voici la figure que je n’ai pas os´e pr´esenter en introduction :

s

r

x y

p

a b

(9)

adresse BIN HEX DEC interpr´etation

0 00000 0111 0011 73 115 s 0

1 00001 0000 0010 02 2 fils 1

2 00010 0000 0100 04 4 →p 2

3 00011 0000 1100 0C 12 →r 3

4 00100 0111 0000 70 112 p 4

5 00101 0000 0010 02 2 fils 5

6 00110 0000 1000 08 8 →a 6

7 00111 0000 1010 0A 10 →b 7

8 01000 0110 0011 61 97 a 8

9 01001 0000 0000 00 0 feuille 9

10 01010 0110 0010 62 98 b 10

11 01011 0000 0000 00 0 feuille 11

12 01100 0111 0010 72 114 r 12

13 01101 0000 0010 02 2 fils 13

14 01110 0001 0000 10 16 →x 14

15 01111 0001 0010 12 18 →y 15

16 10000 0111 1000 78 120 x 16

17 10001 0000 0000 00 0 feuille 17

18 10010 0111 1001 79 121 y 18

19 10011 0000 0000 00 0 feuille 19

Ce tableau repr´esente la derni`ere version de notre arbre favori qui sera donn´ee dans ce document. Sa compr´ehension vous demandera probablement un petit effort.

Les arbres peuvent effectivement se repr´esenter de fa¸con assez efficace, `a l’aide de pointeurs, pour un traitement par des programmes informatiques.

Dans une zone m´emoire notre arbre est cod´e sur 20 octets d’adresses num´erot´ees de 0 `a 19.

La racine est plac´ee `a l’octet d’adresse 0.

Chaque nœud est cod´e sur n+ 2 octets, n ´etant le nombre de ses fils.

– l’octet n˚ 1 continent le code ACII du nom du nœud – l’octet n˚ 2 contient le nombre des fils

– les octets, du n˚ 3 au n˚ (n+ 2) contiennent les adresses des n fils

Pour des informations compl´ementaires sur Wikip´edia : «Arbre informatique»

Références

Documents relatifs

Trouver pour toutes les paires de contigs et pour leur deux possibles orientations relatives le meilleur placement relatif, et sa probabilité. Trouver deux contigs a et b

Si G connexe et n’a aucun point d’articulation, alors G est au moins 2-connexe (pour les sommets).... connexes

Un chemin (resp. circuit) hamiltonien de G : passe une et une seule fois par chaque sommet de G.. Un graphe hamiltonien : graphe poss´edant un

◮ il existe N tel que, quelle que soit la paire de sommets consid´er´ee, il existe un chemin de longueur N les joignant.. Par abus de langage, on parle de

❀ G ij k repr´esente la probabilit´e de transition lorsque le surfeur se trouve sur la page i de passer `a la page j en k clics (chemins de longueur k )... Nous nous sommes

❀ On obtiendra un graphe ayant au plus 5 faces qu’il est toujours possible de colorier.. La propri´et´e R.2 assure alors que le graphe de d´epart peut, lui aussi, ˆetre

Un chemin orient´ e (dans un graphe orient´e) est une suite d’arˆetes orient´ees telle que l’extr´emit´e finale d’une arˆete est ´egale ` a l’extr´emit´e initiale

L'insertion d'un élément peut produire un nœud ayant plus de b fils.. Amphi