Bonjour
mon intitulé sera surement laconique et obscur mais je n'arrivais pas à faire un titre court et précis
Voilà je m'explique...je recherche un algo dans le cadre d'un projet perso...
C'est sur la création de graphe (en recherche opérationnelle)
c'est pour une détermination et savoir si à la prochaine itération le graphe sera fermé (ou bouclé)
bon j'imagine que ce n'est pas plus clair
alors je détaille
au départ il y a juste un point...
de ce point on peut créer des voisins toujours à égale distance delta (c'est une valeur d'exemple)
avec comme contrainte des directions bien spécifiques... 6 maxi...
on nommera les directions de 1 à 6 et ses directions sont "espacés" de 60 degrées
la 1 est à midi
la 2 à 2 heures
la 3 à 4 heures
etc...
de chaque point ne peux partir que 3 directions max...espacé de 120 degrés
chaque point connait le ou les pts suivants au fur et à mesure que l'on crée les pts
à partir du 1er point on décide d'une direction "principale" et en découle forcément les 2 autres directions
exemple...de p1 on décide que ce sera la direction 1 la direction principale
donc de p1 on crée les pt
- P2 en direction 1
- p3 en direction 3
- p4 en direction 5
nota : les création se font toujours dans le sens des aiguilles d'une montre
comme on vient de créer les "3 voisins" de p1 on ne peut plus en créer depuis p1
on va en p2 par exemple
comme on prend la direction 1 en P2 on ne peut donc créer que les pts en direction 2 et 6
en direction 4 on retombe sur P1 qui existe déjà
donc depuis p2 on crée
- p5 en direction 2
- p6 en direction 6
et ainsi de suite...on choisit un pt suivant et on crée les voisins....
sauf que... le voisins suivant peut être déjà créé...
ainsi si on ce déplace à la suite dans les directions 1-2-3-4-5...
si on ce déplace après dans la direction 6 on retombe sur le premier point
que l'on ne peut créer puisqu'il l'ai déjà !
il y aurait il un moyen de déterminer que le prochain point existe déjà et va produire une boucle ???
et donc que l'on juste besoin de faire le lien..
mais sans astuce "géographique" pour déterminer la position
précision...une boucle est une boucle simple en "forme" de zéro... pas de forme de "8" à double boucle
à noter aussi que les boucles peuvent être simple 123456
ou plus complexe :
1232345656
ou
1234345616
J'ai pu remarquer :
que pour une boucle il faut forcément qu'il y ait les 6 directions au moins 1 fois
12456 ne produit pas une boucle
un chemin est de longueur pair forcément
que si une direction apparait un certains nombre de fois...sa direction inverse doit être en aussi grand nombre
les inverses sont
1 <-> 4
2 <-> 5
3 <-> 6
ainsi dans 1232345656
1 et 4 apparaissent bien 1 seule fois chacun
2 et 5 ... 2 fois chacun
3 et 6 ... 2 fois chacun
on pourrait penser que si on scinde le chemin en 2 parties égales...la 2ème est l'inverse de la première
mais ce n'est pas le cas
ex: 123434565612
123434 n'a pas pour inverse le chemin 565612
ici en réarrangeant le chemin il devient 1212 3434 5656... à méditer
Si vous avez des idées je suis preneur
d'avance merci
Fred
Partager