Proof.

ð Þi is required for and then ensures bijectivity.

If s ð Þ t�1 <sup>k</sup> was active, both s ð Þ t�1 <sup>k</sup> and s ð Þt <sup>k</sup> could be removed, since each single-location action is an involution. Thus ð Þii is required.

If s ð Þ t�1 <sup>k</sup>�<sup>1</sup> and <sup>s</sup> ð Þ t�1 <sup>k</sup>þ<sup>1</sup> were both inactive, the active cell <sup>s</sup> ð Þt <sup>k</sup> could be moved to s ð Þ t�1 <sup>k</sup> , maintaining bijectivity. Hence ð Þ iii is required. □

Using this lemma, we now can compute an upper bound on the number of bijective functions realizable with t update steps: We define a matrix A with rows and columns indexed by the bijective elementary update rules, here named sð Þ1 , sð Þ2 , …. Set aij ≔ 1, if rule s ið Þ followed by rule s jð Þ is efficient, aij ≔ 0 otherwise.

Let λð Þ n be the largest eigenvalue of A.


#### Example

Observe that 10,100 followed by 00001 is efficient, while the other way round 00001 leaves room to move s ð Þ2 <sup>2</sup> up to s ð Þ1 <sup>2</sup> . Hence, A is not symmetrical for n ≥ 5.

In Table 6, we denote several figures describing the number of efficient bijective update schemes (including unfair ones). The number of rules is denoted by #S nð Þ; it can be found as A001610 in OEIS [18]; see also Section 2.2.2. The number of nonzero entries in the matrix A is #A nð Þ. The quotient #A nð Þ/#S nð Þ is the average number of 1's in each row/column.

We denote by #nð Þt the number of effective bijective update schemes of length t on a torus of size <sup>n</sup>. Essentially, #nðÞ¼ <sup>t</sup> <sup>Θ</sup> <sup>λ</sup>ð Þ <sup>n</sup> <sup>t</sup> .

Let <sup>r</sup>ð Þ¼ <sup>n</sup> lim<sup>t</sup>!<sup>∞</sup> #nð Þ<sup>t</sup> <sup>λ</sup>ð Þ <sup>n</sup> <sup>t</sup>. Then <sup>r</sup>ð Þ <sup>n</sup> gives the constant hidden in the Landau symbol <sup>Θ</sup>.

We have #nð Þ<sup>t</sup> <sup>=</sup> <sup>λ</sup>ð Þ <sup>n</sup> <sup>t</sup> � <sup>r</sup>ð Þ <sup>n</sup> ! 1.

Finally,

$$T(n) = \log\_{\Lambda(n)}(2^n!/(2 \cdot \rho(n)))$$

T nð Þ¼ <sup>2</sup>:<sup>4</sup> � <sup>2</sup><sup>n</sup> � ð Þ <sup>1</sup> <sup>þ</sup> <sup>o</sup>ð Þ<sup>1</sup> :

#S nð Þ j k <sup>λ</sup>ð Þ <sup>n</sup> <sup>r</sup>ð Þ <sup>n</sup> ⌊log(|A2n|)⌉ ⌊T(n)⌉

Hard, firm, soft … Etherealware: Computing by Temporal Order of Clocking

http://dx.doi.org/10.5772/intechopen.80432

201

3 3 6 2 2.000 1.500 10 14 4 6 18 3 3.000 2.000 30 27 5 10 40 4 3.732 2.887 81 61 6 17 98 5 5.000 4.000 204 126 7 28 224 8 6.236 6.261 495 270 8 46 514 11 8.522 7.044 1166 544 9 75 1158 15 10.697 11.581 2685 1132 10 122 2602 21 14.599 11.142 6077 2266 11 198 5808 29 18.288 20.464 13,571 4668 12 321 12,930 40 24.941 17.141 29,978 9319 13 520 28,704 55 31.253 35.107 65,630 19,065 14 842 63,618 75 42.634 25.696 142,612 38,002 15 1363 140,806 103 53.426 58.716 307,933 77,402 16 2206 311,362 141 72.878 37.982 661,287 154,189 17 3570 688,024 192 91.321 96.473 1.413e + 06 313,092 18 5777 1,519,586 263 124.571 55.699 3.008e + 06 623,547 19 9348 3,354,944 358 156.098 156.314 6.380e + 06 1.26e + 06 20 15,126 7,405,058 489 212.932 81.313 1.348e + 07 2.51e + 06 21 24,475 16,341,254 667 266.822 250.502 2.842e + 07 5.08e + 06 22 39,602 36,056,154 910 363.969 118.336 5.976e + 07 1.01e + 07 23 64,078 79,547,616 1241 456.085 397.758 1.253e + 08 2.04e + 07 24 103,681 175,485,442 1692 622.138 171.942 2.623e + 08 4.07e + 07

We can compare the asymptotic number T nð Þ of elementary steps necessary for unfair update

log 2<sup>n</sup> ð Þ! <sup>=</sup> log 2<sup>n</sup> d e ð Þ � <sup>2</sup> <sup>¼</sup> <sup>2</sup><sup>n</sup> <sup>þ</sup> <sup>O</sup>ð Þ<sup>1</sup>

Remarkably, as far as the experimental results for n ≤ 24 indicate, the number T nð Þ of elementary steps is only a constant factor ( ≈ 2:4) higher than the lower bound for full update steps.

rules with the lower bound on the (full) steps for fair rules.

There are clocking-computable bijective functions that require at least

Lemma 4 ([10], Section 5, Lemma 1(i)).

Table 6. Efficiency related values for n ¼ 3, …, 24.

n #S nð Þ #A nð Þ #A nð Þ

steps or evaluations per cell.

is the number of steps necessary such that #nð Þ T nð Þ <sup>≈</sup> <sup>∣</sup>A2<sup>n</sup> <sup>∣</sup> <sup>¼</sup> <sup>2</sup><sup>n</sup>!=2. Invoking the birthday paradox by the meet-in-the-middle approach, we therefore expect to require T nð Þ=2 steps each, starting from the initial identity permutation and backwards from the desired function, to achieve a match yielding the function evaluation.

The asymptotic behavior, as far as we can infer from the range n ¼ 3, …, 24, is

$$\#\mathcal{S}(n) = \Theta(\boldsymbol{\varphi}^n)\_\prime \,\boldsymbol{\varphi} = 1.618... $$

$$\lambda(n) = \Theta(1.3^n)$$

Hard, firm, soft … Etherealware: Computing by Temporal Order of Clocking http://dx.doi.org/10.5772/intechopen.80432 201


Table 6. Efficiency related values for n ¼ 3, …, 24.

Example

room to move s

ð Þ2 <sup>2</sup> up to s

size <sup>n</sup>. Essentially, #nðÞ¼ <sup>t</sup> <sup>Θ</sup> <sup>λ</sup>ð Þ <sup>n</sup> <sup>t</sup> .

We have #nð Þ<sup>t</sup> <sup>=</sup> <sup>λ</sup>ð Þ <sup>n</sup> <sup>t</sup> � <sup>r</sup>ð Þ <sup>n</sup> ! 1.

achieve a match yielding the function evaluation.

Let <sup>r</sup>ð Þ¼ <sup>n</sup> lim<sup>t</sup>!<sup>∞</sup> #nð Þ<sup>t</sup>

Finally,

ð Þ1

Aij for n ¼ 5:

200 From Natural to Artificial Intelligence - Algorithms and Applications

s ið Þ\s jð Þ sð Þ1 sð Þ2 sð Þ3 sð Þ4 sð Þ5 sð Þ6 sð Þ7 sð Þ8 sð Þ9 sð Þ 10 sð Þ1 = 00001 0100000110 sð Þ2 = 00010 1011000000 sð Þ3 = 00100 0100101000 sð Þ4 = 00101 0100101110 sð Þ5 = 01000 0010000101 sð Þ6 = 01001 0110000111 sð Þ7 = 01010 1011000101 sð Þ8 = 10,000 1000110000 sð Þ9 = 10,010 1011110000 sð Þ 10 = 10,100 1100111000

Observe that 10,100 followed by 00001 is efficient, while the other way round 00001 leaves

In Table 6, we denote several figures describing the number of efficient bijective update schemes (including unfair ones). The number of rules is denoted by #S nð Þ; it can be found as A001610 in OEIS [18]; see also Section 2.2.2. The number of nonzero entries in the matrix A is

We denote by #nð Þt the number of effective bijective update schemes of length t on a torus of

T nð Þ¼ log <sup>λ</sup>ð Þ <sup>n</sup> <sup>2</sup><sup>n</sup> ð Þ !=ð Þ <sup>2</sup> � <sup>r</sup>ð Þ <sup>n</sup>

is the number of steps necessary such that #nð Þ T nð Þ <sup>≈</sup> <sup>∣</sup>A2<sup>n</sup> <sup>∣</sup> <sup>¼</sup> <sup>2</sup><sup>n</sup>!=2. Invoking the birthday paradox by the meet-in-the-middle approach, we therefore expect to require T nð Þ=2 steps each, starting from the initial identity permutation and backwards from the desired function, to

