Mathématiques Discrètes
2005-2006
Mathématiques Discrètes
ESSI 1
Bref corrigé de l’examen de Janvier 2002
Un peu d’induction
On défini l’ensemble des arbres binaires de recherche de
nombres comme suit :
Base : l’arbre binaire réduit à un seul nœud
contenant un entier quelconque est un élément de ABR
Règles
R1 :Si
T est dans ABR et si n est un entier plus grand que tous les nombres contenus
dans T, alors l’arbre binaire de racine un nœud contenant n, de sous arbre
gauche T et de sous arbre droit vide est dans ABR
R2 :
Si T est dans ABR et si n est un entier plus petit que tous les nombres
contenus dans T, alors l’arbre binaire de racine un nœud contenant n, de sous
arbre gauche vide et de sous arbre droit
T est dans ABR
R3 : Si T et T’ sont
dans ABR et si n est un entier plus grand que tous les nombres contenus
dans Tet plus petit que tous les nombres contenus dans T’, alors l’arbre
binaire de racine un nœud contenant n, de sous arbre gauche T et de sous arbre
droit T’ est dans ABR
1-
Si on utilise uniquement les
nombres 1,2,3 et 4, combien y a-t-il d’arbres binaires de recherche de nombres
ayant 4 sommets
On peut les énumérer tous, mais alors on risque d’en oublier. Le mieux c’est de dire : soit cn le nombre d’ABR ayant n sommets et contenant les nombres de 1 à n. On a
à condition de poser c0=1.
On reconnaît là l’équation des nombres de catalans et l’on trouve c4=14.
Ou bien on utilise cette équation
pour calculer c2, c3 et c4, et l’on trouve c2=1+1=2,
c33=2+1+2=5 et c4=5+2+2+4=14
2.
Soit A dans ABR définir inductivement une fonction qui teste si n est
contenu dans A. Essayez d’écrire une fonction dont la complexité soit la
meilleure possible. Prouvez votre fonction
Appelons appartient la fonction de NxABR dans {vrai,faux} , telle que appartient(n,A) est vrai si et seulement si n est contenu dans A.
Notons A(n) l’ABR réduit à un seul nœud contenant l’entier n, A(T,n), R1(T,n) l’ABR construit par la règle R1, R1(T,n) l’ABR construit par la règle R2, R3(T,T’,n) l’ABR construit par la règle R31,
Soit App la fonction de NxABR dans {vrai,faux} définie inductivement par
App(n,A(m))=(n=m)
App(n,R1(T,m))=
App(n,R2(T,m))=
App(n,R3(T,T’,m))=
On montre facilement par induction structurelle que App et Appartient sont égaux.
On demandait une fonction dont la complexité soit la meilleure possible. Pour véritablement parler de la complexité il faudrait programmer ces fonctions et regarder le coût des primitives qui permettent de « découper » un ABR en ses sous-arbres gauches et droits. Avant cela tout ce que l’on peut dire c’est que si l’on programme récursivement en suivant cette définition inductive le calcul de App(n,T) induira un nombre d’appels récursifs en Omega(hauteur(T)).
Exercice 2 Tour
de Hanoï
On considère une variante des tours de Hanoï avec trois
piquets 1,B,C et n disques.
-
les n disques sont de taille
différente
-
initialement les n disques sont
rangés sur le piquet A, du plus grand en bas, au plus petit en haut
-
on désire amener les n disques
dans le même ordre sur le piquet C
-
on ne peut déplacer qu’un seul
disque à la fois
-
on ne peut pas poser un disque
sur un disque de taille inférieure
-
tous les mouvements de disques
doivent se faire via le piquet centrql (un déplacement direct de A vers C ou de
C vers A est interdit
1. Déterminer et prouver l’équation de récurrence correspondant au
nombre minimum de déplacements de disques
Commençons par donner un algorithme récursif A(n,A,C) pour déplacer les n disques de A vers C :
Si n=0, ne rien faire,
Sinon :
- A(n-1,A,C)
- déplacer le grand disque de A vers B
-A(n-1,C,A)
- déplacer le grand disque de B vers C
-A(n-1,A,C)
A et C jouant des rôles identiques le nombre de mouvements minimum pour déplacer n tours de A vers C ou de C vers A est le même. Soit mn ce nombre, on a
-m0=0
-mn<=3m n-1+2
Montrons que cette inégalité est en fait une égalité (ce que vous avez quasiment tous oublié de faire)
Tout algorithme réalisant le déplacement des n disques de A vers C devra déplacer le grand disque de A vers C, comme le déplacement ne peut se faire directement, il y aura forcement un premier déplacement du grand disque de A vers B, pour que ce déplacement puisse se faire il aura auparavant fallu déplacer les n-1 autres disques de A vers C, en observant toutes les contraintes. Il faudra aussi apporter le grand disque de B sur C, entre temps les n-1 disques qui étaient sur C ont du retourner sur A, etc….
Au final on a donc l’équation
-m0=0
-mn=3m n-1+2
2. Résoudre cette équation
C’est une équation de récurrence linéaire non homogène d’ordre 1.
Les solutions
de l’équation homogène associée mn=3m n-1, sont de la
forme mn=a.3n
La seule racine du polynôme caractéristique étant 3 (et non 1), on cherche une solution particulière sous forme de constante et l’on trouve mn=-1
Les solutions générales de l’équation non homogène sont donc de la forme mn=a.3n-1.
On a donc mn=3n-1, puisque m0=0
Exercice 3 Un
exercice sur les graphes
Le complémentaire d’un graphe non orienté G=(V,E) est le
graphe =(V,
) tel qu’il existe une arête entre x et y dans
si et seulement si il n’y a pas d’arête entre x et y dans G.
1
Montrer que si G n’est pas connexe alors l’est.
Soient x et y deux sommets quelconques de V.
Nous allons montrer qu’il y a toujours une chaîne entre x et
y dans .
Si x et y ne sont pas reliés par une arête
dans G, alors ils le sont dans et ils sont donc reliés par une chaîne dans
.
Si x et y sont reliés par une arête dans G,
alors ils sont dans la même composante connexe de G. G n’étant pas connexe, il
existe au moins une autre composante connexe. Soit z un sommet de G n’étant pas
dans la même composante connexe que y et z. x et z d’une part et y et z d’autre
part n’étant pas reliés par une arête
dans G, alors ils le sont sont dans et donc x et y sont reliés par une chaîne dans
.
Remarque : on a en fait
montré quea un diamètre inférieur ou égal à deux.
On pouvait aussi faire une démonstration par récurrence, certains l’ont fait juste, d’autres l’ont fait fausse…….
2
La réciproque est elle
vraie ?
Non, par exemple le graphe égal à une chaîne de longueur 3 (4 sommets) est connexe et son complémentaire aussi (ce complémentaire étant lui aussi une chaîne de longueur 3).
3
On dit que deux graphes G1 et G2
d’ordre n sont isomorphes si et seulement si ils sont égaux à la numérotation
des sommets près. Montrer que si un graphe G est auto-complémentaire
(c'est-à-dire isomorphe à son complémentaire) alors le nombre de sommets de G
est soit un multiple de 4 soit un multiple de 4 plus un.
Si un graphe est isomorphe a son complémentaire, il a autant d’arêtes que lui. Or la somme du nombre d’arête d’un graphe d’ordre n et du nombre d’arête de son complémentaire est égal à n(n-1)/2. Un graphe auto-complémentaire d’ordre n a donc n(n-1)/4 arêtes. Ce nombre est entier, comme 2 ne peut diviser n et n-1 en même temps, 4 doit diviser n ou n-1.
4
Trouver les deux plus petits
graphes qui sont auto-complémentaires
Pour n=0, le graphe vide
Pour n=1 le graphe réduit à un sommet
Mais ces deux là sont un peu « pathologiques » , alors allons voir plus loin
Pour n=4 la chaîne de longueur 3
Pour n=5 le cycle de longueur 5
(il y a aussi un autre exemple pour n=5)