Optimization of Tile Sets for DNA Self- Assembly

Similar documents
CS 441/541 Artificial Intelligence Fall, Homework 6: Genetic Algorithms. Due Monday Nov. 24.

Achieving Desirable Gameplay Objectives by Niched Evolution of Game Parameters

A Genetic Algorithm-Based Controller for Decentralized Multi-Agent Robotic Systems

Developing Frogger Player Intelligence Using NEAT and a Score Driven Fitness Function

CYCLIC GENETIC ALGORITHMS FOR EVOLVING MULTI-LOOP CONTROL PROGRAMS

BIEB 143 Spring 2018 Weeks 8-10 Game Theory Lab

Simulation of Self-Assembly in the Abstract Tile Assembly Model with ISU TAS

Evolution of Sensor Suites for Complex Environments

A Numerical Approach to Understanding Oscillator Neural Networks

Creating a Dominion AI Using Genetic Algorithms

FreeCiv Learner: A Machine Learning Project Utilizing Genetic Algorithms

Genetic Algorithms with Heuristic Knight s Tour Problem

Sensitivity Analysis of Drivers in the Emergence of Altruism in Multi-Agent Societies

Multiplication and Area

Evolving High-Dimensional, Adaptive Camera-Based Speed Sensors

LANDSCAPE SMOOTHING OF NUMERICAL PERMUTATION SPACES IN GENETIC ALGORITHMS

COMP SCI 5401 FS2015 A Genetic Programming Approach for Ms. Pac-Man

Genetic Programming of Autonomous Agents. Senior Project Proposal. Scott O'Dell. Advisors: Dr. Joel Schipper and Dr. Arnold Patton

Printer Model + Genetic Algorithm = Halftone Masks

A Factorial Representation of Permutations and Its Application to Flow-Shop Scheduling

Shuffled Complex Evolution

Comparing Methods for Solving Kuromasu Puzzles

Genetic Algorithms for Optimal Channel. Assignments in Mobile Communications

Refining Probability Motifs for the Discovery of Existing Patterns of DNA Bachelor Project

CSE548, AMS542: Analysis of Algorithms, Fall 2016 Date: Sep 25. Homework #1. ( Due: Oct 10 ) Figure 1: The laser game.

Regulatory Motif Finding II

CSCI 2570 Introduction to Nanocomputing

Optimizing the State Evaluation Heuristic of Abalone using Evolutionary Algorithms

Biologically Inspired Embodied Evolution of Survival

COMP SCI 5401 FS2018 GPac: A Genetic Programming & Coevolution Approach to the Game of Pac-Man

Chapter 5 OPTIMIZATION OF BOW TIE ANTENNA USING GENETIC ALGORITHM

The Genetic Algorithm

Smart Grid Reconfiguration Using Genetic Algorithm and NSGA-II

A Note on General Adaptation in Populations of Painting Robots

A Genetic Algorithm for Solving Beehive Hidato Puzzles

CellSpecks: A Software for Automated Detection and Analysis of Calcium

Graphs of Tilings. Patrick Callahan, University of California Office of the President, Oakland, CA

The Simulated Location Accuracy of Integrated CCGA for TDOA Radio Spectrum Monitoring System in NLOS Environment

INTERACTIVE DYNAMIC PRODUCTION BY GENETIC ALGORITHMS

Evolving CAM-Brain to control a mobile robot

Exercise 4 Exploring Population Change without Selection

A comparison of a genetic algorithm and a depth first search algorithm applied to Japanese nonograms

A Novel approach for Optimizing Cross Layer among Physical Layer and MAC Layer of Infrastructure Based Wireless Network using Genetic Algorithm

ARRANGING WEEKLY WORK PLANS IN CONCRETE ELEMENT PREFABRICATION USING GENETIC ALGORITHMS

SECTOR SYNTHESIS OF ANTENNA ARRAY USING GENETIC ALGORITHM

Solving Assembly Line Balancing Problem using Genetic Algorithm with Heuristics- Treated Initial Population

Generating Interesting Patterns in Conway s Game of Life Through a Genetic Algorithm

Using Cyclic Genetic Algorithms to Evolve Multi-Loop Control Programs

GPU Computing for Cognitive Robotics

Evolutionary Optimization for the Channel Assignment Problem in Wireless Mobile Network

Algorithms for Genetics: Basics of Wright Fisher Model and Coalescent Theory

Population Adaptation for Genetic Algorithm-based Cognitive Radios

Evolving Digital Logic Circuits on Xilinx 6000 Family FPGAs

Local Search: Hill Climbing. When A* doesn t work AIMA 4.1. Review: Hill climbing on a surface of states. Review: Local search and optimization

