[PDF] [PDF] Corrigé des exercices

Corrigé des exercices • Combinatoire des graphes £ ¢ ¡ Exercice 1 a) Soit G = (V,E) un graphe non orienté simple Notons V1 l'ensemble des sommets de 



Previous PDF Next PDF





[PDF] GRAPHES - EXERCICES CORRIGES Compilation réalisée à partir

Ces excursions sont résumées sur le graphe ci-dessous dont les sommets trace de recherche même incomplète ou d'initiative même non fructueuse sera prise en de deux sommets A et B origines et extrémités de deux arètes orientées et



[PDF] ÉLÉMENTS DE THÉORIE DES GRAPHES QUELQUES

Exercice 16 (o) Essayez de construire un graphe non orienté ayant au moins deux sommets et tel que tous les sommets ont des degrés distincts Qu' 



[PDF] Introduction à la théorie des graphes Solutions des exercices

1 Graphes non orientés établi dans l'exercice 7, un tel graphe doit posséder un nombre pair de sommets, le réseau Corrigé en partant du sommet 3 :



[PDF] TD no 1

Exercice 8 Un sommet x d'un graphe non orienté connexe G est dit point d' articulation de G si G−x est non connexe Corrigé du TD no 1 Généralités sur les 



[PDF] graphes

1 4 corrigés exercices 2 4 corrigés exercices définition 2 : (matrice d' adjacence d'un graphe non orienté ) quel que soit le graphe non orienté G à n 



[PDF] Optimisation Combinatoire et Graphes Exercices et Solutions

30 avr 2018 · GRAPHES NON ORIENTÉS Exercice 21 Dans un graphe G, soient s et t deux sommets distincts Montrer qu'il existe une (s, t)-chaîne dans G 



[PDF] Exercice sur les Graphes - Moodle INSA Rouen

(Exercices et problèmes résolus de recherche opérationnelle, Dunod) dont les 1) En considérant le graphe comme non orienté, donner une chaîne de A à F 



[PDF] Corrigé des exercices

Corrigé des exercices • Combinatoire des graphes £ ¢ ¡ Exercice 1 a) Soit G = (V,E) un graphe non orienté simple Notons V1 l'ensemble des sommets de 



[PDF] Exercices

La théorie des graphes est rarement abordée en France dans le cursus Ci- après, la matrice M est associée à un graphe orienté G qu'on représentera chercher dans la liste des sommets le premier sommet non coloré et le colorer avec la 



[PDF] SUJET + CORRIGE

SUJET + CORRIGE Exercice 1: Graphes pondérés (b) (2 points) Donnez un exemple d'un graphe orienté pondéré G = (S, A), Propriété : Un graphe non orienté G(S, A) est connexe si pour n'importe quel sommet s ∈ S, l'exécution

[PDF] exercices corrigés sur les incoterms

[PDF] exercices corrigés sur les intervalles de confiance

[PDF] exercices corrigés sur les intervalles de confiance en statistique

[PDF] exercices corrigés sur les lignes de niveau pdf

[PDF] exercices corrigés sur les lignes de niveaux pdf

[PDF] exercices corriges sur les lois de probabilités discrètes

[PDF] exercices corrigés sur les microcontroleurs

[PDF] exercices corrigés sur les moyennes mobiles

[PDF] exercices corrigés sur les nombres premiers 5ème pdf

[PDF] exercices corrigés sur les nombres réels mpsi

[PDF] exercices corrigés sur les nombres réels pdf

[PDF] exercices corrigés sur les ondes électromagnétiques dans le vide

[PDF] exercices corrigés sur les ondes electromagnetiques+pdf

[PDF] exercices corrigés sur les ondes progressives sinusoïdales

[PDF] exercices corrigés sur les ondes stationnaires pdf

Chapitre 2option informatique

Corrigé des exercices

Combinatoire des graphes

Exercice 1

a)SoitG= (V;E)un graphe non orienté simple. NotonsV1l"ensemble des sommets de degré pair etV2 l"ensemble des sommets de degré impair. Nous savons queX v2Vdeg(v) = 2jEj, donc : X v2V2deg(v) = 2jEjX v2V1deg(v):

De cette égalité il résulte que

X v2V2deg(v) est un entier pair, ce qui impose àjV2jd"être pair.

b)Si aucune personne n"a d"ami dans cette assemblée, ils ont tous le même nombre d"amis, à savoir 0.

On suppose maintenant qu"il existe au moins un couple d"amis dans l"assemblée, et on considère le graphe

