1: |
procedure
frequent_evolving_pattern_mining() |
2: |
Initialize as a data set of evolution networks as empty sets for birth, expansion, merge, contraction, split, and death events |
3: |
for
do
|
4: |
Initialize as an empty evolution network |
5: |
Identify Connected components in
|
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
do
|
12: |
Populate = with expansion events in
|
13: |
Populate = with contraction events in
|
14: |
for
and
do
|
15: |
Populate = with expansion events
|
16: |
Populate = with contraction events in
|
17: |
Populate with death events detected as vertices with out-degree = 0 and all their neighbors in connectivity radius
|
18: |
Create evolution network composed of vertices representing by evolution events and edges representing the connections among evolution events based on their component/sub-component relationships |
19: |
Append to
|
20: |
frequent_evolving_patterns = PATTERN_MINING() |
21: |
Return frequent_evolving_patterns
|