DIVISION OF ENGINEERING AND APPLIED SCIENCES
HARVARD UNIVERSITY

CS 266: Biologically-inspired Distributed and Multi-agent Systems

Prof. Radhika Nagpal
Fall 2004

Class Research Projects

This page lists several suggested projects, however you are encouraged to come up with your own projects. A good project is one that fits in with your interest and research goals; feel free to propose projects that cover side-areas you would like to investigate or that complement your current research.

Many of the suggestions below are fairly open-ended and will require significant background research and thought to turn into an achievable semester long project. Part of the exercise is to be able to formulate reasonable size projects for yourself - you propose what you will do, what you will deliver, how you will evaluate it. I also encourage you to consider projects in groups of two or three, it allows for much more ambitious projects and the ability to amortize some of the effort.

Due Dates:
Short 1 page proposal: 10/5
Full proposal: 10/26
Presentations: 12/16 and 21
Written report (10 pages): 1/10 by noon.

Assignment 1 (due 10/5): Short 1-page proposal
Submit a 1-page proposal via email to cs266-reviews@eecs (ascii text only, and if possible not as an attachment) along with a note on which lecture you would like to present. The purpose of this proposal is for you to identify which areas interest you the most and read the relevant literature. Feel free to list more than one possible project, to choose one from the lists below, and/or submit a joint proposal with one or two other classmates. On tuesday 10/5 and thursday 10/7, we will spend time in class hearing about each other's class projects.

Assignment 2 (due 10/26): Full Research proposal
Submit a (<) 3-page proposal on your class project. Your proposal should contain (1) A succinct description of the problem/project you are investigating and its significance (2) A description of background/related work (3) A plan of execution along with a list of 2 week milestones (4) A short bibliography (5) One sentence about where you'd eventually like to go with this project.
In setting a plan and milestones, keep a couple of points in mind. First you should feel free to set milestones that come with the caveat "if all goes well upto this point". Second, make sure that you build in evaluation points into your milestones - how will you evaluate success at intermediate steps? Also for joint person projects, give some indication (and thought) as to who will be doing which parts.
Submit your proposal (preferably pdf) via email to cs266-reviews@eecs.

Assignment 3 (due 11/16): Research Updates
The goal of the update is to report your progress so far on achieving your milestones, to bring up issues/problems that you are experiencing, as well as to inform your classmates what you are upto. So this update will have three parts:(1) Send me an email update in (ascii text to cs266-reviews@eecs). You should recieve an email with the format (2) In class be ready to give a 2 minute description of what you are doing and how its going (3) Set a time to meet with me.

Some Overview Papers, Popular Articles, and Websites


Project Suggestions

In addition to the list below, see
More project ideas here and
Suggestions (RFPs) and final projects from a related seminar at MIT.


AMORPHOUS COMPUTING AND SELF-ASSEMBLY

Modular Robots and L-systems

[Bojinov et al 2000] proposed a method for reconfiguring a self-reconfigurable robot called proteo. In this method branching structures are created through local decisions to become seeds, or create gradients and the morphology can respond to external environment. On the other hand, Lindemayer systems (L-systems) have been extensively used to describe rules or {\em grammers} for generating branching structures, such a different plants structures and flowering behaviors [Prusinkiewicz et al 1997]. Can one create a programming language based on L-systems to describe the desired global morphology, that then compiles directly into proteo local rules? What kinds of morphologies can be described/created? To what extent can one to describe environmentally-sensitive structures, whose shape partially depends on the environmental conditions? [note: java simulator is available for proteo and similar robots]

Programmable Self-Aggregation

[Kondacs 2003] designed a language for the self-assembly of 2D structures from agents that could replicate (grow) and die. A key feature of this language was that one could simply create a free-hand sketch of the final desired morphology and auotmatically compile it into the agent program; a key step was an intermediate circle-network representation. Can this language (or a similar one) be used for self-aggregation in mobile robots, such as the swarm bots (www.swarmbots.org) by replacing growth and death with recruitment and dispersion? Some open issues are, how does one prevent blocking, and how does one recruit without global signalling? Also see [Stoy and Nagpal 2004] for an example of using a similar representation for 3D reconfiguration in a modular robot.

