François Gerbeau, Mathilde Lafay
Ce projet utilise le UC Berkeley CS188 Pacman AI Projects et a pour objectif de permettre à Pacman d’apprendre une heuristique utilisée dans l’algorithme de recherche A*.
L’idée principale est de générer un jeu de données à partir du FoodSearchProblem, puis d’entraîner un modèle de régression avec scikit-learn afin de prédire le coût optimal d’un état donné.
Le projet s’inscrit dans la continuité du Travail pratique 1, où les heuristiques étaient définies manuellement.
Ici, l’apprentissage supervisé remplace la conception manuelle de l’heuristique, permettant d’explorer le lien entre recherche classique et apprentissage automatique.
Voici les 3 grandes étapes du projet :
- La génération des données
- L'apprentissage des heuristiques
- L'évaluation des modèles
Les résultats de la phase de test pour l'évaluation sont stockés dans ./figures/evaluation_results*.
pacman-IA/
├── README.md
├── commands.txt # Commandes associées au TP1
├── data/ # Données générées pour l'entraînement
├── figures/ # Graphiques et tableaux pour l'évaluation et résultats
├── models/ # Modèles sauvegardés, Régression et Arbre
├── scripts/
│ ├── generate_food_dataset.py # Etape 1 : génerer le jeu de données
│ ├── learn_heuristic.py # Etape 2 : entraîner et sauvegarder les modèles
│ ├── evaluate_heuristic.py # Etape 3.1 : évaluer les modèles sur plusieurs problèmes
│ └── evaluate_mcts.py # Etape 3.2 : évaluer mcts
└── src/ # Code source pour le jeu de Pacman, directement repris du TP1
Installer les dépendances Python nécessaires :
pip install -r requirements.txtPermet de générer un dataset pour l'apprentissage de l'heuristique.
python scripts/generate_food_dataset.py~60 min (selon votre machine)
Entraîne et sauvegarde les modèles de régression pour la régression linéaire et l'arbre de régression. L'heuristique apprise est ajouté au MCTS directement dans le code source du TP1, dans search.py.
python scripts/learn_heuristic.py~2-3 min
Compare les performances des heuristiques apprises et classiques.
python scripts/evaluate_heuristic.py
python scripts/evaluate_mcts.py~20 min
Affiche des graphiques de comparaison.
python scripts/visualize_results.py~1 min
Remarque :
Pour exécuter le jeu Pacman classique du TP1 ou tester d'autres agents, voir le fichier commands.txt.