Parcourir une matrice de distances/adjacence

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
TheReveller
Membre Relatif
Messages: 114
Enregistré le: 14 Nov 2006, 04:21

Parcourir une matrice de distances/adjacence

par TheReveller » 31 Oct 2012, 02:20

Bonjour,

Y a-t-il des mathématiciens qui se sont arrêté sur des techniques afin de parcourir une matrice en une boucle fermée ?

Je m'explique. Disons qu'on a les points A, B et C. On veut parcourir tous les duos possibles (considérant l'asymétrie [A-B différent de B-A]). Les duos à parcourir sont donc :

AB
AC
BA
BC
CA
CB

Comment connecter tous ces duos en une boucle fermée ?

Solution : ABACBCA, bref [AB][BA][AC][CB][BC][CA].

En visualisant la matrice, j'ai trouvé intuitivement une technique qui est probablement plutôt simple à implémenter et qui semble fonctionner à coût sûr.

Image

J'aimerais savoir s'il vous connaissez d'autres techniques, si vous avez d'autres suggestions ou si vous avez plus d'informations au sujet de mon problème.

Merci.



Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 31 Oct 2012, 06:14

slt,

tu crèes une matrice M composé des noeuds n1=AB; n2=BA,n3=AC, ...
et tu écris les relations entre n1,n2,...

Ensuite t'élèves M puissances 6 et tu conserves les chemins.
Tu regardes les elem sur la diago, ils représentent les cycles.
Pour chacun des elem, si tes 6 noeuds sont présents sur le chemin, alors tu as ta boucle fermée
la vie est une fête :)

TheReveller
Membre Relatif
Messages: 114
Enregistré le: 14 Nov 2006, 04:21

par TheReveller » 31 Oct 2012, 07:33

Merci de l'astuce, mais je cherche à déterminer le parcours à effectuer pour passer par tous les duos sans repasser deux fois par la même case, comme j'ai noté dans mes images à la main. L'ordre 1 à 20 pour la première matrice et l'ordre 1 à 54 pour la seconde.

Par exemple, dans la première matrice 5x5 avec 5 points uniques, il y a 20 distances à déterminer.

Un parcours possible qui permet de faire tous les chemins possibles de la matrice 5x5 une seule fois serait par exemple ABACADAEBCBDBECDCEDEA, comme je l'ai indiqué sur l'image. Je ne sais pas s'il y a d'autres approchent ou d'autres permutations possibles. Évidemment, puisque nous sommes en boucle fermée, la solution que je suggère peut subir des glissements (rotations).

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 31 Oct 2012, 07:40

Merci de l'astuce, mais je cherche à déterminer le parcours à effectuer pour passer par tous les duos sans repasser deux fois par la même case

tu repasses pas deux fois. Si t'as un chemin de longueur 6 et que tes 6 noeuds sont présents, tu n'as pas deux fois le même noeud dans le chemin.

Si ca te fait chier de vérifier ca à la fin, à chaque produit de matrice, tu mets la diagonale avec des chemins nuls. Lorsque tu auras ta matrice puissance 6, tu sauras que tu as exclusivement une boucle fermée sans cycle interne pour tes chemins dans la diago
la vie est une fête :)

TheReveller
Membre Relatif
Messages: 114
Enregistré le: 14 Nov 2006, 04:21

par TheReveller » 31 Oct 2012, 12:59

Hum, peut-être alors que je ne comprends pas bien.

Pour une matrice 5x5 de positions uniques, ma matrice d'adjacence est

0 1 1 1 1
1 0 1 1 1
1 1 0 1 1
1 1 1 0 1
1 1 1 1 0

Et cette matrice élevée puissance 5 donne

204 205 205 205 205
205 204 205 205 205
205 205 204 205 205
205 205 205 204 205
205 205 205 205 204

Je ne dois pas bien comprendre l'astuce pour déterminer le chemin, désolé.

Avatar de l’utilisateur
fatal_error
Membre Légendaire
Messages: 6610
Enregistré le: 22 Nov 2007, 12:00

par fatal_error » 31 Oct 2012, 18:55

faut pas stocker des nombres mais des chemins.
Si n1 est en relation avec n2, tu stockes le chemin n1n2

en vrai, chaque case de la matrice contient une liste de chemins (dont les extremités sont les mêmes)
il faut donc prendre un produit cartésien tes deux cases en relation pour avoir la totalité des chemins résultant pour la dite case.
la vie est une fête :)

 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite