tag:blogger.com,1999:blog-88989470950556505042024-03-13T09:42:55.276-07:00Fourier LifeSean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.comBlogger14125tag:blogger.com,1999:blog-8898947095055650504.post-11961888108508772832014-01-22T08:12:00.001-08:002014-01-23T07:10:31.234-08:00Implications for the Origin of Life<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: 16px;">Finding simple systems which spontaneously generate self-replicating groups of cells from a random soup seems to have implications for the Origin of Life on Earth. This post explores those implications.</span><br />
<span style="font-size: 16px;"><br /></span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<strong><span style="color: purple; font-size: 20px;">Theories on the Origin of Life</span></strong></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Wikipedia has a good summary on <a href="http://en.wikipedia.org/wiki/Abiogenesis" style="color: #0000a0;" target="_blank">abiogenesis</a>, or the Origin of Life, and talkorigins.org also has <a href="http://www.talkorigins.org/faqs/abioprob/originoflife.html" style="color: #0000a0;" target="_blank">a good summary</a>. One of the prevalent theories is the <a href="http://en.wikipedia.org/wiki/RNA_world_hypothesis" style="color: #0000a0;" target="_blank">RNA World</a> where the first self-replicating forms were RNA molecules that could catalyze the formation of more copies of themselves. This idea is conceptually simple, but it would be extremely rare that one of these molecules could form spontaneously (fortunately, life had millions--and perhaps billions--of years to originate).</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
But what if the first cells had a collection of simpler molecules that <em>in combination</em> could replicate themselves. This set of molecules is known as an <a href="http://en.wikipedia.org/wiki/Autocatalytic_set" style="color: #0000a0;" target="_blank">Autocatalytic Set</a>. And this is how modern cells replicate themselves, although the current system contains roughly a million molecules and includes DNA as the library from which all other molecules are made. <span style="font-size: 16px;">Even a simpler autocatalytic set of a few dozen molecules would necessarily involve a complex process with many interactions. Aren't the chances of finding an autocatalytic set of simpler molecules just as unlikely as finding a self-replicating RNA molecule? Perhaps not! The emergent self-replicating systems presented on this website may provide support for the Autocatalytic-Set hypothesis.</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<strong><span style="color: purple; font-size: 20px;">Cellular Automata and Autocatalytic Sets</span></strong></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Consider this analogy:</div>
<ul style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<li>Each cell (either filled for empty) in the grid is a molecule</li>
<li>Each unique cell state (empty/filled & number of neighbors) corresponds to a different type of molecule (even though they are represented by only two colors)</li>
<li>Each iteration in the cellular automata corresponds to the molecules doing a reaction whereby they can change into other molecules (i.e. change state)</li>
</ul>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
When we run one of the cellular automata systems with emergent self-replication, a pattern of cells ends up replicating itself, although not every type of cell is present at all times. This corresponds to a set of molecules replicating itself, even though all types of molecules are not present at the same time.<br />
<br />
Let's consider an example. At iteration 3 below (the fourth frame), there are two patterns each with the following types of filled cells (n=neighbors): 1x1n, 2x2n, 1x3n and the following empty cells (excluding ones with 0 neighbors): 8x1n, 6x2n, 1x4n. But at iteration 4, there are two patterns with these filled cells: 1x0n, 2x1n, 3x2n and these empty cells: 12x1n, 9x2n, 2x3n, 1x4n. The set of cell types has changed dramatically in a seemingly non-productive way. However, the cell types keep changing until we get to iteration 15 where the group of cells at iteration 3 has replicated itself! Thus, the exact number of the different cell types at iteration 3 had doubled (at the expense of the empty 0-neighbor cells), and this process continues with each replication period. Throughout the process, the "autocatalytic set" of cell types replicates itself, but in a messy process involving many intermediate steps, and it is difficult to see the process when viewed at the cell-type level. This is very similar to what we see with molecules in living cells today.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm5nXLtpt8ttFLkRKA3Z9GW-E5fsilnOAaecca4TavL80Okoj-pDFVhVkRSPURL2wToforJdqhFqGVDmLB6wgYmwDlGzWZI9s76tmMAI7jsAEaGemztq5h5hHA78GFUJxCeiAk0C0A4V4/s1600/original_16_frames.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhm5nXLtpt8ttFLkRKA3Z9GW-E5fsilnOAaecca4TavL80Okoj-pDFVhVkRSPURL2wToforJdqhFqGVDmLB6wgYmwDlGzWZI9s76tmMAI7jsAEaGemztq5h5hHA78GFUJxCeiAk0C0A4V4/s1600/original_16_frames.gif" height="159" width="640" /></a></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: 16px;">More than a hundred different emergent self-replicating rule-sets have been found in simple cellular automata systems using the</span><span style="font-size: 16px;"> </span><a href="http://fourierlife.blogspot.com/2014/01/the-solution-fourier-transform.html" target="_blank">Fourier Transform method</a><span style="font-size: 16px;">. If the analogy above is correct, the soup of actual prebiotic molecules may also have many possible combinations which create autocatalytic sets. Perhaps the Fourier Transform method can be applied to finding such sets in computer simulations.</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<strong><span style="color: purple; font-size: 20px;">My Favorite Theory on the Origin of Life</span></strong></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
I like the paper by Hordijk, Hein and Steel entitled <a href="http://www.mdpi.com/1099-4300/12/7/1733/pdf" style="color: #0000a0;" target="_blank">Autocatalytic Sets and the Origin of Life</a>. They present a convincing argument that life may have started with autocatalytic sets. They also point out that if the set was contained inside a liposome which would allow food substrates to enter, the first cell could have been born.<br />
<br />
I'll add to the theory above that if the autocatalytic set also included the machinery to make the liposome lipids, the whole system could replicate itself. <span style="font-size: 16px;">Perhaps the primordial soup contained catalytic molecules which could carry out various catalytic reactions, including the ones necessary to extend aliphatic carbon chains to make lipids. Once the lipid concentrations are high enough (either through synthesis or concentration by evaporation), liposomes would form with random combinations of molecules trapped inside. If just one of these new lipsomes contained an autocatalytic set--including the ability to make more lipid molecules--the cell would continue to grow. New lipid molecules would become integrated into the liposome and when it became big enough, it would automatically divide. Each new liposome would (in most cases) contain the autocatalytic set of molecules and the process would start again. If this is indeed the process which occurred, this would then be the moment when life began.</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com1tag:blogger.com,1999:blog-8898947095055650504.post-58576184081655469812014-01-22T07:44:00.002-08:002014-01-23T08:05:38.784-08:00Cellular Automata Systems<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: 16px;">This post explains the cellular automata systems I've explored (each can be selected from the Cellular Automata System dropdown box above). </span><span style="font-size: 16px;">All but the simplest system explored have produced self-replicating creatures which appear spontaneously from a random field of cells.</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<table border="0" cellpadding="5" cellspacing="0" id="tb-right" style="border: 1px; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 12pt; width: 100%px;"><tbody>
<tr><td><u>System</u></td><td><u># of Rules</u></td><td><u>Emergent Self-Replicators</u></td></tr>
<tr><td>A. 2-State: Alternating Rules</td><td>2<sup>32</sup></td><td> yes</td></tr>
<tr><td>B. 2-State: Edge & Corner Combinations </td><td>2<sup>48</sup></td><td> yes</td></tr>
<tr><td>C. 3-State: Sum of All Edge States</td><td>3<sup>24</sup> (~2<sup>38</sup>)</td><td> yes</td></tr>
<tr><td>D. 2-State: From Pattern (Conway-Like)</td><td>2<sup>16</sup></td><td> no (yes from pattern)</td></tr>
</tbody></table>
<br />
<div style="background-color: white; color: #0000a0;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: purple; font-size: 20px;"><strong>A. 2-State: Alternating Rules</strong></span></span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: medium;"></span>This was the system in which the first emergent self-replicator was found <b>(Sytem A, Rule 1)</b>. The system uses the <a href="http://www.conwaylife.com/wiki/Moore_neighbourhood" target="_blank">Moore neighborhood</a> and simply counts the total number of neighbors. However, unlike Conway's Life which uses the same rules for every iteration, my system alternates between two different rules. I found many self-replicating rules, but gave up on this system when I realized it isn't a local cellular automata, i.e. each cell needs not only the number of neighbors but also which generation the whole world is on.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: purple; font-size: 20px;"><strong>B. 2-State: Edge & Corner Combinations</strong></span></span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
After abandoning the "2-State: Alternating Rules" system, I looked extensively in the 2-State, Moore neighborhood with just one rule for every iteration but didn't find anything. I thought having more possible rules might help. I decided to count the edge (E) and corner (C) neighbors separately and treat <i>each</i> <i>combination</i> of edge and corner neighbors as a Born/Survive rule. This new system had many more possible rules to explore (2^48 vs. 2^16), and I did find emergent self-replicators in it!<br />
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Below is the rule code for the Fourth of July rule <b>(System B, Rule 1)</b>. The code is shown both as a written list of Born/Survive states and in a graphical view I created in my original Visual Basic 6 program. The first entry (Rule-Born (E|C): 0|2) means that a cell is born into an empty cell if that cell has a combination of 0 edge neighbors and 2 corner neighbors.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Rule-Born (E|C): 0|2, 0|3, 1|4, 2|0, 2|3, 2|4, 3|2, 3|4, 4|0, 4|3, 4|4</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Rule-Survive (E|C): 0|1, 1|2, 1|3, 1|4, 2|0, 2|4, 3|0, 3|2, 3|3, 4|4</div>
<div align="center" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsifUPsMhSBfbtoQD3Vff5XZti1wcNLCbaWGxcdtUSwog0NRHzm7JFEM_7uJX6mOb8cDtVyfttJiGGidopXrsqQfyED_vQR_UdoM8J1yEOBWGPU5KkSfkL06gppU-r2l9WILFW9NbaW1k/s1600/2S-ec_example.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsifUPsMhSBfbtoQD3Vff5XZti1wcNLCbaWGxcdtUSwog0NRHzm7JFEM_7uJX6mOb8cDtVyfttJiGGidopXrsqQfyED_vQR_UdoM8J1yEOBWGPU5KkSfkL06gppU-r2l9WILFW9NbaW1k/s1600/2S-ec_example.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-size: 16px;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: purple; font-size: medium;"><strong><br /></strong></span></span></div>
<div style="background-color: white; color: #0000a0;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: purple; font-size: 20px;"><strong>C. 3-State: Sum of All Edge States</strong></span></span></div>
<div style="background-color: white; color: #0000a0; font-size: 16px;">
<span style="font-family: Tahoma, arial, verdana; font-size: 16px;">Once I had found self-replicating rules in the 2-State system, I was interested in exploring other systems. The simplest 3-state system is to simply take the sum of the states (0, 1 or 2) of the edge neighbors (the </span><a href="http://www.conwaylife.com/wiki/Von_Neumann_neighborhood" style="font-family: Tahoma, arial, verdana; font-size: 16px;" target="_blank">von Neumann neighborhood</a><span style="font-family: Tahoma, arial, verdana; font-size: 16px;">). The range of values for any cell with at least one neighbor is 1 to 8 (the maximum has all four edge neighbors in state 2).</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Below is the rule code for Game of Jacks <b>(System C, Rule 2)</b>, both written out and in the visual representation from my Visual Basic 6 program. The 'N' refers to the neighbor sum and 'S' refers to the state that cell will be changed into (either 1 or 2 because state 0 is the empty cell). For example, the first rule (Rule-Born (N|S): 1|2) means that a cell will be born if the sum of neighbors is 1 and that cell will be born as state = 2. The last rule (Rule-State2 (N|S): 8|2) means that if a cell currently in state 2 has a neighbor sum of 8 it will be set to state 2 in the next iteration (i.e. stay as state 2).</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Rule-Born (N|S): 1|2</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Rule-State1 (N|S): 1|1, 3|1, 4|2, 6|1, 8|2</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Rule-State2 (N|S): 1|1, 3|1, 4|1, 8|2</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8kSsCrekd2kxNcfPPSG3fLSJyoTGOkiHl9DMCeBYp1v1YB-7ZAkPwVKm-1yTj9Ie4z5kbzJzwyRFixEdCk97LQqJu9XyPYfIaIX0LwW_-VpT52gstCb_maYq2G6e3yMy-3KwicQ9mMPw/s1600/3S-tot_example.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8kSsCrekd2kxNcfPPSG3fLSJyoTGOkiHl9DMCeBYp1v1YB-7ZAkPwVKm-1yTj9Ie4z5kbzJzwyRFixEdCk97LQqJu9XyPYfIaIX0LwW_-VpT52gstCb_maYq2G6e3yMy-3KwicQ9mMPw/s1600/3S-tot_example.jpg" /></a></div>
<div align="center" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br />
<div style="background-color: white; color: #0000a0;">
<div style="text-align: left;">
<span style="font-family: Arial, Helvetica, sans-serif;"><span style="color: purple; font-size: 20px;"><strong>D. 2-State: From Pattern (Conway-Like)</strong></span></span></div>
</div>
<div style="-webkit-text-stroke-width: 0px; background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: auto; text-align: start; text-indent: 0px; text-transform: none; white-space: normal; widows: auto; word-spacing: 0px;">
<div style="margin: 0px;">
Self-replicators have been described previously for simple Conway-Like systems by D. Eppstein on his <a href="http://www.ics.uci.edu/~eppstein/ca/replicators/" style="color: #0000a0;" target="_blank">Cellular Automata: Replicators</a> page, but none emerge spontaneously from a small, random field of cells (or if they do, it is quite rare). I found most of the self-replicators described by Eppstein by starting from a small group of cells, iterating for 512 generations, and then applying the <a href="http://fourierlife.blogspot.com/2014/01/the-solution-fourier-transform.html">Fourier Transform method</a> to detect self-replicators. So far, I have not found any new ones. I looked extensively in the rule for Conway's Life (B3/S23) but, as Eppstein also noted, no self-replicating patterns were discovered.<br />
<br />
I don't consider this last set of self-replicators to be examples of <a href="http://fourierlife.blogspot.com/2014/01/what-is-fourier-life.html">Fourier Life</a> because they do not emerge spontaneously. But I include them here because the Fourier Transform method can detect them, and because they're interesting!<br />
<br /></div>
<div style="margin: 0px;">
<br /></div>
</div>
</div>
Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-60191387703496166272014-01-21T07:36:00.001-08:002014-01-25T08:08:28.427-08:00Self-Replicating Creatures<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: 16px;">The self-replicating "creatures" come in three varieties (1D, x4 and sp), as indicated in parentheses after each Rule in the drop-down list above. This post describes some of the more interesting "creatures" discovered in the Fourier Life systems explored so far.</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: 16px;"><br /></span></div>
<strong style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">1D</strong><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;"> </span><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">- Creatures which replicate along a one-dimensional line</span><br />
<div>
<ul>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">These are by far the most common type found</span></li>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">They can appear as filled cells against an empty background as in Traffic <b>(System B, Rule 15)</b> or empty cells against a filled background as in Nighttime Traffic <b>(System B, Rules 16)</b></span></li>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">Sometimes the 1D creatures compete with others creatures, such as <a href="http://www.conwaylife.com/wiki/Wickstretcher" target="_blank">wick-stretchers</a> in Qix! <b>(System C, Rule 4)</b>, splitters in Butterflies vs Centipedes <b>(System C, Rule 6)</b> or four-fold replicators in Population Control <b>(System C, Rule 9)</b></span></li>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">The most interesting 1D replicators are ones where the line along which they replicate moves, either diagonally <b>(System C, Rule 9)</b> or horizontal/vertical <b>(System C, Rule 10)</b></span></li>
</ul>
<span style="color: #0000a0; font-family: Tahoma, arial, verdana;"><br /></span><strong style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">x4</strong><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;"> </span><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">- Creatures have 4-fold symmetry and create four new copies every replication period</span></div>
<div>
<ul>
<li><span style="color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">These are the most common 2-dimensional replicators</span></li>
<li><span style="color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">The copies can sometimes be generated quite far away from the original, such as in Fourth of July <b>(System B, Rule 1)</b> where they are separated by twenty cells!</span></li>
<li><span style="color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">The growth can be continuous as in Raindrops <b>(System B, Rule 5)</b> or can seemingly pause such as in Flowers in Bloom <b>(System B, Rule 3)</b></span></li>
<li><span style="color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">The replicator can be a continuously moving structure which spawns new copies as it moves outward, such as in Armadillos <b>(System C, Rule 5)</b></span></li>
<li><span style="color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">This type of replicator usually takes over the world quite easily since it makes four copies each replication period, e.g. Overcrowding <b>(System C, Rule 8)</b>, but sometimes other replicators can compete with them, e.g. Population Control <b>(System C, Rule 9)</b>.</span></li>
</ul>
<strong style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;"><br /></strong>
<strong style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">sp</strong><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;"> </span><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">- Creatures split into two (like 1D) but the new copies are rotated 90 degrees from the original so they eventually fill up the whole 2-dimensional world.</span><br />
<br />
<ul>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">These are the rarest type and, to me, the most interesting</span></li>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">Amazingly enough, the very first self-replicating creature found was also the rarest type <b>(System A, Rule 1)</b></span></li>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">The splitting can appear very deliberate and defined such as in Manta Rays vs Gliders <b>(System B, Rule 2)</b> and Stingrays <b>(System B, Rule 4)</b> or more fluid such as in Shape Shifters <b>(System C, Rule 1)</b> and Rise of the Pheonix <b>(System C, Rule 7)</b>. In these latter systems, it is necessary to step through the iterations to actually see how they split in two.</span></li>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">Perhaps the most amazing system found so far is Bats on a Checkerboard <b>(System B, Rule 8)</b>. These replicators live on a background of an oscillating checker board. The constant flashing is tough to watch so I added a checker-board mask. Once I did this, I realized that there were replicators in each of two different checker board backgrounds which appear light and dark with the mask. There is a semi-stable boundary between the two and keeps the two replicators separated. Over time, one area (either light or dark) eventually takes over the world although sometimes it can take more than a hundred thousand generations.</span></li>
<li><span style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">Another variation of "checker-board life" discovered is Bricks on a Checkerboard <b>(System B, Rule 9)</b> but it is difficult to get it started so it's best to run it from Bats on a Checkerboard once the two regions are established.</span></li>
</ul>
<div>
<span style="color: #0000a0; font-family: Tahoma, arial, verdana;"><br /></span></div>
</div>
Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-34493873975088654352014-01-20T19:40:00.001-08:002014-01-21T06:12:25.923-08:00The Solution: Fourier Transform<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: 16px;">The key to finding emergent self-replicating creatures is to apply a Fourier Transform to the number of cells which are born, survive or die. For the original self-replicating rule set, here are the graphs:</span><br />
<span style="font-size: 16px;"><br /></span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhdqTi71Jmm7FDm0MF5FA47tJcRrlm_u0NqIqVUgsmT14m3B1OGL6YsH5-j5jcbhyphenhyphen3WYjoBofiD1_KFx0YMLU30QC96grcigIxrzOhlcsfTb0-hcsgokn_6EcmOcQVq0gAj94KZ0agphE/s1600/population_graph.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhdqTi71Jmm7FDm0MF5FA47tJcRrlm_u0NqIqVUgsmT14m3B1OGL6YsH5-j5jcbhyphenhyphen3WYjoBofiD1_KFx0YMLU30QC96grcigIxrzOhlcsfTb0-hcsgokn_6EcmOcQVq0gAj94KZ0agphE/s1600/population_graph.jpg" height="233" width="640" /></a></div>
<span style="font-size: 16px;"><br /></span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: 16px;">The graphs above are slightly wavy with a period corresponding to the number of iterations the creature takes to self-replicate. The Fourier Transform is able to extract this information from the graphs, as shown below.</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYa4TM7l7Hw67oS1rZAaWfQlMtX8xXFQL8JKVWi3rD9JTEDte5NXe-Y_fVzM04v0nKks4WqMpxas66noSu-x7UBKuvT8Rn1-eS8JVu_Wx_Gwo-5K2D2quyl7Ks9wis4ctqjsrpzeBwnSo/s1600/fourier_transform_graph.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgYa4TM7l7Hw67oS1rZAaWfQlMtX8xXFQL8JKVWi3rD9JTEDte5NXe-Y_fVzM04v0nKks4WqMpxas66noSu-x7UBKuvT8Rn1-eS8JVu_Wx_Gwo-5K2D2quyl7Ks9wis4ctqjsrpzeBwnSo/s1600/fourier_transform_graph.jpg" height="236" width="640" /></a></div>
<span style="font-size: 16px;">The Fourier transforms of the three traces reveal two important things. First, peaks or inflections appear at regular intervals, although all peaks are not present in all three traces. Second, the number of sections between the peaks is equal to the period of self-replication divided by two: there are 6 segments above and the period is 12. For an odd-numbered self-replication period such as 7, the graph is separated into 3.5 segments with the half-segment on the right (higher values on x-axis).</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Once the Fourier Transform is computed, it is simply a matter of finding the peaks located at regular intervals. One can go about this task in multiples ways, and the choices I describe below are only one possibility. However, the important result from the Fourier Transform is that periodic self-replication shows up as peaks at regular intervals, the location of which are determined by the number of iterations required to replicate.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Once the peaks were detected (I combined together the three graphs and then used a signal-to-noise ratio of >3.5 to detect peaks), the following parameters were calculated for each possible period of replication (I used 5 to 48):</div>
<ul style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<li>avg_hgt: average peak height</li>
<li>num_pks: number of peaks detected</li>
<li>frac_per: fraction of peaks found for a given period out of the total number expected for that period</li>
<li>frac_tot: fraction of peaks in the given period out of the total number of peaks</li>
</ul>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Through a process of trial and error, the formula below was found to work well for finding self-replicating systems.</div>
<blockquote dir="ltr" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px; margin-right: 0px;">
Selector = avg_hgt * 2^(num_pks/2) * frac_per^2 * frac_tot</blockquote>
<div dir="ltr" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
The Selector is calculated for each possible period of replication (5-48) and the highest Selector value is saved for that run (usually 512 iterations). Once again, other formulas will work as well. And different formulas may work better for different rule systems. I have in fact tried many different formulas but I never ran enough trials to say which ones were better than others. The above is one of the simpler ones.</div>
<div dir="ltr" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div dir="ltr" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
In a standard run, I randomly tested about 15,000 rules, calculating the Selector for each one and saving them in a database. I only ran each rule on a 100x100 grid for 512 iterations to see the diagnostic frequency peaks in the Fourier Transform. Then I analyzed the database, examining visually only the ones with Selectors above a certain value (usually Selector >100 using the formula above).</div>
<div dir="ltr" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div dir="ltr" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
In other cases, I experimented with a genetic algorithm to find self-replicating systems. Each generation would consist of 30 rule codes, and I ran the experiment for 512 generations. The process was fairly complicated, and at the end of the day it's not clear that it worked any better than just random chance for finding self-replicating systems. However, for the experiments that did find replicators, the genetic algorithm was able to find similar rule codes with similar replicators.</div>
<div dir="ltr" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div dir="ltr" style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
To see the emergent self-replicators I've discovered with this method, choose System B or C above and try the various Rules.</div>
Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-85540145198131654262014-01-20T19:15:00.004-08:002014-01-22T16:16:48.808-08:00The Problem Defined<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<span style="font-size: 16px;">My goal was to find more self-replicating systems that emerge spontaneously from a random field of cells. I stumbled upon the first one (see</span><span style="font-size: 16px;"> System A, Rule 1 above</span><span style="font-size: 16px;">) by testing lots of rules and looking at graphs of the number of live cells over time. At first, I was just looking for more examples of interesting rules such as Conway's game of life (see green line below). However, when I found the first self-replicating system, I was much more interested in these because of the implications for the Origin of Life.</span></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
The problem is that the total number of rules is way too many to look through by hand (4,294,967,296 for the 2-rule system in which the original self-replicator was found). I needed some way to detect self-replicating systems, or to at least narrow down the number of rules to visually examine. One method would be to analyze the cells and look for repeating patterns. I imagined it would be difficult to write efficient code to do this. It would also be taxing on the cpu which would limit the number of rules that could be tested. Another approach would be to analyze the number of cells alive at each iteration, a number easily calculated as each iteration of the grid is generated. This second approach seemed promising based on a comparison of the graphs below.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDhm3rq6_bkRMu60lL2Pvx_zWiA3JdboxExD8QQhCNq3LD6pMuG95ANDvUxYDb_pT7b84kA4G5MTgDZ_xqacCKFBgCxHqDoqwm313l_aRjYbO76sWel05Qx99w_hhMe9vTFioiW1sw9PM/s1600/the_problem.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgDhm3rq6_bkRMu60lL2Pvx_zWiA3JdboxExD8QQhCNq3LD6pMuG95ANDvUxYDb_pT7b84kA4G5MTgDZ_xqacCKFBgCxHqDoqwm313l_aRjYbO76sWel05Qx99w_hhMe9vTFioiW1sw9PM/s1600/the_problem.jpg" height="314" width="640" /></a></div>
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
The green line is the percentage of cells alive for each iteration of Conway's rules (<a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life#Variations_on_Life" style="color: #0000a0;" target="_blank">B3/S23</a>) starting from a random field of cells. The red line is the simple rule of B2/S3. The result of this rule set is just noise and the percentage of cells remains fairly constant. The blue trace is the original self-replicating rule set (alternates between B3/S23 and B2/S56) where the creatures emerge from the random cells and replicate to take over the world.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
The green and blue traces are similar but the blue, self-replicating trace has a unique feature: there is a periodic nature to it as shown by the small vertical lines at the bottom. The number of alive cells seems to rise and fall every 12 iterations. If we look at the life cycle of the self-replicator below, we notice that the creature replicates itself every 12 iterations. The overall problem of detecting self-replicating systems was thus reduced to the problem of detecting periodic fluctuations in the population graphs.<br />
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwFviah3V8kXnlDl1fi0WFZ124PqcHnuBnCZ-O6_MCEs2vYbHQ1y-1yxBkca_8Tb3j-J6zL7oB3EIY9i6BJDrFjCxZlfB-hGeYHKsjJgobBTH6JwAY2On4UWC3sAzEhpKfEoDdKoEemzk/s1600/original_16_frames.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwFviah3V8kXnlDl1fi0WFZ124PqcHnuBnCZ-O6_MCEs2vYbHQ1y-1yxBkca_8Tb3j-J6zL7oB3EIY9i6BJDrFjCxZlfB-hGeYHKsjJgobBTH6JwAY2On4UWC3sAzEhpKfEoDdKoEemzk/s1600/original_16_frames.gif" height="160" width="640" /></a></div>
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-73460587293732953702014-01-20T18:55:00.003-08:002014-01-22T16:14:23.190-08:00Introduction to Fourier Life<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<b><span style="color: purple; font-size: medium;">Cellular Automata and the Origin of Life</span></b></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<b><span style="color: purple; font-size: medium;"><br /></span></b></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Fourier Life deals with <a href="http://en.wikipedia.org/wiki/Cellular_automata" style="color: #0000a0;" target="_blank">cellular automata</a>, of which the most famous example is <a href="http://en.wikipedia.org/wiki/Conway%27s_Game_of_Life" style="color: #0000a0;" target="_blank">Conway's Game of Life</a>.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
After discovering the first system, I wanted to find more self-replicating systems which would spontaneously appear out of a random field of cells. The visual analogy to the first life forms spontaneously coming into existence from the <a href="http://en.wikipedia.org/wiki/Primordial_soup" style="color: #0000a0;" target="_blank">primordial soup</a> is striking. See my <a href="http://fourierlife.blogspot.com/2014/01/implications-for-origin-of-life.html" style="color: #0000a0;" target="_blank">Implications post</a> for more speculation on this analogy.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Others have discovered or invented self-replicating systems in cellular automata, a collection of which is demonstrated on this <a href="http://www.necsi.edu/postdocs/sayama/sdsr/java/" style="color: #0000a0;" target="_blank">nice web site</a> from the New England Complex Systems Institute. The work described on this web site is complimentary to this earlier work and differs in three important ways:</div>
<ol style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<li>The self-replicating systems are emergent from a random population of cells--they were not designed.</li>
<li>The self-replicating creatures (for lack of a better term) appear in systems simpler than the previous ones (two- and three-state systems rather than six- to nine-state systems)</li>
<li>An algorithm using Fourier Transform was developed to find these emergent self-replicating systems</li>
</ol>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<u>DISCLAIMER</u></div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
I'm just a computer hobbyist, not a scientist in the field of artificial life (my day job is an organic chemist trying to discover new medicines). As a result, I am not up-to-date on all the relevant research. If you know of such research, please add a comment below.</div>
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
<br /></div>
Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-8834500368074893442014-01-20T18:32:00.001-08:002014-01-24T07:24:29.120-08:00What is Fourier Life?<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7vnef9CSg6wxX96h7FmxsdWhyrlEkNDiQ8iJRi09rm2vc0aQ0__oWlbeJX2_AmMjdgVsD4dNxdJh66pSrtexrIwrpjx6P4LHe1dpJKrzCTmKJ9_ecqX5dcFZn4n23JPV8HBROP9aXjRs/s1600/Fourier+Life+banner.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi7vnef9CSg6wxX96h7FmxsdWhyrlEkNDiQ8iJRi09rm2vc0aQ0__oWlbeJX2_AmMjdgVsD4dNxdJh66pSrtexrIwrpjx6P4LHe1dpJKrzCTmKJ9_ecqX5dcFZn4n23JPV8HBROP9aXjRs/s1600/Fourier+Life+banner.gif" height="160" width="640" /></a></div>
<br />
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
Fourier Life is a system of <a href="http://en.wikipedia.org/wiki/Cellular_automaton" target="_blank">cellular automata</a> which spontaneously forms self-replicating structures. The picture above has the first system I found and shows 16 iterations of the system (each square with dots in it is a small portion of the cellular automata grid). Note that after 12 iterations, the original structure has replicated itself, although now each copy is rotated from the original. At each iteration (or generation), a filled cell either survives or dies and an empty cell can either remain empty or have a cell born into it. In the example above, the fate of each cell depends on how many neighbors (filled cells) it has surrounding it (up to 8).</div>
<br />
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
If you click on the Run button (under the grid of cells at the top of the page) with System A and Rule 1 selected, you can see these structures appear out of a random field of cells, begin dividing in two, and then take over the entire cellular automata world.</div>
<br />
<div style="background-color: white; color: #0000a0; font-family: Tahoma, arial, verdana; font-size: 16px;">
This web site shows the <a href="http://fourierlife.blogspot.com/2014/01/self-replicator-types.html">more interesting self-replicating systems</a> I've found and describes how I found them. The key to detecting self-replicating systems is to use a <a href="http://fourierlife.blogspot.com/2014/01/the-solution-fourier-transform.html">Fourier Transform on the population graphs</a>. As a result, I have named these systems <i>Fourier Life</i>.</div>
Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-45459277990804271932014-01-20T06:26:00.000-08:002014-01-22T18:10:55.469-08:00Fourier Life in JavaScript<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZwOnk08pSgZ3oxo_IfeQEcCyQv6djRyaCkJZScGIKGpC9buX2nT28HlPyTeg8XBLi7Y11AdtYL3lcn3lgH2uQ1i8uxc4QVHUwuG-bhHSr6kZ7i-e59NdNK6997VHf2Qb-nzXO_jxkBpQ/s1600/javascript_logo.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjZwOnk08pSgZ3oxo_IfeQEcCyQv6djRyaCkJZScGIKGpC9buX2nT28HlPyTeg8XBLi7Y11AdtYL3lcn3lgH2uQ1i8uxc4QVHUwuG-bhHSr6kZ7i-e59NdNK6997VHf2Qb-nzXO_jxkBpQ/s1600/javascript_logo.jpg" /></a></div>
My original website on tripod.com used a Java Applet implementation. However, those are apparently a big risk for viruses, so I've re-written the code in JavaScript (which is a <a href="http://nakedsecurity.sophos.com/2013/01/16/java-is-not-javascript-tell-your-friends/" target="_blank">completely different language from Java</a>!). Not only does JavaScript work on Chrome and Android systems, it also works on blogspot.com!<br />
<br />
The top of my blog now has my Fourier Life self-replicating creatures animated with JavaScript. Enjoy!
<br />
<br />Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-26012875768734660012014-01-13T07:07:00.000-08:002014-01-22T18:16:05.502-08:00Why I Made the Fourier Life Website<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSq_rURVmOHPcGveKGc5gLT_pjCGyhrPXMjhShOGsu7LjzbC5hOQ5z4WJwKcYQMezc_5ysqtBdGvVWO6eAWiA8h8QG_BSkPvOG76TVtpdaZp_Ttr8KfcoX1_Q5h_k51dNEmYd8k7wReXQ/s1600/fourier_life.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSq_rURVmOHPcGveKGc5gLT_pjCGyhrPXMjhShOGsu7LjzbC5hOQ5z4WJwKcYQMezc_5ysqtBdGvVWO6eAWiA8h8QG_BSkPvOG76TVtpdaZp_Ttr8KfcoX1_Q5h_k51dNEmYd8k7wReXQ/s1600/fourier_life.jpg" height="269" width="320" /></a></div>
I went to the trouble of making the original Fourier Life website (on the ad-filled tripod.com) and this blog because I wanted others interested in exploring artificial life with cellular automata to be able to use the Fourier Transform to aid their research. I thought about publishing in a journal, but gave up the idea because publishing is a pain (as I know from publishing in <a href="http://www.ncbi.nlm.nih.gov/pubmed/22040023" target="_blank">J. Med. Chem</a> and <a href="http://pubs.acs.org/doi/abs/10.1021/ja9540886" target="_blank">JACS</a>) and because my research probably wasn't rigorous enough to be published. In retrospect, I think it was also a good decision to "publish" on the web because I believe it will ultimately reach a wider audience.<br />
<br />
As a case in point, <a href="http://www.hcbonner.com/blog/" target="_blank">H. C. Bonner</a> found my website because he wants to explore cellular automata and needs a way to find interesting things without viewing every trial. That's exactly why I came up with the <a href="http://fourierlife.blogspot.com/2014/01/the-solution-fourier-transform.html">Fourier Transform method</a>! His post on Fourier life is <a href="http://www.hcbonner.com/blog/2014/01/12/fourier-life/" target="_blank">here</a>. I hope he finds something interesting!Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-8543004765419298662012-04-24T21:47:00.002-07:002014-01-22T16:31:34.157-08:00Mondrian-Like Rectangular Subdivision<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpsNGXoVkAXGba-cK67T_MGm_OCIKmwKgabf2rou4awshDWtmBUQXSyaqrrlHXBKYSZ6tfKC5dYHdqhGigSbgyKzwFE7_4bZ8dMXqOnpfZ-aAk9DKNWiuhRFKkdyGq14-nIYYX46DWJFs/s1600/mondian.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpsNGXoVkAXGba-cK67T_MGm_OCIKmwKgabf2rou4awshDWtmBUQXSyaqrrlHXBKYSZ6tfKC5dYHdqhGigSbgyKzwFE7_4bZ8dMXqOnpfZ-aAk9DKNWiuhRFKkdyGq14-nIYYX46DWJFs/s320/mondian.jpg" height="320" width="278" /></a></div>
[Update Jan. 2014: Select <b>System C, Rule 4</b> at the top of the page to run the system discussed in this post.]<br />
<br />
David Eppstein wrote <a href="http://11011110.livejournal.com/246718.html" target="_blank">a blog post</a> about my Fourier Life page over at the <a href="http://11011110.livejournal.com/" target="_blank">0xDE blog</a>. One of his favorites is the Qix! rule set which he describes as producing a Mondrian-like rectangular subdivision. I had to Google Mondrian to understand he was referring to the art of <a href="http://en.wikipedia.org/wiki/Piet_Mondrian" target="_blank">Piet Mondrian</a>, such as in the picture on the left.<br />
<br />
In case some of you youngsters out there don't know what <a href="http://en.wikipedia.org/wiki/Qix" target="_blank">Qix</a> is, it was an arcade game back in the golden age of arcades (you know, the glorious 1980's). I personally didn't like the game much, but it was a cool concept that was simple to explain but very difficult to master. You can play <a href="http://www.shockinglyfun.com/games/playgame/222/Qix.html" target="_blank">a flash version here</a> if you're up for it (remember to hold down X or Z when you move with the cursor keys to draw the lines).Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-2730126164769497162012-04-22T11:16:00.001-07:002014-01-22T18:19:31.247-08:00Getting the Word Out<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ-_KUFKaFQZlT_0x_bJQ2snry20nNxLCH-DUFnrJtHogq6Nv7UJWgiCT4qaJvRDHQK82y9Txh578dnoeS1kx2vUhzOI1TROUFn-wEV3J7L3C5p3b0I-2DP8IP8zt6wKdhzNRKjDHoTus/s1600/hear_ye_hear_ye1.gif" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ-_KUFKaFQZlT_0x_bJQ2snry20nNxLCH-DUFnrJtHogq6Nv7UJWgiCT4qaJvRDHQK82y9Txh578dnoeS1kx2vUhzOI1TROUFn-wEV3J7L3C5p3b0I-2DP8IP8zt6wKdhzNRKjDHoTus/s200/hear_ye_hear_ye1.gif" height="200" title="" width="170" /></a></div>
[Update January 2014: I removed the link to my old tripod.com website because now all the information and the demonstration of the self-replicating cellular automata are on this blog.]<br />
<br />
Now that I've completed my Fourier Life website [now blog], I need to get the word out. Here is a list of people and sites I've contacted:<br />
<br />
<ul>
<li>ConwayLife.com forum (<a href="http://conwaylife.com/forums/viewtopic.php?f=11&t=885" target="_blank">my post</a>)</li>
<li>freshsim.org discussion group for Artificial Life (<a href="http://freshsim.org/discussion/96/emergent-self-replicating-cellular-automata" target="_blank">my post</a>)</li>
<li>E-mailed <a href="http://www.math.canterbury.ac.nz/~m.steel/" target="_blank">Mike Steel</a>, author of <a href="http://www.mdpi.com/1099-4300/12/7/1733/pdf" target="_blank">this paper</a> on Autocatalytic Sets</li>
<li>E-mailed <a href="http://bingweb.binghamton.edu/~sayama/" target="_blank">Hiroki Sayama</a>, a professor interested in self-replicating cellular automata, especially <a href="http://www.necsi.edu/postdocs/sayama/sdsr/java/" target="_blank">self-replicating loops</a>.</li>
<li>E-mailed <a href="http://www.ics.uci.edu/~eppstein/" target="_blank">David Eppstein</a>, a professor of Computer Science who has a website on <a href="http://www.ics.uci.edu/~eppstein/ca/replicators/" target="_blank">self-replicating cellular automata patterns</a>.</li>
<li>Contacted wolframscience.com for an account on their forum, but it needs to be activated by a moderator--what a pain!</li>
</ul>
Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-68455750474526942332012-04-22T09:00:00.002-07:002012-04-22T09:17:11.607-07:00What is Life?<div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD95t0QqLMN-0XvOldaZkUiOGEqLZFep2Z0kFvViI-6vR2s1-Dpl2WC1vlMBIZt-2RH1ts4F_FVXJQGmGk87oVWcffJXAvaQNuDzvMv81x3fOkNVxf97_HFMY_fz9CxLvrX2Za2mZQKqI/s1600/AtlasShrugged.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjD95t0QqLMN-0XvOldaZkUiOGEqLZFep2Z0kFvViI-6vR2s1-Dpl2WC1vlMBIZt-2RH1ts4F_FVXJQGmGk87oVWcffJXAvaQNuDzvMv81x3fOkNVxf97_HFMY_fz9CxLvrX2Za2mZQKqI/s320/AtlasShrugged.jpg" width="244" /></a></div>"Life is a process of self-sustaining and self-generated action." Ayn Rand published those words in 1957 in her classic, <i>Atlas Shrugged</i>. How is it that more than 50 years later we are still <a href="http://en.wikipedia.org/wiki/Life#Definitions" target="_blank">debating the definition of life</a>? Is it because Ayn Rand was an author and philosopher, not a biologist? Is it because Rand defined life only as an intermediate step in making a bigger point about morality? Here is the full quote from Atlas Shrugged:<br />
<br />
<span style="color: blue;">There is only one fundamental alternative in the universe: existence or non-existence—and it pertains to a single class of entities: to living organisms. The existence of inanimate matter is unconditional, the existence of life is not: it depends on a specific course of action. Matter is indestructible, it changes its forms, but it cannot cease to exist. It is only a living organism that faces a constant alternative: the issue of life or death. <u>Life is a process of self-sustaining and self-generated action.</u> If an organism fails in that action, it dies; its chemical elements remain, but its life goes out of existence. It is only the concept of “Life” that makes the concept of “Value” possible. It is only to a living entity that things can be good or evil.</span><br />
<span style="color: blue;"><br />
</span><br />
Note that Rand's definition doesn't describe replication. Self-replication is a necessary property of life for a species to persist through time, but it is not a fundamental requirement of life. Let's look at the definition in more detail.<br />
<br />
First off, life is a process. It is an attribute of objects, such as a mouse before and after it gets caught in a mouse trap. Second, it is a process of action. Living things metabolize, move and are far from equilibrium. All of these attributes are summed up with the term "action." Third, the action is self-generated. Living things require energy and use it to act, i.e. live. Finally, the action is self-sustaining. The actions performed by living things work to keep the organism far from equilibrium and to keep it alive.<br />
<br />
By Rand's definition, we can classify the following as alive or dead:<br />
<ul><li>bacteria = alive</li>
<li>mule = alive (even though it can't reproduce)</li>
<li>viruses = dead (they do not have self-generated action)</li>
<li>tornadoes = dead (they are self-sustaining but not self-generated)</li>
<li>Roomba robot = alive???</li>
</ul>The Roomba robot sits in its charging base and, every day at a predefined time, goes out and cleans the floor. When it's done or when its battery gets low, it seeks out its charging base to recharge its batteries. Is this not a process of self-generated and self-sustaining action?<br />
<br />
Ayn Rand believed definitions were contextual--they only need to distinguish between objects at the current state of knowledge. Perhaps the definition needs to be updated to account for robots like the Roomba. Or maybe we just need to consider our little housekeeping robot as a part of the family.Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-86239186028862265702012-04-20T15:29:00.000-07:002014-01-22T18:38:01.696-08:00A Note about Browsers<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwm18Ymem-9DpgV6fzf1n3rsXstCjD2a_mP60DhvQwszNIKLs6n_qDErKsbM-Gt7LqPft-2GtcdNER8XQfTSQB3BLsSVq9ZZ0B1tY7Mte9s8Rt8bZlWPCZIzhIUNtwhyphenhyphenYlgcsLtL0Du74/s1600/browsers-icons.jpg" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwm18Ymem-9DpgV6fzf1n3rsXstCjD2a_mP60DhvQwszNIKLs6n_qDErKsbM-Gt7LqPft-2GtcdNER8XQfTSQB3BLsSVq9ZZ0B1tY7Mte9s8Rt8bZlWPCZIzhIUNtwhyphenhyphenYlgcsLtL0Du74/s320/browsers-icons.jpg" height="231" width="320" /></a>[Update January 2014: Fourier Life now lives on blogspot.com instead of tripod.com and the cellular automata are now implemented with Javascript instead of Java applets. As a result, the demonstration now works on IE, Chrome, FireFox, Safari, Android tablets and iPad!]<br />
<br />
So I've tested the web-site in Firefox, Internet Explorer and Chrome. The Java applets work in all of them (sometimes after upgrading Java and trusting the site), but in Chrome the applet area is bigger than it should be. How is it we're in 2012 and we still have compatibility issues with browsers? I guess with unfettered capitalism, you take the good with the bad!<br />
<br />
I don't know if it works on Apple's Safari. I hope so!Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0tag:blogger.com,1999:blog-8898947095055650504.post-61258163715955802012-04-20T15:23:00.000-07:002014-01-22T18:24:37.496-08:00Fourier Life on tripod.com<div class="separator" style="clear: both; text-align: center;">
<img alt="" border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEizGophgKbExbDjKLEgCG9sIz8EngU1zcjhVRl2NBfOghyphenhyphenLmXjwvdHYIePmGY2m-Q_7_5_SajP4zg8G1xddXg-6uWXP_p77bkvVb_BkgOzbHQ-PlBCbeBLigk9EKvRgwLwI-1UOd7v4oYo/s400/fourierlife.gif" title="" /></div>
<br />
[Update January 2014: the link to my old tripod.com website was removed because that website was replaced with this blog. Google's blogspot is nice because it doesn't have ads and I was able to implement the cellular automata self replicators in JavaScript at the top of the page.]<br />
<br />
This blog was started to go along with the Fourier Life website [now blog] that I set up. Click on the link to see what it's all about--it's easier to show than to tell. [Now you can just click the Run button at the top of the page!]<br />
<br />
I set up this blog in case there's any interest in the site. I figure I can answer questions here easier than on the website. It will also be easier for people to comment here rather than set up some kind of comment section on the actual website.Sean Murphyhttp://www.blogger.com/profile/16891270485588128728noreply@blogger.com0