2. Fundamentación teórica de la investigación
2.2. Marco conceptual
2.2.1. Tipos de tecnologías actuales en telecomunicaciones
Algorithm 4.1 acts on the full state of the graph, and requires various intermediate graphs to be calculated, making it difficult to implement efficiently in a distributed manner.
To construct an efficient, distributed algorithm for the k-core graph decomposition, the membership of any vertex in any k-core must be expressed solely in terms of its neighbours, and free of any dependency on knowledge of any greater sub-graph. The following will show how this can be done, first presenting a mutually recursive definition, then introducing constraints that allow the k-core membership to be bounded in a such a way that all k-core memberships can be calculated.
First note that, as the k-cores are nested, so the highest k for which a vertex is a member of a k-core in a graph G is sufficient to determine all the k-cores which the vertex is a member of in G. Define the highest k membership of a vertex v to be kmax(v), and let Nkmax (v, i) select those neighbours w of a vertex v with a kmax(w) of at least i, in a similar fashion to Ndeg (v, i), so that
Nkmax (v, i) = {w ∈ N (v) : kmax(w) ≥ i}.
The goal then is to determine kmax(v) for each vertex v in an arbitrary graph G in an efficient, distributed manner. Finding a solvable expression for kmax(v) at each vertex that uses information only from the immediate neighbours of a vertex would then provide a basis for a distributed algorithm.
4.2 Towards a Neighbour-local k-Core Algorithm 63
that k-core. Finding maximum values for Relation 4.2 by examining each of the neighbours of a vertex v ∈ G and determining the largest number i such that at least that many of its neighbours w ∈ N(v) have a kmax(w) of at least i, gives a direct equivalence for the kmax(v) of each vertex v:
kmax(v) = max {i ≤ |Nkmax (v, i)|} (4.4) This equivalence of Equation 4.4 meets the objective of being dependent only on neighbour-state. However it is not solvable for any vertex v as this expression for the value of kmax(v) depends on Nkmax (v, i) which in turn depends on the
kmax(w) of each of the neighbouring vertices of v, w ∈ N(v), each of which of those neighbours in turn depend on kmax(v). Hence the equivalence of Equation 4.4 for kmax(v) is a circular definition which does not provide any starting point from which to calculate kmax(v) for any vertex v.
To find a form that is solvable, note that kmax(v) ≤ deg(v), for all v ∈ G. This implies the degree of a vertex in the full graph provides an initial bound on kmax(v).
If this upper-bound is used as a starting point and this starting point is fed-back, then this gives a process which obtains ever tighter bounds on kmax(v):
kbound (v, t) = deg(v) if t=0 max {i ≤ |Nbound (v, i, t−1)|} if t>0 (4.5) Where t ≥ 0, and Nbound (v, i, t) is used to select the subset of a vertex’s
neighbours, w ∈ N(v), whose kbound (w, t) is at least i in a similar fashion to Nkmax (v, i) and Ndeg (v, i):
Nbound (v, i, t) = {w ∈ N (v) : kbound (w, t) ≥ i}
As shown below in Subsection 4.2.1, kbound (v, t) must converge on kmax(v) as t increases. That is, there must exist some value for t ≥ 0, so that
kmax(v) = kbound (v, t), for all v ∈ G.
Thus, Equation 4.5 gives a solvable form for kmax(v).
Compared to Algorithm 4.1, the kbound (v, t) of Equation 4.5 does not need
knowledge of the full graph at any stage at any vertex. Further, as the value which kbound (v, t) is converging on is kmax(v) this means that kbound (v, t) is testing for all possible k-cores that v is a member of – not just some specific, a priori, given
k-core.
4.2.1
Convergence on kmax(v)
Intuitively, the guaranteed convergence of kbound (v, t) to kmax(v) may be seen by noting that its value describes membership of a number of possible k-core
sub-graphs. Then kbound (v, t) applies tests similar to Relation 4.2 and Implication 4.3 for some number of these sub-graphs at once, checking if the memberships are consistent. Vertices whose membership is not consistent lower their value, removing themselves from membership of higher k-cores. This process repeats, until all vertices are consistent. Thus, that the full-graph Algorithm 4.1 converges on the desired k-core means that kbound (v, t) converges on kmax(v) for each vertex v, given that kbound (v, 0) has assigned each vertex memberships of all the k-cores that may initially be plausible. This intuitive sense of the convergence of kbound (v, t) on kmax(v) for each vertex can be proven according to the
following outline:
1. Each vertex starts with its kbound (v, 0) greater than or equal to its maximal
k-core.
2. The kbound (v, t) calculated at each vertex can only decrease as t increases. 3. If the kbound (v, t) at any vertex is greater than the maximal k-core of that
vertex there must be a vertex whose kbound (v, t) will change for t+1. 4. If for each vertex v the kbound (v, t−1) is greater than or equal to the
respective maximal k-core, then no vertex can calculate a kbound (v, t) lower than its maximal k-core.
The formal proof of which now follows. First starting with a number of preliminary definitions.
Definition 4.1. A vertex v is consistent at t iff kbound (v, t+1) = kbound (v, t). Definition 4.2. When all vertices are consistent at t, each with their value of
kbound (v, t), then the graph is in a satisfying state. The set of these values, {kbound (v, t) : v ∈ G}, are the satisfying values.
Lemma 4.3. For every v ∈ G, kbound (v, 0) ≥ kmax(v).
Proof. This follows as kbound (v, 0) is defined to be deg(v), and
4.2 Towards a Neighbour-local k-Core Algorithm 65
Lemma 4.4. kbound (v, t) ≥ kbound (v, t+1) for all t ≥ 0, for all v ∈ G.
Proof. The proof is by induction on t.
For the base case of t = 0 it can be shown that kbound (v, 0) ≥ kbound (v, 1). Every vertex v ∈ G starts from kbound (v, 0) = deg(v) ≥ kmax(v). Either all vertices are consistent at t = 0, and the satisfying values are maximal, or there are some vertices which are not consistent. For any such inconsistent vertex u at t = 0, it can only be that kbound (u, 0) > kbound (u, 1), as kbound (u, t) can never give a value greater than deg(v) by definition and kbound (u, 0) = deg(v).
For the inductive step, assume that kbound (v, t) ≥ kbound (v, t+1) for any inconsistent vertex v ∈ G, then it can be shown that
kbound (v, t+1) ≥ kbound (v, t+2). Either kbound (v, t+1) = kbound (v, t+2), or kbound (v, t+1) > kbound (v, t+2), If the value decreases from kbound (v, t) to kbound (v, t+1) and so causes any neighbour w ∈ N(v) to become inconsistent at
t+1, then this can only reduce the number of neighbours available for
Nbound (w, t, i) to consider for its count. So kbound (w, t+1) ≥ kbound (w, t+2) . Thus, for any v ∈ G, if kbound (v, t) changes, then it can only decrease as t increases from 0 and kbound (v, t) ≥ kbound (v, t+1), for all v ∈ G.
Lemma 4.5. If every vertex is consistent at t ∈ N then, for every v ∈ G,
kbound (v, t) ≤ kmax(v).
Proof. If every vertex v is consistent, then each has at least kbound (v, t)
neighbours, w ∈ N(v) whose kbound (w, t) is greater than or equal to its own, by the definition of kbound (v, t) in Equation 4.5. Thus, each vertex v must be part of a sub-graph which is by definition a (kbound (v, t))-core. Hence every kbound (v, t) must be less than or equal to kmax(v).
Note that when satisfying values at t are maximal, then kbound (v, t) = kmax(v), for every v ∈ G.
Lemma 4.6. kbound (v, t) ≥ kmax(v) for all v ∈ G, and all t ≥ 0.
Proof. The proof is by induction on t.
For the base case of kbound (v, 0) ≥ kmax(v), kbound (v, 0) = deg(v) by definition and deg(v) ≥ kmax(v).
For the inductive step, assume kbound (v, t) ≥ kmax(v), then it can be shown that kbound (v, t+1) ≥ kmax(v) as follows. First, if kbound (v, t) ≤ kmax(v) for all v, then the graph must be in a satisfying state and no vertex can be inconsistent at t. If all vertices are consistent at t, then given the inductive assumption it can only be
that kbound (v, t) = kbound (v, t+1) for all v ∈ G, and no further change can occur in the value of kbound (v, t) as t increases. Alternatively, the graph is inconsistent, and so there is at least one vertex w where kbound (w, t) > kbound (w, t+1).
Imagine that kbound (w, t+1) < kmax(w), but for this to be possible would require kbound (v, t) < kmax(v) for some neighbour v of w, v ∈ N(w), which contradicts the inductive assumption. Thus, kbound (v, t+1) ≥ kmax(v) for all v ∈ G. If all vertices are consistent at t+1, then the only solution is that
kbound (v, t+1) = kmax(v), and no further changes are possible. And so on. Thus kbound (v, t) ≥ kmax(v) must be true for all t ≥ 0 and v ∈ G.
Theorem 4.7. kbound (v, t) reaches a satisfying state, such that
kbound (v, t) = kmax(v) in a finite number of steps t, for all vertices v ∈ G.
Proof. There is no satisfying state other than where kbound (v, t) ≤ kmax(v)
(lemma 4.5). Initially kbound (v, 0) ≥ kmax(v) for every vertex v (lemma 4.3) and any changes in kbound (v, t) must be decreasing as t increases from 0 (lemma 4.4). A consistent state where the satisfying values underestimate kmax(v) can not be reached (lemma 4.6). Finally, given a graph where deg(v) is finite for all v ∈ G, then kbound (v, t) must be finite. So kbound (v, t) must converge on kmax(v) in a finite number of steps t, for all v.
Theorem 4.8. kbound (v, t) converges on kmax(v) at all vertices v ∈ G and
reaches maximal satisfying values in O (lp (G) ∆ (G)) steps of t, where ∆ (G) is the maximum degree in G, and lp (G) the maximal simple path length in G.
Proof. At every t, either at least one vertex v is inconsistent; or otherwise the
maximal satisfying values have been reached and the algorithm is finished. The number of such revisions, at any vertex, is bounded by the degree of the vertex, and so by ∆ (G) across the graph. Each inconsistency potentially leads to a sequence of further inconsistencies in neighbouring vertices, which may have to traverse over the graph, in order to have each vertex v decrease its kbound (v, t). The scope of these is bounded by the maximal simple path length, lp (G), between all vertices. Thus, the algorithm is bounded by the product of these.