Automated self-assembly programming paradigm

From self-assembly wiki
Revision as of 23:34, 20 April 2012 by \('"2\)'"7
(\(1) \)2 | \(3 (\)4) | \(5 (\)6)
Jump to navigation Jump to search


Published on: Published on::2008/05/01

abstract

Self-assembly is a ubiquitous process in nature in which a disordered set of components autonomously assemble into a complex and more ordered structure. Components interact with each other without the presence of central control or external intervention. Self-assembly is a rapidly growing research topic and has been studied in various domains including nano-science and technology, robotics, micro-electro-mechanical systems, etc. Software self-assembly, on the other hand, has been lacking in research efforts. In this research, I introduced Automated Self-Assembly Programming Paradigm (ASAP2), a software self-assembly system whereby a set of human made components are collected in a software repository and later integrated through self-assembly into a specific software architecture. The goal of this research is to push the understanding of software selfassembly and investigate if it can complement current automatic programming approaches such as Genetic Programming. The research begins by studying the behaviour of unguided software self-assembly, a process loosely inspired by ideal gases. The effect of the externally defined environmental parameters are then examined against the diversity of the assembled programs and the time needed for the system to reach its equilibrium. These analysis on software self-assembly then leads to a further investigation by using a particle swarm optimization based embodiment for ASAP2. In addition, a family of network structures is studied to examine how various network properties affect the course and result of software self-assembly. The thesis ends by examining software self-assembly far from equilibrium, embedded in assorted network structures. The main contributions of this thesis are: (1) a literature review on various approaches to the design of self-assembly systems, as well as some popular automatic programming approaches such as Genetic Programming; (2) a software self-assembly model in which software components move and interact with each other and eventually autonomously assemble into programs. This self-assembly process is an entirely new approach to automatic programming; (3) a detailed investigation on how the process and results of software self-assembly can be affected. This is tackled by deploying a variety of embodiments as well as a range of externally defined environmental variables. To the best of my knowledge, this is the first study on software self-assembly.

authors

Lin Li

file

PDF