All posts by chorasimilarity

Mathematics is everywhere! Open to collaborations.

Fresh brain with no thoughts, yet

I just like his picture obtained with chemlambda

fineuron2

because it gives many ideas, among them the following:

  • if multiplication (reproduction) is Nature’s way to do a fanout
  • and if a brain (and actually the whole organism) grows from a small seed
  • then it must be that we may think about a brain as having one neuron (self-multiplied according to the needs of the computation).

Ergo, the physical brain we see is the concrete embodiment of an universal computing seed, taking physical shape according to physical constraints.

That’s why I like this picture, because it gives ideas.

Here is the first realisation of a (mutant) Turing neuron  in chemlambda

which can be seen as a continuation of the old, but open thread which started with this teaser and continued up to this post on B type neurons.

_________________________________

The Ackermann function in the chemlambda gui

UPDATE: The Ackermann function, the video:

_______________________

I put this stuff on G+  some days ago and now I can find it only if I look for it on purpose. Older and newer posts, those I can see. I can see colored lobsters, funny nerd jokes, propaganda pro and con legacy publishing, propaganda hidden behind granpa’s way of communicating science, half baked philosophical ideas,  but not my post which I made only two days ago. On my page, I mean, not elsewhere.

Thank you G+ for this, once again. (Note not for humans: this was ironic.)  Don’t forget to draw another box next time when you think about a new algorithm.

A non-ironic thanks though for the very rare occasions when I did met very interesting people and very interesting ideas there.

OK, to the matter, now. But really, G+, what kind of algorithm you use which keeps a lobster on my page but deletes a post about the Ackermann function?

UPDATE: The post is back in sight now. Whew!
The post follows, slightly edited (by adding stuff).
The Ackermann function is an example of a total computable function which is not primitive recursive. It is therefore amusing to try to compute it.
The matter is not what is the value of Ack(m,n), because it grows so fast that very soon the problem of computing it is shadowed by the more trivial problem of storing its values. Instead,  more interesting is to see how your computing device handles the computation itself, things like stacks of calls, etc, because here it is manifest the fact that Ack is not primitive recursive.
To simplify it, the funny thing is to see how you can compute Ack(m,n) without any cheat.
I tried to do this with #chemlambda . I know since a long time that it can be done, as explained (very summary, true) in this old post
https://chorasimilarity.wordpress.com/2013/10/19/a-machine-for-computing-the-ackermann-function-in-graphic-lambda-calculus/
for GLC, not chemlambda (but since chemlambda does with only local moves what GLC does, it’s the same).
I want to show you some pictures about it.
It is about computing Ack(3,2). Everybody will point that Ack(3,2) = 29 and moreover that Ack(3,n) has an explicit expression, but this would be cheating, because I don’t want to use precomputed stuff.
No, what I want to use is a lambda calculus term for the Ackermann function (and one which is not eta reduced, because chemlambda does not have eta reduction!), and I want to apply it to the arguments 3 and 2 written as lambda terms as well (using the Church encoding). Then I want to see if after the reductions performed by the algorithm I have I get 29 as a Church number as well.
During all the algorithm I use only graph reductions!
After all there are no calls, no functions and during the computation the molecules which appear are not even representing lambda terms.
Indeed, lambda calculus does not have operations or concepts like fanin nodes, or FOE nodes, not reductions like FAN-IN or DIST. That’s the amazing point (or at least one of them), that even if it veers outside lambda calculus, it ends where it should (or better, that’s for another time).
I used the programs which are available at the site of the chemlambda gui http://imar.ro/~mbuliga/gallery.html
(which is btw online again, after 2 days of server corruption.)Here are some pictures.The first one is a screenshot of the Ack(3,2) “molecule”, i.e. the graph which is to be reduced according to the chemlambda rules and according to the reduction strategy which I call “viral”.
ack_3_2_init
After almost 200 reductions I get 29, see the second figure, where it appears as the molecule which represents 29 as a Church numeral.
ack_3_2_finalWow, it really worked!
You can try it for yourself, I’ll give you the mol file to play with, but first some details about it.
I modified a bit the awk script which does the reductions, in the following place: when it introduces new nodes (after a DIST move) it has to invent new names for the new edges. In the script which is available for download the algorithm takes the max over all all ports names and concatenate it with a word which describes where the edge comes from. It is good for being able to track back where the nodes and edges come, but it results into a growth of the ports name which is exponential in the number of iterations of the reduction algorithm. This leads to very big names of some ports, after 200 iterations.
So I modified this part by choosing a naming procedure which is less helpful for tracking but better in the sense that now the growth of names is linear in the number of iterations. It is a quick fix, after all it is as easy to invent naming procedures which result in a logarithmic or almost constant length wrt the number of iterations.
For the Ackermann function the script which is available is just as good, it works well, only that it has this unpleasant feature of long names which enlarges unnecessarily the json files.
Details over, next now.
In the third picture you see the mol file for the Ack(3,2), i.e. the list of nodes and ports of the Ack(3,2) molecule, in the format used by the reduction program.
ack_3_2_mol
Btw, do you see in this screenshot the name of the updated script? Right, is foe_bubbles_09_10.awk, instead of foe_bubbles_06_10.awk which is available for download.
I don’t cheat at all, see?
I made some annotations which helps you to see which part corresponds to the Ackermann function (as a lambda term translated into chemlamda), which parts are the arguments “3” and “2”, and finally which part represents the Ackermann function applied to (3,2).
ackermann_3_2_mol
Soon enough, when I’ll be able to show you animated reductions (instead of the steps of reduction only), I think such an example will be very funny to examine, as it grows and then shrinks back to the result.
________________________________________

 

 

 

