08.01.2013 Views

LNCS 2950 - Aspects of Molecular Computing (Frontmatter Pages)

LNCS 2950 - Aspects of Molecular Computing (Frontmatter Pages)

LNCS 2950 - Aspects of Molecular Computing (Frontmatter Pages)

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

226 Nataˇsa Jonoska, Shiping Liao, and Nadrian C. Seeman<br />

3 Primitive Recursive Functions from Transducers<br />

In this section we show how the basic idea <strong>of</strong> modeling finite transducers by Wang<br />

tiles, with a small modification to allow composition <strong>of</strong> such computations, can<br />

perform computations <strong>of</strong> any primitive recursive function over the set <strong>of</strong> natural<br />

numbers. There is extensive literature on (primitive) recursive functions, and<br />

some introduction to the topic can be found in [5].<br />

The primitive recursive functions are defined inductively as follows:<br />

Definition 31<br />

(i) Three initial functions: “zero” function z(x) =0, “add one” function s(x) =<br />

x +1 and the “i-th projection” function π n i (x1,...,xn) =xi are primitive<br />

recursive.<br />

(ii) Let x denote (x1,...,xn). Iff(x1,...,xk) and g1(x),...,gk(x) are primitive<br />

recursive, then the composition h(x) =f(g1(x),...,gk(x)) is primitive<br />

recursive too.<br />

(iii) Let f(x1,...,xn) and g(y, x1,...,xn,z) be two primitive recursive functions,<br />

then the function h defined recursively (recursion):<br />

h(x1,...,xn, 0) = f(x1,...,xn)<br />

h(x1,...,xn,t+1)=g(h(x1,...,xn,t),x1,...,xn,t)<br />

is also primitive recursive.<br />

Primitive recursive functions are total functions (defined for every input <strong>of</strong><br />

natural numbers) and their range belongs to the class <strong>of</strong> recursive sets <strong>of</strong> numbers<br />

(see Section [5] and 4). Some <strong>of</strong> the primitive recursive functions include: x + y,<br />

x · y, x!, x y ... In fact, in practice, most <strong>of</strong> the total functions (defined for all<br />

initial values) are primitive recursive. All computable functions are recursive<br />

(see Section 4), and there are examples <strong>of</strong> such functions that are not primitive<br />

recursive (see for ex. [5]).<br />

In order to show that the previous tiling model can simulate every primitive<br />

recursive function we need to show that the initial functions can be modeled in<br />

this manner, as well as their composition and recursion.<br />

3.1 Initial Functions<br />

The input and the output alphabets for the transducers are equal: Σ = Σ ′ =<br />

{0, 1}. An input representing the number n is given with a non-empty list <strong>of</strong> 0’s<br />

followed with n + 1 ones and a non-empty list <strong>of</strong> 0’s, i.e., 0 ...01 n+1 0 ...0. That<br />

means that the string 01110 represents the number 2. The input as an n-tuple<br />

x =(x1,...,xn) is represented with<br />

0 ···01 x1+1 0 s1 1 x2+1 0 s2 ···0 sn 1 xn+1 0 ···0<br />

where si > 0. This is known as the unary representation <strong>of</strong> x. InFigure5,transducers<br />

corresponding to the initial primitive recursive functions z(x),s(x),U n i (x)

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

Saved successfully!

Ooh no, something went wrong!