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

* Final gross prices may vary according to local VAT.

Get Access


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.