The Behavior Evolving Model and Application of Virtual Robots

Implicit Fitness Functions for Evolving a Drawing Robot

Evolutions of communication

Evolutionary Artificial Neural Networks For Medical Data Classification

THE problem of automating the solving of

PROG IR 0.95 IR 0.50 IR IR 0.50 IR 0.85 IR O3 : 0/1 = slow/fast (R-motor) O2 : 0/1 = slow/fast (L-motor) AND

Tile Complexity of Assembly of Length N Arrays and N x N Squares. by John Reif and Harish Chandran

Multi-Platform Soccer Robot Development System

Reactive Planning with Evolutionary Computation

Trade-offs Between Mobility and Density for Coverage in Wireless Sensor Networks. Wei Wang, Vikram Srinivasan, Kee-Chaing Chua

Abstract and Kinetic Tile Assembly Model

Available online at ScienceDirect. Procedia Computer Science 24 (2013 )

Game Theory: From Zero-Sum to Non-Zero-Sum. CSCI 3202, Fall 2010

CPS331 Lecture: Genetic Algorithms last revised October 28, 2016

Enhancing Embodied Evolution with Punctuated Anytime Learning

THE EFFECT OF CHANGE IN EVOLUTION PARAMETERS ON EVOLUTIONARY ROBOTS

Real-Coded Genetic Algorithm for Robust Design of UPFC Supplementary Damping Controller

Average Delay in Asynchronous Visual Light ALOHA Network

GENETIC PROGRAMMING. In artificial intelligence, genetic programming (GP) is an evolutionary algorithmbased

An Idea for a Project A Universe for the Evolution of Consciousness

DNA Mapping and Brute Force Algorithms

Using Genetic Algorithm in the Evolutionary Design of Sequential Logic Circuits

Improvement of Robot Path Planning Using Particle. Swarm Optimization in Dynamic Environments. with Mobile Obstacles and Target

FREQUENCY ESTIMATION OF UNDAMPED EXPONENTIAL SIGNALS USING GENETIC ALGORITHMS

Techniques for Generating Sudoku Instances

Design and Development of an Optimized Fuzzy Proportional-Integral-Derivative Controller using Genetic Algorithm

Evolving Control for Distributed Micro Air Vehicles'

INFORMATION AND COMMUNICATION TECHNOLOGIES IMPROVING EFFICIENCIES WAYFINDING SWARM CREATURES EXPLORING THE 3D DYNAMIC VIRTUAL WORLDS

An Artificially Intelligent Ludo Player

Multi-Robot Coordination. Chapter 11

Genetic Algorithm-Based Approach to Spectrum Allocation and Power Control with Constraints in Cognitive Radio Networks

Game Theory and Randomized Algorithms

Bead Sort: A Natural Sorting Algorithm

CHANNEL ASSIGNMENT IN AN IEEE WLAN BASED ON SIGNAL-TO- INTERFERENCE RATIO

Fault Location Using Sparse Wide Area Measurements

CCO Commun. Comb. Optim.

Solving the Fixed Channel Assignment Problem in Cellular Communications Using An Adaptive Local Search

arxiv: v1 [cs.ds] 14 Nov 2011

RoboPatriots: George Mason University 2010 RoboCup Team

An Evolutionary Approach to the Synthesis of Combinational Circuits

Lossy Compression of Permutations

Evolutionary robotics Jørgen Nordmoen

Online Evolution for Cooperative Behavior in Group Robot Systems

A Study of Permutation Operators for Minimum Span Frequency Assignment Using an Order Based Representation

Differential Evolution and Genetic Algorithm Based MPPT Controller for Photovoltaic System

Keywords- DC motor, Genetic algorithm, Crossover, Mutation, PID controller.

Transcription:

Optimization of Tile Sets for DNA Self- Assembly Joel Gawarecki Department of Computer Science Simpson College Indianola, IA 50125 joel.gawarecki@my.simpson.edu Adam Smith Department of Computer Science Simpson College Indianola, IA 50125 adam.smith@my.simpson.edu Jaris Van Maanen Department of Computer Science Simpson College Indianola, IA 50125 jaris.vanmaanen@my.simpson.edu Linsey Williams Department of Computer Science Simpson College Indianola, IA 50125 linsey.williams@my.simpson.edu Abstract Tile self-assembly systems serve as models of DNA molecules designed to act as foursided building units that can self-assemble to various shapes. Research on the design of such nanoscale constructs has shown their high potential usefulness in the area of nanotechnology. Given a target shape of tiles, the goal is to find the tile set that will selfassemble in the target shape. The input to our genetic algorithm is a collection of randomly constructed tile sets. The output of the genetic algorithm is a set of tiles that most closely assembles to the target shape. In the paper we discuss the chosen representation of the tile sets and the experiments we made with selection, cross-over, and mutation methods. Finally we present a distributed computational architecture used to speed up the process of obtaining subsequent generations of tile sets.

