Familiarité
Fait par Gillesto
saferoute.familiarity.FamiliarityEngine
Moteur de familiarité : calcule et met à jour les scores d'arcs à partir de trajectoires utilisateur (réelles ou simulées).
Source code in src/saferoute/familiarity.py
91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 | |
Methods:
__init__
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
decay_per_trip
|
float
|
décroissance appliquée à chaque nouveau trajet (simule l'oubli progressif des routes peu fréquentées) |
0.02
|
Source code in src/saferoute/familiarity.py
update_from_path
Met à jour la familiarité depuis un chemin (liste de NodeId OSM).
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
path
|
list[int]
|
liste de NodeId OSM [n1, n2, n3, ...] |
required |
nx_graph
|
Any
|
graphe NetworkX pour trouver les clés d'arcs |
required |
Source code in src/saferoute/familiarity.py
simulate_trajectories
Génère des trajectoires fictives pour simuler un utilisateur habitué à certains corridors de la ville.
Stratégie : - Sélectionne aléatoirement N paires (source, destination) - Calcule le plus court chemin NetworkX (proxy pour le comportement réel) - Met à jour la familiarité pour chaque arc emprunté
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
nx_graph
|
Any
|
graphe NetworkX OSMnx |
required |
n_trips
|
int
|
nombre de trajets simulés |
50
|
seed
|
int
|
graine pour reproductibilité |
42
|
Returns:
| Type | Description |
|---|---|
FamiliarityMap
|
FamiliarityMap mise à jour |
Source code in src/saferoute/familiarity.py
apply_to_graph_json
Injecte les scores de familiarité dans le JSON du graphe avant envoi au moteur Rust.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
graph_json
|
str
|
JSON produit par engine._serialize_graph() |
required |
Returns:
| Type | Description |
|---|---|
str
|
JSON enrichi avec les scores de familiarité |
Source code in src/saferoute/familiarity.py
save
Sauvegarde la carte de familiarité en JSON.
Source code in src/saferoute/familiarity.py
load
Charge une carte de familiarité depuis JSON.
Source code in src/saferoute/familiarity.py
saferoute.familiarity.FamiliarityMap
dataclass
Carte de familiarité : score [0.0, 1.0] par arc (u, v, key). 0.0 = jamais emprunté, 1.0 = très familier.
La carte retient les arcs modifiés depuis la dernière synchronisation avec le moteur Rust
(pending() / mark_synced()), pour ne renvoyer que ces arcs au lieu de reconstruire et
re-sérialiser le graphe entier.
Source code in src/saferoute/familiarity.py
Methods:
update
Incrémente le score d'un arc (avec saturation à 1.0).
Source code in src/saferoute/familiarity.py
decay
Applique un facteur de décroissance temporelle. Les routes non empruntées récemment deviennent moins familières. factor=0.95 → perd 5% de familiarité par période.
Source code in src/saferoute/familiarity.py
pending
Arcs modifiés depuis la dernière synchronisation : {(u, v, key): score actuel (0.0 si retiré)}.
mark_synced
Marque comme synchronisés les arcs keys (tous si None).