Chemical programming to eploit chemical Reaction systems for computation
This thesis is on programming approaches to exploit the computational capabilities of chemical systems, consisting of two parts. In the first part, constructive design, research activities on theoretical development of chemical programming are reported. As results of the investigations, general programming principles, named organization-oriented programming, are derived. The idea is to design reaction networks such that the desired computational outputs correspond to the organizational structures within the networks. The second part, autonomous design, discusses on programming strategies without human interactions, namely evolution and exploration. Motivations for this programming approach include possibilities to discover novelty without rationalization. Regarding first the evolutionary strategies, we rather focused on how to track the evolutionary processes. Our approach is to analyze these dynamical processes on a higher level of abstraction, and usefulness of distinguishing organizational evolution in space of organizations from actual evolution in state space is emphasized. As second strategy of autonomous chemical programming, we suggest an explorative approach, in which an automated system is utilized to explore the behavior of the chemical reaction system as a preliminary step. A specific aspect of the system's behavior becomes ready for a programmer to be chosen for a particular computational purpose. In this thesis, developments of autonomous exploration techniques are reported. Finally, we discuss combining those two approaches, constructive design and autonomous design, titled as a hybrid approach. From our perspective, hybrid approaches are ideal, and cooperation of constructive design and autonomous design is fruitful.