A Search for the Fault
7.5 Second Experimental Phase
In the second phase of the experiments, we start with the Algorithm 9, but we make several changes in an effort to make it simpler yet more powerful and fast.
156
Algorithm 9Genetic algorithm + classification.
Require: crx_count = 0, mut_count = 0 repeat
select first parent
iffirst parent of target class then try to find matching second parent else
try to find second parent of different class end if
perform crossover (depending on parent classes) copy child to new generation
crx_count = crx_count + 1 until pc∗ N > crx_count repeat
select random individuals for tournament copy best of tournament to new generation mut_count = mut_count + 1
until (1 − pc) ∗ N >mut_count
perform mutation on new generation with probability pm
evaluate population
First, we remove verdict class CHANGING since we experiment with smaller number of measurements and consequently each location is measured only once.
We add the class INCONCLUSIVE for all those measurements that cannot be clas-sified in any other class. Next, we change the stopping condition for GA from 10 generations without improvement to 10 generations. Finally, we change the values that the verdict classes are assigned to. Furthermore, to make the search setting more difficult (and therefore more realistic) we add the third parameter to the search - glitch offset. In this phase, we use a Memetic Algorithm (MA) that combines GA, Tabu Search (TS) and Local Search (LS).
7.5.1 Common Parameters Phase Two
In Tables 7.4 and 7.5, we give common parameters for the second phase of the exper-iments for FI and EA parts, respectively.
As it can be seen in Table 7.5, we use a small number of generations and a small population size since we are interested in rapid characterization or finding faults. In-deed, if one has sufficient time at his disposal no method can outperform exhaustive search.
7.5.2 Redefining the Problem
In the second phase, we concentrate on the following questions of interest.
• How to find maximal number of faults in a small number of measurements?
Figure 7.6: Measurements for GA + classification.
Table 7.4: FI framework parameters, phase two.
Parameter Parameter Value
VCC Voltage VCC 5 V
CLK High Voltage 5 V
CLK Low Voltage 0 V
Glitch length [2, 150] ns Glitch voltage [-5000, -50] mV Glitch offset [100, 400] ns Glitch cycles random from [1, 10]
Wait cycles random from [750, 850]
• How to describe the search space region in a small number of measurements?
Those questions can be connected in certain scenarios, but we regard them as two different problems. Indeed, when looking for faults we can expect that some regions around those faults will be better analyzed, but from the other perspective, that analysis will use more measurements and it will result in other regions being less analyzed. From the other side, when looking for a region of interest, we can expect that the algorithm will also find faults, but that behavior should not be spe-cially rewarded. Rather, in this scenario, we aim to find as complete as possible region between the NORMAL and RESET/MUTE classes in a minimal number of
Table 7.5: EAs framework parameters for FI, phase two.
Parameter Parameter Value
Tournament size 3
Population size 30
Stopping criterion 10 generations (250 measurements)
Mutation rate 0.1
158
measurements.
7.5.3 Memetic Algorithm
A Memetic Algorithm (MA) represents a synergy between EAs (or any other population-based algorithm) and local improvement algorithms [Wei09]. For that synergy to reach the best results, there are several design questions to be answered.
• What local improvement method to use?
• How often to apply a local improvement method?
• On which solutions to apply the local improvement method?
• How long to run the local improvement method?
These questions guide us not only in the design of MA, but also help us balance between evolutionary and local improvement techniques.
7.5.4 Genetic Algorithm
As already stated, the starting algorithm for this phase is the final version of the GA from the first phase as presented in Algorithm 9.
We are looking for parameters that behave differently than NORMAL behavior;
therefore, for NORMAL class we give the smallest fitness value of one. RESET and MUTE classes we consider the same and we give them a value 2 since we expect to find faults in areas between NORMAL and RESET. Finally, for SUCCESS class we give a value 3. Since we do not know where INCONCLUSIVE class actually belongs (in what of the antecedent classes), we also assign it the same value as for RESET/MUTE class.
7.5.5 Tabu Search
Since we have only a few different verdict classes (and consequently, only a lim-ited number of different fitness values) it is to be expected that some solutions (i.e.
search points) will be repeated. Since every such solution consequently leads to an unnecessary measurement, we adopt the technique from Tabu Search (TS) optimiza-tion method. Tabu Search (TS) works by declaring soluoptimiza-tion candidates that already have been visited as tabu and therefore not to be visited again [Wei09]. The advan-tage of using TS method is twofold in this case: first, we lower the total number of measurements performed and second, if not revisiting already visited locations, the algorithm is less likely to get stuck in a local optimum. Note that we do not imple-ment the whole TS algorithm, but only the part related with keeping the tabu list.
However, for the simplicity sake, we still call it TS. The easiest way to implement TS is by using a list, which stores all the solutions that have been already measured and allocated fitness value. If a new solution is created that is on the list, it is not measured but discarded immediately.