Bonjour,
J'ai été pas mal occupé à d'autres tâches récemment et je n'ai pas beaucoup pu programmer.
Désolé de n'avoir pas suivi le fil...
Depuis la dernière fois, la partie itinéraire s'est étoffée :
Je ne trouvais, au début qu'un seul itinéraire, le plus court et ça s'arrêtait là…
Maintenant, je trouve tous les itinéraires techniquement possibles entre n'importe quel point A et n'importe quel point B.
J'ai adapté la partie "itinéraires" de mon programme de gestionnaire existant pour que ça marche ici aussi.
Plusieurs questions se posent :
1°) Le programme trouve tous les itinéraires possibles, sans tenir compte de la parité des voies.
Cela peut paraître une aberration, mais il ne faut pas oublier qu'il y a, même à la SNCF, toujours des "solutions de secours" en cas de dérangements.
Bien sûr, dans ces cas extrêmes, il y a des procédures de sécurité spécifiques, des signalisations provisoires, tout ce qu'il faut pour rétablir une circulation normale.
2°) Le temps de calcul d'un itinéraire est minuscule. Doit-on garder les itinéraires en mémoire, par exemple dans le JSON ?
On pourrait très bien envisager de les calculer "à la volée" dans le gestionnaire.
3°) Si on ne garde que certains itinéraires, sur quels critères ?
Dans mon programme JSON, j'ai un bouton "itinéraires" qui demande le nom de la zone de départ, le coté du départ, le nom de la zone d'arrivée, le côté de la zone d'arrivée.
Exemple dans le réseau de Dominique : Z25, côté 1, Z30, côté 1.
Premier problème, très simple :
Le "côté 0", c'est le côté du "voisin1", le "côté 1", c'est le côté du "voisin2". On voit tout de suite où est le problème…
Soit j'appelle "côte 1" et "côté 2", en ajoutant simplement 1, soit on appelle les voisins "vois0" et "vois1". Il faut juste se mettre d'accords.
Voilà le résultat littéral (il trouve 4 itinéraires) :
Z25 segment
signal1 signal
Z26 triple droit : a0 à gauche + a1 à droite
Z27 segment
signal1 signal
Z29 triple gauche : a11 à droite + a9 à gauche
Z30 segment
signal1 signal
------------------------------------- FIN DE L'ITINERAIRE -----------------------------------
Z25 segment
signal1 signal
Z26 triple droit : a0 à droite
Z15 TJD : a2 à droite + a4 à droite
Z42 aiguille droite : a5 à droite
Z14 segment
signal0 -
Z43 aiguille gauche : a6 à gauche
Z12 TJD : a7 à gauche + a8 à gauche
Z29 triple gauche : a11 à gauche
Z30 segment
signal1 signal
------------------------------------- FIN DE L'ITINERAIRE -----------------------------------
Z25 segment
signal1 signal
Z26 triple droit : a0 à droite
Z15 TJD : a2 à droite + a4 à gauche
Z13 segment
signal0 -
Z12 TJD : a7 à droite + a8 à gauche
Z29 triple gauche : a11 à gauche
Z30 segment
signal1 signal
------------------------------------- FIN DE L'ITINERAIRE -----------------------------------
Z25 segment
signal1 signal
Z26 triple droit : a0 à gauche + a1 à gauche
Z44 aiguille gauche : a3 à gauche
Z28 segment
signal1 signal
Z29 triple gauche : a11 à droite + a9 à droite
Z30 segment
signal1 signal
------------------------------------- FIN DE L'ITINERAIRE -----------------------------------
On note :
- que les signaux ne sont pas (encore) calculés
- que on prend bien Z13 et Z14 "à rebrousse-poil" en regardant quel signal (0 ou 1) voit le conducteur
- que si on trouve une appellation meilleure que "segment", je suis preneur ("tronçon" ?)
Je pars en vacances une semaine et je ne pourrais pas programmer.
Denis