← Tous les textes du Grand Oral
MathsHGGSPSESNSI
Deux armées se font face. L'une compte $100$ soldats, l'autre $60$, et chaque soldat vaut son adversaire. Combien de soldats restera-t-il au vainqueur à la fin du combat ? Le bon sens répond $100 - 60 = 40$. En 1916, l'ingénieur britannique Frederick Lanchester montre que ce n'est vrai que pour un combat au corps à corps. Quand chacun peut tirer de loin sur n'importe quel adversaire, il en reste $80$ : le plus nombreux perd trois fois moins d'hommes. La différence tient dans un carré.
Les équations de Lanchester décrivent une bataille par deux équations différentielles. Elles expliquent pourquoi les stratèges répètent qu'il faut concentrer ses forces, elles ont été confrontées aux chiffres de la bataille d'Iwo Jima en 1945, et elles servent aujourd'hui à programmer les adversaires des jeux vidéo de stratégie.
Derrière les lettres $x$ et $y$ de ce texte, il y a des hommes : un modèle de combat compte des morts et des blessés. C'est aussi pour cela qu'il est utile de savoir ce qu'il dit, et ce qu'il ne dit pas.
Ce texte rassemble ces connaissances, avec les mathématiques de terminale : dérivation, équations différentielles, exponentielle, logarithme, fonctions, suites et méthode d'Euler, algorithmique. Il ne propose pas de Grand Oral tout fait : à chacun d'y choisir une direction et d'y construire sa question.
Frederick William Lanchester (1868-1946) n'est pas un militaire. C'est un ingénieur anglais, pionnier de l'automobile (il construit l'une des premières voitures à essence britanniques et fonde sa propre marque) et de l'aérodynamique, où il étudie la portance d'une aile. Au début de la Première Guerre mondiale, il se demande ce que l'avion va changer à la guerre. Il publie ses réflexions dans la revue Engineering en 1914, puis dans un livre, Aircraft in Warfare (« L'avion dans la guerre »), en 1916.
Au milieu de ce livre se trouvent deux chapitres sur le « principe de concentration », où Lanchester met une bataille en équations. Il distingue deux situations :
Vers la même époque, un officier russe, Mikhaïl Ossipov, serait arrivé à des équations du même type, de façon indépendante, dans des articles de 1915.
Une armée X de $100$ tireurs affronte une armée Y de $60$ tireurs. On suppose qu'en une minute, chaque soldat met hors de combat (tué ou blessé) en moyenne $0{,}1$ adversaire : il faut dix minutes de tir à un soldat pour atteindre un ennemi. Pendant la première minute :
On recommence avec les nouveaux effectifs :
| minute | armée X | armée Y | calcul |
|---|---|---|---|
| $0$ | $100$ | $60$ | |
| $1$ | $94$ | $50$ | $100 - 6$ et $60 - 10$ |
| $2$ | $89$ | $40{,}6$ | $94 - 5$ et $50 - 9{,}4$ |
| $3$ | $84{,}94$ | $31{,}7$ | $89 - 4{,}06$ et $40{,}6 - 8{,}9$ |
On voit déjà le phénomène : plus Y s'affaiblit, moins elle tue, et plus X l'achève vite. Les pertes de X diminuent à chaque minute ($6$, puis $5$, puis $4{,}06$), celles de Y restent fortes. Ce calcul est exactement la méthode d'Euler avec un pas d'une minute.
Notons $x(t)$ et $y(t)$ les effectifs des deux armées à l'instant $t$, vus comme des fonctions dérivables (pour de grandes armées, on peut oublier qu'un effectif est un entier). Notons $a$ l'efficacité d'un soldat de X (le nombre d'adversaires qu'il met hors de combat par unité de temps) et $b$ celle d'un soldat de Y. Dans un combat à distance, les pertes de X par unité de temps sont proportionnelles au nombre de tireurs de Y, et inversement :
$$x' = -b\,y \qquad \text{et} \qquad y' = -a\,x.$$Le signe moins dit que les effectifs diminuent. C'est un système de deux équations différentielles : la vitesse à laquelle $x$ diminue dépend de $y$, et inversement. On retrouve la même structure que dans le modèle proies-prédateurs de Lotka et Volterra.
Étape 1. On pose $E(t) = a\,x(t)^2 - b\,y(t)^2$. La dérivée de $x^2$ est $2\,x\,x'$ (dérivée d'une composée, ou d'un produit $x \times x$). Donc
$$E'(t) = 2a\,x\,x' - 2b\,y\,y'.$$Étape 2. On remplace $x'$ et $y'$ par leurs expressions :
$$\begin{aligned} E'(t) &= 2a\,x \times (-b\,y) \\ &\quad - 2b\,y \times (-a\,x) \\ &= -2ab\,xy + 2ab\,xy \\ &= 0. \end{aligned}$$Étape 3. Une fonction de dérivée nulle sur un intervalle est constante. Donc, à chaque instant du combat,
$$a\,x(t)^2 - b\,y(t)^2 = a\,x_0^2 - b\,y_0^2,$$où $x_0$ et $y_0$ sont les effectifs initiaux.
Dans l'exemple, $a = b = 0{,}1$, donc $x^2 - y^2$ reste égal à $100^2 - 60^2 = 6\,400$. Le calcul à la main donnait après une minute $94^2 - 50^2 = 6\,336$ : presque la même valeur. L'écart vient du pas d'une minute, trop grand ; il disparaît quand le pas diminue.
Lanchester suppose que le combat continue jusqu'à l'anéantissement de l'une des deux armées. Si c'est Y qui disparaît, à la fin $y = 0$, et l'invariant donne $a\,x_f^2 = a\,x_0^2 - b\,y_0^2$. D'où les deux résultats :
La « force de combat » d'une armée n'est donc pas son effectif multiplié par son efficacité, mais son effectif au carré multiplié par son efficacité. Dans l'exemple, il reste $\sqrt{100^2 - 60^2} = \sqrt{6\,400} = 80$ soldats à X : X n'a perdu que $20$ hommes pour en mettre $60$ hors de combat.
Il y a égalité parfaite quand $a\,x_0^2 = b\,y_0^2$ : les deux armées s'usent alors ensemble, et le modèle ne désigne pas de vainqueur.
Plaçons le point $(x(t) ; y(t))$ dans un repère. Il part de $(x_0 ; y_0)$ et se déplace sur la courbe d'équation $a\,x^2 - b\,y^2 = \text{constante}$, jusqu'à toucher un axe : c'est une branche d'hyperbole. Quand $a = b$, c'est la courbe de la fonction inverse tournée d'un huitième de tour. Le point d'arrivée sur l'axe des abscisses donne les survivants de X, celui sur l'axe des ordonnées les survivants de Y.
Dans une mêlée à l'épée, ou dans un défilé étroit, un soldat ne se bat qu'avec l'adversaire qu'il a en face de lui. Le nombre de duels à un instant donné ne dépend pas de la taille totale des armées, mais de la largeur du front : les soldats en surnombre attendent leur tour. Notons $k(t)$ le nombre de duels en cours à l'instant $t$ : c'est une fonction positive quelconque. Les pertes s'écrivent alors
$$x' = -b\,k(t) \qquad \text{et} \qquad y' = -a\,k(t).$$Étape 1. On pose $L(t) = a\,x(t) - b\,y(t)$. Sa dérivée est $L'(t) = a\,x' - b\,y'$.
Étape 2. En remplaçant,
$$\begin{aligned} L'(t) &= a \times (-b\,k(t)) - b \times (-a\,k(t)) \\ &= 0. \end{aligned}$$Étape 3. $L$ est donc constante : $a\,x - b\,y = a\,x_0 - b\,y_0$ pendant tout le combat, quelle que soit la façon dont les duels s'organisent.
X gagne si, et seulement si, $a\,x_0 > b\,y_0$, et il lui reste $x_f = x_0 - \dfrac{b}{a}\,y_0$ soldats. Ici, la force d'une armée est proportionnelle à son effectif, et non à son carré. Avec les armées de l'introduction $(a = b)$, il reste $100 - 60 = 40$ soldats à X : le bon sens avait raison, mais seulement pour le corps à corps.
La différence est spectaculaire quand les effectifs sont très inégaux. Avec $1\,000$ soldats contre $500$, la loi linéaire laisse $500$ survivants, la loi des carrés $\sqrt{1\,000\,000 - 250\,000} \approx 866$. C'est pourquoi, dans l'Antiquité, une petite armée pouvait espérer tenir face à une grande dans un passage étroit, comme les Grecs aux Thermopyles : en limitant le nombre de duels, elle ramène le combat à la loi linéaire.
L'invariant dit qui gagne, mais pas combien de temps dure le combat. Pour le savoir, il faut résoudre le système. On se place dans le cas où les deux armées ont la même efficacité $a = b = k$ : $x' = -k\,y$ et $y' = -k\,x$.
On définit, pour tout réel $u$,
$$C(u) = \frac{\mathrm{e}^{u} + \mathrm{e}^{-u}}{2}, \qquad S(u) = \frac{\mathrm{e}^{u} - \mathrm{e}^{-u}}{2}.$$Ce sont le cosinus et le sinus hyperboliques (notés ch et sh), déjà rencontrés dans le texte sur la chaînette. En dérivant (la dérivée de $\mathrm{e}^{-u}$ est $-\mathrm{e}^{-u}$), on obtient $C' = S$ et $S' = C$. De plus, $C(0) = 1$, $S(0) = 0$, et en développant les carrés,
$$C(u)^2 - S(u)^2 = \frac{2 + 2}{4} = 1.$$Étape 1. Conditions initiales : $x(0) = x_0 \times 1 - y_0 \times 0 = x_0$ et de même $y(0) = y_0$.
Étape 2. Par la dérivée d'une composée, la dérivée de $t \mapsto C(kt)$ est $t \mapsto k\,S(kt)$, et celle de $t \mapsto S(kt)$ est $t \mapsto k\,C(kt)$. Donc
$$\begin{aligned} x'(t) &= k\,x_0\,S(kt) - k\,y_0\,C(kt) \\ &= -k\,\big(y_0\,C(kt) - x_0\,S(kt)\big) \\ &= -k\,y(t). \end{aligned}$$Étape 3. Le même calcul donne $y'(t) = -k\,x(t)$. Les deux équations sont vérifiées.
On admet que cette solution est la seule. On retrouve l'invariant : en développant $x^2 - y^2$ et en utilisant $C^2 - S^2 = 1$, on obtient $x(t)^2 - y(t)^2 = x_0^2 - y_0^2$.
Supposons $x_0 > y_0$ : X gagne, et le combat s'achève à l'instant $T$ où $y(T) = 0$. On pose $u = kT$.
Étape 1. $y(T) = 0$ s'écrit $y_0\,C(u) = x_0\,S(u)$, soit, en multipliant par $2$,
$$y_0\left(\mathrm{e}^{u} + \mathrm{e}^{-u}\right) = x_0\left(\mathrm{e}^{u} - \mathrm{e}^{-u}\right).$$Étape 2. On multiplie par $\mathrm{e}^{u} > 0$ :
$$y_0\,\mathrm{e}^{2u} + y_0 = x_0\,\mathrm{e}^{2u} - x_0,$$donc $\mathrm{e}^{2u}\,(x_0 - y_0) = x_0 + y_0$, et $\mathrm{e}^{2u} = \dfrac{x_0 + y_0}{x_0 - y_0}$ (le quotient est strictement supérieur à $1$).
Étape 3. On applique le logarithme : $2u = \ln\left(\dfrac{x_0 + y_0}{x_0 - y_0}\right)$, d'où le résultat en divisant par $2k$.
Dans l'exemple $(100$ contre $60$, $k = 0{,}1)$, $T = 5\ln 4 \approx 6{,}9$ minutes. Quand $y_0$ se rapproche de $x_0$, le quotient tend vers $+\infty$, donc $T$ aussi : deux armées presque égales s'usent très longtemps, et celle qui gagne finit presque anéantie.
Lanchester ouvre son raisonnement par cet exemple. Deux armées de même efficacité comptent chacune $1\,000$ soldats. Si elles s'affrontent d'un seul bloc, elles s'anéantissent mutuellement. Mais supposons que l'armée rouge se divise en deux groupes de $500$, qui attaquent l'armée bleue l'un après l'autre. Avec la loi des carrés :
À effectifs égaux, l'armée bleue anéantit l'armée rouge en perdant moins de $30\,\%$ de ses hommes, simplement parce que les rouges sont arrivés en deux fois. Avec la loi linéaire, au contraire, diviser son armée ne change rien : l'invariant $x - y$ se moque de l'ordre des combats. C'est la loi des carrés qui justifie le vieux principe militaire de la concentration des forces, et la tactique de l'adversaire qui cherche à diviser pour régner.
Puisque la force d'une armée vaut $a\,x^2$, doubler l'effectif multiplie la force par $4$, alors que doubler l'efficacité ne la multiplie que par $2$. Une armée deux fois plus nombreuse, faite de soldats deux fois moins efficaces, est encore deux fois plus forte :
$$\frac{a}{2} \times (2x)^2 = 2\,a\,x^2.$$Pour compenser une infériorité numérique de un contre deux, il faut des soldats (ou des armes) quatre fois plus efficaces. C'était la question que se posait Lanchester pour l'aviation naissante : mieux vaut-il beaucoup d'avions ou de meilleurs avions ?
Le 21 octobre 1805, au large du cap Trafalgar, $27$ vaisseaux de ligne britanniques commandés par l'amiral Nelson affrontent $33$ vaisseaux français et espagnols. Au début du XIXe siècle, une bataille navale se livre en général en deux lignes parallèles qui se canonnent : chaque navire tire sur celui d'en face. Le 9 octobre, Nelson a rédigé un mémorandum qui prévoit autre chose : couper la ligne ennemie en deux colonnes perpendiculaires, et écraser une partie de la flotte adverse avant que l'autre, à l'avant de la ligne, ait le temps de faire demi-tour pour venir l'aider. Dans Aircraft in Warfare, Lanchester analyse longuement ce mémorandum comme une application de son principe.
Un calcul simplifié montre l'idée (en supposant tous les navires de même efficacité, ce qui n'est pas exact). Face à face, $33$ navires battent $27$ navires et il leur en reste $\sqrt{33^2 - 27^2} = \sqrt{360} \approx 19$. Si les Britanniques attaquent d'abord $20$ navires isolés, puis les $13$ autres :
$$\sqrt{27^2 - 20^2} = \sqrt{329} \approx 18{,}1,$$ $$\sqrt{329 - 13^2} = \sqrt{160} \approx 12{,}6.$$Avec la même flotte, le résultat s'inverse. Le jour de la bataille, la flotte franco-espagnole perd une vingtaine de vaisseaux, pris ou détruits, sans qu'aucun navire britannique ne soit coulé ; Nelson est tué au cours du combat. Bien d'autres facteurs ont joué (l'entraînement des canonniers, le vent, la météo des jours suivants), et ce calcul n'est pas une reconstitution de la bataille.
Les équations de Lanchester ont connu une seconde vie en économie. Au Japon, à partir des années 1970, une « stratégie de Lanchester » a été largement diffusée auprès des entreprises : une entreprise dominante aurait intérêt à affronter ses concurrents sur tout le marché à la fois (comme dans la loi des carrés), tandis qu'une petite entreprise devrait concentrer ses efforts sur un créneau étroit, une région ou un type de clients, où le combat ressemble au corps à corps (loi linéaire) et où le nombre compte moins. Cette transposition est une image plus qu'un modèle vérifié, mais elle montre comment une idée mathématique peut circuler d'une discipline à l'autre.
Iwo Jima est une petite île volcanique du Pacifique, à un peu plus de $1\,000$ km au sud de Tokyo, longue d'environ $8$ km. En 1945, les États-Unis veulent s'emparer de ses aérodromes, sur la route des bombardiers qui attaquent le Japon. Environ $21\,000$ soldats japonais l'occupent, sous le commandement du général Kuribayashi ; ils ont creusé des kilomètres de tunnels et d'abris. Le débarquement américain commence le 19 février 1945. L'île n'est déclarée conquise qu'au bout de $36$ jours.
C'est une bataille d'anéantissement, au sens de Lanchester. Isolés, les défenseurs ne reçoivent aucun renfort et n'ont aucune retraite possible ; presque tous meurent, on ne compte que quelques centaines de prisonniers. Côté américain, on compte près de $7\,000$ morts et plus de $19\,000$ blessés. Ce bilan, l'un des plus lourds de la guerre du Pacifique pour les États-Unis, a pesé dans les décisions des mois suivants.
Pour qui veut tester le modèle, Iwo Jima a deux qualités rares : un champ de bataille fermé, et des archives précises. L'armée américaine a noté jour après jour le nombre de ses soldats débarqués et de ses pertes. En 1954, le chercheur en recherche opérationnelle J. H. Engel confronte ces données aux équations de Lanchester. Notons $x$ le nombre de soldats américains en état de combattre et $y$ celui des défenseurs japonais. Les Américains reçoivent des renforts, au rythme $P(t)$ :
$$x' = -b\,y + P(t) \qquad \text{et} \qquad y' = -a\,x.$$Les renforts arrivent en trois vagues : $54\,000$ hommes le premier jour, $6\,000$ le troisième et $13\,000$ le sixième. Au départ, $x_0 = 0$ et $y_0 = 21\,500$.
On ne connaît pas les effectifs japonais jour par jour, mais on connaît les effectifs américains. L'équation $y' = -a\,x$ suffit à estimer $a$. Avec un pas d'un jour (méthode d'Euler), $y_{k+1} = y_k - a\,x_k$, donc en ajoutant ces égalités du jour $0$ au jour $35$ :
$$y_{36} = y_0 - a\,(x_0 + x_1 + \dots + x_{35}).$$À la fin, $y_{36} \approx 0$. La somme des effectifs américains relevés chaque jour vaut environ $2$ millions de « soldats-jours ». Donc
$$a \approx \frac{21\,500}{2\,000\,000} \approx 0{,}011.$$En ajustant le modèle à l'ensemble des données, Engel obtient $a \approx 0{,}0106$ : chaque jour, un soldat américain met hors de combat en moyenne un centième de défenseur. Il estime ensuite $b \approx 0{,}0544$ : un défenseur japonais, abrité dans ses tunnels, est environ cinq fois plus efficace qu'un assaillant. D'après la loi des carrés, pour compenser ce rapport, il fallait $\sqrt{0{,}0544 / 0{,}0106} \approx 2{,}27$ fois plus d'assaillants que de défenseurs, soit environ $48\,700$ hommes. Les Américains en ont débarqué $73\,000$.
Le tableur ci-dessous applique la méthode d'Euler avec un pas d'un jour : $x_{k+1} = x_k + P_k - b\,y_k$ et $y_{k+1} = y_k - a\,x_k$. La colonne E donne les effectifs américains relevés (le relevé du jour $3$ manque dans les données publiées), la colonne F l'écart entre le modèle et la réalité. On peut modifier les efficacités en B1 et B2.
Les colonnes C et E restent très proches pendant toute la bataille : l'écart ne dépasse pas $1\,500$ hommes, soit moins de $3\,\%$ des effectifs. Au jour $36$, le modèle donne environ $50\,700$ Américains en état de combattre, pour $52\,140$ relevés, et il ne reste plus que quelques centaines de défenseurs. Engel conclut que la loi des carrés décrit remarquablement cette bataille. D'autres chercheurs ont repris ses données depuis ; certains discutent sa méthode d'ajustement, mais le bon accord du modèle avec cette bataille est en général confirmé.
Le modèle ne dit rien de la façon dont on a combattu : il ne distingue pas les morts des blessés, il ne voit ni les tunnels, ni les lance-flammes, ni la soif. Il montre seulement que, dans ce combat d'usure, les pertes ont suivi la règle simple de Lanchester.
Dans un jeu de stratégie en temps réel comme StarCraft (sorti en 1998, l'un des plus joués de l'histoire), chaque joueur récolte des ressources, construit une armée et l'envoie combattre celle de l'adversaire. Les joueurs connaissent bien un effet de la loi des carrés : envoyer ses unités au combat par petits paquets, au fur et à mesure qu'elles sont produites, est une façon sûre de perdre. Une petite avance en nombre, au moment de l'affrontement, se transforme vite en victoire écrasante.
En 2015, trois chercheurs de l'université de l'Alberta, Marius Stanescu, Nicolas Barriga et Michael Buro, ont utilisé les équations de Lanchester pour aider un programme à jouer à StarCraft. Le problème est le suivant : au cours d'une partie, le programme doit décider très vite s'il attaque ou s'il bat en retraite. Simuler chaque combat possible est trop lent ; une formule est instantanée. Ils utilisent la forme générale de l'invariant,
$$a\,x^n - b\,y^n = \text{constante},$$où l'exposant $n$, appelé ordre d'attrition, vaut $1$ pour la loi linéaire et $2$ pour la loi des carrés. Sur les combats de StarCraft, ils trouvent que l'exposant qui prévoit le mieux le résultat vaut environ $1{,}56$ : les combats du jeu mélangent des unités de corps à corps et des unités qui tirent à distance. Ils estiment l'efficacité de chaque type d'unité à partir de batailles déjà jouées, puis font jouer leur programme contre les meilleurs programmes d'un tournoi de 2014. Avec les efficacités apprises sur $500$ batailles, il gagne en moyenne $6\,\%$ de parties de plus qu'avec les valeurs de départ, qui faisaient déjà un peu mieux que la simulation des combats.
La démonstration de l'invariant se généralise : si $x' = -b\,y^{\,n-1}$ et $y' = -a\,x^{\,n-1}$, la dérivée de $a\,x^n - b\,y^n$ vaut $n\,a\,x^{n-1}x' - n\,b\,y^{n-1}y'$, qui est nulle.
Le simulateur ci-dessous fait combattre une armée bleue et une armée rouge. On règle les effectifs, les efficacités et la loi de combat, et l'on peut faire arriver l'armée rouge en deux vagues égales, l'une après l'autre. La prévision donnée par l'invariant s'affiche avant le combat ; le résultat de la simulation (méthode d'Euler à petit pas) s'affiche à la fin.
Le premier programme simule le combat avec la méthode d'Euler et reprend l'exemple de Lanchester : $1\,000$ bleus contre $1\,000$ rouges divisés en deux groupes. Le second calcule les survivants prévus par l'invariant pour différents ordres d'attrition.
Avec $100$ soldats contre $60$, la loi linéaire laisse $40$ survivants, la loi des carrés $80$, et l'ordre $1{,}56$ de StarCraft une valeur intermédiaire.
Ces modèles sont nés dans la recherche opérationnelle militaire, la même discipline que présentent les textes sur la recherche opérationnelle et sur les mathématiques de la Seconde Guerre mondiale.
Ce texte n'est pas un Grand Oral. Il rassemble des connaissances dans lesquelles chacun peut choisir une direction, la creuser et formuler sa propre question. Quelques directions possibles :
Le jury peut interroger sur les chapitres de spécialité mobilisés. Avec ce thème, il est utile de connaître parfaitement : la dérivation (produit, composée, dérivée de $\mathrm{e}^{u}$), le lien entre dérivée nulle et fonction constante ; les équations différentielles $y' = ay$ et la méthode d'Euler ; les fonctions exponentielle et logarithme et leurs propriétés algébriques ; la fonction racine carrée ; les suites définies par récurrence et les sommes ; les boucles en Python.
Pour réviser ces chapitres, l'application Maths FlashBac reprend tout le cours de spécialité en cartes.