XEOS Imagerie : La nouvelle dimension de la géomatique avec des jumeaux numér...
Optimiser les opérations de déneigement grâce à la géomatique et à l’Internet des objets
1. CHALET DE SKI ALPIN
Optimiser les opérations
de déneigement grâce à
la géomatique et à
l’Internet des objets
Jimmy Perron, NSim Technologies
Vincent Thomas, CIMMI
jimmy.perron@nsimtech.com
nsimtech.com
vthomas@cimmi.ca
cimmi.ca
3. CHALET DE SKI ALPIN
RASTERS.IO
NSim développe et opère Rasters.io qui est une
plateforme Web qui permet à un planificateur
d’une flotte de véhicules de :
• Tracer et de modifier des parcours;
• Suivre les véhicules en temps réel sur la carte;
• Consulter l’historique des opérations;
• Analyser un tableau de bord;
… mais aussi aux opérateurs de véhicules de suivre
leur trajet pas à pas sur une tablette embarquée.
4. CHALET DE SKI ALPIN
CHALET DE SKI ALPINE
NSim Technologie
Compagnie fondée en 2004 et basée à Québec;
Spécialisation: Télémétrie (IdO), cartographie et
intelligence artificielle;
Équipe d’une quinzaine de professionnels;
Elle compte parmi ses clients plusieurs villes et
municipalités dont Lévis, Saguenay, Laval,
Longueuil, Alma, Thetford Mines et plus.
4
INTERNET DES OBJETS
SOLUTION CARTOGRAPHIQUE
INTELLIGENCE ARTIFICIELLE
5. CHALET DE SKI ALPIN
CHALET DE SKI ALPINE
LE CIMMI
• Le CIMMI est un centre de recherche affilié
au Cégep de Sainte-Foy;
• Sa mission: soutenir les entreprises et les
institutions publiques canadiennes dans
leurs démarches d’innovation en proposant
des solutions novatrices dans les domaines
des technologies numériques;
• Champ de compétences: informatique, 3D,
intelligence artificielle et géomatique.
5
23Chercheurs
350Projets
160Clients
7. CHALET DE SKI ALPIN
PROBLÈME 1
Il n’est pas facile pour un planificateur de créer un
trajet optimal pour parcourir toutes les rues d’un
secteur tout en respectant certaines contraintes:
8. CHALET DE SKI ALPIN
PROBLÈME 2
Les planificateurs veulent s’assurer de la qualité du
déneigement en trouvant les réponses à ces
questions:
• Quels secteurs de la ville n’ont pas été couverts
adéquatement?
• Quelle quantité de sel et de sable a été épandue et
où?
• Quels trajets n’ont pas bien été respectés?
• Quels trajets ont pris beaucoup plus de temps que
prévu?
• Est-ce que les operations ont été réalisées
conformément au trajet planifié (grattage,
épandage, soufflage, etc.)?
9. CHALET DE SKI ALPIN
Création
automatique
de trajets
Solution au premier problème
10. CHALET DE SKI ALPIN
LES DONNÉES EN
ENTRÉES
• Un polygone représentant la zone de
génération du trajet
11. CHALET DE SKI ALPIN
LES DONNÉES EN
ENTRÉES
• Un polygone représentant la zone de
génération du trajet
• Une distance en mètres pour une zone
tampon
12. CHALET DE SKI ALPIN
LES DONNÉES EN
ENTRÉES
• Un polygone représentant la zone de
génération du trajet
• Une distance en mètres pour une zone
tampon
• Les coordonnées de départ et de fin
D
A
13. CHALET DE SKI ALPIN
D
A
LES DONNÉES EN
ENTRÉES
• Un polygone représentant la zone de
génération du trajet
• Une distance en mètres pour une zone
tampon
• Les coordonnées de départ et de fin
• Les interdictions
14. CHALET DE SKI ALPIN
LES DONNÉES EN
ENTRÉES
• Un polygone représentant la zone de
génération du trajet
• Une distance en mètres pour une zone
tampon
• Les coordonnées de départ et de fin
• Les interdictions
• Les pénalités
B C D
F
A
E
A C B
+500 m A
15. CHALET DE SKI ALPIN
L’ALGORITHME PAS
À PAS
Le problème du commis voyageur
• Trouver le chemin le plus court pour parcourir
tous les noeuds d’un graphe en passant par les
arêtes.
getcircuit.com
16. CHALET DE SKI ALPIN
L’ALGORITHME PAS
À PAS
Construction du graphe
Un premier graphe est construit où les nœuds
sont les intersections et les arêtes sont les rues. Le
poids associé à chaque arête est la distance en
mètre.
131 m
17. CHALET DE SKI ALPIN
L’ALGORITHME PAS
À PAS
Il y a deux problèmes principaux avec cette
structure de graphe:
Problème 1 : Complétude des trajets
18. CHALET DE SKI ALPIN
L’ALGORITHME PAS
À PAS
Il y a deux problèmes principaux avec cette
structure de graphe:
Problème 1 : Complétude des trajets
Problème 2 : Application des pénalités
18
B C D
F
A
E
50 m
A C B
+500 m
50 m
50 m
50 m
50 m
50 m
A B C D E F
A 0 100 50 100 150 100
B 100 0 50 100 150 100
C 50 50 0 50 100 50
D 100 100 50 0 50 100
E 150 150 100 50 0 50
F 100 100 50 100 50 0
Matrice des poids
19. CHALET DE SKI ALPIN
A B C D E F
A 0 100 50 100 150 100
B 100 0 50 100 150 100
C 50 50 0 50 100 50
D 100 100 50 0 50 100
E 150 150 100 50 0 50
F 100 100 50 100 50 0
L’ALGORITHME PAS
À PAS
Solution : construire le graphe de lignes et sa
matrice de poids
1. L’algorithme du commis voyageur va parcourir
tous les nœuds, ce qui assure de couvrir
toutes les rues;
2. Les pénalités de virage sont appliquées sur les
arêtes;
19
B C D
F
A
E
2
3
6
5
1
4
1 2
25 m + 25 m +
500 m = 550 m
1 2 3 4 5 6
1 0 550 50 50 200 150
2 50 0 550 50 600 600
3 50 50 0 150 100 50
4 550 50 50 0 150 100
5 600 100 100 50 0 150
6 600 600 150 100 50 0
Matrice des poids
21. CHALET DE SKI ALPIN
L’ALGORITHME PAS
À PAS
Intégration des nœuds de transit
21
B C D
F
A
E
2
3
6
5
1
4
1 2 3 4 5 6
1 0 550 50 50 200 150
2 50 0 550 50 600 600
3 50 50 0 150 100 50
4 550 50 50 0 150 100
5 600 100 100 50 0 150
6 600 600 150 100 50 0
G 7
8
1 2 3 4 5 6
1 0 150 50 50 200 150
2 50 0 550 50 600 600
3 50 50 0 150 100 50
4 550 50 50 0 150 100
5 600 100 100 50 0 150
6 600 600 150 100 50 0
Matrice des poids
22. CHALET DE SKI ALPIN
L’ALGORITHME PAS
À PAS
Résolution du problème du commis voyageur
La matrice des poids est fournie à OR-Tools de Google
Le résultat est la suite des nœuds obligatoires en
ordre du trajet:
1 3 6 5 4 2
On vérifie ensuite ce résultat pour chaque paire de
nœuds afin d’insérer les nœuds optionnels au besoin.
On transfère le résultat sur le graphe original :
A C F E D C B
22
B C D
F
A
E
2
3
6
5
1
4
G 7
8
1 2 3 4 5 6
1 0 150 50 50 200 150
2 50 0 550 50 600 600
3 50 50 0 150 100 50
4 550 50 50 0 150 100
5 600 100 100 50 0 150
6 600 600 150 100 50 0
Matrice des poids
23. CHALET DE SKI ALPIN
L’ALGORITHME PAS
À PAS
Intégration dans Rasters.io
• Intégration automatiquement du trajet dans
Rasters.io;
• Génération automatique des directions pas à
pas;
• Décalement des lignes avec une opération de
zone tampon.
24. CHALET DE SKI ALPIN
Choix de la stratégie de
résolution avec OR-Tools
Stratégie Virages à gauche Virages en U Distance en trop (m) Temps de calcul (s)
Unset 16 7 2 938 0.73
Global Cheapest Arc 19 7 3 462 0.43
Local Cheapest Arc 22 9 6 317 0.45
Path Cheapest Arc 16 7 2 938 0.30
Path Most Constrained Arc 16 7 2 938 0.30
Evaluator Strategy n.d. n.d. n.d. n.d.
All Unperformed
n.d. n.d. n.d. n.d.
Best Insertion n.d. n.d. n.d. n.d.
Parallel Cheapest Insertion 18 7 3 696 0.28
Local Cheapest Insertion 19 7 2 626 0.17
Savings 22 8 6 482 0.46
Sweep n.d. n.d. n.d. n.d.
First Unbound Min Value 25 7 7 860 0.62
Christofides n.d. n.d. n.d. n.d.
Sequential Cheapest Insertion 18 7 2 696 0.31
Automatic 16 7 2 938 0.32
Local Cheapest Cost Insertion 19 7 2 626 0.20
25. CHALET DE SKI ALPIN
Caractéristiques Saint-Vallier Saint-Rédempteur Vieux-Québec/Saint-Sacrement
Virages à gauche 19 21 408
Virages en U 7 7 155
Temps de calcul (secondes) 0,6 8 1 441
Distance à parcourir (mètres) 7 832 31 656 311 391
Distance du trajet
(mètres)
10 458 38 583 525 304
Taille de la matrice de poids 171² 1 282² 8 036²
Métriques
26. CHALET DE SKI ALPIN
LES LIBRAIRIES
UTILISÉES
• QuickGraph : Librairie de structures de
données et d’algorithmes pour les
graphes;
• ORTools de Google : Librairie gratuite
pour l'optimisation combinatoire;
• NetTopologySuite : Librairie de
topologie en .NET;
• Le tout est en .NET Core C#.
NetTopologySuite
27. CHALET DE SKI ALPIN
Analyse des
operations
passées
Solution au second problème
28. CHALET DE SKI ALPIN
GÉNÉRATION
AUTOMATIQUE DE
RAPPORTS
• Les utilisateurs peuvent maintenant planifier la
génération de rapports;
• Les données brutes provenant des véhicules
sont agrégées par secteur;
• Le planificateur peut alors évaluer la
performance des opérations d’une manière
globale.
• Distance totale
parcourue
• Vitesse moyenne
• Vitesse moyenne par
véhicules
• Pourcentage de
couverture des rues
Statistiques globales
• Couverture par type de rues
(primaire, secondaire, etc.)
• Quantité de matériel épandu
• Distance par fonction
(épandage, grattage, etc.)
• Distance et vitesse moyenne
par véhicule
Statistiques par secteur
29. CHALET DE SKI ALPIN
ANALYSE DES
PASSAGES SUR LES
RUES
Il est possible dans Raster.io de visualiser les
traces GPS des véhicules pour quelques heures
dans le passé;
Nouvelle fonctionnalité! On observe les passage
au niveau des rues;
Symbologie selon:
• Nombre de passages
• Fonctions (épandage, etc.)
• Véhicules et opérateurs
• Moment du dernier passage
30. CHALET DE SKI ALPIN
INDICATEURS DE
PERFORMANCE
D’UNE OPÉRATION
• Pointage d’une opération calculée selon la
complétude et durée;
• Points d’attente;
• Segments hors-trajets.
Trajet planifié
Opération
Légende
65 %
32. CHALET DE SKI ALPIN
BÉNÉFICES
Voici les bénéfices escomptés avec ces nouvelles
fonctionnalités:
Coût des opérations de déneigement
Temps de création de nouveaux parcours
Qualité du travail accompli
33. CHALET DE SKI ALPIN
À VENIR
La priorité est maintenant sur la mise en
production et le raffinement des
fonctionnalités développées.
Un prochain projet de recherche sera élaboré
pour l’année 2024.
34. CHALET DE SKI ALPIN
Merci et bon
hiver !
Jimmy Perron, jimmy.perron@nsimtech.com
Vincent Thomas, vthomas@cimmi.ca
Merci à Alicia Lamontagne du
CIMMI et à l’équipe de Nsim!
Notes de l'éditeur
On vous transporte en hiver!!!
Plongez-vous dans la tête d’un déneigeur sans expérience, la nuit dans une tempête de neige, après plusieurs heures de travail à tenter de couvrir un secteur dessiné à la main sur une carte papier. Il n’est pas étonnant que certaines erreurs et omissions surviennent.
C’est pourquoi des dizaines de villes au Québec et ailleurs au Canada utilisent la plateforme Rasters.io développée par Nsim.
Compagnie fondée en 2004 et basée à Québec
Spécialisation: Télémétrie (IdO), cartographie et intelligence artificielle
Équipe d’une quinzaine de professionnels
Elle compte parmi ses clients plusieurs villes et municiapilités dont Lévis, Saguenay, Laval, Longueuil, Alma, Thetford Mines, +++
Pour creuser des fonctionnalités complexes qui seront intégrés dans la plateforme Rasters.io, Nsim a fait appel au CIMMI
L’algorithme va tenter de parcourir toutes les rues à l’intérieur de ce polygone dans les deux sens (à l’exception des sens uniques).
Le jeu de données de rues provient d’OpenStreetMap.
Une zone tampon sera créée autour du polygone défini par l’utilisateur. Les rues comprises dans cette zone seront considérées optionnelles par l’algorithme.
L’algorithme pourrait emprunter l’une de ces rues optionnelles si cela peut lui éviter de faire un virage en U, par exemple.
Le trajet partira de la rue la plus près du point de départ donné et finira au point d’arrivée;
Des interdictions de virage peuvent être spécifiées (virages en U, à droite, à gauche ou même tout droit).
Les pénalités sont spécifiées en mètres pour les virages à gauche et en U.
Exemple
Pour une pénalité donnée de 500 mètres pour les virages à gauche, l’algorithme tentera de faire un détour d’au plus 500 mètres plutôt que de tourner à gauche.
Exemple
Dans cet exemple, la zone obligatoire est verte et la zone de transit est mauve. Les éléments en mauve sont optionnels. L’arête indiquée a un poids de 131.
Parcourir tous les nœuds d’un graphe est le problème du commis voyageur. Avec ce graphe, il est possible de parcourir tous les nœuds sans passer par toutes les arêtes. Des rues ne seront donc pas déneigées!
La résolution du problème du commis voyageur se fait à partir d’une matrice de poids. Le poids c’est la distance minimum à parcourir entre deux nœuds. Cette distance minimum est calculée avec Dijkstra. Cet algorithme repose sur l’hypothèse que le coût d’accès à un nœud est indépendant du contexte.
La solution est d’inverser les nœuds et les arêtes. Les arêtes représentent les virages et les nœuds sont au milieu des segments de rue.
Les nœuds de transits sont intégrés dans le calcul des poids, mais ne font pas partie de la matrice des poids qui sera fournie pour la résolution du problème du commis voyageur par OR-Tools.
On voit que 7 et 8 ne font pas partie de la matrice
Dire que les nouveaux parcours sont éditables
Créez une solution de manière itérative en insérant chaque nœud à sa position la moins chère. Le coût de l'insertion est basé sur la fonction de coût de l'arc. Diffère de PARALLEL_CHEAPEST_INSERTION par le nœud sélectionné pour l'insertion. Ici, les nœuds sont pris en compte dans l'ordre de leur création. est plus rapide que PARALLEL_CHEAPEST_INSERTION.
Par exemple un rapport lundi matin qui résumera les opérations de la fin de semaine;
Les secteurs proviennent provenant d’un shapefile téléversé par le planificateur
Ces traces se superposent et il est difficile d’en tirer des informations.
Une nouvelle fonctionnalité développée amène la notion de passage. Un passage est un véhicule qui parcourt une rue dans un sens donné (nord ou sud) et ce dans un espace de temps restreint.
Chaque opération est notée sur le pourcentage de completion du parcours à suivre et sur le temps pour le parcourir.
Exemple:
80 % du trajet complété et l’opérateur a pris deux fois plus de temps que prévu. Le pointage sera de
80% / 2 + 50% / 2 = 65 %
en automatisant cette fonctionnalité;
Les parcours optimisés vont entraîner une diminution des coûts ainsi que le suivi des matériel épandu sur la chaussée.
en offrant des outils d’analyses (temps des opérations, quantité d’épandage)
Raffinement: diminution du temps de calcul, développement et tests des interfaces