The Distribution of Reversible Functions is Normal

08/18/2018 ∙ by W. B. Langdon, et al. ∙ 0

The distribution of reversible programs tends to a limit as their size increases. For problems with a Hamming distance fitness function the limiting distribution is binomial with an exponentially small chance (but non zero) chance of perfect solution. Sufficiently good reversible circuits are more common. Expected RMS error is also calculated. Random unitary matrices may suggest possible extension to quantum computing. Using the genetic programming (GP) benchmark, the six multiplexor, circuits of Toffoli gates are shown to give a fitness landscape amenable to evolutionary search. Minimal CCNOT solutions to the six multiplexer are found but larger circuits are more evolvable.



There are no comments yet.


page 1

page 2

page 3

page 4

This week in AI

Get the week's most popular data science and artificial intelligence research sent straight to your inbox every Saturday.

1 Introduction

We shall show the fitness of classical reversible computing programs [bennett:1985:sciam]

(where fitness is given by Hamming distance from an ideal answer) is Normally distributed. If the score is normalised so that the maximum score (fitness) is 1 and the minimum is 0, then the mean is 0.5 and the standard deviation is

. (Where is the number of input bits and is the number of output bits.)

Almost all genetic programming has used traditional computing instructions, such as add, subtract, multiple, or, and. These instruction sets are not reversible. I.e., in general, it is impossible given a program and its output, to unambiguously reconstruct the program’s input. This is because most of the primitive operations themselves are irreversible. However genetic programming can evolve reversible programs composed of reversible primitives.

A number of reversible gates have been proposed [ICALP::Toffoli1980, FreTof82] which can be connected in a linear sequence to give a reversible gate array, which we will treat as a reversible computer program. At present the driving force behind the interest in reversible computing is the hope that reversible gates can be implemented as quantum gates, leading to quantum coherent circuits and quantum computing. Reversible computing has also been proposed for safety critical applications and for low power consumption or low heat dissipation.

In the absence of counter measures, most traditional computer programs degrade information. I.e. knowledge about their inputs is progressively lost as they are executed. This means, most programs produce the same output regardless of their input [langdon:2002:foga]. Suppose a program has input bits and output bits, there are possible functions it could implement. However a long program is almost certain to implement one of the constants. That is, the fraction of functions actually implemented is tiny as the programs get longer and worse, the fraction of interesting functions tends to zero. This is due to the inherent irreversibility of traditional computing primitives.

In the next section we describe reversible computing in more detail. In reversible computing there is also a distribution of functions which programs tend to as they get longer. Instead of it being dominated by constants, every reversible function is equally likely (cf. Section 3). Convergence to this limit is tested in Section 5 on the Boolean 6 Multiplexor problem (described in Section 4). Section 5 shows convergence to the large program limit can be rapid. Despite the low density of solutions, evolutionary search is effective at finding them (Section 6). Initial results suggest, CCNOT and traditional computing primitives are similarly amenable to evolutionary search.

2 Reversible Computing Circuits

A reversible computer can be treated as an array of parallel wires leading from the inputs and constants to the outputs and garbage. In normal operation the garbage outputs are treated as rubbish and discarded by the end of the program.

Connected across the wires are reversible gates. Each gate has as many inputs as it has outputs. The gates are reversible, in the sense that it is possible to unambiguously identify their inputs given their outputs (see Figure 1). The simplest reversible gate is the identity, i.e. a direct connection from input to output. Also NOT is reversible, since given its output we know what its input must have been. Similarly a gate which swaps its inputs is also reversible (see Figure 2).

Figure 1: Schematic of reversible computer. In normal operation data flows from left to right. However when reversed, garbage and outputs are fed into the circuit from the right to give the original inputs to the program (plus constants).
Figure 2: Examples of reversible gates. The CCNOT (Toffoli) gate passes all of its inputs directly to its outputs, unless all of the control lines (B and C) are true, in which case it inverts its main data line (A). (The control inputs of a CCNOT gate (B and C) can be connected to the same wire but the controlled wire (A) cannot be directly connected to either control.) CCNOT is complete, in the sense all boolean circuits can be constructed from it.

