Est ce important? La question est jolie parce qu'il y a de nombreuses façons de l'attaquer, et que le problème est suffisament petit pour que toutes ces solutions puissent aboutir en temps raisonnable. Depuis hier, j'en cause autour de moi (avec des gens qui connaissent un peu le sujet) et je suis amusé du nombre de suggestions différentes qui sont proposées...
Bref, ca mérite mieux qu'un "algo 23 de la librairie 12".
Si tu veux absolument faire des graphes. Mais on pourrait aussi se demander comment modéliser le problème autrement. Par exemple, on peut remarquer que la fonction qu'on minimise est linéaire en deux paramètres discrets, le nb de stations et de nb de correspondances (le second dérivant de la notion de ligne, on n'est pas du tout dans un cas de graphe "bateau" ici). Il doit y avoir un intéressant problème dual planqué derrière...
On peut également remarquer la présence de trois niveaux d'échelle dans le problème sous jacent : plusieurs centaines de stations, une soixantaine de correspondances, et une quinzaine de lignes... Là encore, on doit pouvoir tirer parti de cette hierarchie (qui se retrouve, d'ailleurs, dans la forme de la fonction qu'on minimise, au travers des correspondances). Pour bâtir un arbre?
Et comme la combinatoire n'est pas réellement explosive : parce qu'un réseau de métro n'est jamais très dense (disons une correspondance pour 3 ou 4 stations), il y aura, même pour un gros métro comme Paris, des solutions force brute par énumération, qui seront intéressantes de plein droit.
Un ami APL-iste me disait ce matin que ce serait un joli terrain de jeu pour les fonctions booléenne qui font le bonheur des adepte de ce langage...
Il y a plein de choses amusantes à essayer et à faire. Même si on devait, à la fin, conclure qu'il n'y a que Dijkstra qui tienne.
Chacun voit midi à sa porte. Pour moi, ce ne sont pas les problèmes qui sont scolaires, ce sont les approches.
Francois
Partager