The Self-Loop Contribution¶
The self-loop in DRESS is not a numerical trick. It is mathematically essential.
Closed vs open neighbourhood¶
By defining \(N[u] = N(u) \cup \{u\}\) (closed neighbourhood), every node becomes its own neighbour with a virtual self-edge:
- Original weight: \(w(u, u) = 1\)
- Combined weight: \(\bar{w}(u, u) = 2\) (since the self-loop is always seen from both sides, regardless of variant)
- Similarity: \(d_{uu} = 2\) (self-similarity)
Why removal breaks the formula¶
Without self-loops, three critical failures occur:
1. Triangle-free graphs collapse¶
Stars, trees, paths, bipartite graphs: \(N(u) \cap N(v) = \emptyset\) for every edge. The numerator is zero. Every edge gets \(d_{uv} = 0\). DRESS becomes useless on any graph without triangles.
2. The edge loses self-reference¶
Without self-loops, \(d_{uv}\) does not appear on the right-hand side of its own equation. The formula degenerates from a true fixed-point equation into a simple ratio, losing the recursive, self-consistent character that gives DRESS its power.
3. The denominator can be zero¶
If a node has no neighbours with nonzero dress values, \(\|u\| = 0\). The self-loop guarantees \(\|u\| \ge \sqrt{\bar{w}_{uu}\,d_{uu}} = \sqrt{4} = 2 > 0\) always.
The self-loop makes DRESS a fixed-point equation¶
With self-loops, \(d_{uv}\) appears on both sides:
This self-referential structure is precisely what creates the nonlinear coupled system whose unique fixed point encodes the graph's structural information.