Dernière couche d'optimisation appliquée après les passes principales (pipeline v9.0 purgé).
Condition : room_type == toilet, conf < 1.0, connected_rooms ≥ 2
→ corridor (conf 0.75)
Logique : un vrai WC est un nœud feuille (degré ≤ 1). S'il a 2+ portes vers des pièces différentes, c'est un espace de circulation/couloir.
Version : v9.0 · Contribution : +6.4 pts sur P3
Condition : room_type == storage, conf < 1.0, portes ≥ 4
→ corridor (conf 0.70)
Logique : un placard a 1 porte d'accès. Un petit espace avec ≥ 4 portes dessert plusieurs pièces et constitue un corridor.
Version : v9.0
Comparaison du voisinage immédiat (profondeur 2) via hachage Weisfeiler-Lehman.
Condition : room_type ∈ {bedroom, living_room}, conf < 1.0, signature WL locale discriminante
→ swap vers le type conforme au profil topologique (conf 0.78)
Principe : le voisinage local d'une chambre (voisins SDB, couloir) se distingue nettement de celui d'un séjour (cuisine, entrée, extérieur).
Version : v9.0 · Axe C exp010
Condition : storage ≤ 3.5 m² avec fenêtre ≥ 1, dans un appartement sans aucun WC comptant ≥ 3 pièces
→ toilet (conf 0.65)
Logique : chaque logement a au moins un WC. Une petite pièce d'eau avec fenêtre classée par erreur en rangement est promue WC.
Version : v9.0
Condition : corridor sans fenêtre, area < 15 m², connectant ≥ 5 types de pièces distincts
→ entrance_hall (conf 0.78)
Logique : une pièce de distribution centrale connectant au moins 5 fonctions distinctes est le vestibule / hall d'accueil principal.
Version : v9.0 · Agent E
Condition : corridor, conf < 1.0, total_conn < 2 (nœud terminal)
→ reclassé selon taille : bedroom (≥ 8.5 m² avec fenêtre), storage (≤ 3.5 m²), ou entrance_hall (conf 0.55)
Logique : un couloir avec moins de 2 connexions ne remplit pas sa fonction circulatoire.
Version : v9.0
Condition : side == "ext", type non encore classé parmi {balcony, terrace, garden}
→ balcony (< 2 m de profondeur), garden (RDC, area ≥ 15 m²), ou terrace (conf 0.70)
Logique : garantit que 100% des pièces étiquetées extérieures reçoivent une typologie extérieure valide.
Version : v9.0
Condition : side ≠ "int", 0 portes / connexions, niveau RDC (N00), area ≥ 15 m², sep_ratio ≥ 0.50
→ garden (conf 0.65)
Logique : grand espace extérieur privatif de rez-de-jardin délimité par séparateurs sans ouverture porte.
Version : v9.0