Skip to main content
. 2022 Feb 23;4:806014. doi: 10.3389/fdata.2021.806014

Algorithm 3.

RecursiveSearch(S, a, Δ, timestampSet, minTime, maxTime, λ, m, k, l, minedSubgraphs).

1 if |E(S)| ≥ l then
2    return
3 for each e = (u, a, t) ∈ Inc(v) ∧ e ∉ E (S) do
4    if t ∈ [minTime, maxTime + λ] then
5      if u ∉ V(S) then
6        if |V (S)| ≤ (k − 1) then
7          V(S) = V(S) ∪ {u}
8          added = true
9        else
10          continue
11        E(S) = E(S) ∪ {e}
12        if S ∉ minedSubgraphs then
13          timestampSet = timestampSet ∪ {t}
14          minedSubgraphs = minedSubgraphs∪S
15          UpdateBounds (timestampSet, Δ, minTime, maxTime, λ)
16          M = StandardizeTimestamps (S)
17          C = ComputeCanonization (M)
18          UpdateOccurrences (m, canonicalForm)
19          RecursiveSearch (S, u, Δ, timestampSet, minTime, maxTime, λ, m, k, l, minedSubgraphs)
20          RecursiveSearch (S, a, Δ, timestampSet, minTime, maxTime, λ, m, k, l, minedSubgraphs)
21          timestampSet = timestampSet\{e.t}
22          E(S) = E(S)\{e}
23          if added = true then
24            V(S) = V(S)\{u}
25            added = false
26        UpdateBounds (timestampSet, Δ, minTime, maxTime, λ)
27 return