  Recent advancements in microbiology have motivated the study of the
production of nanostructures with applications such as biomedical computing and
molecular robotics. One way to construct these structures is to construct
branched DNA molecules that bond to each other at complementary cohesive ends.
One practical question is: given a target nanostructure, what is the optimal
set of DNA molecules that assemble such a structure? We use a flexible-tile
graph theoretic model to develop several algorithmic approaches, including a
integer programming approach. These approaches take a target undirected graph
as an input and output an optimal collection of component building blocks to
construct the desired structure.