We will mainly be concerned with the controlled-controlled not (CCNOT, Toffoli) gate. Unless all of its control lines are true, the CCNOT gate passes all of its inputs directly to its outputs. However if they are all set, CCNOT inverts the controlled line. CCNOT is complete in the sense, given sufficient CCNOT gates and additional constant inputs and rubbish outputs, a reversible circuit equivalent to any Boolean function from inputs to outputs (excluding constants and rubbish) can be constructed. Since CCNOT can invert 1, the additional inputs can all be 1. Note a single CCNOT gate (plus a constant zero, e.g. provided by using another CCNOT gate to invert a one) can implement the identify function. In C code data[A] = (data[C] & data[B]) ^ data[A];

While it is not necessary for the number of lines set to true, to remain constant across the circuit from left to right, a reversible computer must implement a permutation. To explain what we mean by this, consider the left hand side (of  wires) as an  bit number. There are up to possible left hand patterns. Similarly there are up to possible right hand patterns. The computer provides a mapping from left hand number to right hand number. For the mapping to be reversible, its range and domain must be the same size and a number can only appear once on the right hand side (range), i.e. the mapping must be a permutation. If all possible numbers are used, only of the possible mappings are reversible. For large , this means only about 1 in mappings are permutations and hence are reversible.

The computation remains reversible up until the garbage bits are discarded. It is at this point that information is lost. It is the deletion of information which means the computation must consume energy and release it as heat. By carefully controlling the deletion of these rubbish bits, it has been suggested that reversible computers will require less energy than irreversible computers. Present day circuits do not approach the lower bound on energy consumption suggested by their irreversibility. I.e. they require much more energy to operate gates, drive connecting wires, etc. than the theoretical bound on energy consumption due to information lost as they run.

However in the near term, energy consumption is interesting both for ultra-low power consumption, e.g. solar powered computing, and also because the energy released inside the computing circuit has to be removed as heat. The only way heat is removed at present is by making the centre of the circuit hotter and allowing heat to diffuse down the temperature gradient to the cooler boundaries of the circuit. (Active heat pumps within the circuit have been considered. Electronic refrigerators could be based upon the Peltier electro thermodynamic effect). Even today cooling circuits is a limiting factor on their operation. Increasing circuit clock speeds, despite continued reduction in circuit size, mean heat removal will be an increasing concern.

[Bishop97] describes a single channel reversible system for a safety critical control application. By running the system forwards and then backwards and comparing the original inputs with those returned by traversing the system twice, he demonstrated the system was able to detect test errors injected into the system during its operation. (High reliability systems often use comparison between multiple channels to detect errors.)

3 Distribution of Large Reversible Circuits

As with a complete reversible circuit, the action of a single reversible gate across wires can be treated as a permutation mapping one  bit number to another. Following [langdon:fogp],[langdon:2002:crlp],[langdon:2002:foga], we can treat the sequence of permutations from the start of the circuit to its end as a sequence of state transitions. The state being the current permutation. We restrict ourselves to just those permutations which can be implemented, i.e. states that can be reached. Each gate changes the current permutation (state) to the next. We can describe the action of a gate by a square matrix of zeros and ones. Each row contains exactly one one. The position of the one indicates the permutation on the output of the gate for each permutation on the input side of the gate. (Note the matrix is row stochastic). Now each gate is reversible. I.e. given a permutation on its output side, there can only be one permutation on its input side. This means each column of the matrix also contains exactly one one. (I.e. the matrix is column as well as row stochastic, i.e. it is double stochastic). We will have multiple ways of connecting our gates or even multiple types of gate, however each matrix will be double stochastic and therefore so too will be the average matrix. Since we only consider implementable permutations, the average matrix is fully connected. If a single gate can implement the identity function, the matrix must have a non zero diagonal element. This suppresses cycling in the limit. If we choose gates at random, the sequence of permutations is also random. Since the next permutation depends only on the current permutation and the gate, the sequence of permutations is a Markov process. The Markov transition matrix is the average of each of the gate matrices, which is fully connected, acyclic and double stochastic. This means as the number of randomly chosen gates increases each of the Markov states becomes equally likely [feller:1957:ipta]. I.e. in the limit of large circuits each possible permutation is equally likely.

