Bonjour à tous !!
Je me permets de passer vous voir car je fais face à un un problème technique qui touche à la récursivité.
Je tente de développer une fonction dont l'objectif serait de parcourir un graphe, en partant d'un point initial et récupérant tous les chemins possible à effectuer avec une distance maximum. Je pars donc de A, sans point d'arrivée précis, mais je n'ai le droit de parcourir que 300 par exemple, et je récupère dans l'idéal la liste des chemins possibles à faire depuis A.
Pour cela je dispose d'un dictionnaire contenant tous les noeuds. Chaque noeud a pour clef sont identifiant et comme valeur un autre dictionnaire contenant les noeuds auxquels il est connecté et la valeur à parcourir pour les rejoindre
EX :
2654 :{2655:170, 2987:22, 3500:98}
Le noeud 2654 est relié aux noeuds 2655,2987,3500 et dois parcourir respectivement 170,22,98 pour les atteindre.
j'étais parti sur un test de ce genre :
Bon j'obtiens des truc bizarres, notamment le print qui me retourne des valeurs beaucoup plus élevées que le maximum prévu initialement
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 def parcours(dico,debut,dist,way,maxi,all_way): for key,value in begining.items(): if key not in way : way.append(key) dist+=value if dist<maxi : parcours(dico,dico[key],dist,way,maxi,all_way) else : all_way.append(way) print(dist)
Si quelqu'un a une bonne idée je suis preneur, au besoin je pourrai vous joindre le fameux dictionnaire si vous voulez faire des tests avec.
Merci d'avance à tout le monde
PS: si jamais le post arrive au mauvais endroit, mes excuses, faites moi signe et je le déplace
Partager