Skip to main content
. Author manuscript; available in PMC: 2024 Sep 1.
Published in final edited form as: Artif Intell Med. 2023 May 22;143:102576. doi: 10.1016/j.artmed.2023.102576

Algorithm 3.

Frequent Evolving Pattern Mining Algorithm

1: procedure frequent_evolving_pattern_mining(DS*,minfreq,σ,τ,δ)
2:  Initialize DSE as a data set of evolution networks ,,,C,𝒮,𝒟 as empty sets for birth, expansion, merge, contraction, split, and death events
3: for CIGDS* do
4:   Initialize E as an empty evolution network
5:   Identify Connected components in CIG
6:   Populate with birth events detected as vertices with in-degree = 0 and all their neighbors in connectivity radius τ
7:    = Edges ordered based on their starting times in reverse order
8:   Populate with merge events by identification of edges in the order of whose removal increases the number of connected components with size δ
9:    = Edges ordered based on their finish times
10:   Populate 𝒮 with split events by identification of edges in the order of whose removal increases the number of connected components with size δ
11:   for component/𝒮 do
12:    Populate = with expansion events in component
13:    Populate C = with contraction events in component
14:   for component/𝒮 and componentCIG do
15:    Populate = with expansion events component
16:    Populate C = with contraction events in component
17:   Populate 𝒟 with death events detected as vertices with out-degree = 0 and all their neighbors in connectivity radius τ
18:   Create evolution network E composed of vertices representing by evolution events and edges representing the connections among evolution events based on their component/sub-component relationships
19:   Append E to DSE
20: frequent_evolving_patterns = PATTERN_MINING(DSE,minfreq)
21:  Return frequent_evolving_patterns