When there are many randomly connected gates and the total number of lines is large, not only is each possible permutation equally likely but (since our reversible gates are complete) all  bit output patterns are possible. Further we will assume that we can treat each output bit as being equally likely to be on as off and almost independent of the others. If fitness is defined by running the program on every input (i.e. running it times) and summing the number of output bits that match a target ( Hamming distance) then

follows the Binomial distribution

. This means most programs have a fitness near the average and the chance of finding a solution is . While small, this is finite, whereas with irreversible gates (and no write protection of inputs) almost all programs do not solve any non trivial problem [langdon:2002:foga].

We can also use the known uniform distribution to calculate the expected RMS error. Suppose

of the possible fitness cases are run, the expected average squared error is . Where is the total number of permutations, is the input for the test, required answer and is the permutation of . As we can approximate the average behaviour of over cases by over cases. So the expected average squared error is . If only a few tests with small values are run (i.e.  and ) then the expected root mean squared error is bounded by

On the other hand if exhaustive testing is carried out and the target values are uniformly spread in the range then and .

4 6 Multiplexor

The six multiplexor problem has often been used as a benchmark problem. Briefly the problem is to find a circuit which has two control lines (giving a total of four possible combinations) which are used to switch the output of the circuit to one of the four input lines, cf. Figure 3. The fitness of a circuit is the number () of times the actual output matches the output given by the truth table. Note fitness is given by number of bits in common between the actual truth table implemented by a program and a given truth table (Hamming distance).

Figure 3: Six way multiplexor. Only one of four data lines (D0, D1, D2 and D3) is enabled. Which one is determined by the two control lines (A0 and A1).

5 Density of 6 Multiplexor Solutions

We measured111 In all the six multiplexor experiments we used speed up techniques based on those described in [poli:1999:aigp3]. the distribution of fitness of randomly chosen CCNOT programs with 0, 1 and 6 additional wires at a variety of lengths, cf. Figures 510. These experiments confirm that there is a limiting fitness distribution and it is Binomial. Further, cf. Figure 9, the difference between the actual distribution and the limiting distribution falls rapidly with program length. Also we do not need many spare wires (one is sufficient) to be close to the theoretical wide circuit limit. Only without any spare lines does the limit differ from theory.

There are no CCNOT solutions to the six multiplexor problem with less than five gates. One of the smallest solution is shown in Figure 11. Notice this does not use any additional wires. While the multiplexor can be solved by CCNOT without additional storage, with six lines only even fitness scores are possible. This also means, even in the limit of long programs, there is a bias towards higher fitness, increasing the mean fitness from 32 to 32.5, cf. Figures 5, 5, 8 and 10.

It is clear that CCNOT has a nice bias for solving the six multiplexor problem. On average small circuits have above average fitness and in particular (at least with six lines) the chance of solving the problem is far higher for small programs than in the limit of large programs.

Figure 4:

Proportion of circuits composed of controlled-controlled-NOT (CCNOT, Toffoli) gates of each fitness on the 6 multiplexor problem. Solutions have fitness of 64. (At least 100 million random circuits tested for each length.) Since the only wires are those carrying the inputs (i.e. no additional memory) odd fitness values cannot be generated. To simplify the graph these are excluded.

Figure 5: Data as Figure 5. In Figure 5 the large circuit limit is approximated by a Normal distribution with mean 32.5. Here the Binomial distribution approximates the tails near fitness 0 and 64.

Figure 6: Convergence of 6 multiplexor fitness distribution as number of CCNOT gates is increased from 20 towards the large circuit limit (ringed parabola right hand end). (At least million random circuits tested for each length.) One additional memory (garbage) line ensures all output patterns can be implemented and in the large circuit limit are equally likely. I.e. the density of solutions is .

Figure 7: Distribution of fitness on the 6 multiplexor problem of circuits of CCNOT gates and with 12 lines.

Figure 8: The fitness distribution of small CCNOT circuits are asymmetric with mean near 40. As number of Toffoli gates is increased, both mean and standard deviation converge to theoretical binomial limits (32 and 4), except for circuits without spare wires, in which case the mean converges to 32.5.

