Ce projet implémente un système d'Intelligence Artificielle modulaire combinant du Behavioral Cloning (apprentissage supervisé à partir de vos propres parties) et du Deep Q-Learning (DQN) (apprentissage par renforcement autonome). Il est conçu pour être extrêmement léger et optimisé pour tourner sur le processeur CPU 4 cœurs d'un Orange Pi 3B.
Pour comprendre la formulation mathématique du projet (Processus de Décision Markovien, Équation de Bellman, Cross-Entropy Loss et Double Réseau DQN), consultez le document : 👉 Rapport Technique de Modélisation Mathématique
Snake-AI/
├── config.py # Centralisation des constantes et hyperparamètres
├── game.py # Moteur physique du Snake (double mode graphique/headless)
├── model.py # Réseau feed-forward 11 -> 256 -> 128 -> 3 (~36k params)
├── agent_dqn.py # Algorithme DQN (Replay Buffer, target network)
├── train_dqn.py # Entraînement DQN classique en ligne de commande
├── train_multi_dqn.py # NOUVEAU : Entraînement de 7 agents en parallèle + Graphe interactif + Slider FPS
├── play_and_record.py # Enregistrement direct et automatique des parties humaines
├── train_imitation.py # Apprentissage par imitation (Behavioral Cloning)
├── demo_ia.py # Visualisation graphique du modèle entraîné
└── Rapport_Technique.md # Explication théorique détaillée
Ce projet est sous licence MIT (Open Source avec attribution requise). Voir le fichier LICENSE pour plus de détails.
L'évolution des performances du modèle DQN est évaluée automatiquement toutes les 100 parties d'entraînement (sur 100 parties de test indépendantes en mode exploitation pure). La courbe ci-dessous est mise à jour dynamiquement au fil de l'apprentissage :
pip install torch --index-url https://download.pytorch.org/whl/cpu numpy pygamePour enseigner à l'IA vos propres réflexes et lui donner une base solide :
# Lancez le jeu et faites quelques parties (18 FPS par défaut)
python play_and_record.py
# Lancez l'entraînement supervisé (qui copie votre comportement)
python train_imitation.py --epochs 50Pour faire progresser l'IA de manière autonome :
# Mode interactif multi-agents (7 IA simultanées + 1 graphe + 1 Slider de vitesse)
python train_multi_dqn.py
# Mode headless (sur Orange Pi, vitesse max débridée par défaut, ou limitée en steps/s)
python train_dqn.py --max-steps-s 1000 # Exemple : limite à 1000 calculs par secondeRegardez le serpent final naviguer sur la grille :
# Visualiser le DQN
python demo_ia.py
# Visualiser le modèle d'imitation
python demo_ia.py --imitation- Limitation des Threads PyTorch : Configuré à 4 threads dans
config.pypour correspondre précisément aux 4 cœurs physiques du CPU ARM. - Vecteur d'état compact (11 dimensions) : Évite de passer des images brutes (convolution), ce qui réduit la charge CPU.
- Taille de réseau minimisée : Moins de 36 000 paramètres, garantissant des inférences en moins de 1ms sur CPU ARM.
- Graphiques natifs Pygame : Aucun outil tiers lourd n'est utilisé pour tracer les graphiques d'analyse en temps réel.
