Computación bioinspirada Sistemas de “stickers” José M. Sempere Departamento de Sistemas Informáticos y Computación Universidad Politécnica de Valencia Sistemas de “stickers” 1. 2. 3. 4. Operaciones de “sticking” sticking” Clasificación de los sistemas de “stickers” stickers” Jerarquías de algunas familias de lenguajes Otros sistemas de “stickers” stickers” regulares Bibliografía del tema • DNA Computing. G. Păun, G. Rozenberg, A. Salomaa. Springer. 1998 • Computing with Bio-Molecules. Theory and Experiments. G. Păun (ed.). Springer. 1998 1 Conceptos previos Partimos de los siguientes conceptos previos ... V es un alfabeto γ⊆ V × V es una relación de complementariedad simétrica V* V* es el conjunto de cadenas dobles sobre V* × V* WKγ(V) = { [] x y : x,y ∈V*, |x| = |y|, γ(x) = y } es el dominio de Watson-Crick o conjunto de moléculas completas Moléculas incompletas (“dominoes ”) (“dominoes”) Wγ(V) = Lγ(V) ∪ Rγ(V) ∪ LRγ(V) Lγ(V) = ( Rγ(V) = ( ) ( ) [ ]* λ ∪ V* V* ) λ V V [ ]* ( ) ( ) LRγ(V) = ( V V ( λ V* ∪ V* ) λ ( ) ( ) [ ]* ( ) ( ) λ V* ∪ V* λ ) V V ( λ ∪ V* V* ) λ 2 Operaciones de “sticking ” (I) “sticking” La operación de sticking es una operación de enlace entre elementos de Wγ(V) [] Tomemos x = x1 x2 x3 con x2 ∈ WK γ(V) – { λ } λ y x1 , x3 ∈ () () V* λ ∪ λ V* Dados x, y definiremos la operación de sticking µ(x,y) por casos Caso (I) x3 = () () [] [] u λ y= u v µ(x,y) = x1 x2 λ v y’ y’ u v ∈ WK γ(V) y’ ∈ Rγ(V) u x y v Operaciones de “sticking ” (II) “sticking” Caso (II) x3 = () () [] [] λ v µ(x,y) = x1 x2 y= u v u λ y’ u v y’ ∈ WK γ(V) y’ ∈ Rγ(V) u y x v 3 Operaciones de “sticking ” (III) “sticking” Caso (III) x3 = () () ( ) u1 λ u2 λ u1u2 λ µ(x,y) = x1 x2 Caso (IV) x3 = y= () () ( ) λ v1 y= u2 x y λ v2 λ v1v2 µ(x,y) = x1 x2 u1 x y v1 v2 Operaciones de “sticking ” (IV) “sticking” Caso (V) x3 = ( ) () [ ]( ) u1u2 y= λ u2 λ u1 v µ(x,y) = x1 x2 λ v [] u1 ∈ WK (V) γ v u1 x u2 v y ( ) () [ ]( ) Caso (VI) λ x3 = v v 1 2 µ(x,y) = x1 x2 u v1 y= λ v2 u λ [] u v1 ∈ WK γ(V) y u v1 v2 x 4 Operaciones de “sticking ” (V) “sticking” Caso (VII) x3 = () ( ) [ ] [ ]( ) λ u λ µ(x,y) = x1 x2 y= v v 1 2 u v1 λ v2 u ∈ WK (V) γ v1 u x v1 Caso (VIII) x3 = () ( ) [ ] [ ]( ) λ v uu y= 1 2 λ u1 v µ(x,y) = x1 x2 y u1 ∈ WK (V) γ v u2 λ v2 y u1 u2 v x Operaciones de “sticking ” (VI) “sticking” Algunas consideraciones sobre la operación de “sticking” 1. Podemos establecer ocho casos más, simétricos a los anteriores, tomando la cadena y por la izquierda. 2. En los casos (III) y (IV) no se utiliza alineamiento entre cadenas. Para evitar estos dos casos se utiliza la operación de “sticking restringido” µ’(x,y) Dado un elemento z ∈ W γ(V) a la longitud máxima de la hebra (superior o inferior) sobrante se le denomina retardo de z (por la izquierda o por la derecha) y lo denotaremos por d(z). Representa el número de símbolos necesarios para completar una hebra doble. d(z) z d(z) z d(z) d(z) 5 Sistemas de “stickers ” (I) “stickers” ρ = (V, γ, A, D) V alfabeto γ ⊆ V×V relación simétrica de complementariedad A ⊂ LRγ(V) conjunto finito de axiomas D ⊂ Wγ(V) × Wγ(V) conjunto finito de “dominoes” Sea ρ = (V, γ, A, D) y x,y ∈ LRγ(V) x ⇒ y sii y = µ(u, µ(x,v)) = µ(µ(u,x),v) con (u,v) ∈ D Sistemas de “stickers ” (II) “stickers” ρ = (V, γ, A, D) Una computación en ρ es una secuencia x1 ⇒ x2 ⇒ x3 ⇒ ... ⇒ xk con x1 ∈ A * x en ρ es completa si x ∈ WK γ(V) Una computación σ:x1 ⇒ k k Lenguaje de moléculas no restringido de ρ * w, x ∈ A} LMn(ρ) = { w ∈ WK γ(V) : x ⇒ Lenguaje generado por ρ [] Ln(ρ) = { w ∈ V* : w ∈ LMn(ρ), w’ ∈ V*} w’ 6 ρ = (V, γ, A, D) Sistemas de “stickers ” (III) “stickers” * x completa es ... Una computación σ:x1 ⇒ k (a) primitiva si (∀ i 1≤ i < k) xi ∉ WK γ(V) Lp(ρ) lenguaje generado por ρ con computaciones primitivas (b) con retraso d si (∀ i 1≤ i ≤ k) d(xi) ≤ d Ld(ρ) lenguaje generado por ρ con retraso d (con d ≥1) Propiedad (a) Lp(ρ) ⊆ Ln(ρ) (b) Ld1(ρ) ⊆ Ld2(ρ) si 1 ≤ d1 ≤ d2 (c) Ld(ρ) ⊆ Ln(ρ) ∀ d ≥ 0 Sistemas de “stickers ” (IV) “stickers” Un sistema de “stickers” ρ = (V, γ, A, D) tiene retraso acotado si ∃ d ≥ 1 : Ld(ρ) = Ln(ρ) Un sistema de “stickers” ρ = (V, γ, A, D) es ... (a) unilateral (one-sided) si ∀ (u, v)∈D u = λ ∨ v=λ (b) regular si ∀ (u, v)∈D u = λ (c) simple si para todos los pares (u, v)∈D u,v ∈ () V* λ ∨ u,v ∈ () λ V* 7 Familias de lenguajes Se define ASL(α) con α ∈ {n,p} a la familia de lenguajes Lα(ρ) siendo ρ un sistema de “stickers” arbitrario. Se define ASL(b) a la familia de lenguajes generados por sistemas de “stickers” con retraso acotado. Se define XSL(α) con α ∈ {n,p,b} y X ∈ {O, R , S, SO, SR} a la familia de lenguajes Lα(ρ) siendo ρ un sistema de “stickers” O (unilateral) R (regular) S (simple) SO (simple y unilateral) SR (simple y regular). Jerarquías de algunas familias de lenguajes (I) Lema ∀ α ∈ {n,p,b} ASL(α) SSL(α) OSL(α) SOSL(α) RSL(α) SRSL(α) 8 Jerarquías de algunas familias de lenguajes (II) Lema ∀ X ∈ {A,O, R , S, SO, SR} XSL(b) ⊆ XSL(n) Lema ∀ α ∈ {n,p,b} ∀ X ∈ {A,O, R , S, SO, SR} XSL(α) ⊆ CS Jerarquías de algunas familias de lenguajes (III) Teorema CS ASL(n) SSL(n) ASL(b) = LIN SSL(b) OSL(b) = RSL(b) = OSL(n) = = RSL(n) = REG SOSL(b) = SOSL(n) SRSL(b) = SRSL(n) 9 Otros sistemas de “stickers ” regulares (I) “stickers” ρ = (V, γ, A, Dl, Du) Dl ⊆ () λ V* Du ⊆ () V* λ finitos σ : x1 ⇒ x2 ⇒ x3 ⇒ ... ⇒ xk completa Conjuntos de control eΠ : DΠ → Lab Π ∈ {l,u} 1 eΠ ( w w2 ) si x ⇒y utiliza δ(Π, x ⇒ y) = λ en cualquier otro caso () eΠ (σ) = δ(Π, x1 ⇒ x2) δ(Π, x2 ⇒ x3) ··· () w1 w2 ∈ DΠ δ(Π, xk-1 ⇒ xk) Π ∈ {l,u} Otros sistemas de “stickers ” regulares (II) “stickers” Una computación completa σ : x1 ⇒ x2 ⇒ x3 ⇒ ... ⇒ xk es ... (a) limpia (fair) si |el (σ)| = |eu (σ)| (b) coherente si el (σ) = eu (σ) Propiedad Toda computación coherente es limpia 10 Otros sistemas de “stickers ” regulares (III) “stickers” Dado ρ = (V, γ, A, Dl, Du) se define •Lf(ρ) lenguaje generado por ρ con computaciones limpias define la familia SRSL(f) •Lc(ρ) lenguaje generado por ρ con computaciones coherentes define la familia SRSL(c) •Lpf(ρ) lenguaje generado por ρ con computaciones limpias primitivas define la familia SRSL(pf) (pf) •Lpc(ρ) lenguaje generado por ρ con computaciones coherentes primitivas define la familia SRSL(pc) (pc) Teorema Si L es recursivamente enumerable entonces L = g(L’) donde L’ ∈ SRSL(c) o L’ ∈ SRSL(pc) (pc) y g es un homomorfismo g : V → U ∪ {λ} 11