41 lines
No EOL
1.8 KiB
Markdown
41 lines
No EOL
1.8 KiB
Markdown
# Projet d'Algorithme Génétique - Intelligence Artificielle
|
|
|
|
## Description
|
|
|
|
Ce projet implémente un **algorithme génétique (GA)** en Java dans le cadre de mon cours d'introduction à l'IA.
|
|
|
|
Dans ce projet, l'algorithme vise à trouver la meilleure solution pour trouver la sortie d'un labyrinthe, le tout en utilisant le moins de mouvements possible.
|
|
|
|
### Fonctionnalités
|
|
Ce projet implémente une inteface graphique afin de pouvoir visualiser les mouvements du meilleur individu de chaque génération.
|
|
|
|
## Librairies
|
|
- [Jaylib (Binding de Raylib en java)](https://github.com/electronstudio/jaylib) - Pour le GUI
|
|
- [Gradle Shadow](https://github.com/GradleUp/shadow) - Pour la compilation du projet
|
|
|
|
## Utilisation
|
|
|
|
Une version est téléchargeable depuis la page **Release** du dépôt GitHub.
|
|
|
|
Le programme permets de visualiser de façon dynamique comment le meilleur individu de chaque génération se comporte.
|
|
De plus, il est possible de modifier certains critères afin de voir leurs effets sur la population.
|
|
|
|
### Les critères modifiable
|
|
- **Nombre d'itération**: Le nombre d'itération afin que l'algorithme ne s'arrête.
|
|
- **Taille de la population** : Le nombre d'individus dans chaque génération.
|
|
- **Taux de mutation** : La probabilité qu'une mutation se produise.
|
|
- **Taux de croisement** : ???.
|
|
- **Taux de selectivité** : Le nombre d'individus qui seront gardés pour créer la génération suivante.
|
|
|
|
## Exemples d'application
|
|
|
|
Ce projet est adapté pour comprendre, et visualiser comment un algorithme génétique explore, et trouve une solution à un problème donné.
|
|
Bien que ce projet reste très simple, il peut être utile pour apprendre.
|
|
|
|
## Auteur
|
|
|
|
- [Nabil Ould Hamou](https://nbiloh.me/) - Étudiant en Master ISA
|
|
|
|
## Licence
|
|
|
|
Ce projet est sous licence MIT. Voir le fichier [LICENSE](LICENSE) pour plus de détails. |