G= (V;E) où V est l"ensemble des personnesqui ont au moins un amiet où E est défini par : (a;b)2E()aetbsont amis: G

est un graphe non orienté simple d"ordrek, et chacun desksommets a un degré compris entre1etk1;

d"après le principe des tiroirs il existe au moins deux sommets de même degré. c)

Considérons un grapheG= (V;E)dont les sommets sont les ordinateurs et les arêtes les liaisons qui les

relient. Si chaque sommet est de degré 3, la formuleX v2Vdeg(v) = 2jEjs"écrit : 315 = 2jEj, ce qui ne se peut.

Exercice 2

a)Les suites (3;3;2;2) et (3;3;2;1;1) sont graphiques, comme le prouvent les deux graphes ci-dessous :12

3 4123
4 5

En revanche, la suite(3;3;1;1)ne peut être graphique. En effet, dans un graphe d"ordre 4 ayant deux sommets

de degré 3, autrement dit deux sommets reliés à chacun des trois autres, les deux derniers sommets sont au

moins de degré 2.

b)Les deux graphes suivants sont distincts bien que correspondants tous deux à la suite (3;2;2;2;1) :12

3 4512
345
c)

L"implication(ii) =)(i)est claire : s"il existe un graphe dont les sommets ont pour degrés la suite(d2

1;d31;:::;dd1+11;dd1+2;dd1+3;:::;dn), il suffit de rajouter un sommet et de le relier auxd1premiers sommets

du graphe pour obtenir un nouveau graphe correspondant à la suite : (d1;d2;d3;:::;dd1+1;dd1+2;dd1+3;:::;dn) = (d1;d2;:::;dn): http://info-llg.fr

2.2option informatiqueRéciproquement, si(d1;d2;:::;dn)est graphique, nous allons montrer qu"il existe un grapheG= (V;E)tel

queV= (v1;:::;vn),deg(vi) =diettel quev1soit adjacent aux sommetsv2;v3;:::;vd1+1. Une fois ceci prouvé,

il suffira de supprimerv1ainsi que les arêtes qui le relient au reste du graphe pour en déduire que la suite

(d21;d31;:::;dd1+11;dd1+2;dd1+3;:::;dn) est graphique.

Nous allons prouver l"existence deGpar l"absurde en considérant un grapheGpour lequelv1est relié au plus

grand nombre possible de sommets parmiv2;:::;vd1+1, mais pas à tous. Dans ces conditions, il existei2~2;d1+1tel que(v1;vi)deg(vj). Traitons alors deux cas.

Sideg(vi) =deg(vj), tous les sommets d"indices dans~i;jont même degré, et il suffit d"inverser la

numérotation des sommetsvietvjpour aboutir à une contradiction. Sideg(vi)>deg(vj), il existe un sommetvktel que(vi;vk)2Emais(vj;vk)vk,v1. Supprimons alors les arêtes(v1;vj)et(vi;vk)et ajoutons les arêtes(v1;vi)et(vj;vk). La suite des

degrés reste inchangée, mais maintenantv1est relié à un sommet de plus parmiv2;v3;:::;vd1+1ce qui

contredit le caractère maximal de G et achève la preuve du théorème. d)Prouvons tout d"abord que la suite (4;4;3;2;2;1) est graphique en appliquant le théorème : (4;4;3;2;2;1) est graphique()(3;2;1;1;1) est graphique()(1;0;0;1) = (1;1;0;0) est graphique ()(0;0;0) est graphique.

La suite(0;0;0)est bien graphique donc la construction demandée est possible, et la preuve du théorème nous

donne un moyen de construire une solution à partir des équivalences ci-dessus :123 (0;0;0)=)123 4 (1;0;0;1)=)123 45
(3;2;1;1;1)=)123 456
(4;4;3;2;2;1)

Si les deux sommets de degré 2 étaient voisins, on obtiendrait en retirant l"arête qui les relie un graphe dont la

suite des degrés serait (4;4;3;1;1;1). Or si on applique le théorème à cette suite on obtient :

(4;4;3;1;1;1) est graphique()(3;2;0;0;1) = (3;2;1;0;0) est graphique ()(1;0;1;0) = (1;0;0;1) est graphique ce qui est absurde.

Exercice 3

Notons que la formule

X v2Vdeg (v) = 2jEj= 2n2montre que dans un arbre il existe au moins un sommet de degré 1, ce qui prouve que la terminaison de l"algorithme dePrüfer. a)La suppression des différents sommets s"effectue de cette façon :1234 567

8=)123567

8=)12357

8=)1357

8=)357

8=)358=)58

