Implements the BFS and Hill-climbing algorithms to find the function f(x) for a given set of data set
Restrictions: The data set consists of input and output pair (x,y) where x is input (the first column in the data set) and y is desired output (the second column), we want to find a function, f(x) that best fits the data set. The function f(x) has the form of axe1 op1 bxe2 op2 cxe3 op3 dxe4 op4 k, where a, b, c, d are coefficients; e1, e2, e3, e4 are exponents; k is a constant; op is any operator selected from {+, -}. All exponents, coefficients, and constants are integers between 0 and 5.