Theoretical and Experimental DNA Computation (Natural ...
Theoretical and Experimental DNA Computation (Natural ...
Theoretical and Experimental DNA Computation (Natural ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
42 2 <strong>Theoretical</strong> Computer Science: A Primer<br />
The function F computed by this circuit is (x OR y) AND (NOT x OR<br />
NOT y). In formal notation, this is expressed as F =(x ∨ y) ∧ (x ∨ y). OR is<br />
denoted by ∧, AND by ∧, <strong>and</strong> NOT by overlining the variable.<br />
F is made up of two bracketed clauses, <strong>and</strong> the problem is to find values<br />
for the variables so that both clauses have the value 1, giving a value of 1 for<br />
F (observe that the values of the clauses are ANDed). This problem is known<br />
as the “satisfiability” problem because making all the clauses true is viewed<br />
as “satisfying” the clauses.<br />
The most obvious method of solving this problem is to generate all possible<br />
choices for the variable values. That is, construct the truth table for the circuit.<br />
Table 2.5 shows a breakdown of the truth table for the circuit depicted in<br />
Fig. 2.15.<br />
Table 2.5. Truth table for satisfiability circuit<br />
xy(x ∨ y) (x ∨ y) z<br />
00 0 1 0<br />
01 1 1 1<br />
10 1 1 1<br />
11 1 0 0<br />
Clearly, by inspection, only the combinations “x = 0, y = 1” <strong>and</strong> “x = 1, y =<br />
0” are valid solutions to the problem. The current best algorithm essentially<br />
performs just this process of trying all possible 2 n choices for n variables.<br />
Therein lies the problem.<br />
Consider a situation where the number of variables doubles to four. There<br />
are therefore 2 4 = 16 combinations to check. Doubling the circuit size again<br />
means checking 2 8 = 256 combinations. However, what if the function has<br />
100 variables? The number of combinations to be checked is now a staggering<br />
1,267,650,600,228,229,401,496,703,205,376!<br />
This is what mathematicians refer to as a combinatorial explosion. Thisis<br />
a situation where work (or space required) increases by a factor of two, three,<br />
or more for each successive value of n.<br />
Table 2.6 shows the time required by different algorithms with different<br />
time complexities for different values of n. Weassumethealgorithmsarerun<br />
by a machine capable of executing a million steps a second.<br />
Clearly, algorithms requiring n (linear) orn 2 (quadratic) time may be<br />
feasible for relatively large problem instances, while algorithms requiring 2 n<br />
(exponential) time are clearly impractical for even small values of n.