Developmental Biology

[Day and Lawrence 2001] describe many intriguing examples of how cells can adapt during embryogensis and development - scale-independence, regeneration, timing variation. Meinhardt [web essay] also describes many of the models proposed to explain how this migth occur. Investigate how cell achieve these properties and how this may be translate to an algorithm or artifical system.

If you are interested in self-assembly, there are many other possible projects involving algorithms, analysis, inverse problems (global shape to local rules),


Swarm Programming Language

Mataric's work [Mataric 1995] on basis behaviors is one of the few attempts at creating a high level programming language, using the swarm behaviors as underlying low level rules. However the end behavior of the system has been notoriously difficult to predict and there is no systematic way to create programs for given high level goals. The problem of "synthesis" remains open and important, as evidenced by the recent MURI grant proposal (see page 19) on swarms. Recent work in Amorphous Computing suggests that looking for high level, but domain-specific, programming languages may make the global-to-local problem tractable.

Pick a task domain (and a representative example of such a task) for robot swarms and design a programming language for describing global plans at high level in the domain. Show how this would be compiled into swarm (or other) behaviors. To what extent can the system be made insesitive to numbers of robots, robust to failures, etc. Examples of task domains might be delivery robots in a building or warehouse, collective transport, monitoring/scouting, unmanned construction, planet exploration etc.


Sensor Networks

(Note: If you are taking Prof. Welsh's course CS263, you may combine projects)


Handbook of Gradients

Virtual pheromones, digital hormones, morphogen gradients, co-fields, directed diffusion - these ideas have reappeared in slightly varying forms in many different contexts, from mobile robots to sensor networks to pervasive computing. Some incorporate mobile nodes, others might incorporate evaporation. The uses are equally diverse from forming ad-hoc coordinate systems, to directing visitors away from congested areas in a museum, to keeping a modular robot connected. Clearly gradient-like algorithms are a fundamentally useful concept within large decentralized systems, yet knowledge about how to efficiently use and implement them is distributed over several fields.

Can one unite these varying examples into a single framework, a "handbook of gradients"? What is the core algorithm vs the variations; how do these variations affect robustness/accuracy/cost/speed of the gradient? How do the characteristics of the network (mobility,density,etc) affect the behavior of gradients -- can one extend analytical results from amorphous computing to the other domains? This project would involve a careful survey and evaluation of these different forms of communication, and analysis of distributed algorithm behavior given different agent and network characteristics. The result would be an extremely useful (and publishable) piece of work.

Related topic: Silvester and Kleinrock published a famous paper in the 1970s called "Why six is a magic number". In this they analytically showed that 6 was the best density to use (radio radius setting) such that (a) multiple hops were close to the straight line distance and (b) bandwidth was not all lost to interefernce. They assumed random placement and circular radii (no finer distnce/orientation information). Extend these result to iomplementations of gradients in these new environments.


Synthetic Biology

Synthetic Biology is working towards being able to systematically program cells, like E. coli. bacteria, by genetically engineering plasmids from pre-characterized building blocks, called biobricks. So far it has been possible to create simple circuits, like inverters, flipflops and even an oscillator. Recently Lingchong et al demonstrated that one could program E. coli population behavior, through simple iuntercellular communications.

Ultimately, one of the goals is to be able to program fields of cells, for example to differentiate into specific patterns and deposit materials in a particular arrangement. Amorphous Computing languages, such as OSL [Nagpal 2001], may make it possible to easily pattern fields of cells. However there is still a large gap between the two. One of the missing pieces is an intermediate language appropriate for cells -- firstly DNA is inherently parallel, unlike the amorphous computing agents that more closely resemble serial processors. Secondly communication via diffusion of chemicals has different characteristics than models of gradients based on hopcounts. The goal of this project would be to define a "cell programming language" that can be (a) compiled into from OSL (or a subset of it) and (b) compiled out to a DNA program composed of genetic logic gates. parts. The goal would be to implement at least one of the compilation steps, and argue how the other side would work.


Still to come
- Links to available simulation enviroments
- Some paper links are missing, will be added soon.