set-packing program.

Fast Parallel Solution for Set-Packing
by DNA-Based Computing
Michael(Shan-Hui)ho,Weng-long CHANG, Nonmember, Minyi GUO, Member,and
Laurence T.YANG, Nonmember
Reporter : yu-wen CHANG
outline

Introduction



DNA model of Computation



Introduction of DNA Structure
Set-Packing Program
Preliminaries
Algorithm
Conclusion
Introduction of DNA Structure(1/3)



In the biochemical world of large and small
molecules, polymers, and monomers, DNA is a
polymer, which is strung together from monomers
called deoxyriboNucleotides.
Each deoxyribonucleotide contains three components:
a sugar, a phosphate group, and a nitrogenous base.
This sugar has five carbon atoms and they are
numbered from 1’ to 5’.
Introduction of DNA Structure(2/3)
P
5
'’
Base
4
1’
’3 2
’ ’
OH
Base: 1. Adenine 2. Guanine
3. Cytosine 4. Thymine
Introduction of DNA Structure(3/3)

Using sticker to construct solution space of DNA for the
library sequences in the set-packing program.
Set-Packing Program(1/3)

Suppose we have a finite set S and a list of subsets of
S. Then, the set packing problem asks if some k
subsets in the list are pairwise disjoint (in other words,
no two of them intersect). The problem is clearly in
NP, since given k subsets we can easily verify that
they are disjoint. The NP-hard optimization version of
the problem, maximum set packing, asks for the
maximum number of pairwise disjoint sets in the list.
Set-Packing Program(2/3)


Suppose S={1,2,3,4} , subset of collection
C={,{1},{2},{3},{4},{1,2}{1,3}{1,4}{2,3}{2,4}
{3,4}{1,2,3}{1,2,4}{1,3,4}{2,3,4}{1,2,3,4}} if
k=2 then set-packing is {1,2}{3,4}
先要有一個集合S 然後列出S裡面所有的子
集合 接下來 在所有的子集合中 挑出K個 使
得K個被挑出來的子集合 彼此之間無重覆
那請問最多有幾種挑法
Set-Packing Program(3/3)
Preliminaries()

Given a tube, one can perform the following
operations:
1.
2.
3.
4.
5.
6.
Extract
Merge
Detect
Append
Discard
Read
Preliminaries()
Extract: Given a tube P and a short single strand of
DNA called S , we can produce two tubes +(P, S) and
−(P, S ), where +(P, S ) is all of the molecules of DNA
in P which consist of the short strand S , and −(P, S ) is
all of the molecules of DNA in P which do not contain
the short strand S .

EX: set P = {1,2,3} , +(P, 1) ={1}, −(P, 1 ) = {2,3}.
Preliminaries()

Merge. Given tubes P1 and P2, yield ∪(P1, P2),
where∪(P1, P2) = P1∪P2. This operation is to pour
two tubes into one, with no change in the individual
strands.
EX: set P1={1,2} ,P2={3,4} then ∪(P1, P2)
={1,2,3,4}.
Preliminaries()

Detect. Given a tube P, if it includes at least one DNA
molecule we can say ‘yes’, and if it contains no DNA
we can say ‘no’.
EX: set P1={1} ,P2={};detect(P1)=yes ,
detect(P2)=no.
Preliminaries()

Append. Given a tube P and a short strand of DNA
called Z, the operation will append the short strand Z
onto the end of every strand in tube P.
EX: set P={1,2};append(p,3)=>P={1,2,3}.
Preliminaries()

Discard. Given a tube P, the operation will discard
the tube P.
Preliminaries()

Read. Given a tube P, the operation is used to
describe a single molecule, which is contained in tube
P. Even if P contains many different molecules, the
operation can give an explicit description of only one
of them.
EX: set P ={1,2,3} ; read(P)={1,2,3}.
Algorithm()
Conclusions