1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et...

17
1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation de ce document strictement réservée aux étudiants de l ’IFSIC dans le cadre de leur formation. Reproduction ou diffusion en dehors de l ’IFSIC strictement interdite sauf

Transcript of 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et...

Page 1: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

1

Licence d’informatiqueAlgorithmique des graphes

Cours 3 deuxième partie :

Opérations et relations entre graphes.

Composition, puissances.

Utilisation de ce document strictement réservée aux étudiants de l ’IFSIC dans le cadre de leur formation.Reproduction ou diffusion en dehors de l ’IFSIC strictement interdite sauf autorisation expresse de l’ auteur.

Page 2: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

2

Opérations entre graphesOpérations entre graphes

G(X) = ensemble des graphes construits sur l’ensemble de sommets X

1

9 2

3

4

8

6 57

G1

1

9 2

3

4

8

6 57

G2

Page 3: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

3

Relation d’ordre : graphe partielRelation d’ordre : graphe partiel

1

9 2

3

4

8

6 57

G1

G1 G2

1

9 2

3

4

8

6 57

G2

Page 4: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

4

Elément MINIMAL : (X,) Elément MAXIMAL : (X, X2)

19

2

3

4

8

6

5

7

19

2

3

4

8

6

5

7

Relation d’ordre : graphe partielRelation d’ordre : graphe partiel

Page 5: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

5

G1 G2 = (X, 1 2)

G1 G2

UnionUnion

1

9 2

3

4

8

6 57

G1 G2

1

9 2

3

4

8

6 57

1

9 2

3

4

8

6 57

1

9 2

3

4

8

6 57

Page 6: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

6

G1 G2 = ( X, 1 2 )

1

9 2

3

4

8

G1

G1 G2

1

9 2

3

4

8

1

9 2

3

4

8

G2

CompositionComposition

Page 7: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

7

z : 1 z n : G1.validarc(x,z) et

G2.validarc(z,y)

Formellement, on a donc :

(x, y)1 2

Page 8: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

8

EVALUATION DE z : 1 z n : G1.validarc(x,z) et G2.validarc(z,y)

z : 1 z n : P(z)

INVARIANT

1 k k+1 n

1 k n et b= z : 1 z k : P(z)

si b alors « succès  » 

sinon {non b et k=n } « échec »

ARRET

z

b

k k+1 n1OU

k = n1 k=n

Page 9: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

9

EVALUATION DE z : 1 z n : G1.validarc(x,z) et G2.validarc(z,y)

z : 1 z n : P(z)

INVARIANT

1 k k+1 n

1 k n et b= z : 1 z k : P(z)

b ou k = nsi b alors « succès  » 

sinon {non b et k=n } « échec »

ARRET

PROGRESSION

{non b et k<n}

k+1 n1 kk k+1

Page 10: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

10

EVALUATION DE z : 1 z n : G1.validarc(x,z) et G2.validarc(z,y)

z : 1 z n : P(z)

INVARIANT

1 k k+1 n

1 k n et b= z : 1 z k : P(z)

k := k+1 ;

b := P(k)

b ou k = nsi b alors « succès  » 

sinon {non b et k=n } « échec »

ARRET

PROGRESSION

{non b et k<n}

k+1 n1 kk k+1

?

Page 11: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

11

EVALUATION DE z : 1 z n : G1.validarc(x,z) et G2.validarc(z,y)

z : 1 z n : P(z)

INVARIANT

1 k k+1 n

1 k n et b= z : 1 z k : P(z)

PROGRESSION {non b et k<n} k := k+1 ;

b := P(k)

b ou k = nsi b alors « succès  » 

sinon {non b et k=n } « échec »

ARRET

k := 1 ;

b := P(1)

INIT1k=0 n

Page 12: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

12

GRAPHE composer (GRAPHE G1, G2)

pré égal (G1.lst_som , G2.lst_som)

local SOMMET x, y, k ; BOOLEAN b

debut

Result.inivide ;

pourtout x de G1.lst_som

pourtout y de G2.lst_som

depuis k := 1 ;

b := G1.validarc(x, 1)

et G2.validarc(1, y)

jusqu’à b ou k = G1.nb_som

faire k := k+1 ;

b := G1.validarc(x, k)

et G2.validarc(k, y)

fait ;

si b alors Result.ajoutarc(x,y) fsi

fpourtout

fpourtout

fin

Page 13: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

13

pourtout x de G1.sommets ---------------------------------------------> n étapes pourtout y de G1.sommets --------------------------------> n

étapesdepuis k := 0 ; b := faux

jusqu’à b ou k = G1.nb_sommets ---------> au pire n étapesfaire

k := k+1 ;

b := G1.valid_arc(x, k) et G2.valid_arc(k, y)

2 accès n3

fait ;

si b alors Result.ajout_arc(x,y) fsi

1 accès n2

COMPLEXITE

Soit un algorithme en O(n3)

Page 14: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

14

3F3H

2F3H

2F2H

1F3H

3F

3H

1F1H

2F

1F

0

Gv

Gr

3F3H

2F3H

2F2H

1F3H

3F

3H

1F1H

2F

1F

0

Gv Gr

Page 15: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

15

3F3H

2F3H

2F2H

1F3H

3F

3H

1F1H

2F

1F

0

3F3H

2F3H

2F2H

1F3H

3F

3H

1F1H

2F

1F

0

Union

Graphe partiel de Gv aboutissant à 0

Page 16: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

16

Puissances d’un graphe

p 2 : G[p] = G [p-1] G

G[1] = G

Interprétation concrète :

p 1 : (x, y) [p] Il existe un chemin de longueur p allant de x à y

Page 17: 1 Licence d’informatique Algorithmique des graphes Cours 3 deuxième partie : Opérations et relations entre graphes. Composition, puissances. Utilisation.

17

Il existe z, il existe un chemin de longueur p allant de x à z

et un arc (z, y)

(Hypothèse de récurrence)

Démonstration : Par récurrence sur p

• Cas de base : p = 1 (x, y) [1] Il existe un chemin de longueur 1 allant de x à y

Vrai, puisque [1] et les chemins de longueur 1 sont les arcs

• Induction : vrai pour p vrai pour p+1

x z yp 1

p+1

Il existe z, (x, z) [p] et (z, y) (Définition de )

(x, y) [p+1] (x, y) [p]

Il existe un chemin de longueur p+1 allant de x à y