Pourquoi la centralité fonctionne

Dans un appartement, l'entrée est le carrefour principal — toutes les pièces sont accessibles via elle.

Betweenness centrality

Fraction des plus courts chemins passant par ce nœud. L'entrée est le « hub » de l'appartement.

Formule : btw(v) = Σ σ_st(v) / σ_st pour tous les couples s,t ≠ v

Closeness centrality

Inverse de la distance moyenne aux autres nœuds. Utilisé pour sélectionner le palier (v7.1).

Plus déterministe que betweenness (pas d'ex-æquo)

📊
Données de référence — Centralité moyenne par type sur 2 projets combinés :
entrance_hall : degree 0.436, btw 0.331, eigen 0.548
corridor : degree 0.304, btw 0.266, eigen 0.392
bathroom/toilet/storage/laundry : btw = 0.000

Graphe d'un niveau

Les nœuds sont colorés par betweenness. Le palier (max closeness) est au centre.

🟡 Palier (max closeness) 🟠 Entrées (btw > 0.10) ⚫ Pièces intérieures

L'algorithme de détection

1

Construire le sous-graphe du niveau

Extraire toutes les pièces (RM) et portes (DR) d'un même étage. Les connexions forment le graphe du niveau.

2

Trouver les composantes connexes

Un niveau peut contenir 2+ cages d'escalier non reliées. Chaque composante est traitée indépendamment (v6.0).

3

Palier = max closeness (v7.1)

Le nœud avec la plus grande closeness centrality dans la composante est le palier. Plus robuste que max betweenness (pas d'ex-æquo).

4

Entrées = voisins du palier avec btw > 0

Les pièces adjacentes au palier qui ont une betweenness non-nulle sont des entrées d'appartement.

5

Filtre géométrique : windows == 0

Garde ajouté en v7.0 : seules les entrées sans fenêtre sont verrouillées à confiance 1.0. Une « entrée » avec fenêtre est probablement un séjour traversant.

Seuil minimum de betweenness

Le filtre btw ≥ btw_min élimine les faux positifs. Déplacez le curseur pour voir l'effet.

Valeur actuelle (0.10)
P1 : −20 faux positifs, 0 vrai positif perdu
P2 : −3 faux positifs, +2 vrais corrigés

Betweenness par composante connexe

Avant v6.0, un seul palier était détecté par niveau. Si un niveau avait 2 cages d'escalier non connectées, la seconde n'avait ni palier ni entrées.

Fix v6.0 — La BTW est maintenant calculée par composante connexe indépendante. Chaque cage d'escalier a son propre palier. Corrige les niveaux N01-N07 de P1 qui ont 2 blocs séparés.

Mode maison vs mode immeuble

Le système détecte automatiquement si un niveau est un étage d'immeuble ou une maison individuelle.

🏢 Mode immeuble (standard)

Au moins un palier a des voisins profonds (depth > 1 dans le room graph). → BFS depuis chaque entrée pour créer les clusters.

🏠 Mode maison (fallback)

Tous les paliers ont des voisins shallow. Logique simplifiée : pas de clustering complexe, chaque composante = un appartement.