"La course ne se gagne pas seulement sur la piste, elle se gagne sur les écrans."
Ce projet est un moteur de simulation et d'optimisation de stratégie de Formule 1. Il combine modélisation physique et puissance algorithmique pour résoudre le casse-tête ultime : quelle est la stratégie la plus rapide pour rallier l'arrivée ?
Tout est parti d'un dimanche après-midi, devant un Grand Prix, à crier devant ma télé : "Mais pourquoi ils ne s'arrêtent pas maintenant ?!". Plutôt que de continuer à hurler dans le vide (et d'effrayer mon chat), j'ai décidé de coder un outil capable de battre les stratèges de Ferrari (ce qui, entre nous, n'est pas toujours très difficile 😉).
Le résultat ? Un simulateur capable de digérer des variables complexes (météo changeante, dégradation gomme, consommation d'essence) pour sortir LA stratégie gagnante.
Ce n'est pas juste une calculatrice, c'est un outil d'aide à la décision basé sur la donnée.
Le script simule chaque tour de roue en prenant en compte :
- La physique des pneus : Gestion de 5 types de gommes (Soft, Medium, Hard, Inter, Wet) avec leurs courbes de dégradation et fenêtres de performance.
- La dynamique des fluides (simplifiée) : Impact du poids du carburant sur le temps au tour (0.03s/L) et consommation variable selon la météo.
- L'aléatoire maîtrisé : Injection de "bruit" statistique pour simuler les imperfections humaines et mécaniques.
C'est le cœur du réacteur. Le programme n'essaie pas au hasard ; il génère intelligemment des arbres de décision :
- Utilisation de méthodes récursives (Backtracking) pour explorer les combinaisons de relais (stints) possibles.
- Filtrage dynamique selon la météo (impossible de mettre des Slicks sous la pluie).
- Comparaison de centaines de scénarios pour minimiser la fonction de coût (le temps total de course).
Parce qu'un tableau de chiffres c'est bien, mais un graphique c'est mieux. Utilisation de Matplotlib et Seaborn pour générer un rapport de course complet post-simulation.
Le programme suit une logique en 4 temps, digne d'une écurie professionnelle :
- Initialization : On charge les paramètres du circuit (64 tours, temps de base 90s) et le scénario météo (Sec -> Pluie -> Sec).
- Generation : L'algorithme découpe la course en segments et propose des configurations de pneus valides.
- Simulation : Chaque stratégie est "jouée" virtuellement. On calcule l'usure tour par tour, on applique le Lift & Coast si le carburant manque.
- Analytics : Le script élit la stratégie championne et plot les graphiques de télémétrie.
Pré-requis : Avoir Python installé et un casque de pilote (optionnel).
# 1. Cloner le repo
git clone [https://github.com/votre-username/Simulateur-Strategie-F1.git](https://github.com/votre-username/Simulateur-Strategie-F1.git)
# 2. Installer les dépendances (la Sainte Trinité de la Data)
pip install numpy pandas matplotlib seaborn
# 3. Lancer la simulation
python app.pyLe programme vous dira exactement quoi faire :
=== MEILLEURE STRATÉGIE ===
Stints : [('hard', 35 tours), ('medium', 4 tours), ('intermediate', 20 tours)...]
Temps total : 5806.21 s
À la fin de l'exécution, vous obtenez un dashboard complet comprenant :
- Temps au tour : Visualisez votre rythme s'effondrer quand vos pneus sont morts.
- Carburant : La courbe de consommation (attention à la panne sèche !).
- Usure des pneus : Suivez la dégradation en pourcentage.
- Météo : Corrélation directe entre la pluie et vos choix de pneus.
- Auteur : Corentin Cartallier - Développeur & Stratège du dimanche.
- Expertise Technique : Un immense merci à Loris ALUNNO. Son approche analytique et nos débats passionnés sur la précision des modèles mathématiques ont été le carburant de ce projet.
Ce projet est open-source. N'hésitez pas à forker pour ajouter la gestion des Safety Cars ou des drapeaux rouges ! 🚩