Modelul etern: natura CALCULATOARE pe bază de ADNGheorghe PăunCalculatoarele de astăzi sunt de milioane de ori mai puternice decât rudimentarii lor strămoși din anii 40 sau 50. Aproape la fiecare 18 luni, ele devin de două ori mai rapide, în timp ce componentele lor devin de două ori mai reduse în volum. Sentimentul general este că tehnologia bazată pe circuite integrate se află foarte aproape de limitele sale. În ultimii ani, o întrebare aprins dezbătută a fost dacă nu trebuie să ne concentrăm asupra căutării unor calculatoare de un tip cu totul nou, de pildă, cuantice sau bazate pe "procesoare" moleculare. Vom prezenta pe scurt cea de-a doua direcție menționată mai sus, calculabilitatea pe bază de molecule organice, în special ADN. IntroducereProprietățile care fac din ADN un posibil suport informațional utilizabil in vitro sunt cunoscute de mai mulți ani. O serie de operații asupra secvențelor (simplu sau dublu-catenare) de ADN sunt din ce în ce mai bine stăpânite. Speculații privind posibilitatea de a folosi ADN-ul ca mediu de calcul au fost făcute încă din anii 60. În 1994, acest lucru a fost confirmat într-un anume sens: L. Adleman a publicat descrierea unui calcul (găsirea unui drum Hamiltonian într-un graf) efectuat în întregime prin manevrarea unor eprubete conținând ADN! (Vom discuta acest experiment în secțiunea următoare.) La cel de-al doilea simpozion dedicat calculatoarelor pe bază de ADN (Princeton, iunie 1996), au fost comunicate și alte experimente similare, cel mai complex dintre ele fiind deocamdată calcularea sumei a două numere în baza doi. S-a născut astfel un nou domeniu de cercetare, la confluența biochimiei cu informatica, având ca scop realizarea calculatorului molecular. Bineînțeles, miniaturizarea nu este un scop în sine. Existența unor "procesoare" de dimensiuni moleculare face posibilă construirea unor calculatoare de mare paralelism, iar ADN-ul este un candidat extrem de promițător: într-un volum mic încap miliarde de secvențe de ADN, eventual în copii pe care să se execute în paralel anumite operații. Aceasta reprezintă trăsătura exploatată în mod esențial de experimentul lui Adleman. Există și alte calități ale posibilului calculator pe bază de ADN (consum energetic redus, posibilitatea de a reutiliza substanțele folosite, reversibilitatea unor reacții) așa cum există și inconveniențe previzibile (în special referitoare la nedeterminismul reacțiilor biochimice, deci la marja mare de eroare pe care trebuie s-o avem în vedere). În acest moment cercetările din această arie sunt concentrate pe două direcții principale: găsirea unor aplicații cât mai convingătoare ale posibilității de calcul cu ajutorul ADN-ului (deci de proiectare și realizare a unor experimente efective de laborator care să rezolve probleme de interes real, eventual greu sau imposibil de rezolvat cu ajutorul calculatoarelor electronice) și investigarea teoretică, matematică, a puterii de calcul a eventualelor calculatoare cu ADN. Din prima clasă fac parte o serie de proiecte spectaculoase, descrise pe scurt în diverse locuri, și despre realizabilitatea cărora este greu să ne pronunțăm: "construirea unei memorii cu mult mai largi decât creierul uman" (Science, 268, Aprilie 1995), "spargerea sistemului criptografic DES (Data Encryption Standard, folosit de bănci și de alte instituții publice din SUA), lucrând trei luni în pivnița casei" (la simpozionul organizat la Princeton, menționat mai devreme, a fost prezentată o comunicare a unui colectiv din care făcea parte și Adleman și care cobora durata calculului la două luni...) și așa mai departe. Vom avea în vedere cea de a doua direcție de cercetare, cea de factură teoretică: cât se poate calcula, în raport cu ierarhiile de calculabilitate cunoscute, cu ajutorul unui model de calculabilitate bazat pe operații specifice ADN-ului? Se observă trecerea de la nivelul concret al experimentului de laborator la cel formal, matematic: se rețin numai anumite caracteristici ale ADN-ului, numai anumite operații posibile sau doar plauzibile (unele doar dezirabile), și cu ajutorul acestor elemente se construiesc modele formale, "mașini" de calcul simbolic, ce sunt apoi comparate cu modelele de calcul clasice în teoria calculabilității, cum sunt mașinile Turing și variantele acestora. În afara faptului că preocupările autorului se referă la această direcție de cercetare, un motiv al restrângerii la această arie de interes este și faptul că în vederea construirii calculatorului molecular este necesară proiectarea sa în așa fel încât să-i asigurăm universalitatea computațională, faptul că el va fi echivalent ca putere de calcul cu calculatoarele existente. La nivel teoretic, acest lucru revine la echivalența cu mașina Turing. Pe de altă parte, deoarece raportat la cunoștințele actuale, fiecare model avut în vedere are caracteristici mai puțin sau deloc posibil de realizat practic, o strategie necesară este considerarea cât mai multor variante de asemenea modele, implicând diferite operații care eventual să fie implementate biochimic. Vom descrie, pe scurt, trei clase de modele. Operațiile pe care se bazează aceste clase sunt:
Aceste operații au fost identificate in vitro și în laborator sunt destul de bine controlate. (Scopul prezentării de față fiind familiarizarea cititorului cu problematica și rezultatele de natură informatică, plasate la un nivel idealizat, simbolic, nu vom intra în detalii.) Pe baza operațiilor menționate anterior au fost construite trei tipuri de sisteme generative (pentru noi, "calcul" înseamnă generarea unui limbaj, a unei colecții de șiruri codificând o semnificație anume): le vom numi P-sisteme, H-sisteme și, respectiv, I-sisteme (P și I trimit la "polimerizare" și "inserare", H-sistemele sunt numite astfel în literatură pentru a aminti de T. Head, cel care a formalizat operația de splicing, în 1987. Prezentarea nu va intra în amănunte tehnice (de exemplu, demonstrații). Cititorul interesat este rugat să consulte lucrările menționate la bibliografie pentru a găsi astfel de detalii. O cuprinzătoare sursă bibliografică a abordărilor teoretice în această arie poate fi găsită în monografia DNA Computing. New Computing Paradigms, de Gh. Păun, G. Rozenberg, A. Salomaa, publicată în 1998 la Springer-Verlag, Heidelberg. Rezultatele sunt încurajatoare din punctul de vedere a calculabilității moleculare: în toate cele trei cazuri se obțin mecanisme generative echivalente ca putere cu mașina Turing. Mai mult, de cele mai multe ori se obțin mecanisme generative universale, programabile. Evident, aceasta este doar o demonstrație teoretică a posibilității construirii de calculatoare universale bazate pe ADN. Fiecare dintre modelele considerate pleacă de la anumite presupuneri privind manevrarea secvențelor de ADN care cer progrese tehnologice esențiale, nefiind încă realizabile în laboratoarele actuale. Acest fapt ridică, pe de o parte, problema perfecționării posibilităților de operare asupra ADN-ului, iar pe de altă parte necesitatea căutării unor noi modele teoretice, combinând trăsături realiste ale modelelor existente, eventual bazate pe alte operații decât cele menționate. Ambele alternative cer lucrul în echipe interdisciplinare, dialogul dintre informaticianul-matematician și biochimist. Experimentul lui AdlemanNu avem aici de a face cu un calcul simbolic, ci cu unul analogic. Problema avută în vedere se referea la găsirea unui drum hamiltonian într-un graf, adică a unui drum care trece prin toate nodurile o singură dată. Ea a fost redusă la căutarea unor secvențe de ADN care codificau toate drumurile posibile în graf. Graful considerat a fost cel din fig.1.
Trebuie studiată existența unui drum hamiltonian în acest graf, plecând din nodul 1 și ajungând în nodul 7. La o simplă examinare a grafului se poate afirma: drumul 1, 2, 3, 4, 5, 6, 7 este hamiltonian. Un calculator poate rezolva problema în câteva fracțiuni de secundă. Problema face însă parte dintr-o clasă de probleme având complexitate exponențială. Mai precis, ea este NP-completă: nu se cunoaște nici un algoritm care s-o rezolve într-un număr de pași care depinde polinomial de numărul de noduri, cei mai buni algoritmi (determiniști) de rezolvare cer un timp exponențial, dar dacă o soluție este "ghicită" într-un mod sau altul, corectitudinea ei poate fi testată în timp polinomial (se spune că problema este NP-dificilă, NP prescurtând sintagma "nedeterminist polinomial"). Mai mult, orice problemă NP-dificilă poate fi redusă la problema noastră în timp polinomial (dacă problema ar putea fi rezolvată în timp polinomial, orice altă problemă NP-dificilă ar putea fi rezolvată astfel; acesta este înțelesul "completitudinii" din sintagma NP-complet). Pe scurt, problema găsirii drumurilor hamiltoniene între două noduri ale unui graf face parte dintr-o clasă de probleme a căror rezolvare este dificilă (sunt numite probleme "netratabile"), indiferent de resursele de calcul folosite. Se poate însă imagina un algoritm nedeterminist de rezolvare, care este implementabil cu ajutorul ADN-ului. Iată un asemenea algoritm: 1. generează la întâmplare drumuri în graf; 2. selectează dintre ele numai drumurile care pleacă din nodul inițial avut în vedere și se termină în nodul final considerat; 3. dacă graful are n noduri, reține doar drumurile care trec prin exact n noduri; 4. selectează drumurile care trec prin fiecare dintre nodurile grafului.
Drumurile rămase la sfârșitul celor patru pași (dacă mai există vreunul) sunt drumurile hamiltoniene căutate. Acest algoritm a fost implementat de Adleman în felul următor (detalii pot fi găsite în [1]): Fiecărui nod din graf i s-a asociat o secvență de 20 de nucleotide, generată la întâmplare. Lungimea a fost aleasă suficient de mare pentru a asigura stabilitatea secvențelor de ADN care codifică drumuri și pentru a face puțin probabilă existența unor porțiuni identice în codurile a două noduri diferite. Apoi au fost codificate arcele. De exemplu, dacă exisă un arc de la nodul i la nodul j, atunci el este reprezentat de o secvență de 20 de nucleotide, primele 10 fiind complementele Watson-Crick ale ultimelor 10 nucleotide din codul nodului i iar următoarele 10 fiind complementele primelor 10 nucleotide din codul nodului j. Din fiecare dintre aceste șiruri de nucleotide au fost introduse într-o eprubetă în jur de 3Ś10^13 copii, pentru a ridica probabilitatea ca orice drum din graf să fie realizat. În felul acesta, pasul 1 al algoritmului este executat, șirurile-arc se vor atașa la șirurile-nod, păstrând orientarea și codificând astfel drumurile în graf (fig.2).
Pentru a asigura pasul al doilea al algoritmului, rezultatul primului pas a fost amplificat prin procedura PCR (Polymerase Chain Reaction), folosind ca inițiatori de polimerizare (primers) șirurile complementare codurilor nodurilor 1 și 7. Selectarea secvențelor de lungime 140 (avem 7 noduri, fiecare codificat printr-un șir de lungime 20) s-a făcut prin electroforeză pe gel. Prin diferite proceduri de purificare asupra cărora nu insistăm, a fost realizat și pasul al patrulea. În final, au fost găsite șiruri care atestau existența drumurilor hamiltoniene de la nodul 1 la nodul 7, iar prin "citirea" acestor șiruri au putut fi identificate precis aceste drumuri. Întregul "calcul" a durat în jur de o săptămână, aproape întreg timpul fiind consumat cu pașii 2-4 ai algoritmului. Acest lucru este semnificativ pentru dificultățile actuale ale lucrului cu ADN: principala problemă nu este introducerea datelor și nici calculul propriu-zis (aici, generarea tuturor drumurilor în graf), ci extragerea rezultatelor, separarea secvențelor semnificative de cele nesemnificative. Pe de altă parte, complexitatea problemei rezultă tocmai din necesitatea generării și apoi a examinării tuturor drumurilor, hamiltoniene sau nu, iar acest pas a fost executat "automat", chimic, fără contribuția directă a omului. Succesul lui Adleman a fost urmat atât de continuări entuziaste, cât și de evaluări pesimiste. De pildă, foarte curând procedeul a fost extins (a se vedea [8]) la alte probleme NP-complete, inclusiv problema SAT, a satisfiabilității formulelor de calculul propozițiilor (într-un anume sens problema NP-completă standard). Schema de lucru a lui Lipton a fost apoi preluată de Adleman, [2], care a propus un fel de limbaj de programare bazat pe operații de laborator asupra ADN-ului. În contrast, rămânând la problema drumurilor hamiltoniene, J. Hartmanis a calculat ([4]) că pentru a rezolva o problemă de interes real, de exemplu, referitoare la un graf cu 200 de noduri, ar fi nevoie de 3Ś1025 Kg de ADN, ceea ce este mai mult decât greutatea Pământului! Aceasta înseamnă că bariera exponențialității nu poate fi trecută ușor, și că algoritmul "naiv" folosit de Adleman nu este cel mai potrivit pentru a fi extins la probleme reale. Rămâne însă demonstrația faptului că putem realiza calcule folosind ADN-ul. Cât putem calcula? Vom răspunde la această întrebare după ce vom stabili un sistem de referință. Aici, el va fi ierarhia lui Chomsky, având ca limită superioară limbajele recursiv enumerabile, cele care pot fi "calculate" de mașina Turing, și ca limită inferioară limbajele regulate, cele recunoscute de automatul finit. Anticipând, vom spune că rămânând la nivelul operației de polimerizare din experimentul lui Adleman, nu putem depăși nivelul de competență al automatelor finite, ceea ce este foarte puțin; impunând anumite restricții, vom atinge puterea mașinii Turing. Părăsim astfel terenul complexității, al performanțelor calculatorului cu ADN, plasând discuția la nivelul competenței acestuia. Rezultatele teoretice sunt, spuneam, deosebit de promițătoare. P-sistemeAceste sisteme au fost introduse în [6] și ele pleacă de la operația de bază folosită de Adleman în experimentul său, aceea de construire a unei secvențe dublu-catenare de ADN folosind șiruri mono-catenare, complementare în sens Watson-Crick. Nu vom formaliza această operație, ci menționăm doar că ea este o funcție parțială, definită așa cum sugerează fig. 3: În cazul 1 se adaugă simboluri complementare pe nivelul inferior, eventual fără a completa toate spațiile libere. În cazul 2 se completează toate spațiile libere de pe nivelul inferior și eventual se mai adaugă și alte simboluri pe catena inferioară. Cazurile 3 și 4 sunt simetrice, completând spații libere de pe nivelul superior al secvenței de simboluri etajate. De fiecare dată, completarea celor două niveluri se face sistematic, fără a lăsa spații libere, iar două simboluri pot sta unul deasupra celuilalt numai dacă ele sunt complementare, în sensul unei relații de complementaritate date (în cazul precis al ADN-ului, avem complementaritatea Watson-Crick; în general, pentru alfabete arbitrare, avem de stabilit în prealabil o relație de complementaritate între simboluri).
Folosind această operație, putem defini un mecanism de calcul de genul următor: luăm un alfabet V, o relație de complementaritate r peste V, o mulțime finită de "molecule incomplete" de plecare (axiome), plus o mulțime finită de blocuri mono-catenare, pe care le folosim ca în fig. 3 pentru a completa secvențe dublu-catenare. Pornim de la axiome și prelungim spre dreapta secvența curentă cu blocuri uni-catenare. Ne vom opri atunci când obținem o secvență dublu-catenară completă. Spune că am calculat șirul obținut pe nivelul superior (sau putem considera o codificare adecvată a acestui șir). În felul acesta, putem asocia P-sistemului nostru un limbaj. Există mai multe variante, atât ca formă a sistemelor folosite, cât și ca mod de lucru sau de oprire a calculului. Nu intrăm aici în amănunte tehnice. Important este că rezultatele obținute sunt de două tipuri: caracterizări ale limbajelor regulate (când operația de polimerizare este lăsată liberă) și caracterizări ale limbajelor recursiv enumerabile (când se impun anumite restricții asupra operației de polimerizare). Prin urmare, modul de calcul din experimentul lui Adleman nu poate trece dincolo de competența de calcul a automatelor finite, ceea ce limitează foarte sever puterea unui "calculator" de acest tip. Pe de altă parte, atingerea puterii de calcul a mașinii Turing se face prin impunerea unor restricții care nu sunt realiste din punct de vedere biochimic (o asemenea restricție este ca succesiunea blocurilor care se folosesc pe nivelul superior să fie dependentă de succesiunea blocurilor care se folosesc pe nivelul inferior, în sensul identității unor etichete asociate acestor blocuri - spunem că acceptăm numai calcule coerente). Prevenirea calculelor necoerente nu pare a fi o operație fezabilă în laborator în acest moment. Teoretic, putem atinge puterea mașinii Turing, dar din punct de vedere practic, cel puțin în prezent, nu putem trece de nivelul automatului finit. H-sistemeÎn cazul în care două enzime restrictive taie două secvențe de ADN (în locuri precis definite de subsecvențe asociate celor două enzime și pe care acestea le recunosc în secvențele de ADN), dacă la capetele nou obținute se găsesc porțiuni complementare Watson-Crick, atunci fragmentele respective se pot recombina, dând eventual naștere unor noi secvențe de ADN. Modelul formal al acestei operații a fost introdus în [5] sub numele de splicing. Din acest punct de vedere, se poate spune că un pas important în calculabilitatea pe bază de ADN a fost făcut încă din 1987. Să considerăm un alfabet V și două simboluri speciale, #, $, în afara lui V. O regulă de recombinare (peste V) este un șir r=u1#u2$u3#u4, unde uiÎV*, 1 Ł i Ł 4. Pentru o asemenea regulă r și două șiruri x, y, z Î V* definim
(x,y)Ăr z Û x = x1u1u2x2, y = y1u3u4y2 z = x1u1u4y2, pentru x1, x2, y1, y2 Î V*
Spunem că am recombinat șirurile x, y, la locurile u1u2, u3u4, obținând șirul z. Să remarcăm caracterul nedetreminist al operației: aceleași șiruri x, y pot da naștere mai multor șiruri z, în funcție de locurile șirurilor u1u2, u3u4 în x și y. Operația de recombinare definită ca mai sus este ilustrată în fig. 4.
O pereche s = (V,R), unde V este un alfabet, iar RÍV*#V*$V*#V*, se numește H-schemă. Pentru o H-schemă s = (V,R) și un limbaj L Í V*, definim
În acest fel obținem două operații cu limbaje, s (recombinare neiterată) și s * (recombinare iterată). Pe baza operației iterate de splicing, în [11] a fost introdus un mecanism de calcul numit H-sistem, sub forma unui cuadruplu g = (V, T, A, R), unde V este un alfabet, T Í V (alfabet terminal), A Í V* (mulțime de axiome) și R Í V* # V* $ V* # V*, pentru #, $ simboluri în afara lui V; s = (V, R) este H-schema subadiacentă lui g. Limbajul generat de g se definește prin: L(g) = s*(A) Ç T* pornind de la axiome, și aplicăm de un număr arbitrar de ori operația de recombinare în raport cu regulile din R și reținem șirurile formate numai din simboluri terminale. Pentru două familii de limbaje, F1, F2, notăm cu EH(F1, F2) familia limbajelor L(g), pentru g = (V, T, A, R) cu A Î F1 și R Î F2 (de notat că atât A cât și R sunt mulțimi de șiruri, deci limbaje, rezultă că are sens considerarea locului lor într-o ierarhie dată de limbaje, de pildă în ierarhia lui Chomsky). Două rezultate fundamentale asupra acestor familii sunt:
Teorema 1. Teorema de regularitate EH(FIN, FIN) = REG. Teorema 2. Teorema de universalitate EH(FIN, REG) = RE. Incluziunea EH(FIN, FIN) Í REG este demonstrată în [3] iar incluziunea inversă este demonstrată în [11]. Teorema 2 este demonstrată în [9]. Prin urmare, simpla trecere de la o mulțime finită de reguli de recombinare la o mulțime regulată (pasul cel mai mic care se poate face în condițiile considerate aici) asigură saltul de la familia REG la RE. Teoretic, rezultatul este spectaculos, dar din punct de vedere practic, a lucra cu o mulțime infinită de reguli de recombinare, fie ea și de tip regulat, nu prezintă un interes prea mare. Din demonstrația Teoremei 2 se poate observa că limbajul R folosit este de un tip foarte particular, iar infinitudinea lui poate fi evitată dacă operația de recombinare este restricționată în diferite moduri relativ simple. De fapt, mai multe variante de H-sisteme extinse având mulțimi finite de axiome și de reguli de recombinare pot fi imaginate pe baza demonstrației din [9], toate conducând la caracterizarea familiei RE. Menționăm câteva dintre ele:
Mai mult, din demonstrațiile faptului că H-sistemele cu operația de splicing restricționată ca mai sus caracterizează limbajele recursiv enumerabile, deducem existența H-sistemelor universale de tipurile menționate, adică a sistemelor gu cu toate componentele fixate și capabile să simuleze orice H-sistem dat g, după adăugarea unui cod al sistemului particular g la mulțimea de axiome a lui gu (prin urmare, g poate fi "rulat" pe gu ca pe un calculator obișnuit, "programul" fiind o unică nouă axiomă adăugată "calculatorului" gu). Acest lucru este foarte încurajator din punct de vedere teoretic în ceea ce privește posibilitatea proiectării unor calculatoare pe bază de ADN care să fie universale și programabile. Bineînțeles, dificultatea care apare aici este modul de realizare a unui asemenea calculator, de implementare a operațiilor menționate în discuția anterioară. Apar mai multe probleme. 1. Enzimele restrictive recunosc porțiuni de lungime redusă a secvențelor de ADN, de regulă în jur de 4-6. Acest fapt nu este important: reguli cu șirurile u1u2, u3u4 de lungime 4 sunt suficiente. 2. Enzimele cer condiții specifice de temperatură, salinitate etc., de aceea mai multe enzime nu pot lucra împreună decât cu mare dificultate. În demonstrațiile rezultatelor anterioare avem nevoie de un mare număr de enzime. Această dificultate este greu de surmontat. O posibilitate este considerarea de arhitecturi distribuite, ca în domeniul sistemelor gramaticale. Mai multe tipuri de H-sisteme distribuite similare sistemelor paralele și comunicante au fost considerate în numeroase lucrări. În toate cazurile se obțin caracterizări ale familiei RE și, pe baza demonstrațiilor rezultă existența sistemelor universale. Aceste tipuri de sisteme ridică însă alte dificultăți, în special legate de comunicarea între componente. 3. Controlul impus operației de recombinare este de inspirație teoretică, imitând restricții în derivare, uzuale gramaticilor independente de context. Implementarea acestor restricții în cazul H-sistemelor este o problemă deschisă. I-sistemeEste cunoscut faptul că ADN-ul este modificat nu numai prin recombinare, ci și prin mutații locale, în particular, prin inserare și ștergere de simboluri sau de șiruri de lungime limitată. Astfel de operații sunt bine-cunoscute în teoria limbajelor formale ([10]). Folosind asemenea operații pot fi definite mecanisme generative interesante; le vom prezenta aici în forma din [7]. Un I-sistem este o construcție g = (V, T, A, I, D), unde V este un alfabet, TÍV (alfabet terminal), A este o submulțime finită a lui V* (axiome), iar I, D sunt submulțimi finite ale produsului V*ŚV*ŚV*; I este mulțimea regulilor de inserare iar D este mulțimea regulilor de ștergere. O asemenea regulă se reprezintă sub forma (u, z, v). Pentru x, yÎV* scriem x Ț y dacă și numai dacă are loc unul dintre următoarele două cazuri: - x = x1uvx2, y = x1uzvx2, pentru x1, x2ÎV* și (u, z, v)ÎI (pas de inserare); - x = x1uzvx2, y = x1uvx2, pentru x1, x2ÎV* și (u, z, v)ÎD (pas de ștergere).
Notând ca de obicei cu Ț* închiderea reflexivă și tranzitivă a relației Ț, limbajul generat de g se definește prin L(g) = {wÎT* | x Ț* w, pentru xÎA}. Spunem că un I-sistem g = (V, T, A, I, D) este de grad (n, m, p, q) dacă șiruri de lungime cel mult n sunt inserate în contexte de lungime cel mult m și șiruri de lungime cel mult p sunt șterse din contexte de lungime cel mult q. Notăm cu INSnmDELpq, n, m, p, q ł 0, familia limbajelor L(g) generate de I-sisteme de grad (n', m', p', q') astfel încât n' Ł n, m' Ł m, p' Ł p, q' Ł q. În [7] se demonstrează:
Teorema 3. RE=INS12DEL11=INS21DEL20=INS12DEL20.
Prin urmare, folosind reguli de inserare și de ștergere de dimensiuni foarte mici (ca lungimi ale șirurilor inserate/șterse și ca lungimi ale contextelor în care aceste operații sunt efectuate), din nou putem atinge puterea mașinii Turing. Iar ca procedură de laborator prin care asemenea operații pot fi efectuate, putem imagina mai multe variante. Iată un mod de a insera șirul x în contextul (u, v), într-o secvență dublu catenară de ADN care are pe una dintre catene șirul zuvw. Prin încălzire, separăm cele două catene, apoi introducem în soluție complementul șirului uxv. Șirurile u și v se vor lega de șirurile complementare, lăsând șirul x ca o buclă în afară. Polimerizăm secvența obținută; în felul acesta, producem o secvență ADN dublu catenară care conține o buclă x într-o parte. Încălzim din nou soluția și separăm șirul zuxvw de șirul complementar lui zuvw. Inserarea a fost realizată. Pentru a mări stabilitatea secvențelor rezultate după fiecare pas al acestei proceduri, contextul de inserare, (u, v) nu trebuie să fie prea scurt. Acest lucru face din limitele din Teorema 3 un rezultat mai interesant din punct de vedere matematic decât practic. Atunci când avem de a face cu cazul concret al inserării/ștergerii în/din secvențe de ADN, lucrăm cu un număr limitat de simboluri, Se poate întâmpla ca unele dintre aceste simboluri să poată fi inserate sau șterse mai ușor decât altele. În particular, în cazul ARN-ului, inserarea și îndepărtarea uracilului (U) este mult mai simplă decât a celorlalte nucleotide. Aceste observații fac interesant cazul I-sistemelor care au numai reguli de forma (u, z, v), cu zÎc* pentru un simbol precizat c. Asemenea I-sisteme au fost studiate în [12], dar nu intrăm în amănunte (în anumite condiții, ele generează din nou toate limbajele recursiv enumerabile). ÎncheiereChiar dacă realizarea calculatorului (universal) pe bază de ADN nu este previzibilă pentru viitorul apropiat (principalele probleme se referă la erorile de calcul, la caracterul nedeterminist, probabilist al reacțiilor chimice), căutarea lui este o aventură incitantă atât pentru biolog cât și pentru informatician. Fiecare are de învățat de la celălalt și de reevaluat cunoștințe din propriul domeniu care își pot releva noi semnificații în noul context. Este de așteptat ca relativ curând să fie efectuate calcule specifice folosind proceduri biochimice (calcule ad-hoc pentru probleme ad-hoc), de exemplu, continuând experimentul lui Adleman. O arie care candidează cu mari șanse la aplicarea calculabilități pe bază de ADN este criptografia (unde ne putem permite o marjă mare de eroare a rezultatelor unui calcul, deoarece putem verifica aceste rezultate înainte de a le utiliza). În plus, nu este deloc lipsită de sens idea de a implementa modele de calcul sugerate de biochimia ADN-ului (H-sisteme, de exemplu), în medii nebiochimice, de pildă pe siliciu. Întrebarea este dacă un asemenea demers are o valoare practică sau nu, dar răspunsul nu poate fi dat înainte de examinarea atentă a acestei chestiuni. Oricum, din punct de vedere teoretic, calculabilitatea pe bază de ADN este deja bine dezvoltată iar rezultatele par deosebit de promițătoare. Cu siguranță, viitorul imediat va aduce mari progrese în această arie de cercetare. Bibliografie1. L. M. Adleman, Molecular Computation of Solutions to Combinatorial Problems, Science, 226 (Nov. 1994), 1021-1024.
2. L. M. Adleman, On Constructing a Molecular Computer in DNA Computers. Procedings of a DIMACS Workshop (R. J. Lipton, E. B. Baum, eds.), American Math. Soc., 1996, 1-21.
3. K. Culik II, T. Harju, Splicing Semigroups of Dominoes and DNA, Discrete Appl. Math., 31 (1991), 261-277.
4. J. Hartmanis, On the Weight of Computations, Bulletin EATCS, 55 (1995), 136-138.
5. T. Head, Formal Language Theory and DNA: an Analysis of the Generative Capacity of Specific Recombinant Behaviors, Bull. Math. Biology, 49 (1987), 737-759.
6. L. Kari, Gh. Păun, G. Rozenberg, A. Salomaa, S. Yu, DNA Computing, Sticker Systems, and Universality, Acta Informatica, 35, 5 (1998), 401-420.
7. L. Kari, Gh. Păun, G. Thierrin, S. Yu, Characterizing RE Languages by Insertion-Deletion Systems, Proc. 3rd DIMACS Workshop on DNA Based Computers, Philadelphia, 1997, 318-333.
8. R. J. Lipton, DNA Solution of Hard Computational Problems, Science, 268 (April 1995), 542-545.
9. Gh. Păun, Regular Extended H-Systems are Computationally Universal, J. Aut., Languages, Combinatorics, 1, 1 (1996), 27-36.
10. Gh. Păun, Marcus Contextual Grammars, Kluwer, Dordrecht, Boston, 1997.
11. Gh. Păun, G. Rozenberg, A. Salomaa, Computing by Splicing, Theor. Computer Sci., 168 (1996), 321-336.
12. Gh. Păun, G. Rozenberg, A. Salomaa, DNA Computing. New Computing Paradigms, Springer-Verlag, Berlin, 1998.
Domnul prof. dr. Gheorghe Păun este membru corespondent al Academiei Române; poate fi contactat prin e-mail la adresa: gpaun@imar.ro [cuprins] |