13.12.2012 Views

Theoretical and Experimental DNA Computation (Natural ...

Theoretical and Experimental DNA Computation (Natural ...

Theoretical and Experimental DNA Computation (Natural ...

SHOW MORE
SHOW LESS

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.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!