et conduit au codage : (2;2;1;3;3;5).

Corrigé des exercices2.3

b)Pour décoder un codage dePrüferon propose l"algorithme suivant : fonctiondecode(liste : L)

V ~1;n, E ;

I V tant quejIj>2faire i minnj2IjE E[f(i;tête(L))g

I Infig

L queue(L)

E E[f(a;b)gavec I =fa;bg

renvoyer(V;E) qui reconstitue la liste des arêtes qui ont été supprimées par l"algorithme dePrüfer.

c)Avec la suite (2;2;1;3;3;1;4;4), la suite L et les ensembles I et E évoluent de la façon suivante :LIE

(2;2;1;3;3;1;4;4)f1;2;3;4;5;6;7;8;9;10g;

(2;1;3;3;1;4;4)f1;2;3;4;6;7;8;9;10gf(5;2)g(1;3;3;1;4;4)f1;2;3;4;7;8;9;10gf(5;2);(6;2)g(3;3;1;4;4)f1;3;4;7;8;9;10gf(5;2);(6;2);(2;1)g(3;1;4;4)f1;3;4;8;9;10gf(5;2);(6;2);(2;1);(7;3)g(1;4;4)f1;3;4;9;10gf(5;2);(6;2);(2;1);(7;3);(8;3)g(4;4)f1;4;9;10gf(5;2);(6;2);(2;1);(7;3);(8;3);(3;1)g(4)f4;9;10gf(5;2);(6;2);(2;1);(7;3);(8;3);(3;1);(1;4)g( )f4;10gf(5;2);(6;2);(2;1);(7;3);(8;3);(3;1);(1;4);(9;4)g;f(5;2);(6;2);(2;1);(7;3);(8;3);(3;1);(1;4);(9;4);(10;4)gce qui conduit à l"arbre :

1 2 563
784
910

Représentation d"un graphe

Exercice 4Pour calculer les degrés sortants, il suffit de calculer la longueur de chacune des listes d"adjacence :letdeg_sortant = map_vect list_length ;;

Le calcul de la longueur d"une liste a un coût proportionnel à sa longueur donc le coût total de cette fonction

est un(n+p), oùn=jVjetp=jEj.

Pour calculer les degrés entrants, il faut parcourir chaque liste d"adjacence et pour chaque arête(a;b)rencontrée

itérer la case d"indicebdu tableaudeg_e:letdeg_entrant g = letn = vect_length gin letdeg_e = make_vect n 0in let rec aux =function | b::q> deg_e.(b) La fonctionauxa un coût proportionnel à la longueur de la liste à laquelle elle s"applique donc le coût total est

là encore un(n+p). http://info-llg.fr

2.4option informatique

Exercice 5Calculer la transposée d"un graphe représenté par matrice d"adjacence est facile puisqu"il suffit

de calculer la transposée de celle-ci; le coût est à l"évidence un(n2).

Pour un graphe représenté par liste d"adjacence, il n"y a guère d"autre possibilité que de parcourir chacune des

listes d"adjacence en ajoutant l"arc inverse au graphe transposé, qui se construit peu à peu. Pour un graphe de typegraphe, cela conduit à la définition suivante :lettransposee g = letn = vect_length gin letgt = make_vect n []in let rec aux a =function | b::q> gt.(b) gt ;;Sachant que l"insertion en tête de liste a un coût constant, le coût total de cette fonction est un(n+p).

Exercice 6

Notons(1;2;:::;n)les sommets deG= (V;E)et pour touti2~1;nnotonsV(i)l"ensemble des voisins dei. Posons en outre M = (mij)16i;j6net Mp= (m(p) ij)16i;j6n. a)Montrons par récurrence surpquem(p) ijest égal au nombre de chemins de longueurpqui mènent deiàj.

C" estclair si p= 1 puisquem(1)

ij=mij=8 >><>>:1 si (i;j)2E

0 sinon.

Si p >1, supposons le résultat acquis au rangp1. On a :m(p) ij=n X k=1m ikm(p1) kj=X k2V(i)m(p1) kj.

Puisquem(p1)

kjest égal au nombre de chemins de longueurp1reliantkàj,m(p) ijest bien le nombre de chemins de longueurpreliantiàj.

En particulier,m(p)

iiest le nombre de cycles de longueurppassant par le sommeti. Ainsi,tr(M(p))est égal au

nombre de cycles de longueurp(chaque cycle étant compté autant de fois que le cardinal de son support).

b)

En particulier, la matriceMnn"est pas nulle si et seulement s"il existe un chemin de longueurn. Or dans un

