Self-Healing

From self-assembly wiki
Jump to navigation Jump to search

First studied by Winfree in [1], the notion of self-healing is that in which a growing assembly is damaged (perhaps by the removal of a group of tiles somewhere in its interior) but then it can correctly re-grow to "heal" the damage without allowing internal errors. The major problem is that many computations are not reversible (meaning that if you're given the output from the computation, you can't know for sure what the inputs were), but when an assembly whose normal forward growth is determined by such a computation (e.g. the system forming the Sierpinski triangle pattern, which performs the xor operation) receives such damage, it is likely to re-grow on all edges of the hole. Thus, it will attempt to grow "backwards" in some areas, with tiles attaching to the assembly using their "output" sides, causing nondeterministic choices for the inputs to the computational steps represented by those tiles, frequently resulting in mistakes.

In [2], Soloveichik, Cook, and Winfree showed that both proofreading and self-healing properties can be incorporated into tile set transformations which make them robust to both problems simultaneously. In a remarkable example of self-healing, Chen, Goel, Winfree, and Luhrs [3] demonstrated a method to allow an entire n × n square to regrow from any subassembly which has at least one dimension which is 2 log(n) or greater. With scaling, they can apply their technique to general shapes.

References