Hablando un poco sobre este tipo de tecnología, La Computación que se basa en ADN utiliza moléculas de ADN reemplazando los procesadores de silicio.
Algunas de las ventajas que tiene esta tecnología se basan en dos características muy fundamentales.
- Paralelismo de las hebras de ADN. Debido a la gran densidad de información que se logra almacenar en las hebras de ADN y la gran facilidad de construir copias de ellas mismas ayudan bastante a los problemas que se consideraron intratables debido a que se tenía que realizar una búsqueda exhaustiva y hasta la fecha del 2008 eso era imposible porque la búsqueda era muy grande para realizarse con la tecnología de esa fecha.
- La complementariedad que es algo que ya viene gratis en la naturaleza, un ejemplo claro es cuando se unen 2 hebras ya se sabe el opuesto de cada miembro.
Retomando un poquito de la historia de la computación por ADN, la primera vez que se escuchó hablar fue en una conferencia realizada por físico Richard Feynman, pero Leonard Adleman fue quien inicio el estudio en 1994 donde demostró la teoría del uso del ADN para resolver problemas.
Unos de los problemas que se logró resolver esta el del Camino Hamiltoniano (una sucesión de aristas adyacentes), también desde los primeros experimentos de Adleman se ha logrado demostrar que se pueden construir varias Máquinas de Turing (una sucesión de aristas adyacentes).
Un modelo de computación basado por ADN es el Modelo de Stickers lo que consiste en utilizar unas hebras de ADN, una para la memoria (la hebra memoria tiene n bases de largo y contiene k sub-hebras) y la otra para los stickers, cada sub-hebra sigue otra consecutiva y representa exactamente una variable booleana y deben de ser suficientemente diferentes unas de otras.
También la sub-hebra debe de estar prendida o apagada dependiendo si tiene su sticker unido, un ejemplo es, si la sub-hebra tiene el sticker unido a ella esta encendida de lo contrario estará apagada.
Solo existen 4 tipos de operaciones que se puede hacer con los tubos test, merge (combinar), separate (separar) set (encender) y clear (apagar), habláramos un poco de cada uno de ellos.
- Merge: esta operación es mezclar 2 tubos para convertirlo en 1, así las memorias de ambos tubos se combinan y forman un multiconjunto de unión de ambos.
- Separate: esta operación hace la inversa de la operación Merge, debido a que dado un tubo de entrada produce 2 tubos nuevos con las hebras de memorias donde la i-enésima sub-hebra esta prendida.
- Set: esta operación produce un tubo nuevo test, donde la i-enésima sub-hebra esta apagada se le adhiere el sticker para encenderla y si ya estaba encendida se deja sin cambios.
- Clear: esta operación produce un nuevo tubo test, el cual se encarga de remover el sticker para que la i-enésima sub-hebra se apague.
La computación consiste en realizar las operaciones disponibles en una secuencia donde las entradas y salidas llegan a hacer los tubos test. Para realizar una lectura en la salida hay que aislar una hebra memoria y lograr determinar que stickers tiene asociado a ella, de lo contrario determinar si el tuvo de salida tiene hebra memorias.
En este caso el modelo sticker es resolver problemas difíciles donde se buscan todas las combinaciones posibles de largo muy exhaustivamente y las posibles entradas son analizadas en paralelo, con este paradigma se basa la computación basada en ADN.
Debido a que esta tecnología esta en las primeras etapas, todavía no existe mas que como una opción teórica, todavía la computación convencional es la mejor opción siendo más eficiente.