next up previous
Next: Phase 2 Up: Case Study: Evolving a Previous: Experiment Phase 0

Experiment Phase 1

The evolutionary algorithm was a fairly standard generational Genetic Algorithm (GA) [6]. A fixed-size population of 30 candidate circuit designs was maintained. Once their fitnesses had been evaluated, all except the single fittest member were replaced by offspring (a `generation'). Individuals were selected (with replacement) to parent offspring with a probability proportional to the rank order of their fitness within the population, such that the fittest member's expected number of offspring was 2.0, the median-fittest's expected number was 1.0, and the least fit would get none. Baker's stochastic universal selection method [3] was used.

For each offspring individual, there was a probability of 0.7 that it would be generated through a crossover operation on two parents. Crossover was done by selecting uniformly at random a pair of rows and a pair of columns in the array of nodes. The rectangular region circumscribed by these limits would be taken from one parent, and the remainder from the other. If crossover was not performed (probability 0.3), then just one parent was taken.

To finish the formation of an offspring, it would be mutated as follows. Taking each component in turn, with a small probability it would be altered to a different uniformly randomly chosen component type. This probability was set such that the expected number of component-type mutations per individual was 0.7. Then, considering each component position in turn, with a small probability the capacitance value associated with that position would be perturbed (whether or not the component at that position happened to be currently of a type that used the capacitance value). The same perturbation procedure was then repeated for the resistance values. The probabilities of perturbations were set such that the expected number of capacitances altered per individual was 2.8, and the expected number of resistances altered was also 2.8. Finally, the global voltages associated with the circuit ($V_b$, $V_{false}$ and $V_{true}$) were taken in turn and with a probability of 0.1 each, were perturbed.

The perturbations to the real-valued parameters were performed using the `Breeder-GA (BGA)' mutation operator [14]. This operator takes the range of the variable as a parameter, and generates small perturbations with a higher probability than large ones. If, after mutation, $\left\vert V_{true} -
V_{false} \right\vert$ broke the separation constraint, the two voltages were symmetrically moved further apart until they were valid. In the case of resistances and capacitances, which both range over many orders of magnitude, the log of the variable (and its range) was taken, the BGA mutation applied, and then the antilog of the result became the variable's new value.

Starting from a population of identical copies of the best circuit found through random search (Phase 0), the GA's operation consisted of many iterations of the generational cycle of fitness evaluations, selection of parents, offspring formation, and replacement of all but the currently fittest individual by the new offspring. Fig. 2 shows how the fitness rapidly increased at first, and then was slowly fine-tuned over a much longer period.

Figure 2: Evolution at 0K: Fitness of the best individual in the population.
\begin{figure}\centerline{\mbox{\psfig{file=maxfit1.eps,width=\columnwidth}}}\end{figure}

The GA was stopped after 8000 generations, and the best individual at that time is shown in Figs. 3 and 4. The behaviour shown in Fig. 5 is very close to the ideal, but it is also seen to be completely destroyed if we now enable the simulation of higher-order tunnelling events. If the temperature is increased (Fig. 6), the behaviour is completely lost at only 30mK.

Figure 3: The circuit evolved at 0K, in the representation manipulated by the evolutionary algorithm. The large dots are nodes, and the `preferred output' node is shown circled.
\begin{figure}\centerline{\mbox{\psfig{file=eli8000_geno.eps,width=\columnwidth}}}\end{figure}

Figure 4: The circuit evolved at 0K, as seen by the simulator: Nodes joined by `virtual wires' have been amalgamated, and shorted or dangling components have been removed.
\begin{figure}\begin{center}
\footnotesize\begin{tabular}{c\vert cc}
Fixed Value...
...2mm}
\centerline{\mbox{\psfig{file=eli8000.eps,width=\columnwidth}}}\end{figure}

Figure 5: The input/output relationship of the circuit evolved at 0K (see Fig. 4). The dark solid line is the output considering only first order tunnelling events, as used in the simulations to evaluate fitness during evolution. The gray solid line is the output when second-order (or second and third-order) events are also simulated.
\begin{figure}\centerline{\mbox{\psfig{file=eli8000_io.eps,angle=270,width=\columnwidth}}}\end{figure}

Figure 6: The thermal response of the circuit evolved at 0K (see Fig. 4).
\begin{figure}\centerline{\mbox{\psfig{file=thermal.eps,width=\columnwidth}}}\end{figure}

In a similar earlier experiment at zero temperature [20] it was found that if evolution was continued from this point, but now with second-order tunnelling enabled, it took many generations to regain the original fitness. If third-order tunnelling was then enabled in the simulation, then again much more evolution was needed. Given that simulation of higher order tunnelling is extremely computationally expensive, the approach of gradually increasing the order of simulated tunnelling events, at zero temperature, does not appear fruitful. Attempts to conduct the experiment at a temperature of 500mK, even simulating only first order tunnelling, met with total failure: no initial circuits could be found (either through random search, or by the GA) that were above baseline fitness.

The way forward is suggested by noticing that the loss of behaviour with increasing temperature seen in Fig. 6 is gradual, although rapid.


next up previous
Next: Phase 2 Up: Case Study: Evolving a Previous: Experiment Phase 0
Adrian Thompson 2000-11-14