What is, what we understand and what we communicate about it

One of the major effects of the existence of the Net is that it challenges the cartesian method and shatters the foundations of science.  As the Net is still young and the traditions are old, comparatively, the effect is not yet clearly identified. But it is there already, and even if not named, it is  like a secret ailment which manifests here and there, stronger and stronger.

That which provokes the disease  is a lack of balance in the use  of the various ingredients of the cartesian method. The disbalance is provoked by the effort to fit what is, what we understand and what we communicate about it into the mould of the era when the method has been invented. It just does not fit, therefore it overflows in unexpected ways.

What is. Better is to say what is more, compared with the time when the cartesian metod was invented. There is a new virtual world in the making. Huge quantities of structured data, alternative  worlds evolved from seeds created by programmers, a whole new world of the Internet of Things in the making and, further away but really close though, an unification of the real world (defined as the one where Descartes lived and died) with these new, emerging ones.

The territory, suddenly, got much bigger.

What we understand. Better to say what we understand more than before. A huge body of scientific facts and discoveries which don’t quite fit ones with the others. Quantum mechanics with general Relativity has become an example for old boys and girls. We have models of the parts but we don’t understand C. Elegans with its 302 neurons.  There is though a building understanding of the fact that we do understand much more,  but the tools offer, each,  only a limited point of view. There are looming suspicions that data alone (what is) has more to tell us  than data filtered by a theory. We do understand, or starting to understand that semantics is  only a tool itself, a map maker, not the territory of what is.

The many maps we have don’t fit, we understand.

What we communicate. Better is to say that we communicate today in unparalleled ways than before. But what we communicate is a very small, rigidly formatted part of what we understand. It is hard to communicate science, and the channel constraints are damaging the message.

We have so much to communicate and the semantic maps don’t serve well this purpose.

 

Going back at the time of the cartesian method, we see that it has been made as a tool for isolated minds and very limited data inflow. More than this, the cartesian method is a collection of prescriptions about how to better understand and how to better communicate the understanding, which makes the rational choice for  those times, but an irrational one for our times:

  • it privileges what we understand over what is,
  • what we communicate over what we understand.
  • Then it optimizes what we communicate for the situation of one human mind which lays down the output in a book.

The book is then supposed to be distributed and multiplied  by means which are not of interest for the author, and then to hit other minds in an unidirectional way.

Descartes writes a book, then somebody else writes another book where he challenges or supports the ideas of a Dead Descartes Book, then yet another one writes a new book which contains references to the Dead Somebody Else Book. That’s the way of the science and Descartes proposed a wonderful path which ensures that the various Books are well written and contain Text as a sort of a program which can be easily debugged.

Descartes rules apply in an indiscriminate way to what is, what we understand and what we communicate about it.

Evidence and details in these two posts:

 

Saved version for direct download of the chemlambda gui

It appears that the site which hosts my chemlambda gui is down. Here is a save of the the playall archive for the chemlambda gui. You may use it if the original site is down.  Instructions about how to use it in this video:

UPDATE: The site is up again here  and I made a second video with a gun which shoots in two directions

_______________________________________________

DNA, err… tape replication pictures

Here are the kind of pictures you can get by using the chemlambda visualizer.

UPDATE: Here the first video about it:

Continuing with the post

The first is a screenshot of the initial tape  with bits on it (the tape contains “1010” as an example):

tape_with_bits_0And here is what you get after 6 reductions done by the algorithm:

tape_with_bitsI’ll explain in a moment what I did.

First I wrote the   tape.mol file which represents the initial molecule.

Then I used  bash_main_viral_foe_bubbles.sh  which can be downloaded from the explanations/downloads page of the visualizer.

The script waits me to choose a .mol file,  which I did by writing at the prompter tape.mol.

Then I typed firefox look.html &  (use whatever browser with javascript enabled) to see the results.

UPDATE: Attention, just found out that in some versions of safari there is a problem with working with local files. I suspect, but if you know more then please tell me, that even if safari does handle the file// protocol and opens the look.html, it does not handle well the part where the look.html opens the json files file_0.json … file_10.json.

These json files are produced by the scripts, then they are turned into d3 force graphs by look.html.

So, it may happen that safari opens the file look.html, but when you click on the buttons to see the molecules in action, then safari fails to open the json files which look.html needs, so nothing happens further.

I don’t know yet any solution for this, other than “use firefox” for example. There should be an elegant one.

