Retour à la section Grand Oral

Attention : Ce sujet n'est qu'un exemple !

Lisez-le, inspirez-vous en, mais ne vous en servez pas tel quel ! Une bonne note au Grand Oral est surtout le résultat d'une adéquation entre vous et votre sujet. Un très bon sujet pour un élève peut donner une note... moyenne pour un autre.

Mathématiques Format 10 minutes

Surréservation d'avion et loi binomiale

Thème : Probabilités & Algorithmique ~1240 mots
Structure du Discours
1
Introduction
2
I. Modélisation mathématique par la loi binomiale (environ 4 min)
3
II. Résolution algorithmique en Python (environ 3 min 30s)
4
Conclusion

Surréservation d’avion et loi binomiale : L’optimisation algorithmique face aux aléas

Problématique

Comment la loi binomiale et la modélisation algorithmique permettent-elles aux compagnies aériennes de maximiser le remplissage des avions par la surréservation sans dépasser un risque de surcapacité fixé ?


Introduction

Bonjour à toutes et à tous. Avez-vous déjà remarqué que lors de la réservation d’un vol, les compagnies aériennes proposent parfois des compensations financières à l’aéroport pour inciter certains passagers à reporter leur voyage ? Ce phénomène est le résultat d’une stratégie commerciale courante et assumée : la surréservation (ou overbooking). Cette pratique consiste à vendre plus de billets qu’il n’y a de sièges physiques disponibles dans l’appareil.

Pourquoi une telle stratégie ? Les statistiques montrent qu’en moyenne, environ $5\ %$ des passagers ayant acheté un billet ne se présentent pas à l’embarquement (ce que l’on appelle le « no-show »). Pour éviter de faire voler des sièges vides, qui représentent un manque à gagner, les compagnies surréservent les vols. Cependant, si trop de passagers se présentent, la compagnie doit indemniser les clients surnuméraires, ce qui nuit à sa rentabilité et à son image.

Intéressé par la recherche opérationnelle et l’algorithmique, j’ai voulu comprendre comment les mathématiques permettent de trouver le point d’équilibre optimal. Ma problématique est la suivante : Comment la loi binomiale et la modélisation algorithmique permettent-elles aux compagnies aériennes de maximiser le remplissage des avions par la surréservation sans dépasser un risque de surcapacité fixé ?

Pour y répondre, nous analyserons d’abord la modélisation mathématique du problème à l’aide de la loi binomiale. Puis, nous étudierons la résolution algorithmique en Python de ce modèle.


I. Modélisation mathématique par la loi binomiale (environ 4 min)

Pour modéliser cette situation, considérons un avion de ligne standard de type Airbus A380 comportant précisément $c = 516$ places passagers. La compagnie souhaite vendre un nombre $n$ de billets ($n > 516$) pour ce vol.

Pour chaque passager ayant acheté un billet, l’embarquement peut être modélisé comme une épreuve de Bernoulli, c’est-à-dire une expérience aléatoire ne comportant que deux issues possibles :

  • Le succès : « Le passager se présente à l’embarquement », de probabilité $p = 0{,}95$ (puisque $5\ %$ ne se présentent pas).
  • L’échec : « Le passager ne se présente pas », de probabilité $q = 1 - p = 0{,}05$.

Nous supposons que les comportements des passagers sont mutuellement indépendants. Ainsi, vendre $n$ billets revient à répéter $n$ épreuves de Bernoulli identiques et indépendantes.

Définissons la variable aléatoire $X$ égale au nombre de passagers se présentant à l’embarquement le jour du vol. D’après le cours de mathématiques de Terminale, la variable aléatoire $X$ suit une loi binomiale de paramètres $n$ (le nombre de billets vendus, que l’on cherche) et $p = 0{,}95$. On note :

$$X \sim \mathcal{B}(n; 0{,}95)$$

La probabilité que précisément $k$ passagers se présentent parmi les $n$ ayant acheté un billet est donnée par la formule :

$$P(X = k) = \binom{n}{k} \cdot p^k \cdot (1-p)^{n-k} = \binom{n}{k} \cdot (0{,}95)^k \cdot (0{,}05)^{n-k}$$

Pour la compagnie, la surcapacité se produit si le nombre de passagers présents $X$ est strictement supérieur au nombre de sièges disponibles $c = 516$. La compagnie fixe une contrainte de sécurité stricte : la probabilité de survenue d’un tel incident doit être inférieure ou égale à $1\ %$ (soit $0{,}01$).

Nous devons donc résoudre l’inéquation suivante d’inconnue $n$ (entier naturel) :

$$P(X > 516) \le 0{,}01$$

Ce qui équivaut, en passant par l’événement contraire, à :

$$1 - P(X \le 516) \le 0{,}01 \implies P(X \le 516) \ge 0{,}99$$