Figure 9: Discrepancy between measured distribution of fitness on CCNOT 6 multiplexor problem and large circuit limit (calculated as total variation distance [rosenthal95convergence]). Rapid convergence to theoretical limit as program size increases is shown. We would expect more spare lines to mean bigger programs are needed for convergence. The plots are reminiscent of exponential decay shown for non reversible programs [langdon:2002:crlp] suggesting group theory might lead to results on the rate of convergence.

6 Hill Climbing and Evolutionary Solution of the Six Multiplexor Problem

Section 3 tells us how many solutions there are but not how easy they are to find. To investigate this we carried out hill climbing and population based search on the minimal circuit and a larger circuit. Our results are summarised in Table 1.

Configuration Hill climber Population
6 lines 5 CCNOT     0/ 10 4/ 10
12 lines 20 CCNOT 1/ 10 10/ 10
Table 1: Number of runs solving the six multiplexor problem

Firstly we compare random search with these two more sophisticated search techniques. Figure 10 shows the chance of solving the six multiplexor by random search of CCNOT circuits. From the first solutions composed of 5 gates and no spare lines, the chance rises from about to a peak of about at 10 gates, and then falls towards the theoretical (non zero) limit of as the circuit size increases. (No solutions were found in more than 10,000,000 trials with either one or six spare lines.)

Figure 10: Measured density of solutions on CCNOT 6 multiplexor problem. (Based on measurements of at least 100,000,000 random circuits of each length. In one million random samples at each length, with either one or six spare lines no solutions were found.)

A local hill climber was run ten times. It mutated exactly one CCNOT gate of the five in the six wire circuit and retained the mutant only if its fitness was better. In seven runs a fitness level of 56 was reached. In two of the seven runs the hill climber reached fitness 56 significantly222All significance tests in Section 6 use a 5% two tailed test. faster than random search could be expected to. In seven of the remaining runs there is no significant difference between the hill climber and random search. (However random search always has a chance of solving the problem. While the hill climber was stuck at local optima and could never proceed.) In the remaining run, the hill climber took significantly longer to reach fitness level 48.

Our hill climber found one solution in ten runs, when the number of CCNOT gates was increased to 20 and six spare lines were added. Six of the runs attained a score of 56, two runs 48 and the last 52. None of these nine runs first reached its final fitness level significantly faster or slower than random search might be expected to. Except again random search might improve, whereas the hill climber was stuck at local optima and could never proceed. (Each 20 CCNOT 12 wire program has or neighbours, so our hill climber will take on average no more than 4185 attempts to try them all, cf. The Coupon Collector’s problem [feller:1957:ipta, page 284]. All runs had many more trials than this.)

In contrast the search space turns out to be very friendly to evolutionary search. Using the same mutation operator and a population of 500 (see also Table 2) in four out of ten runs minimal solutions to the six multiplexor were found. (I.e. five CCNOT without spare wires). These solutions took between 20 and 100 generations. In the remaining six runs fitness level 56 was reached (in five cases significantly faster than random search). Introducing six spare wires and extending the circuits from five to 20 CCNOT makes the problem significantly easier. Ten out of ten runs (with the same population size etc.) found solutions. The solutions were found after 30–220 generations. This is significantly better than hill climbing and population search of the smaller circuit size.

Objective: Find a reversible function whose output is the same as the Boolean 6 multiplexor function
Inputs: D0 D1 D2 D3 A0 A1 (plus either 0 or 6 “true” constants)
Functions set: CCNOT
Fitness cases: All the combinations of the 6 Boolean arguments
Fitness: number of correct answers
Selection: Tournament group size of 7, non elitist, generational
Pop size: 500
Program size: 5 or 20 CCNOT (Toffoli) reversible gates
Parameters: 100% mutation (Exactly one CCNOT gate is randomly chosen. One of its three wires is chosen at random, and replaced by a randomly chosen, different, but legal, wire.)
Termination: fitness=64 or maximum number of generations G = 500
Table 2: Parameters for Multiplexor Problem

Figure 11: Example evolved minimal circuit (left) of controlled-controlled-NOT (CCNOT, Toffoli) gates implementing a six way multiplexor. Genetic representation on right. Two address lines direct one of the four data inputs to the output. Circles with crosses indicate controlled wire. Note there are no additional memory (garbage) lines and only five gates are required.