1 Introduction Our research began in the fall of 2011 as part of an Introduction to Algorithms course and has continued into the spring of 2012, partially sponsored by NSF grant CCF-1143839. During our research we studied the tile self-assembly problem and explored algorithms for tile self-assembly. Self-assembly is a process by which components may form complex structures autonomously. Due to the natural properties of DNA structures, selfassembly will occur when DNA molecules are allowed to interact. DNA molecules that can assemble into complex structures can be modeled by a tile self-assembly system. In the Wang model of tile self-assembly [1] a tile can represent a DNA structure with four one-stranded sticky ends. These ends are composed of a finite combination of short nucleotide sequences that will naturally bind with other nucleotide sequences. Each of the tile s four sides is given a value or color that represents the binding properties of the tile. Figure 1: Left: DNA tile as made up of DNA helices. Notice the single stranded sticky ends. Right: Representational tile model of this structure. Tiles are placed into a grid where they are allowed to move, interact, and bind based on the compatibility, or binding strength, of their sides. Tiles moving in the grid eventually will bind and form structures that will grow differently based on the tile set on the grid. We examined the following tile self-assembly problem: given a predefined shape, what tile set can best assemble to that shape? We began by running experiments in the tile selfassembly software (TAS) developed at Iowa State University [3]. In the software, tile sets must be manually designed by the user in order to form specific structures. We found this design process to be time-consuming and inefficient. Looking further into the process of tile assembly, we found work by Terrazas, Gheorghe, Kendall, and Krasnogor, described in [1], [2]. These papers presented a genetic algorithm for tile self-assembly. We were motivated to develop an algorithm that will evolve tile sets instead of going through the process of manually creating and testing tile sets. This evolution would allow an optimal tile set to form based on an original population of randomly generated seed tiles. In the following sections we outline the genetic algorithm we implemented. We describe the tile set representation and how the fitness evaluation function is computed. We implemented a distributed computational architecture. The results section presents the output our simulated system and shows figures representing this data. 1

2 Algorithm A genetic algorithm is an optimization search algorithm. It searches for best individuals among a population based on some evaluation criteria, represented by a fitness function. The algorithm starts with a randomly generated initial population. This population is evolved by performing three basic operations in a cycle: parent selection, cross-over, and mutation. The fitness value for each newly-created individual is computed, and this value determines the chances for this individual to be selected for reproduction. A higher fitness corresponds to a higher probability for selection. Thus, over several generations, the quality of the individuals improve to better match the evaluation criteria. Our program begins by generating a pool of tiles based on the number of unique nucleotide sequences to be used. This pool contains exactly one copy of every possible tile type. From this pool random sets of tiles, or individuals, are generated. An individual consists of a given number of unique tile types with any number of copies for each of these types. Formally stated, let T be the pool of all possible tiles. An individual in the population is defined by the set T i = {(T i1, α i1 ), (T i2, α i2 ), (T ik, α ik )} where T ij T, and α i1 : α i2 : : α ij is the composite ratio of the tiles. In our implementation all individuals have same number of tiles. Figure 2: Example of one tile set, or individual, made up of five different tile types (indicated by the tile s shading) and 17 total tiles. The composite ratio is 3:2:7:3:2. These generated individuals are then placed into the total population, which will contain a predetermined number of individuals. This original randomized population will serve as seed for evolving future populations. For each individual, a Wang tile system simulation is run to determine the shape to which the tile set will assemble. Our simulation allows each tile to move randomly in four cardinal directions on a 50x50 unit grid. If a tile comes into contact with another tile or a group of tiles, the tile may bind and stop moving. Tiles are allowed to bind with each other based on an arbitrarily generated, symmetric binding matrix of existing singlestranded nucleotide sequences that bond at the given strengths. The binding matrix is a numeric representation of the physical binding properties of given nucleotide sequences. 2

