Choose between different algorithms