Algorithm Selection Framework: A Holistic Approach to the Algorithm Selection Problem