Free tree, as a special undirected, acyclic and connected graph, is extensively used in computational biology, pattern recognition,
computer networks, XML databases, etc. In this paper, we present a computationally efficient algorithm
F3TM (Fast Frequent Free Tree Mining) to find all frequently-occurred free trees in a graph database,
D = {g1, g2, ¼, gN}{\cal D} = \{g_1, g_2, \cdots, g_N\}. Two key steps of
F3TM are candidate generation and frequency counting. The frequency counting step is to compute how many graphs in
D\cal D containing a candidate frequent free tree, which is proved to be the subgraph isomorphism problem in nature and is NP-complete.
Therefore, the key issue becomes how to reduce the number of false positives in the candidate generation step. Based on our
observations, the cost of false positive reduction can be prohibitive itself. In this paper, we focus ourselves on how to
reduce the candidate generation cost and minimize the number of infrequent candidates being generated. We prove a theorem
that the complete set of frequent free trees can be discovered from a graph database by growing vertices on a limited range
of positions of a free tree. We propose two pruning algorithms, namely, automorphism-based pruning and canonical mapping-based
pruning, which significantly reduce the candidate generation cost. We conducted extensive experimental studies using a real
application dataset and a synthetic dataset. The experiment results show that our algorithm
F3TM outperforms the up-to-date algorithms by an order of magnitude in mining frequent free trees in large graph databases.
Keywords structural pattern mining - graph database - free tree