tel chemin il existe nécessairement un sommet atteint au moins deux fois, ce qui dénote l"existence d"un cycle

au sein de ce chemin.

Réciproquement, à partir d"un cycle de longueurpil est facile de construire un chemin de longueurnen

considérant la division euclidienne denparp:n=pq+ravec06r < p. Il suffit de parcourir le cycle dans son

entierqfois, puis de parcourir encorersommets en son sein.

La méthode classique pour calculer le produit de deux matrices d"ordrena un coût en(n3). L"algorithme

d"exponentiation rapide appliqué au calcul de Mnaurait donc un coût en(n3logn).

Parcours dans un graphe

Exercice 7

Considérons un graphe pour lequel on a pu attribuer un rang à chaque sommet. S"il existait un

circuit dansG, on pourrait considérer le sommetvde ce circuit qui possède le rang minimal ainsi que son

prédécesseurudans ce circuit et aboutir à une contradiction car on aurait à la foisr(u)< r(v)etr(v)6r(u).G

ne possède donc pas de circuit.

Réciproquement, supposons que G= (V;E) ne possède pas de circuit, et raisonnons par récurrence surjVj.

Le résul tatest éviden tl orsquejVj= 1.

Si jVj>1, supposons le résultat acquis jusqu"au rangjVj1.

Il existe au moins dansGun sommet sans prédécesseur (dans le cas contraire, on pourrait remonter

successivement d"un sommet à un prédécesseur jusqu"à former un cycle). Attribuons le rang 1 à tous ces

sommets, puis supprimons ces sommets et les arcs qui les concernent. On obtient un nouveau graphe

G0= (V0;E0), toujours sans circuit, avecjV0j

attribuant un rang à chacun de ces sommets, en faisant en sorte que pour toutv2V0,r(v)>2. On obtient

ainsi une numérotation des sommets qui respecte la contrainte demandée.

Corrigé des exercices2.5

L"algorithme d"attribution d"un rang à chaque sommet d"un graphe sans circuit s"écrit donc : procedurerang(graphe : G= (V;E)) k 1 S V tant queS,;faire

P nv2S8u2S;(u;v) pour toutv2Pfaire r(v) k S SnP

k k+1LorsqueGest représenté par sa matrice d"adjacence, déterminer si un sommet n"a pas de prédécesseur a un

coût linéaire et calculer P un coût quadratique, donc le coût total de cet algorithme est un O(n3), avecn=jVj.

Exercice 8

a)Notons Nnle graphe d"ordrensans arêtes; alors(Nn) =n. NotonsCnle graphe complet d"ordren>1; alors(Cn) =max((Cn1);1)et par une récurrence immédiate (Cn) = 1. NotonsLnle chemin d"ordren>2non ramifié; alors(Ln) =max((Ln1);1+(Ln2)). On prouve dans ce cas par récurrence que(Ln) =jn2 k.

Notons U

nle graphe cyclique d"ordren>3; alors(Un) = max((Ln1);1+(Ln3)) donc(Un) =jn12 k. b)On raisonne par récurrence sur l"ordrendu graphe G. Si n= 1 alors E =;donc(G) = 1, ce qui est bien le nombre de stabilité de G. Si n >1, on suppose le résultat acquis jusqu"au rangn1. Si E =;alors(G) =n, ce qui correspond bien à son nombre de stabilité. Sinon, considéronsv2Vtel quedegv>1. PosonsG1=GnfvgetG2=Gn(fvg[V(v)). Par hypothèse de

récurrence,p=(G1)etq=(G2)sont les nombres de stabilité deG1etG2. Considérons alors un stable

maximal S de G. Si vappartient à S alors S\V(v) =;donc Snfvgest un stable de G2, ce qui montre quejSj16q. Si vn"appartient pas à S alors S est un stable de G1etjSj6p. Dans tous les cas, nous avons prouvé quejSj6max(p;q+1).

Réciproquement, considérons un stable maximalS1deG1.S1est aussi un stable deG(puisqu"il ne contient

pasv) doncjS1j=p6jSj. De même, siS2est un stable maximal deG2il ne contient nivni voisin devdoncS2[fvgest un stable de

G. Ceci montre quejS2j+1 =q+16jSj.

En définitive nous avons prouvé quemax(p;q+1)6jSjet donc que(G) =jSj, ce qui achève la récurrence.

c)Considérons le cas deLn, chemin non ramifié d"ordren. Nous avons vu que(Ln) =max((Ln1);1+(Ln2))

donc la complexitécnde cet algorithme dans ce cas de figure vérifie :cn=cn1+cn2+(1), ce qui conduit à :