II. Résolution algorithmique en Python (environ 3 min 30s)

Résoudre cette inéquation à la main est extrêmement fastidieux en raison de la taille des nombres et des coefficients binomiaux pour $n \approx 500$. Les compagnies aériennes utilisent donc des outils informatiques. Nous pouvons concevoir un algorithme de recherche linéaire en Python pour déterminer la valeur maximale de $n$.

Voici le script Python modélisant cette recherche :

import math

def coefficient_binomial(n, k):
    # Calcule le coefficient binomial (n parmi k)
    return math.comb(n, k)

def probabilite_cumulee_binomiale(n, p, c):
    # Calcule P(X <= c) pour X ~ B(n, p)
    proba_cumulee = 0.0
    for k in range(c + 1):
        proba_k = coefficient_binomial(n, k) * (p**k) * ((1 - p)**(n - k))
        proba_cumulee += proba_k
    return proba_cumulee

def optimiser_surreservation(seats, p, threshold):
    # Initialisation : on commence à vendre autant de billets qu'il y a de sièges
    n = seats
    # Tant que la probabilité de surcapacité reste acceptable, on augmente n
    while probabilite_cumulee_binomiale(n, p, seats) >= threshold:
        n += 1
    # On retourne n - 1 car la boucle s'arrête lorsque le seuil est dépassé
    return n - 1

# Paramètres du problème
nb_places = 516
p_presence = 0.95
seuil_securite = 0.99  # Équivaut à P(X <= 516) >= 0.99

billets_a_vendre = optimiser_surreservation(nb_places, p_presence, seuil_securite)
print(f"Nombre optimal de billets à vendre : {billets_a_vendre}")

Dans ce programme, la fonction probabilite_cumulee_binomiale calcule la somme des probabilités individuelles de $0$ à $516$ pour une valeur $n$ donnée. La boucle while incrémente $n$ de $1$ tant que la probabilité $P(X \le 516)$ reste supérieure ou égale à $0{,}99$. Dès que cette probabilité passe en dessous de $0{,}99$ (ce qui signifie que le risque de surcapacité dépasse $1\ %$), la boucle s’arrête.

En exécutant ce programme avec nos paramètres, on obtient la valeur :

$$n = 532\text{ billets}$$

Ainsi, la compagnie peut vendre jusqu’à $532$ billets pour son vol de $516$ places. Le risque de devoir refuser des passagers à l’embarquement est alors statistiquement de $0{,}93\ %$ (donc inférieur à la limite de $1\ %$), tandis que le taux de remplissage attendu de l’avion est optimisé à son maximum.


Conclusion

En conclusion, la modélisation mathématique par la loi binomiale, couplée à la puissance de calcul algorithmique de Python, permet d’apporter une solution rationnelle et quantitative au problème de la surréservation. Elle permet aux compagnies aériennes de transformer un risque aléatoire (la défection de passagers) en une marge de profit calculée et maîtrisée.

Cependant, ce modèle repose sur l’hypothèse de l’indépendance des passagers. Dans la réalité, de nombreux billets sont achetés par des couples ou des groupes qui se déplacent ensemble. Si l’un annule, les autres annulent souvent aussi. Les compagnies doivent donc complexifier leurs modèles en intégrant des variables corrélées et des lois de probabilités plus avancées.

Ce sujet s’inscrit pleinement dans mon projet professionnel. Je souhaite m’orienter vers des classes préparatoires MP2I (Mathématiques, Physique, Ingénierie et Informatique) afin d’étudier la recherche opérationnelle et concevoir les futurs algorithmes d’optimisation industrielle.

Je vous remercie de votre attention et je suis prêt à échanger avec vous.


Questions Potentielles du Jury

1. Pourquoi l’hypothèse d’indépendance des passagers est-elle une approximation et quelles en sont les limites concrètes ?

Réponse : L’indépendance de deux événements signifie que la réalisation de l’un n’influence pas la probabilité de réalisation de l’autre. Dans notre modèle, nous supposons que le fait qu’un passager se présente à l’embarquement n’a aucun lien avec le comportement des autres passagers. En réalité, cette hypothèse est imparfaite pour deux raisons majeures :

  1. Les voyages en groupe ou en famille : Si une famille de 4 personnes a réservé un vol et décide de l’annuler (maladie, imprévu), cela génère 4 désistements simultanés d’un coup. Les épreuves ne sont pas indépendantes mais fortement corrélées.
  2. Les facteurs externes globaux : Des conditions météo difficiles, une grève des transports ou un retard sur un vol de correspondance affectent simultanément un grand nombre de passagers qui rateront tous leur vol. Pour corriger cela, les analystes des compagnies aériennes regroupent les réservations par “blocs” (les passagers voyageant sous un même dossier sont modélisés comme une entité unique) et intègrent des lois de probabilités plus complexes qui modélisent les dépendances de groupe.

