Overview
The Variant of Ant Colony Optimization (VACO) is a technique proposed in the Instiller RTL fuzzing work for input instruction distillation. Its purpose is to reduce CPU cycles and improve fuzzing performance by shortening input instruction sequences while preserving the original coverage achieved by those inputs.
Role in input instruction distillation
Instiller defines input instruction distillation as constructing a shorter subset of an original input set that can maintain the original coverage. To perform this distillation, the authors adapt ideas from Ant Colony Optimization (ACO), an approximate optimization technique that simulates ants searching for the shortest path to a target city.
In the RTL fuzzing adaptation, the length of input instructions is modeled as the number of ants, and RTL circuits are modeled as cities. The resulting algorithm is intended to output the best input instruction and length for the current status, completing the input instruction distillation task.
Relationship to classic Ant Colony Optimization
VACO is derived from classic Ant Colony Optimization but modifies it for the RTL fuzzing scenario. The Instiller paper states that the authors made changes to classic ACO and proposed VACO specifically to fit RTL fuzzing.
Use in Instiller
Instiller, also described as Instruction Distiller, implements this input instruction distillation approach as one of its contributions. The paper reports that the distillation can make inputs shorter and more effective. In evaluation, Instiller's distilled input length was reported as 79.3% shorter than DiFuzzRTL, and input instruction distillation led to a 6.7% average execution-speed increase. The broader Instiller prototype also reported increased coverage and more mismatch discovery, but those results include additional techniques beyond VACO.