cn=('n) avec'=1+p5 2 . En conséquence, le coût de l"algorithme est exponentiel dans le pire des cas.

Remarque.La détermination du stable de cardinal maximum intervient dans les problèmes de coloration des

graphes (puisque tous les éléments d"un même stable peuvent être colorés de la même façon). Il s"agit d"un

problème NP complet au sens de la théorie de la complexité.

Exercice 9

a)

Effectuer un BFS à partir d"un sommet d"un grapheG= (V;E)permet de déterminer la distance qui le

sépare des autres sommets, et donc la longueur du plus long chemin qu"il est possible de tracer à partir de ce

sommet. En effectuant ceci pour tout sommet du graphe, on en détermine le diamètre.

On sait qu"un BFS a un coût enO(n+p)avecn=jVjetp=jEj, donc cet algorithme détermine le diamètre en

O(n(n+p)).

b)On propose l"algorithme suivant : fonctiondiamètre(arbre : G= (V;E)) k 0 http://info-llg.fr

2.6option informatique

tant quejVj>2faire k k+1

V Vnfv2Vdegv= 1g

sijVj= 2alors renvoyer2k+1 else

renvoyer2kAutrement dit, on effeuille l"arbre jusqu"à ne plus obtenir que 1 ou 2 sommets. Sikétapes ont été nécessaires, le

diamètre vaut 2ks"il ne reste plus qu"un sommet, et 2k+1 s"il en reste deux.

NotonsG0l"arbre obtenu en enlevant deGtous ses sommets de degré 1 ainsi que les arêtes associées (G0est bien

un arbre car il reste connexe et acyclique). Nous allons prouver qued(G) =d(G0)+2,ddésignant le diamètre, ce

qui suffira à valider l"algorithme.

Considérons un chemin maximal(v0;v1;:::;vi1;vi)tracé dansG. Nécessairement,v0etvisont de degré 1 car

sinon ce chemin pourrait être prolongé et ne serait pas maximal. En revanche, tous les autres sommets de ce

chemin sont au moins de degré 2, donc (v1;:::;vi1) est un chemin de G0, etd(G)26d(G0).

Par ailleurs, tout chemin deG0se prolonge au maximum par deux arêtes dansG, doncd(G0)+26d(G), ce qui

prouve en définitive l"égalitéd(G) =d(G0)+2.

Il est possible de déterminer le degré de chaque sommet d"un arbre en temps linéaire (voir par exemple

l"exercice 4) donc la recherche des feuilles d"un arbre a un coût linéaire. Une fois les feuilles supprimées, il faut

mettre à jour les listes d"adjacence, ce qui peut se faire là encore en coût linéaire. La détermination du diamètre

d"un arbre a donca prioriun coût enO(kn)oùkdésigne le diamètre, autrement dit unO(n2), ce qui n"est pas

mieux que l"algorithme naïf puisque dans le cas d"un arbre,p=n1.

Cependant, on peut faire mieux en utilisant un tas pour ranger les sommets par ordre croissant de degré. Plus

précisément, on peut réécrire l"algorithme de cette façon : fonctiondiamètre(arbre : G= (V;E)) k 0 pour toutv2Vfaire d v degv tant quejVj>2faire k k+1 pour toutu2Vdu= 1faire

V Vnfug

pour toutv2V(u)faire d v dv1 sijVj= 2alors renvoyer2k+1 else renvoyer2k

Déterminer chacun des degrés des sommets a un coût proportionnel au nombre d"arêtes, donc unO(n). Insérer

chacun des sommets dans un tas ordonné par degré croissant a un coût enO(nlogn). Supprimer un sommet de

degré 1 a un coût enO(logn), et puisque chaque sommet est supprimé au plus une fois, ces suppressions ont un

coût total enO(nlogn). Enfin, mettre à jour le degré d"un sommet après une suppression a un coût enO(logn),

et puisque la somme des degrés est égal à 2n2, le coût total de ces opérations ne peut excéder O(nlogn).

Au final, on obtient un algorithme de coût semi-linéaire : O(nlogn).

Plus court chemin

Exercice 10

Observons les termes diagonaux des matricesM(k)dans l"algorithme deFloyd-Warshall; ils vérifient la récurrence :m(k+1) ii= minm(k) ii;m(k) i;k+1+m(k) k+1;i. Lorsqu"il n"existe pas de cycle de poids strictement négatif, et sachant quem(0) ii= 0, on am(n) ii= 0: tous lesquotesdbs_dbs11.pdfusesText_17