# A Simple Greedy Algorithm for Finding Functional Relations: Efficient Implementation and Average Case Analysis

- First Online:

## Abstract

Inferring functional relations from relational databases is important for discovery of scientific knowledge because many experimental data in science are represented in the form of tables and many rules are represented in the form of functions. A simple greedy algorithm has been known as an approximation algorithm for this problem. In this algorithm, the original problem is reduced to the set cover problem and a well-known greedy algorithm for the set cover is applied. This paper shows an efficient implementation of this algorithm that is specialized for inference of functional relations. If one functional relation for one output variable is required, each iteration step of the greedy algorithm can be executed in linear time. If functional relations for multiple output variables are required, it uses fast matrix multiplication in order to obtain non-trivial time complexity bound. In the former case, the algorithm is very simple and thus practical. This paper also shows that the algorithm can find an exact solution for simple functions if input data for each function are generated uniformly at random and the size of the domain is bounded by a constant. Results of preliminary computational experiments on the algorithm are described too.

## Preview

Unable to display preview. Download preview PDF.

### References

- 1.Agrawal, R., Imielinski, T., Swami, A.: Mining association rules between sets of items in large databases. Proc. ACM SIGMOD Conference on Management of Data (1993) 207–216Google Scholar
- 2.Akutsu, T., Takasu, A.: Inferring approximate functional dependencies from example data. Proc. AAAI93 Workshop on Knowledge Discovery in Databases (1993) 138–152Google Scholar
- 3.Akutsu, T., Bao, F.: Approximating minimum keys and optimal substructure screens. Lecture Notes in Computer Science
**1090**(1996) 290–299Google Scholar - 4.Akutsu, T., Miyano, S., Kuhara, S.: Algorithms for identifying Boolean networks and related biological networks based on matrix multiplication and fingerprint function. Proc. 4th ACM Conf. Computational Molecular Biology (2000) 8–14Google Scholar
- 5.Akutsu, T., Miyano, S.: Selecting informative genes for cancer classification using gene expression data, Unpublished Manuscript.Google Scholar
- 6.Coppersmith, D., Winograd, S.: Matrix multiplication via arithmetic progression. J. Symbolic Computation
**9**(1990) 251–280MATHCrossRefMathSciNetGoogle Scholar - 7.Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. The MIT Press, Cambridge, MA (1990)MATHGoogle Scholar
- 8.Johnson, D.S.: Approximation algorithms for combinatorial problems. J. Computer and System Sciences
**9**(1974) 256–278MATHCrossRefGoogle Scholar - 9.Kivinen, J., Mannila, J.: Approximate dependency inference from relations. Proc. 4th Int. Conf. Database Theory (1992) 86–98Google Scholar
- 10.Mannila, H., Räihä, K.: Dependency inference. Proc. 13th VLDB Conference(1987) 155–158Google Scholar
- 11.Mannila, H., Räihä, K.: On the complexity of inferring functional dependencies. Discrete Applied Mathematics
**40**(1992) 237–243MATHCrossRefMathSciNetGoogle Scholar - 12.Quinlan, J. R.: C4.5 Programs for Machine Learning. (1993) Morgan KaufmannGoogle Scholar
- 13.Somogyi, R., Sniegoski, C. A.: Modeling the complexity of genetic networks: Understanding multigene and pleiotropic regulation. Complexity
**1**(1996) 45–63MathSciNetGoogle Scholar