Algorithme de Prim
Labyrinthes : différents algorithmes
L’algorithme de Prim
Traduit en Français par moi-même. Les originaux sont ici.
Si vous voyez des fautes d’orthographe ou des corrections à apporter signalez-le moi je me ferai un plaisir de vous écouter !
L’algorithme de Prim
Il faut une place mémoire équivalente à la taille du labyrinthe.
États possibles des cellules :
- « Dedans » : la cellule est une partie du labyrinthe et on a déjà creusé dedans au moins une fois
- « Frontière » : la cellule n’est pas une partie du labyrinthe et on n’a pas encore creusé dedans, mais est à côté d’une cellule de type « Dedans »
- « Vierge » : la cellule n’est ni « Dedans » ni « Frontière »
Étapes de l’algorithme :
- Choisir une cellule « Vierge » au hasard
- La marquer comme « Dedans »
- Marquer tous ses voisins en tant que « Frontière »
- Répéter jusqu’à ce qu’il n’y ait plus de cellules « Frontière »
Caractéristiques du labyrinthe généré :
- Facteur « rivière » très bas
- Nombreux petits culs-de-sac
- Solution rapide à trouver en général
Performance :
Lorsqu’il est correctement implémenté, c’est l’algorithme le plus rapide, en seconde position après celui d’Eller.
Merci pour ce billet 🙂
Bonjour, je souhaiterais écrire en python 3 un programme capable de générer un labyrinthe à l’aide de cet algorithme de Prim. Auriez-vous en stock un script pas trop compliqué permettant de faire ça ? Etant débutant complet j’avoue être un peu perdu, même si je comprends bien l’idée de cet algorithme…Merci dans tous les cas et bravo pour votre blog.
Bonjour,
Malheureusement non, je n’ai aucun script pas trop compliqué, voire aucun script python tout court qui génère un labyrinthe… Je suis désolé, je ne peux pas vous aider plus que ça… 🙁