All posts by chorasimilarity

can do anything

Who wants to make a movie?

This animation is done on my laptop (a macbook pro), with scripts which are freely available at the chemlambda repository here.

No supercomputer, nor any costly device has been used to make it…

So, who wants to make a movie?

Other demos which utilise the new experia version:

http://chorasimilarity.github.io/chemlambda-gui/dynamic/lisfact_2_mod_experia.html

http://chorasimilarity.github.io/chemlambda-gui/dynamic/times_only_experia.html

http://chorasimilarity.github.io/chemlambda-gui/dynamic/fo_ackermann_2_2_experia.html

___________________________________________

Artificial chemistry suggests a hypothesis about real biochemistry

What is the difference between a molecule encoded in a gene and the actual molecule produced by a ribosome from a copy of the encoding?

synthetic_bigpred

Here is a bootstrapping hypothesis based on the artificial chemistry chemlambda.

This is a universal model of computation which is supposed to be very simple, though very close to real chemistry of individual molecules. The model is implemented by an algorithm, which uses as input a data format called a mol file.

The language use does not matter, although there may be more elegant versions than mine, like the one by +sreejith s  (still work in progress though) [1].

Since the model is universal it implies that the algorithm and the mol data structure can be themselves turned into an artificial molecule which reacts with the usual invisible enzymes from the model and does the computation of the reduction of the original molecule.

The boostrapping hypothesis is that the original molecule is like the synthetized molecule and that the mol file format turned into a molecule is the stored version of the molecule.

In the post there  is mentioned a previous post [2], where this was tried by hand for a molecule called the 20 quine, but now there are new scripts in the chemlambda repository which allow to do the same for any molecule (limited by the computer and the browser of course).

The final suggestion is that the hypothesis can be continued along these lines, by saying that the “enzymes” which do the rewrite are (in this boostrapping sense) the rewriting part of the algorithm.

[1] Chemlambda-py

[2] Invisible puppeteer

Synthetic stuff. Now there is a script which allows to synthetize any chemlambda molecule, like in the previous Invisible puppeteer post.
Look in the chemlambda repository, namely at the pair synthetic.sh and synthetic.awk from this branch of the repository (i.e. the active branch).
In this animation you see the result of the “synthetic” bigpred.mol (which was the subject of the recent hacker news link).

What I did:
– bash synthetic.sh and choose bigpred.mol
– the output is the file synt.mol
– bash quineri.sh and choose synt.mol (I had a random evolution, with cycounter=150, time_val=5 (for safari, but for chromium I choose time_val=10 or even 20).
– the output is synt.html
– I opened synt.html with a text editor to change a bit some stuff: at lines 109-110 I choose a bigger window         var w = 800,   h = 800; and smaller charges and gravity (look for  and modify to .charge(-10)
.gravity(.08) ).

Then I opened the synt.html with safari. (Also worked with chromium). It’s a hard time for the browser because the initial graph has more than 1400 nodes (and the problem is not coming from setTimeout because, compared with other experiments, there are not as many, but it comes from an obscure problem of d3.js with prototypes; anyway this makes firefox lousy, which is a general trend at firefox, don’ know why, chromium OK and safari great. I write this as a faithful user of firefox!).
In this case even the safari had to think a bit about life, philosophy, whatnot, before it started.

I made a screencast with Quicktime and then sped it up progressively to 16X, in order to be able to fit it into less than 20s.

Then I converted the .mov screencast to .gif and I proudly present it to you!

It worked!

Now that’s a bit surprising, because, recall, what I do is to introduce lots of new nodes and bonds, approx 6X the initial ones, which separate the molecule which I want to synthetize into a list of nodes and a list of edges. The list of edges is transformed into a permutation.

Now during the evolution of the synt molecule, what happens is that the permutation is gradually applied (because if randomness) and it will mix with the evolution of the active pieces which start already to rewrite.

But it worked, despite the ugly presence of a T node, which is the one which sometimes may create problems due to such interferences if the molecule is not very well designed.

At the end I recall what I believe is the take away message, namely that the mol file format is a data structure which itself can be turned into a molecule.

Summer news, Ackermann related observations and things to come

Light summer post, want more then follow the links.

1. after a chemlambda demo appeared on hackernews  (link) I saw a lot of interest from hacker brains (hopefully). Even if slightly misplaced (title reads: D3.js visualization of a lambda calculus) it is an entry gate into this fascinating subject.

2. Sreejith S (aka 4lhc) works on a python port for chemlambda, called chemlambda-py. It works already, I look forward to try it when back home. Thank you Sreejith! Follow his effort and, why not, contribute?

3. Herman Bergwerf set out to write a chemlambda IDE, another great initiative which I am very eager to see it working, just by looking at Herman beautiful MolView.

4. During discussions with Sreejith, I noticed some funny facts about the way chemlambda computes the Ackermann function. Some preliminaries: without cheats (i.e. closed forms) or without memoization, caching, etc, it is hopeless to try to compute Ack(4,2). The problem is not as much the fact that the function takes huge values, but the fact that in order to compute even modest values, there are lots and lots of calls. See the rosettacode entry for the Ackermann function about that. Compared with those examples, the implementation of chemlambda in awk does not behave bad at all. There are now several mol files for various ackermann function values which you may try. The only one which takes lots of time (but not huge memory, if you except the html output, which you can eliminate by commenting with a # all printf lines in the awk script) is ackermann_4_1. `This one works, but I still have to see how much time it takes. The interesting observation is that the number of steps (in the deterministic version) of chemlambda (mind: steps not rewrites!) is at 1 or 2 difference than the number of steps of this beautiful stacks based script: ackermann script. It means that somehow the chemlambda version records in space the intermediary values, instead of stacking them for further use. Very strange, to explore!

5. There exist, on paper, the chemlambda v3 “enzo”. It’s very very nice, you’ll see!

Permutation-replication-composition all-in-one

This is the permutation cycle 1 – > 2 – > 3 – > 4 – > 5 – > 6 – > 7 – > 8 – > 1 which is replicated and composed with itself in the same time.

pwheel_8_compo

Done with pwheel_8_compo.mol from the chemlambda repo, and with quiner.sh, in the deterministic variant (all weights set to 0. The result is a pair of cycles 1 – > 3 – > 5 – > 7 – > 1  and 2 – > 4 – > 6 – > 8 – > 2.

See other plays with permutations in the

https://plus.google.com/collection/UjgbX

_________________________