Un ordinateur mille fois plus rapide permet-il de résoudre des problèmes mille fois plus grands ?
Avec un algorithme linéaire, oui. Avec un coût n², la taille traitable n'est multipliée que par √1000 ≈ 31,6 ; avec n³, par 10. Avec un coût 2ⁿ, on gagne seulement log₂ 1000 ≈ 10 éléments : la vitesse ne vient pas à bout de l'exponentielle.
Grand oral session 2027 : exposé de 10 minutes debout, puis 10 minutes d'échange, sans calculatrice. Plan prévu pour 9,5 min.
Pourquoi cette question : un modèle d'introduction
Le jury attend que vous expliquiez pourquoi vous avez choisi la question. Inspirez-vous de ce modèle, mais racontez votre propre parcours.
On entend souvent que les ordinateurs progressent si vite que tout problème finira par être résolu. En NSI, j'ai pourtant vu un programme qui, pour 30 objets, tournait des heures. Je me suis demandé ce que gagnerait une machine mille fois plus rapide. Le calcul m'a surpris : selon l'algorithme, on gagne énormément ou presque rien.
L'enjeu et les notions du programme
Résoudre des équations du type f(n') = 1000 f(n) pour des fonctions puissances et exponentielles, et en déduire la limite de la puissance de calcul.
Mathématiques
- Fonctions puissances, racine carrée et cubique (seconde, première)
- Fonction exponentielle et logarithme (terminale)
- Croissances comparées (terminale)
Numérique et sciences informatiques
- Coût d'un algorithme, notion de complexité (première)
- Algorithmes exponentiels : recherche exhaustive (terminale)
Le plan de l'exposé en 9,5 min
1. Introduction
1 minEn un temps fixé, une machine fait un nombre N d'opérations. Si elle devient 1 000 fois plus rapide, elle en fait 1000N. Problématique : quelle taille de problème peut-on alors traiter, selon le coût de l'algorithme ?
2. Mathématiques : résoudre f(n') = 1000 f(n)
4 minCoût linéaire f(n)=n : n'=1000n. On traite des problèmes mille fois plus grands.
Coût quadratique f(n)=n² : n'²=1000n², donc n'=√(1000) n≈31,6 n. Coût cubique : n'= racine 3-ième de (1000) n=10n.
Coût exponentiel f(n)=2ⁿ : 2^(n')=1000×2ⁿ, donc n'=n+log₂ 1000≈ n+10. La machine mille fois plus rapide ne traite que 10 éléments de plus ! Si l'on passait de 30 à 40 objets, il faudrait encore la multiplier par 1 000 pour aller à 50.
C'est la traduction des croissances comparées : l'exponentielle l'emporte sur toute puissance. Un progrès multiplicatif de la machine se traduit par un progrès additif de la taille traitable.
3. NSI : où l'on rencontre l'exponentielle
3 minLes algorithmes exponentiels apparaissent dès qu'on teste toutes les combinaisons : les 2ⁿ sous-ensembles d'un ensemble (problème du sac à dos), les n! ordres de visite (voyageur de commerce), les 2ⁿ affectations de variables booléennes.
Pour ces problèmes, on cherche des algorithmes plus astucieux (programmation dynamique, élagage) ou on accepte des solutions approchées par des heuristiques (algorithmes gloutons). Exemple mesurable en Python : énumérer les sous-ensembles de 20, 21, 22 éléments ; le temps double à chaque élément ajouté.
4. Conclusion
1,5 minUn ordinateur mille fois plus rapide multiplie par 1 000 la taille des problèmes linéaires, par 31 seulement celle des problèmes quadratiques, et n'ajoute que 10 éléments aux problèmes exponentiels. Le progrès algorithmique compte plus que le progrès matériel. J'ouvre sur la question P = NP.
Ce que j'écris au tableau
Pas de calculatrice ni de support numérique : un calcul clé écrit au tableau rend l'exposé concret et montre la solidité des connaissances.
2^(n')=1000×2ⁿ⇒ n'=n+log₂1000≈ n+10
Conclusion : la réponse à la question
La vitesse des machines ne suffit pas face à un coût exponentiel : elle ne fait qu'ajouter quelques éléments. Seule une meilleure méthode change d'échelle, ce que montrent les croissances comparées.
Les questions probables du jury
Pendant les 10 minutesd'échange, le jury vous fait préciser et approfondir, sur tout le programme de vos spécialités en lien avec la question.
Résolvez 2^x = 1 000.
x=ln1000/ln2≈9,97.
Et pour un coût n log₂ n ?
On gagne un peu moins que pour un coût linéaire : presque un facteur 1 000.
Pourquoi l'exponentielle l'emporte-t-elle sur toute puissance ?
Croissances comparées : lim_n→+∞2ⁿ/n^(k)=+∞ pour tout entier k.
Combien de sous-ensembles pour 30 objets ?
2³⁰≈1,07×10⁹.
Qu'est-ce qu'une heuristique ?
Une méthode rapide qui donne une bonne solution sans garantie qu'elle soit la meilleure.
Les pièges qui coûtent des points
- Croire que le gain est toujours proportionnel à la vitesse.
- Confondre multiplier par 1 000 la taille et ajouter 10 éléments.
- Oublier que les constantes comptent pour les petites tailles.
Revoir les notions
Autres questions : algorithmes et complexité
- Pourquoi trier un million de nombres peut-il prendre dix minutes ou un centième de seconde selon l'algorithme ?
- Pourquoi couper un problème en deux permet-il de le résoudre beaucoup plus vite ?
- Peut-on inventer un algorithme de tri encore plus rapide, ou existe-t-il une limite infranchissable ?
- Rendre la monnaie avec le moins de pièces possible : faut-il toujours prendre la plus grosse pièce ?
Préparer l'oral, pas seulement le contenu
Gestion des 20 minutes de préparation, usage du tableau, posture debout, réponses au jury : la méthode complète, conforme aux règles de la session 2027.
Méthode : traiter une question de Grand oral →