MFH: A Multi-faceted Heuristic Algorithm Selection Approach for Software Verification
Currently, many verification algorithms are available to improve the reliability of software systems. Selecting
the appropriate verification algorithm typically demands domain expertise and non-trivial manpower. An
automated algorithm selector is thus desired. However, existing selectors, either depend on machine-learned
strategies or manually designed heuristics, encounter issues such as reliance on high-quality samples with
algorithm labels and limited scalability. In this paper, an automated algorithm selection approach, namely
MFH, is proposed for software verification. Our approach leverages the heuristics that verifiers producing
correct results typically implement certain appropriate algorithms, and the supported algorithms by these
verifiers indirectly reflect which ones are potentially applicable. Specifically, MFH embeds the code property
graph (CPG) of a semantic-preserving transformed program to enhance the robustness of the prediction
model. Furthermore, our approach decomposes the selection task into the sub-tasks of predicting potentially
applicable algorithms and matching the most appropriate verifiers. Additionally, MFH also introduces a feedback
loop on incorrect predictions to improve model prediction accuracy. We evaluate MFH on 20 verifiers and over
15,000 verification tasks. Experimental results demonstrate the effectiveness of MFH, achieving a prediction
accuracy of 91.47% even without algorithm labels provided during the training phase. Moreover, the prediction
accuracy decreases only by 0.84% when introducing 10 new verifiers, indicating the strong scalability of the
proposed approach.