S 1 S 2 S 3 S 4 S 5 S 1 3 2 9 6 3 S 2 2 5 7 1 0 S 3 9 7 2 5 4 S 4 6 1 5 3 5 S 5 3 0 4 5 1 Table 1: Example of a binding matrix, with S n representing a unique nucleotide sequence. The values represent the binding strength between a pair of sequences, or edges. Note: two tiles will not bind if the value is below the threshold. In our tile model, one sticky end of nucleotides is represented as a unique integer, forming one edge of the tile. The compatibility of these edges is stored in the binding matrix, which determines which nucleotide sequences will combine. The sequences needn t be perfectly complimentary to bond however sequences which are not fully compatible will have lower binding strengths, as shown above. Some tiles with a low level of compatibility will never bind, even when occupying adjacent locations on the grid. Once the simulation for one individual has run through a sufficient number of tile movements, the individual will be assigned a fitness value. After each individual in the population has gone through the simulation and is assigned a fitness value, the population s average and maximum fitness is calculated and stored. To allow for more pressured selection based on high fitness values, the average fitness of the population is subtracted from each individual s fitness. The fitness of an individual in a given generation is determined by the section of the grid that most closely resembles the target shape. Only locked tiles are considered; movable tiles or empty spaces are not considered. The target shape is a grid of integers where each entry represents the weight of a locked tile in that location. Thus, a positive number in the target shape represents a location in which a locked tile is desired, a negative value represents a location where a locked tile should not be, and a zero represents a space in which the presence of a locked tile is irrelevant. For example, to make a 3x3 square with a hole in the center, the edges of the shape where locked tiles should be found add positively upon a match, and the center location, in which a locked tile should not occur, negatively affect fitness upon match. Figure 3: An example target grid for a 3x3 square with a hole in the center. 3

The program searches every possible section of the grid that could contain the target shape. A record is kept of the highest fitness found during this process for each individual and is used as that individual s final fitness in the generation. Once the fitness values of the individuals in the population have been computed, roulette wheel selection is used to select parents for cross-over replication. The cross-over method creates two children from two parents by way of a randomly chosen single cross-over point. Figure 4: Top Left: Population of individuals. Two parent individuals are selected for cross-over using roulette wheel selection (not shown). Top Right: Crossover occurs. Bottom: The two child individuals are placed into the next generation s population. This process repeats for a given number of generations. After the cross-over, the children are subjected to a pre-specified rate of tile mutation. A mutation may consist of alteration of the number of tile types within a population or the change of one tile edge to a random value. The resulting children will then populate the next generation, and then the process repeats by selecting two new parents. To reduce the run time of our program, we implemented a client-server architecture that allows the work to be distributed between multiple computers. Since the majority of the computation takes place in evaluating the fitness, this evaluation runs in the client portion of the program. On the other hand, much of the genetic algorithm is inherently sequential; a new generation cannot be created until the current generation is complete. Additionally, the genetic operations are not very computationally intensive. Therefore, the genetic algorithm runs on the server. To evaluate individuals for the server, the client requests datasets from the server. These datasets contain all information necessary to evaluate the fitness; that is, all data needed to place a set of tiles on a grid, run the tile motion simulation, and evaluate the results. The primary component of these datasets is the composite ratio of tiles in an individual; 4

other components include the grid dimensions, the binding matrix, and the target shape. Once a client has computed an individual s fitness, it returns the result to the server. To further increase computation speed, the client process is multithreaded. This allows even a single computer with a multicore CPU to outperform a simple single-threaded implementation in which all fitness values are evaluated sequentially. The server process handles the genetic algorithm. All selection, cross-over, and mutation take place in a single thread on the server. While this does place a limitation on the potential speedup of the algorithm, the amount of work needed to run the genetic algorithm is small compared to the amount needed to evaluate the fitness. This architecture also has an advantage in that the clients are unaware of anything going on in the server process, except for the data they are sent to evaluate. In this way, we were able to run the genetic algorithm repeatedly with varying parameters, without changing any parameters in, or even restarting, the client processes. This multithreaded architecture may not have been necessary, but it was convenient. Evaluation time primarily depended on the size of the grid, number of allowed movements, and the number of individuals in a generation. For most of our experiments, we used a grid size of 50x50 tiles, 200 allowed movements per tile, and 100 individuals in a generation. Evaluating a single generation with these parameters took about 10 seconds running on a single client with a single thread. However, with just a few multicore computers this time could be reduced to less than a second. Eventually, the server would become a bottleneck to any further speedup. This was due to displaying and logging a fairly large amount of output. 3 Experimental Results To test our program, we ran it on various inputs to the genetic algorithm. One of our tests used a simple target shape of a 5x5 grid of ones. We ran this test on a range of other inputs, eventually settling on doing more extensive tests on a 50x50 grid with various numbers of tiles placed on the grid. Figure 5 shows the output of selected generations from one experiment. Our results indicate that the algorithm maximizes the fitness relatively quickly. Very little improvement was observed in either the average or maximum fitness of a generation after the 50 th generation (Figure 6). However, such a simple target shape has many solutions. Because a target shape of only positive numbers never penalizes results that are larger than the target shape, this gradually resulted in final grids that consisted of larger and larger groupings of tiles 5

