A filling function method for unconstrained global optimization