\documentclass[a4paper, 11pt]{article}
\usepackage{fullpage}
\usepackage[latin1]{inputenc} 
\usepackage[T1]{fontenc}
\usepackage{lmodern}
\usepackage{graphicx}
\usepackage[french]{babel}
\usepackage{amsthm}
\usepackage{enumerate}
 
\newtheorem{lemma}{Lemme}
\newtheorem{theorem}{Théorème}

\begin{document}
 
\title{L'île aux enfants et la combinatoire}
\date{Un exercice de mathématiques élémentaires,\\et sa solution}
\maketitle

\section*{Énoncé}
Dans la ville de Casimir, beaucoup de gens se connaissent. Lors des fêtes, il y a toujours moins de présentation à faire que d'invités (\og A voici B et B voici A \fg{} compte pour une seule présentation). Montrer qu'on peut diviser la ville en deux groupes à l'intérieur
desquels tout le monde se connaît.

\subsection*{Clarifications}

Il faut comprendre \og lors des fêtes, il y a toujours\dots \fg{} comme \og pour tout sous-ensemble des habitants de la ville\dots \fg{}. De plus, la relation \og A connaît B \fg{} n'est a priori pas symétrique. On considère également que chaque individu se connaît lui-même (sinon, une ville avec une seule personne qui ne se connaît pas serait un contre-exemple trivial).

Autre chose très importante : \og moins \fg{} dans l'énoncé signifie \og strictement moins \fg{} !

\'Évidemment, la situation décrite ici peut être formulée en termes de graphes : il s'agit de partitionner un graphe orienté en deux sous-graphes complets. Cependant, le vocabulaire de la théorie des graphes ne sera pas employé par la suite, d'autant plus que la solution du problème ne nécessite pas de connaissances avancées.

\section*{Solution}

\subsection*{Preuve rigoureuse semi-formelle}

Remarquons que si une personne en connaît une autre sans que cela soit réciproque, il faudra de toute façon les présenter, et comme cela comptera comme une seule présentation, cette relation de connaissance pré-existante n'apporte strictement rien, on peut donc la supprimer. On se ramène ainsi au cas où la relation \og $p$ connaît $q$ \fg{} est symétrique. Par conséquent, dans la suite, \textbf{ \og $p$ connaît $q$ \fg{} signifiera \og $p$ et $q$ se connaissent mutuellement \fg }.

Notons $\Omega$ l'ensemble des habitants de la ville. Par la suite, on appellera \emph{clique} un sous-ensemble de $\Omega$ dont tous les membres se connaissent entre eux. (Note : c'est le terme utilisé en théorie des graphes).

Commençons par le lemme technique suivant :

\begin{lemma}
  Soient deux cliques disjointes $X$ et $Y$, telles que $X \cup Y \neq \emptyset$, vérifiant la propriété $\mathcal{P}(X,Y)$ : \og il faut exactement $|X| + |Y| - 1$ présentations entre les membres de $X$ et ceux de $Y$ pour que tous les membres de $X \cup Y$ se connaissent \fg{}. Soit une personne $p \in \Omega \setminus (X \cup Y)$ ne connaissant pas tout le monde dans $X \cup Y$. Alors :
  \begin{enumerate}[(i)]
  \item Il existe exactement une personne $q \in X \cup Y$ ne connaissant pas $p$ ;
  \item Si $q \in X$, alors $Y \cup \{p\}$ est une clique et $\mathcal{P}(X, Y \cup \{p\})$ est vraie. (Si $p \in Y$ on a évidemment la même chose en échangeant $X$ et $Y$).
  \end{enumerate}
\end{lemma}
\begin{proof}
  Pour prouver $(i)$ il suffit de compter les couples de personnes qui ne se connaissent pas : s'il y a 2 ou plus personnes de $q \in X \cup Y$ ne connaissant pas $p$, alors le nombre de présentations nécessaires entre personnes de $X \cup Y \cup \{p\}$ excède (au sens large) $(|X| + |Y| - 1) + 2 = |X + Y + \{p\}|$ ce qui contredit une hypothèse de l'énoncé de départ.

Dans le cas $q \in X$, $p$ connaît tout le monde dans $Y$ d'après $(i)$ ($X$ et $Y$ étant disjoints, $q \not\in Y$). Pour la condition $\mathcal{P}$ le dénombrement est laissé en exercice au lecteur\dots
\end{proof}
 
Ceci permet d'obtenir un résultat dont l'énoncé est purement qualitatif :

