Or, le 25 mai 2023, « la Région Occitanie et liO [se sont dotées] d’un nouveau calculateur d’itinéraires web et d’une application mobile plus performants afin de mieux répondre aux besoins exprimés par les usagers » (source).
J'ai pu effectivement constater que le nouveau calculateur était beaucoup plus rapide, un peu plus simple à utiliser, et surtout, qu'il était redevenu multimodal. Cependant, en relançant mes tests de mars, je n'ai pas été entièrement convaincu. Les résultats se sont certes améliorés, mais laissent encore à désirer du point de vue de l'optimalité (doublons avec des trajets plus courts), de la complétude (trajets manquants) ou même parfois du bon sens (temps de marche excessif). J'ai inclus les résultats de ces tests sous forme de paragraphes de mise à jour.
J'avais prévu de garder le texte initial en l'état pour servir aux historiens futurs. Il est devenu obsolète dans ses détails, mais sa conclusion reste d'actualité : si vous habitez Vernet, vous avez toujours intérêt à utiliser mon calculateur plutôt que celui de la Région. Il est plus rapide, plus complet et plus fiable. Si vous n'avez pas accès à internet, privilégiez les fiches horaires.
Introduction
Pourquoi avoir développé un calculateur-maison (rouge) pour les itinéraires en car et en train ?
Clairement, pour une raison personnelle : n'ayant pas de voiture, lorsque je suis à Vernet je profite du formidable réseau de transports en commun qui dessert (presque) gratuitement toute l'Occitanie. J'ai donc besoin d'un calculateur d'itinéraires. Mais, me direz-vous, la Région ne propose-t-elle pas déjà une application spécialement dédiée ? Oui, c'est l'app et le site de Lio.
Recherche d'itinéraires
Cette solution est légèrement surdimensionnée pour moi : elle couvre toute l'Occitanie, alors que c'est autour de Vernet que je traîne le plus souvent. Sa richesse même complique la sélection des quelques arrêts qui m'intéressent : je dois taper les premières lettres de leurs noms, repérer ceux-ci parmi des dizaines de propositions classées par ordre alphabétique, les valider. Je dois choisir un jour, une heure et des minutes. Je dois enfin envoyer la requête au serveur et attendre sa réponse, ce qui peut être long, voire impossible si le réseau est capricieux (p. ex., en randonnée). Et comme seuls les premiers résultats sont affichés, je dois souvent faire plusieurs recherches pour dénicher le trajet qui me convient.
J'ai fini par penser que je pouvais essayer de mettre au point une interface plus simple, du moins plus adaptée à mes simples besoins.
Contrôle des résultats
Comme je m'en suis rapidement rendu compte, cela passait par le développement de mon propre moteur de recherche d'itinéraires. N'ayant pas trouvé de données ouvertes sur les horaires des transports en commun en Occitanie, j'ai écrit un programme pour les collecter à partir des PDF des fiches horaires et les combiner en trajets plus complexes.
Encore fallait-il qu'il soit fiable. Les trajets qu'il me proposait étaient-ils possibles ? Étaient-ils optimaux en terme de durée ? Pour répondre à ces questions, je les ai comparés, d'une part à ceux que je pouvais construire à la main à partir des fiches horaires, d'autre part à ceux calculés par l'app Lio.
Avertissement. Les tests présentés ici ont été menés fin février et début mars 2023. La prochaine mise à jour des horaires les rendra nécessairement obsolètes. Par ailleurs, tout laisse à penser que le calculateur Lio rend actuellement des résultats incomplets. Ce problème sera probablement réglé au moment où vous lirez ces lignes. J'ajouterai alors un mot en tête de page.
Comparaison avec le calculateur Lio
De Vernet à Perpignan le samedi 11 mars 2023
Commençons par un petit voyage entre Vernet et Perpignan le samedi. Le calculateur Lio trouve trois trajets :
Seul le deuxième est optimal (je l'ai marqué d'un « ✅ »). Les deux autres (marqués d'un « 🐌 ») sont plus lents que nécessaire : le premier pourrait arriver à 09:59, soit 40 mn plus tôt ; le dernier pourrait arriver à 17:59, soit 5 mn plus tôt. Enfin, deux départs sont manquants, à 10:31 et 16:31. Pour comparaison, les cinq trajets optimaux trouvés par mon calculateur, et vérifiés sur les fiches horaires :
Trajet | Durée | Mode |
---|---|---|
Vernet 08:35 > Perpignan 09:59 | 1h24 | car 522 / train 877668 |
Vernet 10:31 > Perpignan 11:59 | 1h28 | car 522 / train 877670 |
Vernet 13:24 > Perpignan 14:50 | 1h26 | car 521 |
Vernet 16:31 > Perpignan 17:59 | 1h28 | car 522 / train 877676 |
Vernet 18:31 > Perpignan 19:55 | 1h24 | car 522 / train 877678 |
Màj du 8/7/23. Le nouveau calculateur Lio propose 8:35 > 10:01 (ok), 8:35 > 10:39 (lent), 10:31 > 12:01 (ok), 13:24 > 14:50 (ok), 16:31 > 18:01 (ok), 16:31 > 18:04 (inutile), 18:31 > 19:57 (ok). Bilan : 5 trajets optimaux, 2 trajets trop lents, 0 trajet manquant. Tout va bien jusqu'ici !
De Vernet à Collioure le mercredi 8 mars 2023
Passons à un itinéraire plus complexe, entre Vernet et Collioure, un mercredi. Le calculateur Lio trouve quatre trajets :
Tous ces trajets demandent plus de 2h30. Cependant, ceux marqués « 🐌 » pourraient durer une heure de moins. Et il y a bien d'autres possibilités optimales : au total, pas moins de onze :
Trajet | Durée | Mode |
---|---|---|
Vernet 05:41 > Collioure 08:14 | 2h33 | car 521 / car 540 |
Vernet 06:19 > Collioure 08:17 | 1h58 | car 521 / train 86967 |
Vernet 06:49 > Collioure 09:14 | 2h25 | car 521 / train 877652 / car 540 |
Vernet 07:31 > Collioure 09:15 | 1h44 | car 522 / car 560 / train 86969 |
Vernet 08:35 > Collioure 11:17 | 2h42 | car 522 / car 560 / train 86981 |
Vernet 09:31 > Collioure 12:14 | 2h43 | car 522 / train 877656 / car 540 |
Vernet 11:31 > Collioure 14:14 | 2h43 | car 522 / train 877658 / car 540 |
Vernet 14:21 > Collioure 17:14 | 2h53 | car 521 / car 540 |
Vernet 15:31 > Collioure 17:44 | 2h13 | car 522 / train 877662 / train 876143 |
Vernet 17:46 > Collioure 20:29 | 2h43 | car 522 / train 877664 / car 540 |
Vernet 18:46 > Collioure 21:16 | 2h30 | car 521 / train 876427 |
Màj du 8/7/23. Le nouveau calculateur Lio propose 5:41 > 8:14 (ok), 6:19 > 8:17 (ok), 6:49 > 9:14 (ok), 6:19 > 9:15 (lent), 7:31 > 10:16 (lent), 7:31 > 11:16 (lent), 8:35 > 12:16 (lent), 9:31 > 12:16 (ok), 9:31 > 13:16 (lent), 11:31 > 14:16 (ok), 12:28 > 16:16 (qui part en fait de Fuilla, soit 45 mn de marche !), 14:21 > 17:14 (ok), 15:31 > 17:50 (ok), 15:31 > 18:16 (lent), 17:46 > 20:31 (ok), 18:46 > 21:22 (ok). Bilan : 9 trajets optimaux, 6 sub-optimaux, 1 étrange, 2 manquants (ceux avec une correspondance avec la ligne 560).
La multimodalité en question
Les trajets omis par Lio ont un point commun : ils incluent tous au moins une correspondance avec un train. Leur absence est d'autant plus criante que, sur son site officiel, l'application est décrite en ces termes :
En mars 2023, et ce depuis plusieurs semaines, les résultats semblent limités aux cars. On peut le vérifier sur un itinéraire sans correspondance, p. ex. le plus fréquenté du département : des huit trains quotidiens qui circulent de Perpignan à Prades en semaine, aucun n'est proposé.
Il n'en a pas toujours été ainsi : l'application Lio subit apparemment ce qu'on appelle en jargon informatique une régression, temporaire espérons-le.
Avant de rédiger cette page, j'ai tenté de voir si elle était liée à l'app pour smartphone, et si le site web était épargné1. Malheureusement, ces derniers jours, toutes mes recherches sur https://www.mestrajets.lio.laregion.fr échouent avec cette erreur :
J'ai appelé un agent du service de mobilité pour lui signaler les dysfonctionnements du calculateur. Il n'était pas au courant mais, d'entrée de jeu, m'a déconseillé de m'en servir. Il m'a même expliqué comment télécharger les fiches horaires (!), en m'assurant que lui-même n'utilisait que ça (les chauffeurs tiennent le même discours). Je lui ai fait remarquer que c'était dommage ; que construire soi-même son itinéraire à partir de plusieurs fiches était fastidieux et sujet à erreurs ; et que c'était précisément le genre de taches que l'on devait pouvoir avantageusement déléguer à une machine. Il en est convenu et m'a enjoint d'envoyer un mail au service compétent, ce que j'ai fait sur-le-champ. Je ne manquerai pas de mettre à jour cette page dès que j'aurai une réponse.
La menace australienne
Face à l'impossibilité de contrôler mes résultats avec l'application de service public mise à la disposition des usagers par la Région, je me suis tourné vers une application privée : Rome2rio. Il s'agit d'un calculateur d'itinéraires multimodaux rapide, intuitif, gratuit et sans inscription. Développé par une société australienne, il est capable de proposer des trajets internationaux, mais nous nous bornerons ici à lui soumettre notre micro-problème de transport public occitan.
On voit que Rome2rio est réellement multimodal, et ne propose pas moins de treize trajets, soit deux de plus que ceux listés plus haut. Cependant, plusieurs s'avèrent trop lents (07:31, 09:31 et 11:31) et/ou redondants (deux départs à 06:19, 06:49, 14:21 et 18:46). En outre, les trajets optimaux suivants sont manquants :
Trajet | Durée | Mode |
---|---|---|
Vernet 07:31 > Collioure 09:15 | 1h44 | car 522 / car 560 / train 86969 |
Vernet 08:35 > Collioure 11:17 | 2h42 | car 522 / car 560 / train 86981 |
Vernet 09:31 > Collioure 12:14 | 2h43 | car 522 / train 877656 / car 540 |
Vernet 11:31 > Collioure 14:14 | 2h43 | car 522 / train 877658 / car 540 |
Vernet 17:46 > Collioure 20:29 | 2h43 | car 522 / train 877664 / car 540 |
La cause de ces lacunes est plus difficile à cerner. On constate que les combinaisons de modes trouvées par Rome2rio sont soit car/car, soit car/train, soit car/train/train, mais jamais car/car/train ou car/train/car. Toutes les données semblent pourtant disponibles ; peut-être ne sont elles pas exploitées jusqu'au bout.
D'autres tests ont été effectués, avec des résultats encore plus surprenants. Rome2rio ne trouve qu'un seul des cinq trajets de Vernet à Perpignan le samedi, le car direct de 13:24 (voir plus haut). Mais dans l'autre sens, il combine parfaitement les deux modalités, et renvoie les mêmes trajets que mon calculateur.
En tout cas, l'affront fait à la France reste limité : je ne conseille donc pas d'engager dans l'immédiat une guerre totale avec l'Australie.
Conclusion
Comment vérifier les résultats produits par mon calculateur ? L'application de Lio est limitée aux cars (actuellement), celle de la SNCF aux trains (évidemment), celle de Rome2rio aux sous-marins nucléaires. Restent les fiches horaires, qui semblent constituer ici la source de vérité ultime et indépassable.
L'évaluation de la fiabilité de mon programme est donc assez laborieuse. Cependant :
- en ce qui concerne la collecte des données, j'ai essayé d'éviter au maximum les saisies manuelles, principale source d'erreurs : les horaires, les jours et les numéros de circulation sont extraits automatiquement des fiches horaires, ainsi que les urls et les dates de validité desdites fiches ; il ne m'a pas été possible de le faire pour les périodes (scolaires ou de vacances), les notes et, dans les horaires de trains, l'alignement des colonnes incomplètes ;
- en ce qui concerne les calculs, il y a moins de risque d'erreurs ponctuelles. La plupart des bogues ont un impact sur de nombreux trajets, ce qui permet de les détecter plus facilement. Notez qu'un important changement a été apporté depuis la version précédente : les calculs étaient alors effectués sur une base de données relationnelle, à l'aide d'une batterie de requêtes SQL spécialisées pour les différents cas ; ils se font maintenant sur une base orientée graphes, à l'aide d'une unique requête, plus générale, écrite en Cypher. Cela devrait améliorer la robustesse.
Bien entendu, des erreurs peuvent subsister, ou s'introduire à l'occasion d'une mise à jour des fiches horaires. Toute remontée d'anomalies est la bienvenue. Vous pouvez également consulter le code-source du programme (sous forme d'un notebook Jupyter), du fichier de configuration pour la lecture des fiches horaires et de la requête de construction des itinéraires. Le tout est placé sous licence MIT.