Bonjour à tous,
je suis étudiant en deuxième année de prépa, j'ai un projet qui consiste à créer un algorithme permettant de trouver le chemin le plus court pour n'importe quel labyrinthe et de tracer ce chemin. Je me dois me servir de MATLAB et j'ai un polycopié d'une centaine de pages pour les nombreuses fonctions du logiciel.
Le labyrinthe est associé à une matrice (L x C) composée de 0 et de 1 d'où les 0 représentent le passage et les 1 représentent un mur.
Exemple :
1 0 1 1 1
1 0 0 0 1
1 0 1 1 1
1 0 0 0 1
1 1 1 0 1
L'entrée est toujours en bas à droite et la sortie en haut à gauche et des murs sont toujours situés autour du labyrinthe.
Enfin j'ai peu ou pas d'expériences en création d'algorithme. J'ai commencé à faire ceci mais après je ne vois pas comment faire la suite. Il y a des algorithmes existants sur les résolutions des labyrinthe comme A* mais je ne vais pas "pomper" ces algorithmes. Je vous demande juste de me donner des pistes pour que je puisse me débrouiller par la suite.
Voici le début de mon algorithme :
X est associé à la matrice du labyrinthe qu'on pourrait nous donner.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 function Y=cheminlepluscourt(X) [n p]=size(X); %Ceci permet de connaitre la longueur et la largeur de la matrice (du labyrinthe). if p<=3 Y='impossible'; %Si le nombre de colonnes est inférieur ou égale à 3, la résolution est impossible. elseif n<=3 Y='impossible'; %Si le nombre de ligne est inférieur ou égale à 3, la résolution est impossible. else X(1,2)=2; %On affecte la sortie du labyrinthe par 2. X(n,p-1)=3; %On affecte l'entrée du labyrinthe par 3. [x y]=find(X==3); %On affecte x et y comme coordonées de l'entrée du labyrinthe. end
Je vous remercie d'avance.
Partager