]> AND Private Git Repository - rairo15.git/blob - annexesccg.tex
Logo AND Algorithmique Numérique Distribuée

Private GIT Repository
td
[rairo15.git] / annexesccg.tex
1 Soit $\alpha\in\Bool$. 
2 On nomme $f^{\alpha}$ la fonction de $\Bool^{n-1}$ 
3 dans lui-même définie pour 
4 chaque $x\in\Bool^{n-1}$ par 
5 \[
6 f^{\alpha}(x)=(f_1(x,\alpha),\dots,f_{n-1}(x,\alpha)).
7 \]
8 On nomme $\Gamma(f)^\alpha$ le sous-graphe
9 de $\Gamma(f)$ engendré par le sous-ensemble
10 $\Bool^{n-1} \times \{\alpha\}$ de $\Bool^n$.
11
12 Énonçons et prouvons tout d'abord les lemmes techniques suivants:
13
14 \begin{Lemma}\label{lemma:subgraph}
15 $G(f^\alpha)$ est un sous-graphe de $G(f)$: chaque arc de $G(f^\alpha)$ est
16 un arc de $G(f)$. De plus si $G(f)$ n'a pas d'arc de $n$ vers un autre 
17 sommet $i\neq n$, alors on déduit
18 $G(f^\alpha)$ de $G(f)$ en supprimant le sommet $n$ ainsi que tous les 
19 arcs dont $n$ est soit l'extrémité, soit l'origine (et dans ce dernier  
20 cas, les arcs sont des boucles sur $n$).
21 \end{Lemma}
22
23 \begin{Proof}
24 Supposons que $G(f^{\alpha})$ possède un arc de  $j$ vers $i$ de signe 
25 $s$. Par définition, il existe un sommet $x\in\Bool^{n-1}$ tel que
26 $f'^{\alpha}_{ij}(x)=s$, et puisque 
27 $f'^{\alpha}_{ij}(x)=f'_{ij}(x,\alpha)$, on en déduit que $G(f)$ possède un arc
28 de $j$ à $i$ de signe $s$. Ceci prouve la première assertion. 
29 Pour démontrer la seconde, il suffit de  prouver que si
30 $G(f)$ a un arc de $j$ vers $i$ de signe $s$, avec $i,j\neq n$, alors
31 $G(f^\alpha)$ contient aussi cet arc. Ainsi, supposons que $G(f)$ a un 
32 arc de $j$ vers $i$ de signe $s$, avec $i,j\neq n$.
33 Alors, il existe
34 $x\in\Bool^{n-1}$ et $\beta\in\Bool$ tels que
35 $f'_{ij}(x,\beta)=s$. Si $f'_{ij}(x,\beta)\neq f'_{ij}(x,\alpha)$, alors
36 $f_i$ dépend du  $n^{\textrm{ème}}$ composant, ce qui est en contradiction 
37 avec les hypothèses.
38 Ainsi $f'_{ij}(x,\alpha)$ est égal à $s$.
39 On a donc aussi
40 $f'^{\alpha}_{ij}(x)=s$. Ainsi $G(f^\alpha)$ possède un arc de $j$ vers $i$ de signe $s$.
41 \end{Proof}
42
43 \begin{Lemma}\label{lemma:iso}
44 Les graphes $\Gamma(f^\alpha)$ et $\Gamma(f)^\alpha$ sont isomorphes.
45 \end{Lemma}
46
47 \begin{Proof}
48 Soit $h$ la bijection de $\Bool^{n-1}$ vers
49 $\Bool^{n-1}\times \{\alpha\}$ définie par $h(x)=(x,\alpha)$ pour chaque
50 $x\in\Bool^{n-1}$.
51 On voit facilement que $h$ permet de définir un isomorphisme
52 entre $\Gamma(f^\alpha)$ et $\Gamma(f)^\alpha$: 
53 $\Gamma(f^\alpha)$ possède un arc de $x$ vers $y$ si et seulement si 
54 $\Gamma(f)^\alpha$ a un  arc de $h(x)$ vers $h(y)$.
55 \end{Proof}
56
57
58 \begin{Proof}
59 {\sc{\hspace{-.76em}du théorème~\ref{th:Adrien} :}}
60 La preuve se fait par induction sur $n$. 
61 Soit $f$ une fonction de $\Bool^n$ dans lui-même et qui vérifie les hypothèses 
62 du théorème.
63 Si $n=1$ la démonstration est élémentaire:
64 en raison du troisième point du théorème, $G(f)$ a une boucle négative;
65 ainsi $f(x)=\overline{x}$ et $\Gamma(f)$ est un cycle de longueur 2.
66 On suppose donc que $n>1$ et que le théorème est valide pour toutes les 
67 fonctions de $\Bool^{n-1}$ dans lui-même. 
68 En raison du premier point du théorème, $G(f)$
69 contient au moins un sommet $i$ tel qu'il n'existe pas dans $G(f)$
70 d'arc de $i$ vers un autre sommet $j\neq i$.
71 Sans perte de généralité, on peut considérer que 
72 ce sommet est  $n$.
73 Alors, d'après le lemme~\ref{lemma:subgraph}, 
74 $f^0$ et $f^1$ vérifient les conditions de l'hypothèse.
75 Ainsi, par hypothèse d'induction $\Gamma(f^0)$ et
76 $\Gamma(f^1)$ sont fortement connexes. 
77 Et d'après le lemme~\ref{lemma:iso}, 
78 $\Gamma(f)^0$ et $\Gamma(f)^1$ sont fortement 
79 connexes. 
80 Pour prouver que $\Gamma(f)$ est fortement connexe, il suffit 
81 de prouver que $\Gamma(f)$ contient un arc $x\to y$ avec 
82 $x_n=0<y_n$ et un arc $x\to y$ avec $x_n=1>y_n$. 
83 En d'autres mots, il suffit de prouver que:
84 \begin{equation}\tag{$*$}
85 \forall \alpha\in\Bool,~\exists x\in\Bool^n,\qquad  x_n=\alpha\neq f_n(x).
86 \end{equation}
87
88 On suppose tout d'abord que $n$ a une boucle 
89 négative.
90 Alors, d'après la définition de 
91 $G(f)$, il existe $x\in\Bool^n$ tel que $f'_{nn}(x)<0$. 
92 Ainsi si $x_n=0$, on a  $f_n(x)>f_n(\overline{x}^n)$, et donc 
93 $x_n=0\neq f_n(x)$ et
94 $\overline{x}^n_n=1\neq f_n(\overline{x}^n)$; 
95 et si  $x_n=1$, on a 
96 $f_n(x)<f_n(\overline{x}^n)$, donc $x_n=1\neq f_n(x)$ et $\overline{x}^n_n=0\neq
97 f_n(\overline{x}^n)$. 
98 Dans les deux cas, la condition ($*$) est établie.
99
100 Supposons maintenant que  $n$ n'a pas de boucle négative.
101 D'après la seconde hypothèse, 
102 $n$ n'a pas de boucle, \emph{i.e.}, la valeur de $f_n(x)$
103 ne dépend pas de la valeur de $x_n$. 
104 D'après la troisième hypothèse, 
105 il existe $i\in \llbracket 1;n \rrbracket$ tel que $G(f)$ a un arc de 
106 $i$ vers $n$.
107 Ainsi, il existe $x \in \Bool^n$ tel que $f'_{ni}(x) \neq 0$ et donc 
108 %$n$ n'est donc pas de degré zéro dans $G(f)$, \emph{i.e.} 
109 $f_n$ n'est pas constante.
110 Ainsi, il existe $x,y\in \Bool^n$ tel que
111 $f_n(x)=1$ et $f_n(y)=0$. 
112 Soit  $x'=(x_1,\dots,x_{n-1},0)$ et
113 $y'=(y_1,\dots,y_{n-1},1)$. 
114 Puisque la valeur de $f_n(x)$
115 (resp. de $f_n(y)$) ne dépend pas de la  valeur de  $x_n$ (resp. de  $y_n$),
116 on a $f_n(x')=f_n(x)=1\neq x'_n$ (resp. $f_n(y')=f_n(y)=0\neq
117 y'_n$). 
118 Ainsi la  condition ($*$) est établie, et le théorème est prouvé.
119 \end{Proof}
120
121
122
123 %%% Local Variables: 
124 %%% mode: latex
125 %%% TeX-master: "main"
126 %%% End: