4.1.4. Example for GAP usage with n ¼ 28

We define the permutations P00 to P27 via a C++ � program; see Appendix A. Using it like gap.out 28 > G28, its output, the file G28, is then read in by GAP.

Recall that, according to Stirling's formula, <sup>A</sup>2<sup>28</sup> has 228!=<sup>2</sup> <sup>≈</sup> <sup>2</sup><sup>28</sup>

with about 1 billion (10003) digits. Amazingly, GAP gets it done!

We give two realizations of the function byNine : x ↦ 9x mod 16 in Table 2.

transpositions. The final 24th step is almost identical to the whole function.

0xAB98EFDC67012345 <sup>1010</sup> <sup>1000</sup> 0xBA98FEDC76103254 0x0312C57E4DA98B6F <sup>0101</sup> <sup>0001</sup> 0x32107E5CF698BAD4 0x5243806B19FDCE7A <sup>1000</sup> <sup>1000</sup> 0x23016F4CE798ABD5 0xDA4B08639175CEF2 <sup>0001</sup> <sup>0001</sup> 0xAB89674CEF10235D 0xDB5A18729064CFE3 <sup>0010</sup> <sup>1010</sup> 0xBA89765CFE01324D 0xFB781A509246EDC3 <sup>0100</sup> <sup>0101</sup> 0x3021D4FE5CA9B867 0xBF7C5E14D206A983 <sup>1000</sup> <sup>0010</sup> 0x253491AB08FDEC76 0x37FCDE945A86210B <sup>0001</sup> <sup>0001</sup> 0x0736918B2ADFCE54 0x26ECDF954B87301A <sup>1010</sup> <sup>1010</sup> 0x1627908A3BDECF45 0x84CE751F632DBA90 <sup>0101</sup> <sup>0101</sup> 0x948D1A20B37CE56F 0xC18B604A7239EFD5 <sup>1010</sup> <sup>1010</sup> 0xD1C94F35E268B07A 0xE9234A60D8B1C57F <sup>0101</sup> <sup>0101</sup> 0x79E165BFC8423AD0 0xBD321F759CE4806A <sup>1010</sup> <sup>1010</sup> 0x6DB470EA8C132F95 0x37B895DF1EC62A40 <sup>0100</sup> <sup>0100</sup> 0x4736DAC02E9B851F 0x37FCD19B5A862E04 <sup>1000</sup> <sup>0010</sup> 0x07369E842ADFC15B 0xBF7C5913D206AE84 <sup>0100</sup> <sup>0101</sup> 0x25349CA608FDE17B 0xFB781D539246EAC0 <sup>0010</sup> <sup>1010</sup> 0x3021D8F75CA9B46E 0xDB5A1F739064C8E2 <sup>0001</sup> <sup>0001</sup> 0xBA89725DFE01364C 0xDA4B0E629175C8F3 <sup>1000</sup> <sup>1000</sup> 0xAB89634DEF10275C 0x52438E6A19FDC07B <sup>0101</sup> <sup>0001</sup> 0x23016B45E798AFDC 0x0312CB7F4DA9856E <sup>1010</sup> <sup>1000</sup> 0x32107A54F698BEDC 0xAB98E3D567012F4C <sup>0101</sup> <sup>0100</sup> 0xBA98F2D476103E5C

First realization in hexadecimal 1. Active cells 2. Active cells Second realization in hexadecimal

Observe that the first 23 steps only implement the permutation 08 ð Þð Þ 2A , consisting of two

0xFEDCBA9876543210 <sup>0101</sup> <sup>0100</sup> 0xFEDCBA9876543210 (Id)

0xFEDCB29076543A18 <sup>1000</sup> <sup>1000</sup> 0xFEDCB29076543A18 (08)(2A)

0x7E5C3A18F6D4B290 0x7E5C3A18F6D4B290

Table 2. Multiplication x ↦ 9x in Z=16Z.

4.2. Examples for bijective functions

4.2.1. Multiplication by 9 mod 16

e <sup>2</sup><sup>28</sup>

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

≈ 1010<sup>9</sup>

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

elements, a number

193

```
mjv@turing:/var/GAP$ gap -b -m 140G
gap> Runtime();Read("G28");Runtime();IsAlternatingGroup(G28);Runtime();
IsNaturalAlternatingGroup(G28);Runtime();
5592
1639756
true
8915688
true
8915688
gap>
```
Times are in milliseconds. Therefore, reading in the 56 GB of permutations P00 to P27 generating the group G28 took 1640 seconds, or about half an hour, while actually checking the resulting group for A2<sup>28</sup> took another 7280 seconds or 2 hours. The same procedure for G29 resulted in lack of memory; 140 GB of RAM are not sufficient.

Recall that, according to Stirling's formula, <sup>A</sup>2<sup>28</sup> has 228!=<sup>2</sup> <sup>≈</sup> <sup>2</sup><sup>28</sup> e <sup>2</sup><sup>28</sup> ≈ 1010<sup>9</sup> elements, a number with about 1 billion (10003) digits. Amazingly, GAP gets it done!

#### 4.2. Examples for bijective functions

#### 4.2.1. Multiplication by 9 mod 16

4.1.3. Example for GAP usage with n ¼ 5

(18,19)(22,23)(26,27)(30,31);

(20,22)(21,23)(24,26)(28,30)(29,31);

192 From Natural to Artificial Intelligence - Algorithms and Applications

(17,21)(24,28)(25,29)(26,30)(27,31); P03 := (32,8)(1,9)(2,10)(3,11)(16,24)

(7,23)(9,25)(11,27)(13,29)(15,31); G05 := Group(P00,P01,P02,P03,P04);

gap> IsNaturalAlternatingGroup(G05);

131565418466846765083609006080000000

P00 := (32,1)(2,3)(4,5)(6,7)(8,9)(10,11)(12,13)(14,15)

P01 := (32,2)(4,6)(5,7)(8,10)(12,14)(13,15)(16,18)

P02 := (32,4)(1,5)(8,12)(9,13)(10,14)(11,15)(16,20)

(17,25)(18,26)(19,27)(20,28)(21,29)(22,30)(23,31); P04 := (32,16)(1,17)(2,18)(3,19)(4,20)(5,21)(6,22)

gap.out 28 > G28, its output, the file G28, is then read in by GAP.

We define the permutations P00 to P27 via a C++ � program; see Appendix A. Using it like

gap> Runtime();Read("G28");Runtime();IsAlternatingGroup(G28);Runtime();

Times are in milliseconds. Therefore, reading in the 56 GB of permutations P00 to P27 generating the group G28 took 1640 seconds, or about half an hour, while actually checking the resulting group for A2<sup>28</sup> took another 7280 seconds or 2 hours. The same procedure for G29

mjv@Panda �/GAP \$cat G5

mjv@Panda �/GAP \$gap -b

Here, 1:315… � <sup>10</sup><sup>35</sup> <sup>¼</sup> <sup>32</sup>!=2.

4.1.4. Example for GAP usage with n ¼ 28

mjv@turing:/var/GAP\$ gap -b -m 140G

IsNaturalAlternatingGroup(G28);Runtime();

resulted in lack of memory; 140 GB of RAM are not sufficient.

gap> Read("G5");

gap> Size(G05);

gap> quit;

true

5592 1639756 true 8915688 true 8915688 gap>

We give two realizations of the function byNine : x ↦ 9x mod 16 in Table 2.

Observe that the first 23 steps only implement the permutation 08 ð Þð Þ 2A , consisting of two transpositions. The final 24th step is almost identical to the whole function.


Table 2. Multiplication x ↦ 9x in Z=16Z.


4.2.2. Exponentiation and logarithm in F<sup>17</sup>

FEDCBA9876543210 ! …

… !62C478E0BF5DA931

5. Non-bijective functions

Table 3.

Example.

s ¼ 0110.

v ↦ ECA-570�<sup>00</sup>ð Þ v

Identifying 16 with 0b0000, we can map F<sup>∗</sup>

1000, 0100, 1000, 0101, 1010, 0101, 1010, 0001].

0001, 1000, 0101, 1000, 0100, 1000, 0100, 1010, 0100, 1010]

5.1. Non-bijective global rules and in-degree distributions

smaller than the full 24 by 2 or by a factor 7/8 in general.

patterns of the range are not met at all (0,1).

We have the following in-degree distribution (loss pattern 4 of [[10], Table 8]):

<sup>17</sup> to 0f g ; <sup>1</sup> <sup>4</sup>

sð Þ <sup>1</sup>;…;<sup>24</sup> = [0001, 1010, 0101, 1010, 0101, 1000, 0100, 1000, 0001, 1000, 0100, 1010, 0100, 1010,

The inverse function <sup>x</sup> <sup>↦</sup> log <sup>3</sup>ð Þ<sup>x</sup> is therefore computed by the inverse update sequence <sup>s</sup>ð Þ <sup>1</sup>;…;<sup>24</sup> = [1010, 0100, 1010, 0100, 1000, 0100, 1000, 0101, 1000, 0001, 1010, 0100, 1010, 0100, 1000, 0001,

In Section 2.2, we have said that, in order to ensure bijectivity, we must first have a locally bijective CA, and furthermore, no two adjacent cells may fire simultaneously. Here is why:

We start with the effect of AS <sup>i</sup> = "�" for the locally bijective ECA-57. We consider four adjacent cells and the effect of � between the two middle cells, which are thus updated simultaneously,

 ↦ 0110 0001 ↦ 0101 1000 ↦ 1110 1001 ↦ 1101 ↦ 0000 0011 ↦ 0011 1010 ↦ 1100 1011 ↦ 1111 ↦ 0010 0101 ↦ 0011 1100 ↦ 1010 1101 ↦ 1011 ↦ 0100 0111 ↦ 0101 1110 ↦ 1000 1111 ↦ 1001 We obtain the patterns 0011 and 0101 twice, while missing 0001 and 0111. Hence the image is

#(domain) #(range) In-degree Distribution φ 12 12 1 φð Þ¼ 1 12 4 22 φð Þ¼ 2 2 0 20 φð Þ¼ 0 2

Twelve patterns map bijectively (1,1) to 12 patterns, 4 patterns map 2:1 to 2 patterns, while 2

. Here is the exponentiation x ↦ 3<sup>x</sup>

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

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

; see

195

Table 3. Exponentiation x ↦ 3<sup>x</sup> in F17.

Hence byNine ¼(19)(3B)(5D)(7F) = [(08)(2A)][(08)(19)(2A)(3B)(5D)(7F)], where the first bracket requires 23 steps, and the second is the elementary rule 1000 (only the leftmost cell is active). The difference between the two realizations (sequences sð Þ <sup>1</sup>;…;<sup>24</sup> in hex), where the outer parentheses are inverses of each other and the inner part is self-inverse, and their difference:

1.: (5A581248)1(A5A5A)4(842185A5)8 Diff 124–81A——-A18–421- 2.: (48181A52)1(A5A5A)4(25A18184)8 4.2.2. Exponentiation and logarithm in F<sup>17</sup>

Identifying 16 with 0b0000, we can map F<sup>∗</sup> <sup>17</sup> to 0f g ; <sup>1</sup> <sup>4</sup> . Here is the exponentiation x ↦ 3<sup>x</sup> ; see Table 3.

FEDCBA9876543210 ! … sð Þ <sup>1</sup>;…;<sup>24</sup> = [0001, 1010, 0101, 1010, 0101, 1000, 0100, 1000, 0001, 1000, 0100, 1010, 0100, 1010, 0001, 1000, 0101, 1000, 0100, 1000, 0100, 1010, 0100, 1010] … !62C478E0BF5DA931

The inverse function <sup>x</sup> <sup>↦</sup> log <sup>3</sup>ð Þ<sup>x</sup> is therefore computed by the inverse update sequence <sup>s</sup>ð Þ <sup>1</sup>;…;<sup>24</sup> = [1010, 0100, 1010, 0100, 1000, 0100, 1000, 0101, 1000, 0001, 1010, 0100, 1010, 0100, 1000, 0001, 1000, 0100, 1000, 0101, 1010, 0101, 1010, 0001].
