Overview
In the provided evidence, Ant Colony Optimization (ACO) is used as a metaheuristic / approximate optimization technique. Its strongest direct application-level characterization comes from the Instiller RTL fuzzing work, where ACO is adapted into a Variant of ACO (VACO) that distills input instructions for CPU register-transfer-level (RTL) fuzzing. [C1][C2]
The evidence also documents ACO being applied in two other application domains: automated software testing (state-transition test-sequence generation) and cryptographic Boolean-function design (search for vectorial Boolean functions with low differential uniformity and high nonlinearity). [C3][C4]
Evidence-supported characterization
The clearest technical role of ACO in the evidence is as the algorithmic foundation of VACO inside Instiller. According to the Instiller paper:
- Instiller is "an RTL fuzzer based on ant colony optimization (ACO)." [C1]
- It distills input instructions with "a variant of ACO (VACO)." [C1][C2]
- VACO-based distillation makes inputs "shorter and more effective" for fuzzing CPU RTL. [C2]
The evidence therefore supports ACO as a metaheuristic search/optimization technique that can be specialized (here, into VACO) for a particular search problem (instruction distillation for RTL fuzzing).
Documented applications in the provided sources
RTL fuzzing and input instruction distillation (Instiller)
The Instiller paper proposes an input instruction distillation technique built on VACO, an adapted form of ACO, to keep RTL input instruction lengths short and effective for fuzzing CPU designs. [C1][C2] In its reported evaluation:
- Instiller achieves 29.4% more coverage than DiFuzzRTL. [C1]
- Instiller detects 17.0% more mismatches in the targets. [C1][C2]
- With the VACO algorithm, Instiller generates 79.3% shorter input instructions than DiFuzzRTL, demonstrating the effectiveness of distilling input instructions. [C1]
- The distillation also leads to a 6.7% average increase in execution speed. [C1][C2]
The Instiller paper additionally lists two other contributions that are features of the fuzzer rather than properties of ACO itself: handling multiple interruptions/exceptions with priorities, and hardware-based seed selection and mutation strategies. [C2]
Automated software testing (state-transition testing)
A separate public-source paper applies ACO to state-transition testing (STT) of software, with the goal of generating optimal and minimal test sequences that obtain complete software coverage. The same paper compares ACO with genetic algorithms for transition-based testing. [C3]
Cryptographic Boolean-function design
Another public-source paper reports experiments using ant colony optimisation, alongside simulated annealing and memetic algorithms, to construct vectorial Boolean functions (candidates for S-boxes in block ciphers) with low differential uniformity and high nonlinearity. [C4]
Variants and related techniques
The evidence explicitly introduces VACO — a variant of ACO — as the specific adaptation of ACO used for RTL-fuzzing input instruction distillation in Instiller. [C1][C2]
Evidence boundaries
The provided evidence does not give a full, generic exposition of ACO's standard pheromone-update rules, transition probabilities, or convergence properties. It supports:
- ACO as a metaheuristic / approximate optimization technique used in search-based problem solving, [C1]
- a concrete ACO variant (VACO) for RTL-fuzzing instruction distillation, [C1][C2]
- and documented application areas in software testing and cryptographic Boolean-function search. [C3][C4]