(a) (b) (c) Figure 5: Generations 1 (a), 10 (b), and 25 (c) from a population of 300 tiles and the target shape of a 5x5 square. Dark grey squares represent bound tiles, and light grey squares represent unbound tiles. 6

Average Fitness 25 20 15 10 5 0 1st 10th 25th 50th 75th 100th 125th 150th Generation Tiles per Generation 150 Tiles 200 Tiles 300 Tiles 400 Tiles 500 Tiles 600 Tiles 700 Tiles Figure 6: Average fitness for 5x5 solid square target shape. Another set of experiments also used a target shape consisting of an array of ones, but this time with dimension 1x15. Using this target shape, the algorithm successfully evolved tile sets that produced horizontal strings of tiles, as shown in figure 7. (a) (b) Figure 7: Generations 1 (a), and 25 (b) from a population of 200 tiles and the target shape of a 1x15 rectangle. 7

16 Average Fitness 14 12 10 8 6 4 2 Tiles per Generation 150 Tiles 200 Tiles 300 Tiles 400 Tiles 500 Tiles 600 Tiles 700 Tiles 0 1st 10th 25th 50th 75th 100th 125th 150th Generation Figure 8: Average fitness for 1x15 target shape. We have found that the fitness for a population of tiles will level off after approximately 30 generations. We have also found that although increasing the number of tiles in the grid initially allows for better fitness, this tendency has a limit as the grid becomes increasingly full. Because our target shapes in these experiments contained only positive numbers, a grid that is increasingly dense with tiles would only help the fitness. However, target shapes with negative values, that is, areas that should not be filled, would not benefit from an increasingly full grid. This should also prevent overly large groupings of tiles from forming, by assigning them a lower fitness. We have made some preliminary experiments with such shapes, and we are continuing work in this direction. 4 Future Work There are multiple areas we would like to work on to improve the behavior of the algorithm. Currently, the major disadvantage of our method is that tiles are locked into the grid, and groups of tiles that are bound together are not moved. Additionally, the fitness function treats any tiles locked to the grid the same way it treats a group of tiles that are actually bound to each other. To improve our program, we would like the tile motion simulation to lock tiles to each other, rather than to the grid itself. In this way, small blocks of tiles are less likely to end up isolated from each other, and could continue to move and bind to other blocks of tiles. 8

This would be more physically realistic and likely help in forming larger structures on larger grids, without needing as many tiles on the grid. The other major change we would like to make is to consider groups of bound tiles when calculating the fitness. Currently, two groups of tiles may form next to each other, but not actually have any bonds to each other, or have only weak bonds. However, the current fitness function will treat this exactly the same as one larger group of tiles with the same shape in which all tiles are strongly bound. Ideally, the fitness function would consider groups of bound tiles, allowing two groups to be adjacent while still being considered separately by the fitness function. Another modification we would like to make to our algorithm is to consider the number of times the target shape, or similar shapes, are produced. The fitness function currently considers a grid with a single occurrence of the target shape just as fit as a grid with many copies of the target shape. We experimented with counting multiple copies, but the fitness function is not able to distinguish groups of tiles, as stated earlier. Because of this, a single group of tiles could count multiple times, and greatly inflate the fitness. However, if the fitness function could be applied to each group of bound tiles, a better overall fitness could be accumulated. Acknowledgements This work is partially sponsored by NSF grant CCF-1143839 and the Computer Science Department at Simpson College. We would also like to thank our advisor for this project, Dr. Lydia Sinapova of Simpson College. Finally, we would like to thank the Laboratory for Algorithmic Nanoscale Self-Assembly research team from Iowa State University, in particular Dr. Jack Lutz and Dr. Jim Lathrop, who first introduced us to the field of tile self-assembly, and provided the inspiration for this work. References [1] G. Terrazas, M. Gheorghe, G. Kendall, N. Krasnogor. Evolving Tiles for Automated Self-Assembly Design. Proceedings of the IEEE Congress on Evolutionary Computation, Swissotel The Stamford, Singapore, 2007. [2] G. Terrazas, M. Gheorghe, G. Kendall, N. Krasnogor. Automated Tile Design for Self-Assembly Conformations. Proceedings of the 2005 IEEE Congress on Evolutionary Computation, Edinburgh, Scotland, 2005. [3] M.J. Patitz. Simulation of Self-Assembly in the Abstract Tile Assembly Model with ISU TAS. Presented at CoRR, 2011. 9