Tuesday, December 9, 2014

Can data be stored on fungus?

There's this guy, Andrew Adamatzky from the University of West England, that I think you should know about. More importantly, it's his work that is important. He's part of the faculty of computing, but his work mostly seems to focus on cellular automata, which involves really cool fun stuff like Conway's Game of Life and using single cells as ways to solve problems. What drew me to him is his work with slime molds.

I found this yesterday, but I've been aware of his work for about a month now. This is one of the papers that have come out since Physarum polycephalum has been shown to solve shortest path problems.

It's not special to any of us that have solved a maze, it simply fills the entire maze with slime then kills whatever is not the shortest path between both oat flakes. This does have a name in computing though. It's called a flood fill algorithm, and what makes this interesting on a second watch through is that slime mold is a single cell organism with no brain and it always finds the shortest path, even if it has to create a path under the wall.

This work was done by another man, Toshiyuki Nakagaki, and it's really cool if you think about it. A single cell organism displays basic intelligence! Single cell is underselling it a little because it's a single cell with multiple nuclei. It's a fairly common yellow mold found on decaying logs and such. And it's better at solving mazes than me.

Enter Adamatzky. His work with physarum looks at it's computing potential as well as its ability to solve various problems. The link in the begining is a description of how to "program" slime mold and how to create a Komlogorov-Uspensky machine. My impression of it as a mycologist is that after reading this I'm not really sure how a KU machine works. It doesn't really seem to make me stand up and say "Oh wow, think of the possibilities!" It is mentioned that KU machines are the forefathers of RAM in modern computers, but no benefits are mentioned about slime mold over standard silicon.

In order to be a Kolmogorov-Uspensky machine, it needs to meet certain criteria, which Adamtzky outlines and shows is possible. For starters, a KU machine is said to similar to a Turing machine. Where a Turing machine is a theoretical machine that takes in a linear tape with characters on it and manipulates the characters due to a certain set of rules (citation) a Kolmogorov-Uspensky machine uses a non-linear graph. So to be a graph it needs nodes and edges connecting the nodes. This I get, but what is unclear to me is what the output is. I do understand RAM as much as a hobbyist who took a few classes in high-school can understand RAM, so I assume that the output of the machine is whatever was saved from the input, I guess?

Well, he demonstrates stationary nodes and dynamic nodes in his graph. A stationary node is a slime mold colony that grows on a oat flake or nutrient source. It will stay in the same place until the nutrition runs out. A dynamic node is a slime mold colony that appears when two or more plasmodium tubes connect. It can be removed by destroying the connecting tubes.

To be a KU machine, it needs to be able to send information back and forth between nodes. In a graph on paper, a line between group x and y can only move one way, x to y, so there needs to be a second line running y to x in order to be a KU machine. With physarum one plasmodium tube between the colonies will periodically reverse nutrient flow.

Each colony needs to have an easily identifiable address, like how computers have IP address to identify themselves on a network or computer parts have MAC addresses to tell the processor what kind of part it is. His solution is to place colors under each colonies, so there is a colony with a yellow address or green address and whatever.

What's great about this is it explains how it's a KU machine. It explains how to program said machine. I have no idea what this machine does or should do, though. If it's just a set up to show that can be done, well then that's awesome. If it stores data, then I want to know how to access the stored data. What this has given me though is a starting point for not only graphs, but how graphs, computer engineering, and their relation to not just slime mold but all types of mold. I'll bring more on that in the coming weeks. What's great about Adamatzky's work is that this one demonstration of slime molds relation to computer science. He also writes about how these molds can form logic gates, he explains that when two colonies absorb different dyes and connect, the dynamic node is the color of the combination of the dyes. It's a good starting point, really.

Allow me to answer the why real quick, or at least what I think the benefit is. Mold is an organism that can repair itself when damaged, remove parts of itself when needed and creates new connections in order to better solve that shortest path problem. If data could be stored and accessed on mold, then it would be able to make faster connections based on often we needed data stored at various addresses.