\begin{lemma}
  Si tout le monde ne se connaît pas, il existe une partition de $\Omega$ en trois ensembles $X$, $Y$ et $Z$ telle que $X$ et $Y$ soient des cliques, $X \cup Y \neq \emptyset$, et que $\forall p \in Z, \forall q \in X \cup Y, p \mbox{ connaît } q$.
\end{lemma}
\begin{proof}
  Soient $\{p\}$ et $\{q\}$ ignorant l'existence l'un de l'autre. On considère l'ensemble $E$ des couples $(X,Y)$ de cliques disjointes vérifiant $\mathcal{P}$. Il est non vide (il contient $(\{p\},\{q\})$) et fini, donc il existe un élément $(X,Y)$ de cet ensemble qui maximise $|X|+|Y|$ ($\mathbf{N}$ étant totalement ordonné). Posons $Z=\Omega \setminus (X \cup Y)$. Si $r \in Z$ ne connaît pas tout le monde dans $X \cup Y$, l'application du lemme 1 donne un élément de $E$ qui contredit la maximalité de $(X,Y)$. Par conséquent toute personne de $Z$ connaît bien toute membre de $X$ ou $Y$.
\end{proof}

Avec ce résultat, on peut facilement conclure en pensant à introduire une récurrence forte :
\begin{theorem}
  $\Omega$ peut être partitionné en deux cliques.
\end{theorem}
\begin{proof}
  On procède par récurrence forte sur le cardinal de $\Omega$.

  Le cas $|\Omega| = 2$ est trivial.
  
  Pour $|\Omega| \geq 3$, supposons l'hypothèse de récurrence. Si tout le monde se connaît, c'est évident. Sinon, soient $X$, $Y$ et $Z$ donnés par le lemme 2. Comme $X \cup Y \neq \emptyset$, $|Z| < |\Omega|$, donc $Z$ est la réunion de deux cliques disjointes $A$ et $B$. On montre alors facilement que $(X \cup A, Y \cup B)$ est une partition de $\Omega$ en deux cliques. (On aurait aussi pu prendre $(X \cup B, Y \cup A)$.)
\end{proof}


\subsection*{Explications intuitives}

En fait, derrière les notations un peu lourdes se cachent des idées très simples, et on peut penser à cette solution sans avoir un esprit tordu.

Une première approche pour le problème serait d'essayer de construire les deux cliques. On voit immédiatement que le problème est de distribuer tout le monde pour que deux personnes qui ne se connaissent pas ne se retrouvent jamais dans le même ensemble ; si tout le monde se connaît, il n'y a rien à faire. Du coup, on va partir de deux personnes ne se connaissant pas, qu'on met dans deux ensembles différents, et on va tenter de rajouter un à un les autres individus dans un des deux ensembles, de façon à ce que toutes les personnes d'un même ensemble se connaissent à chaque instant.

Le problème, c'est que si une personne connaît tout le monde dans les deux ensembles (en cours de formation), on ne sait pas où la mettre. Si on se trompe, on pourrait se retrouver bloqué plus tard. Une stratégie prudente serait donc de rajouter en priorité les personnes pour lesquelles on n'a pas le choix : elles ne connaissent pas une autre personne déjà présente dans l'un des ensembles, on doit les mettre dans l'autre. Et ceci doit impérativement marcher sans créer de problèmes si l'énoncé est juste, donc ça ne coûte rien de le faire.

Comme on sait que ça doit ne pas créer de soucis, on va chercher une condition mathématique qui garantit qu'on peut tout le temps rajouter une nouvelle personne, c'est-à-dire que si elle ne connaît pas certaines personnes déjà classées quelque part, celles-ci sont dans le même ensemble. C'est là le passage non trivial de la preuve : il n'est pas évident que la bonne condition sera \og il y a au plus une personne déjà classée qu'elle ne connaît pas \fg, mais on peut s'en convaincre en essayant la construction à la main. (On emploie aussi les tactiques de base que sont le dénombrement et la recherche d'un invariant.) On obtient ainsi le lemme 1, et la construction partielle qu'on peut effectuer se formalise mathématiquement par le choix d'un élément maximal (lemme 2). On aurait pu aussi donner un algorithme pour vraiment construire les ensembles, puis prouver sa correction, mais c'est plus lourd.

Ensuite, il reste des individus non classés qui chacun connaissent tous les individus classés. On peut donc les mettre dans l'ensemble que l'on veut à condition que ceux qui partent dans le même ensemble se connaissent entre eux. On s'est donc ramené à un problème de partition en deux cliques, mais sur un nombre plus petit d'habitants de la ville : les personnes pas encore classées. Comme les hypothèses originales restent vérifiées sur ce sous-ensemble, une récurrence suffit alors à aboutir.



\end{document}