UPDATE 2: solved!  just download playall.tar.gz .

_____

Now, everything (the scripts, libraries, the file look.html) are available at the said downloads page. This specific .mol file can be saved from the link provided.

I clicked on the “initial” button” and I got a whirling molecule. I let it settle a bit and then I used the click and drag to position some of the atoms in a fashion more understandable if there’s no move, in a picture.

Then I took the screenshot with a generic soft.

The same for the second picture, which shows what you get at step 6.  I combed the two replica of the tape (by click and drag) so that it is obvious that the replication went well.

Took a screenshot again.

And that’s it!

This is not yet part of the gallery of examples,  which I recommend in particular for getting other mol files.

The bit which I used (i.e. the green atoms molecule which is on the “tape” in some places) appears in the example named “the bit propagation“.

__________________________________________________

Varia: updates and preparations

Yesterday I found a bug in one of the programs for the chemlambda visualiser, namely an  unexpected functioning of the priority choice part when applied to a particular mol file (graph).

Today I took it methodically and found two bugs which create that behaviour. One was that the priority choice was not covering all the possibilities in a correct way, the other was a pure programming bug.

So I corrected everything and checked that on the examples from the gallery it works as expected, and also I checked it on many other examples which I have and it works well.

Of course, only to check a program on examples means nothing without a proof that the algorithm works well. I have done that, now the priority choice is indeed well implemented.

What is funny is that by trying to correct the priority choice part I have found the other stupid bug.

OK, so now all the new tar files are marked with 06_10_2014.

And anyway, as everything is open here, you may compare the versions and arrive to your own conclusions.

Mind that in a sense there is still a bug in the main_viral from the “play” archive:  it may happen that at some point the json file which is seen with look.html may be empty. This happens because in the “play” algorithm the loops are erased, and it is possible that a molecule reduces to a collection of loops, hence an empty json file eventually.

No problem with that, by using the “add_new” tar you have an algorithm which does not remove the loops (and also has the FOE node and its new moves). This one works perfectly now.

On a different subject: the artificialagora.wordpress.com  will launch soon. I don’t know yet if chorasimilarity and artificialagora will coexist, or if artificialagora will be the luxury version of chorasimilarity (hope not).

But soon enough we’ll see this.

Chorasimilarity site is still read in a strange way for a blog, because old posts receive comparable hits with new ones. Not all posts are good, for example posts as this one, where I indulge into telling about updates and preparations.

______________________________

Quick and dirty argument for space from chemlambda

One of the least understood ideas of chemlambda is related to this question: which is the space where these artificial molecules live?

There are two different possible applications of chemlambda, each having a different answer for this question. By confusing these two applications we arrive at the confusion about the conception of space in chemlambda.

Application 1 concerns real chemistry and biology. It is this: suppose there exist real chemical molecules which in reaction with real other substances (which play the role of the enzymes for the moves, invisible in chemlambda). Then, from the moment these real molecules and real enzymes are identified, we get *for free* a chemical computer, if we think small. If we think big, then we may hope that the real molecules are ubiquitous in biochemistry and once identified the chemical reactions which represent the chemlambda moves, then we get for free a computational interpretation of big parts of biochemistry. Thinking big, this would mean that we arrive to grasp a fundamental manifestation of computation in biochemistry, which has nothing at all to do with numbers, or bits, or boolean gates, or channels and processes, all this garbage we carry from the experience (very limited historically) we have with computation until now.

In this application 1 space is no mystery, is the well known 3d space, the vessel where real molecules roam. The interest is here not in “what is space”, but “is life in some definite clear way a computational thing?”.

Application 2 resembles more to physics than biochemistry. It aims to answer to the question what is space? Ironically from neuroscience we know that clearly living brains don’t relate with space in any way which involves coordinates and crunching numbers. However, the most fundamental physics never escaped the realm of coordinates and implicit assumptions about backgrounds.

Until now. The idea proposed by application 2 of chemlambda is that space is nothing but a sort of a program.

I try to make this clear by using emergent algebras, and will continue this path, but here is the quick and dirty argument, which appears not to use emergent algebras,  that chemlambda can explain space as a program.

(it does use them but this is a detail, pay attention to the main line.)

OK, so the artificial molecules in chemlambda are graphs. As graphs, they don’t need any space to exist, because everybody knows that a graph can be described in various ways (is a data structure) and only embeddings of a graph in a space need ahem … space.

Just graphs, encoded in .mol files, as used by the chemlambda visualiser I work on these days.

What you see on the screen when you use the visualiser is chemlambda as the main engine and some javascript salt and pepper, in order to impress our visually based monkey brains.

But, you see, chemlambda can do any computation, because it can do combinatory logic. The precise statement is that chemlambda with the reduction strategy which I call *the most stupid” is an universal computer.

That means that for any chain of reductions of a chemlambda molecule, there is another chemlambda molecule whose reductions describe the first mentioned reductions AND the javascript (and whatnot) computation which represent the said first chain of reductions on the screen.

What do you think about this bootstrapping?

__________________________