The effort [koza:book, page 194] required to find a non-minimal reversible solution to the six multiplexor using a population approach (87,000) is somewhat similar to that required by genetic programming to find a non-reversible one [koza:book, Table 25.2]. In other words, using CCNOT with spare lines has not been shown to be uncompetitive with existing approaches.

7 Discussion

It is important to realise the limiting distribution results hold in general for reversible computing. Not just for the six multiplexor or similar problems and for any reversible gate, not just the Toffoli (CCNOT) gate. An interesting extension would be quantum computing. Random matrices theory may give a formal bound on the size of circuits needed to approach the limiting distribution.

The benchmark can be solved with no spare wires. Indeed [ICALP::Toffoli1980, page 636] describes a set of gates for which no more than spare wires are needed for any finite reversible function. However allowing modest increases in the size of solution by allowing more gates and spare wires appears to make the fitness landscape more evolvable. I.e. easier for evolutionary search to find solutions. It is not clear whether additional gates or wires or both is primarily responsible. In our example at least, and we suggest perhaps to other problems, insisting upon minimal solutions rather than sufficient solutions, which may be bigger, makes the problem unnecessarily hard.

While NFL [ieee-ec:Wolpert+Macready:1997] applies to reversible computing, we expect evolutionary search also to be better than hill climbing and random search when used with other reversible gates, such as the Fredkin gate, on this and similar problems.

The number of programs or circuits of a given size increases exponentially with circuit size. Thus average behaviour across all programs is dominated by the behaviour of the longest programs. Almost all of these will behave as the limiting distribution suggest. Thus considering only the limiting distribution is sufficient to describe the vast majority of programs.

Where spare wires are included, for most programs, the Binomial distribution can be approximated by a Normal distribution with the same mean and variance. I.e. where fitness is given by a Hamming distance, the average fitness is

and the variance is . If we normalise fitness to the range , then the mean becomes 0.5 and the standard deviation is . Even with modest numbers of input and output wires, the Hamming fitness distribution becomes a needle, with almost all programs having near average fitness.

In non-trivial problems and rapidly become too large to allow exhaustive testing. However the limiting distribution still applies. In the limit the chance of a random program passing non-exhaustive testing is given by the number of bits which are checked. I.e. if tests are run and only a precision answer is needed, the chance of passing a test case is . The chance of passing all the test cases is . But note that, randomly passing the test cases gives no confidence that the program will generalise. If an additional independent test is added, the chance of randomly passing it is only [langdon:fogp]. In contrast general solutions have been evolved via limited numbers of test cases by genetic programming [langdon:book] suggesting GP has a useful bias for problems of interest.

8 Conclusions

Fitness function Mean Standard Deviation Perfect Solutions
Normalised Hamming
RMS (small T)
RMS (large no. tests)
Table 3: Distribution of Fitness of Large and Wide Reversible Circuits

As with traditional computing, as reversible circuits get bigger the distribution of their functionality converges to a limit. Therefore their fitness distribution must also tend to a limit. Table 3 summarises the limit (with many wires) for fitness functions based on Hamming distance and root mean error squared. In the limit, every implementable permutation is equally likely. Note, unlike traditional computing, in the limit there is a finite chance of finding a solution.

Experiments on the six multiplexor problem have found solutions, including minimal solutions, cf. Figure 11. These experiments suggest the fitness landscape is amenable to evolutionary search, particularly if non-minimal solutions are allowed. Which in turn suggests the use of variable length evolution. Performance with CCNOT (Toffoli) gates is similar to that of genetic programming with non reversible programs. Simple hill climbing is liable to become trapped at sub optima, particularly if constrained to search for minimal solutions.

We suggest that the common emphasis on minimal solutions is misplaced. These examples provide additional evidence that requiring tiny solutions hurts evolvability (and other search techniques). There may only be one smallest program but there are exponentially many larger solutions.

I would like to thank Tom Westerdale, Ralph Hartley, Tina Yu, Wolfgang Banzhaf, Joseph A. Driscoll, Jason Daida, Lee Spector and Tracy Williams. gp-bibliography,quantum-computing,references