Discovering Reliable Dependencies from Data: Hardness and Improved Algorithms