How should I compute my candidates? A taxonomy and classification of diagnosis computation algorithms