2. Écrivez une fonction Python permettant de calculer les coefficients binomiaux $\binom{n}{k}$ de manière efficace sans utiliser la bibliothèque math.

Réponse : Pour calculer $\binom{n}{k} = \frac{n!}{k!(n-k)!}$ de manière efficace en limitant le risque de dépassement de capacité mémoire (lié aux factorielles géantes), on utilise la formule multiplicative : $$\binom{n}{k} = \prod_{i=1}^k \frac{n - k + i}{i}$$ Voici la fonction Python correspondante :

def combinaison_efficace(n, k):
    if k < 0 or k > n:
        return 0
    if k == 0 or k == n:
        return 1
    # On optimise en utilisant la symétrie des coefficients binomiaux
    k = min(k, n - k)
    resultat = 1
    for i in range(1, k + 1):
        resultat = resultat * (n - k + i) // i
    return resultat

Cette méthode utilise des divisions entières successives // et évite de calculer des factorielles complètes, ce qui rend l’algorithme très rapide et stable, même pour de grandes valeurs de $n$.

3. Comment le théorème de Moivre-Laplace permet-il d’approcher ce calcul à la main pour de grandes valeurs de $n$ ?

Réponse : Le théorème de Moivre-Laplace stipule que lorsque le nombre d’épreuves $n$ tend vers l’infini, la loi binomiale $\mathcal{B}(n; p)$ converge après centrage et réduction vers la loi normale centrée réduite $\mathcal{N}(0;1)$. En pratique, si $n \ge 30$, $np \ge 5$ et $n(1-p) \ge 5$, on peut approcher la variable aléatoire $X \sim \mathcal{B}(n; p)$ par une variable aléatoire $Y$ suivant la loi normale de moyenne $\mu = n \cdot p$ et d’écart-type $\sigma = \sqrt{n \cdot p \cdot (1-p)}$. Pour résoudre à la main $P(X \le 516) \ge 0{,}99$, on centre et on réduit : $$P\left(\frac{X - \mu}{\sigma} \le \frac{516 - \mu}{\sigma}\right) \ge 0{,}99 \implies P\left(Z \le \frac{516 - n \cdot p}{\sqrt{n \cdot p \cdot (1-p)}}\right) \ge 0{,}99$$ Où $Z \sim \mathcal{N}(0; 1)$. D’après la table de la loi normale, on sait que $P(Z \le 2{,}33) \approx 0{,}99$. On en déduit l’inéquation : $$\frac{516 - 0{,}95n}{\sqrt{0{,}0475n}} \ge 2{,}33$$ En résolvant cette inéquation du second degré en $\sqrt{n}$, on retrouve une excellente approximation de la valeur maximale de $n$ sans utiliser d’algorithme de boucle complexe.

4. Si la probabilité de présence $p$ chute à $0{,}90$ (par exemple en raison d’une grève annoncée des trains d’accès à l’aéroport), quel sera l’impact sur le nombre de billets $n$ que la compagnie peut vendre ?

Réponse : Si la probabilité qu’un passager se présente chute de $p = 0{,}95$ à $p = 0{,}90$, la défection attendue augmente (elle passe de $5\ %$ à $10\ %$). Puisque le taux de « no-show » double, l’espérance du nombre de présents pour un même nombre de billets vendus diminue. Par conséquent, la compagnie peut se permettre de vendre plus de billets pour le même vol de $516$ places, tout en respectant la contrainte que la probabilité de dépassement reste sous la barre des $1\ %$. En effectuant le calcul algorithmique avec $p = 0{,}90$, on constate que la compagnie peut vendre jusqu’à $555$ billets (au lieu de $532$), car la probabilité de voir les passagers se présenter est globalement plus faible.

5. En quoi consiste le métier d’ingénieur en recherche opérationnelle ?

Réponse : La recherche opérationnelle (RO) est la discipline des mathématiques appliquées qui utilise des modèles scientifiques (statistiques, graphes, programmation linéaire, simulation) pour concevoir des décisions optimales dans la gestion des grands systèmes industriels. L’ingénieur en RO intervient sur des problématiques telles que :

  1. L’optimisation des flux logistiques (ex: acheminer des colis au coût minimal).
  2. La planification des équipages et des flottes dans les transports aériens ou ferroviaires.
  3. Le Yield Management (ou tarification dynamique), qui consiste à ajuster les prix des billets en temps réel selon la demande pour maximiser le chiffre d’affaires, comme nous l’avons fait avec le modèle de surréservation. C’est un métier qui nécessite une double compétence solide en mathématiques (probabilités, optimisation) et en informatique (algorithmique, bases de données).