#S nð Þ¼ <sup>Θ</sup> <sup>φ</sup><sup>n</sup> ð Þ,<sup>φ</sup> <sup>¼</sup> <sup>1</sup>:618…

<sup>λ</sup>ð Þ¼ <sup>n</sup> <sup>Θ</sup> <sup>1</sup>:3<sup>n</sup> ð Þ

The asymptotic behavior, as far as we can infer from the range n ¼ 3, …, 24, is

<sup>λ</sup>ð Þ <sup>n</sup> <sup>t</sup>. Then <sup>r</sup>ð Þ <sup>n</sup> gives the constant hidden in the Landau symbol <sup>Θ</sup>.

<sup>2</sup> . Hence, A is not symmetrical for n ≥ 5.

#A nð Þ. The quotient #A nð Þ/#S nð Þ is the average number of 1's in each row/column.

T nð Þ¼ <sup>2</sup>:<sup>4</sup> � <sup>2</sup><sup>n</sup> � ð Þ <sup>1</sup> <sup>þ</sup> <sup>o</sup>ð Þ<sup>1</sup> :

We can compare the asymptotic number T nð Þ of elementary steps necessary for unfair update rules with the lower bound on the (full) steps for fair rules.

Lemma 4 ([10], Section 5, Lemma 1(i)).

There are clocking-computable bijective functions that require at least

$$
\lceil \log \left( 2^n! \right) / \log \left( 2^n - 2 \right) \rceil = 2^n + O(1)
$$

steps or evaluations per cell.

Remarkably, as far as the experimental results for n ≤ 24 indicate, the number T nð Þ of elementary steps is only a constant factor ( ≈ 2:4) higher than the lower bound for full update steps. If that result remains valid for all n ∈ N, and the reported values strongly suggest this, this would mean that the typical full step can be replaced by no more than 2..3 elementary unfair steps, independent of n.

long long ix;

ix++;

cout << ";" << endl;

ix++;

cout << ";" << endl;

for (int n = 1; n < N; n++) {

cout << ");" << endl;

} }

} // n

}

}

long long En = 1LL<<n;

} }

ix = 0;

cout << "P00˽:=˽(" << (1LL<<N) << ",1)"; ix = 0; // rightmost cell active, n=0 for (long long i = 1; i < EN; i++) {

if (((i ^ 1LL) > i) (((5LL<<(N-1LL))

if ((ix%6LL) == 0) {cout << endl ;}

for (long long n = 1; n < N; n++) { // active cell/bit

for (long long i = 1; i < EN; i++) // all 2^N patterns

cout << "(" << i << "," << (i^En) << ")";

<< (char) (0x30+(N%10)) << "˽:=˽Group(P00" ;

<< (char) (0x30+(N/10)%10)) << " ); " << endl ;

<< (char) (0x30+(N%10)) << " ); " << endl ; cout << "#Size(G"<< (char) (0x30+((N/10)%10)) << (char) (0x30+(N%10)) << " ); " << endl ;

cout << ",P" << (char) (0x30+((n/10)%10)) << (char) (0x30+(n%10));

//remainder, what to put interactively in GAP, no use as part of file cout << "#IsNaturalAlternatingGroup(G"<< (char) (0x30+((N/10)

cout << "#IsNaturalSymmetricGroup(G"<< (char) (0x30+((N/10) %10))

if ((ix%6LL) == 0) {cout << endl ;}

if (((i ^ En) > i) && (((0x5LL<<(n-1LL)) & (i ^ (i<<N)))

cout << "P" << (char) (0x30+((n/10)%10)) << (char) (0x30+(n%10)) << "˽:=˽(" << (1LL<<N) << "," << (1LL<<n) << ")";

!= (1LL<<(n-1LL)))) {

cout << "G" << (char) (0x30+((N/10)%10))

& (i ^ (i<<N))) != (1LL<<(N-1LL)))) { cout << "(" << i << "," << (i^1LL) << ")";

Hard, firm, soft … Etherealware: Computing by Temporal Order of Clocking

http://dx.doi.org/10.5772/intechopen.80432

203

As can be appreciated, n ¼ 5 might be feasible for an attack by meet-in-the-middle, but n ¼ 6 and above is certainly no candidate for this brute-force approach. Dealing with these sizes will require a more intelligent approach, for instance using group-theoretic techniques like representation theory, applied to the alternating group.
