Projets : structure par projet (jeu_de_la_vie, labyrinthe, mastermind, wator)
This commit is contained in:
53
Projets/mastermind/README.md
Normal file
53
Projets/mastermind/README.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# Projet — Mastermind & Algorithmes Génétiques
|
||||
|
||||
> Darwin rencontre la programmation : faire évoluer une population de combinaisons pour qu'elle converge vers la solution cachée du Mastermind — sans jamais la connaître à l'avance.
|
||||
|
||||
## Contexte
|
||||
|
||||
Le **Mastermind** est un jeu de déduction : un joueur choisit une combinaison secrète de 4 couleurs parmi 8, l'autre doit la deviner en un minimum d'essais.
|
||||
|
||||
Plutôt que de coder une IA par force brute, ce projet applique un **algorithme génétique** : on fait évoluer une population de combinaisons candidates en s'inspirant de la sélection naturelle (tournoi, croisement, mutation) jusqu'à trouver la solution.
|
||||
|
||||
Une base de code complète est disponible dans `../src/` :
|
||||
- `algo_gen.py` — framework de l'algorithme génétique
|
||||
- `combinaison.py` — représentation d'un individu (une combinaison)
|
||||
- `src_mastermind_fiche.md` — fiche TP détaillée avec toutes les consignes
|
||||
|
||||
## Compétences mobilisées
|
||||
|
||||
| Notion | Chapitre du cours |
|
||||
|--------|-------------------|
|
||||
| Classes, héritage, encapsulation | POO |
|
||||
| Paradigme fonctionnel (fonctions pures) | Paradigmes |
|
||||
| Algorithmes d'optimisation | Algorithmique |
|
||||
| Listes, compréhensions de listes | Programmation |
|
||||
| Probabilités appliquées | — |
|
||||
|
||||
## Cahier des charges
|
||||
|
||||
### Fonctionnalités minimales
|
||||
|
||||
- [ ] Implémenter la classe `Combinaison` (individu) : création aléatoire, croisement, mutation
|
||||
- [ ] Implémenter la classe `Mastermind` (problème) : évaluation du fitness, tournoi
|
||||
- [ ] Implémenter la classe `AlgoGen` : génèse, sélection, croisement, mutation, solve
|
||||
- [ ] Résoudre une combinaison cible en un nombre raisonnable de générations
|
||||
- [ ] Afficher l'évolution du meilleur individu à chaque génération
|
||||
|
||||
### Extensions possibles
|
||||
|
||||
- [ ] Adapter le framework à un autre problème (labyrinthe, sac à dos...)
|
||||
- [ ] Comparer plusieurs stratégies de sélection (tournoi vs roulette)
|
||||
- [ ] Tracer la courbe de convergence (fitness max par génération)
|
||||
- [ ] Implémenter un Mastermind jouable par un humain vs l'IA
|
||||
|
||||
## Ressources
|
||||
|
||||
- `../src/src_mastermind_fiche.md` — fiche TP complète avec toutes les consignes
|
||||
- `../src/algo_gen.py` — squelette du framework générique
|
||||
- `../src/combinaison.py` — classe individu à compléter
|
||||
- [Algorithme génétique — Wikipedia](https://fr.wikipedia.org/wiki/Algorithme_génétique)
|
||||
- [Mastermind — Wikipedia](https://fr.wikipedia.org/wiki/Mastermind)
|
||||
|
||||
---
|
||||
|
||||
Auteur : Florian Mathieu — Licence CC BY NC
|
||||
Reference in New Issue
Block a user