Revista Art-emis
Căutând calculatoare în celula biologică (5) PDF Imprimare Email
Acad. Gheorghe Păun   
Luni, 08 Decembrie 2014 00:42

Acad. Gheorghe PăunDiscurs de recepţie la Academia Română - 24 octombrie 2014

O privire rapidă asupra calculului membranar

Să nu uităm: vrem să pornim de la celulă şi să construim un model de calcul. Rezultatul (cel propus în toamna anului 1998) este ceva de genul următor. Privim celula şi abstractizăm până nu mai vedem decât structura de membrane, aranjate ierarhic, definind compartimente în care sunt plasate multiseturi de obiecte (folosesc un termen generic, abstract, eliberat de concreteţea biochimică); aceste obiecte evoluează conform unor reacţii. Un multiset este o mulţime cu multiplicităţi asociate elementelor, deci poate fi descris de un şir; de exemplu, aabcab descrie multisetul care conţine 3 cópii ale lui a, două ale lui b şi una a lui c. Toate permutările şirului aabcab descriu acelaşi multiset. Reacţiile sunt descrise de reguli de „rescriere a multiseturilor”, de forma u şiruri care identifică multiseturi. Iniţial (la începutul unui calcul), în compartimentele sistemului nostru avem multiseturi date de obiecte. Regulile de evoluţie sunt puse la lucru - aplicându-se, precum reacţiile biochimice, în paralel, simultan tuturor obiectelor care pot evolua - şi astfel multiseturile se schimbă. Aplicarea unei reguli ca mai devreme presupune „consumarea” obiectelor din u şi introducerea obiectelor din v. De remarcat că şi obiectele şi regulile sunt localizate, plasate în compartimente, regulile dintr-un compartiment se aplică numai obiectelor din acel compartiment. Unele obiecte pot şi să treacă prin membrane. Continuăm până ce (ca la maşina Turing) nu mai putem aplica nicio regulă, calculul se opreşte. În acel moment, „citim” rezultatul calculului, de pildă, sub forma numărului de obiecte dintr-un compartiment specificat dinainte.

Procesare de multiseturi (de simboluri), în paralel, în compartimentele definite de o structură ierarhică de membrane - iată descrierea scurtă a unui „P system”. O gramatică distribuită, lucrând cu multiseturi - iată legătura directă cu teoria limbajelor formale. Iar „şantierul” care începe de aici pare fără sfârşit. Mai întâi, pot fi introduse un număr enorm de clase de sisteme, motivate matematic, informatic, biologic sau dinspre aplicaţii. Din punctul de vedere al matematicii, modelele trebuie să fie minimaliste, să conţină minimul necesar de ingrediente. Pentru informatică, un model de calcul este bine să fie cât mai puternic, dacă se poate, echivalent cu maşina Turing, şi eficient, dacă se poate, să rezolve probleme NP-complete în timp polinomial. Biologia şi aplicaţiile furnizează o lungă listă de variante, începând de la modul de aranjare a membranelor (ierarhic, ca într-o celulă, sau în nodurile unui graf arbitrar, ca în ţesuturi sau alte populaţii de celule), la tipul obiectelor (simboluri, ca mai devreme, şiruri sau alte structuri de date, mai complexe, cum ar fi grafuri sau array-uri bidimensionale), tipul regulilor de evoluţie, strategia de aplicare a acestora, modul de definire a rezultatului unui calcul.

Am menţionat mai devreme regulile de rescriere a multiseturilor. Ele pot fi arbitrare, necooperative (cu multisetul stâng format dintr-un singur obiect, ceea ce corespunde gramaticilor Chomsky independente de context) sau, caz intermediar, catalitice (de forma ca >cv, unde c este un catalizator care asistă obiectul a în transformarea lui în obiectele din multisetul v). Vin apoi regulile de simport şi de antiport, care doar mută obiecte dintr-un compartiment în altul (exemplu: regula (u, out; v, in), asociată unei membrane, mută obiectele indicate de u din membrană în compartimentul imediat superior şi pe cele indicate de v în sens invers), sau regulile care modifică membranele însele. Foarte importante sunt regulile de divizare a membranelor, care măresc, exponenţial chiar, numărul de membrane din sistem. Multe alte reguli au fost investigate (de pildă, cu control asupra aplicării lor - cu promotori sau inhibitori), dar nu le mai menţionez, am depăşi prea mult cadrul informal al prezentării de faţă. Atunci când obiectele din compartimente sunt şiruri, ele evoluează prin operaţii specifice şirurilor: rescriere, inserare şi ştergere de subşiruri, sau, pentru a face modelul şi mai unitar biologic, operaţia de splicing, de la calculul cu A.D.N.

O situaţie interesantă este cea în care în sistem lucrăm cu obiecte-simbol, deci cu numere, dar rezultatul este „citit” în afara sistemului, sub forma şirului obiectelor care părăsesc sistemul. A se observa diferenţa calitativă dintre structura de date din interior, multisetul, şi cea din exterior, şirul, care poartă şi informaţie poziţională. Aplicaţiile, la rândul lor, au nevoie de o cu totul altă strategie de construire a modelelor - deloc minimalistă, ci adecvată realităţii modelate, şi unde nu puterea de calcul este de interes, ci evoluţia în timp a sistemului. Voi reveni la aplicaţii. Peste această mică junglă de modele se suprapune programul de cercetare sugerat de informatica clasică: putere de calcul, forme normale, complexitate descriptivă, complexitate de calcul, programe de simulare etc.

Clase de rezultate (şi probleme)

Evident, nu voi relua teoreme precise, ci voi menţiona doar cele două clase principale de rezultate şi stilul lor.

Universalitate computaţională: majoritatea claselor de sisteme P sunt echivalente cu maşina Turing, sunt computaţional complete şi, prin demonstraţii, pentru că acestea sunt constructive, împrumută şi proprietatea de universalitate în sensul lui Turing. Adesea, acest lucru se obţine pentru sisteme de o formă redusă, particulară, cu un număr mic de membrane. De pildă, sisteme P de tip celulă, cu două membrane, cu reguli catalitice (deci nu de forma generală) pot calcula tot ce poate calcula maşina Turing. Important: sunt suficienţi numai doi catalizatori. Este o problemă deschisă de peste un deceniu dacă sistemele cu un singur catalizator sunt universale. Conjectura este că răspunsul este negativ, dar demonstraţia întârzie să apară. Acesta este unul dintre cele mai interesante tipuri de probleme (multe deschise încă) în calculul membranar: identificarea graniţei dintre universal şi sub-universal.

Eficienţă: clasele de sisteme P care pot creşte (exponenţial) numărul de membrane pot rezolva în timp polinomial probleme NP-complete. Ideea este generarea în timp polinomial a unui spaţiu de lucru exponenţial şi folosirea lui, în paralel, pentru examinarea soluţiilor posibile ale unei probleme. Divizarea de membrane ajută, la fel crearea de membrane, la fel şi alte operaţii. Ca în cazul lui Adleman, avem din nou o tranzacţionare spaţiu-timp, cu menţiunea că aici spaţiul nu este furnizat dinainte, ci este construit de-a lungul derulării calculului, prin „mitoză” sau prin alte operaţii biologice, „realiste”. Există şi în această zonă probleme deschise privind graniţa dintre eficient şi neeficient, dar mai greu de formulat în cuvinte. Interesant este însă un fapt oarecum neaşteptat. Cu reguli de forma a>aa, aplicate în paralel, putem produce un număr exponenţial de cópii ale lui a într-un număr liniar de paşi. (În n paşi, obţinem 2n cópii ale lui a.) Totuşi, un asemenea spaţiu de lucru exponenţial nu ajută pentru a rezolva în timp polinomial probleme de complexitate mare - este ceea ce ne spune aşa-numita teoremă Milano, din teza de doctorat a lui Claudio Zandron. Dacă, însă, aceste obiecte sunt localizate, plasate într-un număr exponenţial de membrane, atunci lucrurile se schimbă. Altfel spus, nu numai dimensiunea spaţiului de lucru contează, ci şi structura acestuia, posibilitatea de a aplica reguli diferite în locuri diferite. O diferenţă subtilă, care nu ştiu să fi fost sesizată şi până acum, în alte contexte. Pentru detalii, trimit la monografia „Membrane Computing. An Introduction”[1], tradusă recent în chinezeşte, şi, mai ales, la „Oxford Handbook of Membrane Computing” [2].

Semnificaţii pentru informatică şi pentru biologie

Un model de calcul de puterea maşinii Turing este un lucru bun, un calculator de acest nivel este universal nu numai în sens intuitiv, ci şi programabil. În plus, avem un calculator distribuit, paralel, cu un mare grad de nedeterminism controlat în diferite moduri inspirate din biologie. Să observăm însă asemănările şi diferenţele dintre un program uzual de calculator, un set de instrucţiuni ale unei maşini Turing şi un set de reguli de evoluţie dintr-un sistem P. În limbajele de programare, programele sunt formate din instrucţiuni precis înlănţuite, eventual etichetate şi apelate prin intermediul etichetelor. La maşina Turing, secvenţa de instrucţiuni de aplicat este determinată de stările maşinii şi de conţinutul benzii. În cazul celulei, reacţiile sunt potenţiale, mulţimea lor complet nestructurată, iar aplicarea lor depinde de moleculele disponibile. Regulile de evoluţie aşteaptă datele cărora să se aplice, au o comportare concurenţială în raport cu acestea. Diferenţele sunt vizibile şi ele ne sugerează din nou întrebarea cum se calculează în mod natural, adăugându-i acum întrebarea dacă se poate lucra cu programe de forma unor mulţimi complet nestructurate de instrucţiuni. La prima vedere, probabil că reacţia biologului la rezultate de genul echivalenţei cu maşina Turing este ridicarea din umeri. Alt domeniu, alt limbaj, altă carte. Şi totuşi: dacă celula este atât de puternică din punct de vedere computational, atunci, conform unei teoreme vechi, a lui Rice („orice problemă netrivială - care are şi instanţe cu răspuns afirmativ şi instanţe cu răspuns negativ - asupra unui model de calcul echivalent cu maşina Turing este nedecidabilă algoritmic”), nicio întrebare netrivială asupra celulei nu poate fi rezolvată algoritmic, printr-un program. Iar biologul formulează zilnic asemenea întrebări: Care este evoluţia în timp a unei celule, a unei culturi de celule, a unui organism? Există o substanţă care se acumulează peste o anumită limită, într-un anume compartiment? Dacă adăugăm un multiset de molecule (un medicament), se îmbunătăţeşte starea unui organ (din puncte de vedere specificate)? Şi aşa mai departe. Dacă un model al celulei ar fi decidabil, am putea afla răspunsul la asemenea întrebări examinând (algoritmic) modelul, la o stare dată, iniţială. Pentru că acest lucru nu este posibil (nu se poate face în principiu, nu numai că nu putem noi, acum, aici), ne rămâne experimentul de laborator (costisitor şi de durată), experimentul pe calculator (ieftin, rapid, dar a cărui relevanţă depinde de calitatea modelului) şi, teoretic, abordarea nealgoritmică, ad-hoc. Paragraful dinainte poate fi văzut şi ca o pledoarie pentru biologie de a învăţa limbaje noi, în particular, informatică teoretică, având astfel posibilitatea de a ridica probleme şi de a găsi soluţii care în limbajul dinainte nu apăruseră, poate nici nu se puteau formula. Acesta ar fi un pas esenţial spre infobiologie.

Trei probleme informatice inedite

În ceea ce priveşte semnificaţiile pentru informatică, să semnalăm un aspect remarcabil: calculul natural în general, cel membranar în particular, ridică probleme teoretice care nu au fost avute în vedere în informatica tradiţională. Iată trei dintre acestea, toate trei ţinând de teoria complexităţii. Începând cu Adleman, majoritatea experimentelor de calcul cu A.D.N. au plecat de la o instanţă a unei probleme şi au construit un „calculator” asociat instanţei. Teoria complexităţii calculului nu permite aşa ceva, ci pretinde soluţii uniforme, programe care pleacă de la problema ca atare şi care, primind o instanţă ca intrare, o rezolvă. Ideea este că în timpul programării se poate deja lucra la rezolvare, pretinzându-se apoi că soluţia a fost găsită mult mai rapid decât este cazul. De aceea, şi în soluţiile uniforme se limitează timpul alocat programării. Să-l limităm atunci şi în cazul în care se pleacă de la o instanţă a problemei, pentru a nu putea trişa nici aici. Problema relaţiei dintre soluţii uniforme şi semi-uniforme (cu timpul de programare limitat) încă nu este complet rezolvată, în ciuda importanţei pentru calculul natural. Pentru calculul membranar s-au obţinut o serie de rezultate - a se vedea, în special, lucrări recente ale lui Damien Woods (Caltech, S.U.A.), Niall Murphy (Microsoft Research, Cambridge, U.K.), Mario J. Pérez-Jiménez (Universitatea Sevilla, Spania).

Apoi, în calculul cu A.D.N. şi la fel în multe modele de calcul membranar, parte dintre paşii unui calcul sunt nedeterminişti, dar în final experimentul/calculul ne furnizează un rezultat univoc. Ideea este de a organiza calculul în aşa fel încât el să fie confluent, cu două variante: fie sistemul să evolueze nedeterminist, dar să „conveargă” spre o configuraţie unică, apoi să se comporte determinist, fie să „conveargă logic”, indiferent cum evoluează, să dea acelaşi rezultat. Iarăşi, teoria complexităţii nu ia în seamă o asemenea comportare, intermediară între determinism şi nedeterminism. În sfârşit, biologia prezintă situaţii în care resurse extinse stau în aşteptarea unor solicitări care activează porţiunea necesară din resursă. Cazurile creierului şi ficatului, din care folosim în fiecare moment doar o parte dintre celule, sunt cele mai la îndemână. Putem atunci imagina „calculatoare” - de pildă, sisteme neurale - cu un număr arbitrar de mare de neuroni, dar care nu conţin decât o cantitate limitată de informaţie; după ce introducem o problemă în sistem, acesta activează numărul necesar de neuroni pentru a o rezolva. O teorie adecvată acestei strategii nu există. Cum trebuie să fie reţeaua de neuroni pentru a „conţine o cantitate limitată de informaţie”, cum trebuie definită şi măsurată această informaţie, când un sistem cu resurse pre-calculate este acceptabil/onest, nu ascunde soluţia problemei în structura sa?

Calculul natural nu numai că face necesară îmbunătăţirea unor rezultate vechi din informatică, dar motivează şi dezvoltări noi, care nu apăruseră până acum.

Despre tehnicile folosite în calculul membranar

Pentru a sublinia încă odată relaţiile dintre ramuri aparent depărtate ale informaticii teoretice, unitatea acesteia, şi faptul că în calculul membranar, în calculul natural în general, sunt valorificate foarte multe tehnici şi rezultate anterioare din informatică, amintesc câteva episoade din experienţa personală. În prima demonstraţie de universalitate a sistemelor P am folosit rezultatul lui Yuri Matijasevich, invocat şi mai devreme, de caracterizare a mulţimilor de numere calculate de o maşină Turing ca soluţii de ecuaţii diofantice. Am realizat apoi că o demonstraţie ceva mai simplă se poate obţine pornind de la caracterizarea aceloraşi mulţimi de numere cu ajutorul gramaticilor matriciale. Lucrarea a fost publicată în această formă. În context, a apărut necesitatea îmbunătăţirii unor rezultate vechi din acest domeniu. După o vreme, şi gramaticile matriciale au fost înlocuite în demonstraţii, anume cu maşinile cu regiştri, studiate încă din anii ’60. O tehnică şi mai veche mi-a fost utilă în prima demonstraţie de universalitate a sistemelor H, anume modul de funcţionare a sistemelor Post, întroduse pe la începutul anilor 1940. Transpus la operaţia de splicing, acesta a dus la tehnica numită roteşte-şi-simulează, aproape standard pentru sisteme H şi variante ale acestora.

De gramatici matriciale m-am ocupat din primii ani de cercetare şi am încheiat cu o monografie (publicată în 1981, rămasă în limba română), extinsă la o carte în colaborare cu Jürgen Dassow, de la Magdeburg, Germania (apărută la Springer-Verlag, în 1989), dedicată tuturor restricţiilor în derivare. La fel s-a întâmplat cu alte domenii, care au fost utile din plin calculului membranar; gramaticile contextuale Marcus şi sistemele de gramatici sunt cele mai importante. În matematică şi în informatica teoretică nu se poate spune apriori dacă şi când un subiect sau un rezultat va fi util...

Spiking neural P (SNP) systems

Merită o semnalare separată o clasă de modele inspirate din modul de funcţionare a creierului, introdusă ceva mai târziu[3], dar care, se pare, va ajunge la implementări hardware utile informaticii mai repede decât alte clase de sisteme P[4].

În câteva cuvinte, este vorba despre „neuroni” legaţi prin „sinapse”, de-a lungul cărora circulă impulsuri electrice, produse în neuroni de reguli specifice. La fel ca în cazul neuronilor reali[5], comunicarea între neuroni este asigurată de impulsuri electrice identice, pentru care frecvenţa este relevantă, codificând informaţie. Altfel spus, abstractizând, importantă este distanţa în timp între impulsuri. La fiecare moment, axonii sunt un fel de „coduri de bare”, secvenţe de 0 şi 1 care se deplasează de la un neuron la altul. Evident, în model sunt ignorate multe detalii neurobiologice, dar, chiar şi la acest nivel reducţionist, putem formula unele întrebări/sugestii privind relevanţa pentru informatică. Într-un anumit sens, sistemele S.N.P. folosesc timpul ca suport de informaţie. Distanţa între două evenimente, două impulsuri aici, codifică un număr. Se poate construi un calculator cu o asemenea „memorie”? Consemnăm întrebarea ca speculaţie doar - provocatoare însă la nivel teoretic.

Un rezultat ce merită amintit se referă la căutarea de sisteme SNP care să fie universale în sensul lui Turing, adică să poată fi programate în aşa fel încât să simuleze oricare alt sistem S.N.P.. Din echivalenţa cu maşina Turing, rezultă imediat că asemenea sisteme există, problema de interes priveşte numărul de neuroni dintr-un astfel de „creier universal”, apt să simuleze orice calcul posibil în orice sistem particular. Iar acest număr nu este deloc mare. În lucrarea „Small universal spiking neural P systems”[6], sunt folosiţi 50-80 de neuroni, depinzând de tipul de reguli de producere a impulsurilor electrice, dar aceste numere au fost ulterior micşorate. În termeni gazetăreşti, se poate spune că „există creiere universale computaţional formate din numai câteva zeci de neuroni”. Putem trage fie concluzia că un model de calcul de tipul sistemelor S.N.P. este foarte puternic, de fapt, că neuronii din aceste sisteme sunt prea puternici, fie că nivelul Turing de calculabilitate nu este prea cuprinzător - fie ambele concluzii. Evident, creierul uman nu funcţionează ca o maşină Turing - chiar dacă paradigma computaţională este utilă, la un anumit nivel, în modelarea funcţionării sale.

Despre implementări

Calculul cu A.D.N. a debutat prin introducerea operaţiei de splicing în 1987, dar despre posibilitatea de a calcula folosind molecule de A.D.N. s-a vorbit cu un deceniu şi ceva mai înainte, iar domeniul a devenit popular după experimentul lui Adleman din 1994. S-a creat astfel un precedent, drept care întrebarea dacă există implementări ale sistemelor P este firească şi frecventă. Se înţelege, este vorba despre implementări pe un substrat biologic. Răspunsul este negativ. Au existat încercări, dar încă nu s-a raportat un experiment reuşit. Un asemenea experiment a fost proiectat în grupul profesorului Ehud Keinan, de la Institutul Tehnion din Haifa, unde am petrecut o săptămână în 2006, tocmai cu acest scop. Trebuiau depăşite două probleme principale, corelate: identificarea unui sistem P care să facă posibilă reproducerea în laborator a funcţionării lui şi, desigur, găsirea tehnicilor biochimice de implementare. Nu am intenţionat rezolvarea unei probleme NP-complete, nu am întrezărit una abordabilă, ci am căutat un sistem a cărui comportare să fie ilustrativă pentru calculul membranar (compartimente, multiseturi, procesare paralelă) şi ne-am oprit la generarea de numere din şirul lui Fibonacci. Realizarea în laborator părea doar o chestiune de timp - şi bani, pentru achiziţionarea aparaturii de laborator şi a... moleculelor de ADN. Membranele se doreau simulate prin microcamere într-o instalaţie reconfigurabilă de laborator, iar obiectele urmau să fie molecule de A.D.N.

Primele încercări nu au reuşit, apoi... sociologia ştiinţei şi-a spus iar cuvântul: cele două doctorande care aveau ca sarcină experimentul s-au mutat în S.U.A. E adevărat, între timp a apărut un patent SUA pe numele lui Ehud Keinan (un cercetător de mare anvergură, specialist în chimie şi biologie deopotrivă), de implementare a unui sistem P, dar folosind o altă tehnică, bazată pe „trei lichide nemiscibile” plasate într-un spaţiu comun. Din câte ştiu, e o „implementare de principiu”, nu s-a făcut cunoscut niciun experiment reuşit. Întrebarea care se pune este dacă un asemenea experiment ar aduce ceva cu adevărat util din punctul de vedere al aplicaţiilor. Repetând o vorbă a lui Benjamin Franklin, „este imposibil de spus ce va ajunge un nou-născut”, dar, având în minte situaţia de la calculul cu A.D.N., probabil că nu va fi decât tot un demo, la nivelul unor calcule simple.m Cu totul alta este situaţia implementărilor pe hardware electronic. Există multe implementări promiţătoare pe hardware paralel (pe plăci NVIDIA, la Sevilla), pe hardware special proiectat pentru calcul membranar (la Madrid şi Adelaide, Australia), pe reţele de calculatoare, pe web chiar. Toate acestea reuşesc în mare măsură să prindă caracteristica esenţială a sistemelor P, paralelismul. Având în vedere paralelismul, nu numesc implementări, ci simulări, cazurile în care se folosesc calculatoare obişnuite, secvenţiale.

Pe de altă parte, şi simulările şi, cu atât mai mult, implementările sunt utile în aplicaţii.

Aplicaţii

Calculul membranar confirmă o observaţie făcută în multe alte situaţii: atunci când o teorie matematică, pornită de la un fragment precis de realitate, se dezvoltă suficient de mult la nivel abstract, teoretic, sunt toate şansele ca ea să se aplice şi în domeniul care a inspirat-o, dar şi în alte locuri, unele depărtate, la prima vedere, de cel de unde teoria a plecat (dar cu o structură de adâncime comună). Este, foarte pregnant, cazul de aici. Revenirea la celulă era firească. Biologia duce lipsă de modele, celula nu este uşor de modelat. S-a şi afirmat că, după încheierea citirii genomului uman, principala provocare pentru bioinformatică este modelarea şi simularea celulei[7]. Spuneam, multe modele folosite în biologie sunt bazate pe ecuaţii diferenţiale. În unele locuri ele sunt adecvate, în altele nu. Ecuaţiile ţin de matematica continuului, se potrivesc populaţiilor foarte mari de molecule, uniform distribuite. În celulă, multe molecule se găsesc în numere mici, drept care aproximarea finitului prin infinit, pentru a aplica ecuaţii diferenţiale, duce la rezultate viciate. De aici, firească, necesitatea modelelor discrete, în particular, a sistemelor P, care mai au şi alte caracteristici atrăgătoare pentru biolog: vin din biologie, sunt deci uşor de înţeles, aspect ce nu trebuie deloc subestimat; sunt modele algoritmice, direct programabile, pentru a fi simulate pe calculator; pot fi uşor extinse (sunt scalabile), adăugarea de componente, de orice tip ar fi acestea, nu schimbă programul de simulare; comportarea este de tip emergent, nu poate fi prezisă pe baza componentelor.

Sunt numeroase aplicaţiile în biologie şi biomedicină. De la celula individuală s-a trecut la populaţii de celule (bacterii), s-a trecut apoi la... ecosisteme. Doar un titlu, pentru că este sugestiv: „Modeling ecosystems using P systems: The bearded vulture, a case study”, de Mónica Cardona, M. Angels Colomer, Mario J. Pérez-Jiménez, Delfi Sanuy şi Antoni Margalida, ultimii doi fiind specialişti în ecologia vulturului bărbos şi protecţia animalelor, din Lleida, Spania. Evident, ecosistemul este o celulă metaforică, „moleculele” care interacţionează fiind vulturii, caprele sălbatice, lupii, vânătorii - toate acestea în cantităţi discrete, numere cunoscute, fără nicio şansă de a fi modelate cu instrumente ale matematicii continue. Alte ecosisteme studiate privesc urşii panda din China şi scoica dungată din lacurile de acumulare ale hidrocentralelor spaniole.

Aplicaţii plauzibile până aici. Mai puţin aşteptate sunt cele în grafica de calculator (dar avem precedentul sistemelor Lindenmayer), criptografie (în organizarea atacului asupra unor sisteme criptografice), optimizare aproximativă (calcul evolutiv distribuit, cu distribuirea organizată ca într-o celulă; numărul lucrărilor de acest gen este foarte mare, subiectul fiind popular în China, iar rezultatele sunt surprinzător de bune – cu menţiunea că faimoasa no free lunch theorem cenzurează şi aici entuziasmul), modelare economică (o extensie metaforică similară celei la ecosisteme), controlul roboţilor. Aceste din urmă două arii de aplicaţii sunt parte a uneia potenţial mai ample, care se bazează pe folosirea aşa-numitelor sisteme P numerice, unde, într-un cadru „celular” evoluează nu molecule, ci variabile numerice, pe baza unor programe constituite dintr-o funcţie de producţie şi un protocol de repartiţie. Inspiraţia vine din economie[8]. Sistemele de acest tip calculează funcţii de mai multe variabile, în paralel, iar acest calcul este extrem de eficient, de aceea este de aşteptat ca această clasă exotică de sisteme P să-şi afle şi alte aplicaţii.

Detalii despre aplicaţii pot fi găsite la pagina web a domeniului, în Handbook, precum şi în volumele colective Applications of Membrane Computing (editat de G. Ciobanu, Gh. Păun, M.J. Pérez-Jiménez) şi Applications of Membrane Computing in Systems and Synthetic Biology (editat de P. Frisco, M. Gheorghe, M.J. Pérez-Jiménez), ambele apărute la Springer-Verlag, în 2006, respectiv, 2014.

Îndoieli, dificultăţi, neîmpliniri

În momente festive, cum este şi cel de faţă, sau cu ocazia periodicelor raportări, este neuzual, poate şi nepotrivit, să vorbim şi despre neîmpliniri şi momente de cumpănă - chiar dacă acest lucru poate fi instructiv pentru ascultător/cititor şi util pentru domeniu. Pe de altă parte, ezitările şi îndoielile îl însoţesc continuu pe cercetător. Aş putea, de pildă, face o listă lungă de momente în care aşteptările au fost de un fel, rezultatele de un alt fel. Începând cu rezultatele matematice. De exemplu, la început nu am crezut că sistemele P catalitice sunt universale, cu atât mai mult cele cu numai doi catalizatori. La fel, am tot sperat în găsirea de clase de sisteme pentru care numărul de membrane să inducă o ierarhie infinită. În schimb, mai mereu universalitatea este obţinută cu una sau două membrane. O singură membrană înseamnă nicio structurare a sistemului, o arhitectură trivială. Sigur, putem vedea partea plină a paharului: procesarea (catalitică) a multiseturilor este suficient de puternică pentru a simula maşina Turing.

Pentru că am în minte situaţia de la calculul cu A.D.N., nu trec la neîmpliniri lipsa unei implementări biologice decât pentru valoarea publicitară a unui asemenea eveniment, dar sunt încă în aşteptarea unei implementări pe hardware dedicat care să fie de interes practic „comercial”. Este nevoie de aşa ceva şi, cred, este şi posibil. De pildă, acum câţiva ani, o echipă de biologi şi informaticieni din Nothingham, Sheffield şi Sevilla au încercat să simuleze pe calculator comunicarea între bacterii, modelând aşa-numitul quorum sensing. Simulatoarele puteau lucra cu sute de bacterii, biologii doreau să treacă la populaţii de mii de bacterii. Mă aştept ca implementările pe hardware paralel (pe plăci NVIDIA, de exemplu) să acceadă curând la acest ordin de mărime cerut de biologi. Apropo de aplicaţii, chiar dacă acestea nu mă interesau la început, a devenit la un moment dat evident că domeniul nu poate trece de un anumit nivel de dezvoltare şi notorietate fără aplicaţii „reale”. Aplicaţii apăreau, dar de tip postdicţie, nu predicţie. Scenariul „clasic” este următorul: se ia un fenomen biologic discutat într-o lucrare sau într-o carte, se formalizează ca sistem P, se scrie un program (sau se foloseşte unul aflat în circulaţie - acum, avem şi un limbaj de programare specializat, P-lingua, realizat la Universitatea din Sevilla), se fac experimente cu datele din carte şi, dacă rezultatele sunt similare celor obţinute în laborator sau folosind alte modele, ne bucurăm. Postdicţie, nimic nou pentru biologie, doar creşterea încrederii în noul model. Pentru a trece de acest stadiu este nevoie de un biolog, care să vină cu o problemă de cercetare, cu ipoteze care trebuie testate, şi care să facă echipă cu informaticianul în aplicarea calculului membranar. La rândul său, informaticianul trebuie să vină cu modele suficient de versatile şi cu programe suficient de eficiente, pentru a face faţă complexităţii biologice. După şaisprezece ani de calcul membranar, bibliografia aplicaţiilor de tip predicţie este consistentă - a se vedea referinţele din secţiunea anterioară - chiar dacă este încă nevoie de biologi care să vină spre informatician, eventual să înveţe calcul membranar, sau măcar să înveţe să folosească instrumentele software pe care informaticianul le-a realizat deja.

Spuneam mai devreme că m-a preocupat formarea unei comunităţi - iniţial intuitiv, apoi conştient, era un mod de a stabiliza domeniul în faţa „fluctuaţiei cadrelor”, a dinamicii grupurilor. E un aspect care pare exterior, dar nu trebuie deloc subestimat efectul psiho-sociologiei asupra ştiinţei, în special în cazul ramurilor tinere. Un grup care se sparge poate însemna un grup în minus (depinde unde ajung membrii lui, dacă îşi continuă sau nu activitatea de cercetare) sau apariţia unor grupuri noi, multiplicate, în locuri inedite. Am asistat la ambele tipuri de urmări. Din fericire, comunitatea de calcul membranar are la ora aceasta dimensiuni care-i dau o inerţie confortabilă - dar care nu garantează că domeniul nu se va dizolva în infobiologie, ba chiar dimpotrivă, lucrează în acest sens...

- Va urma -
------------------------------------------------------------
[1]Membrane Computing. An Introduction, Springer-Verlag, 2002
[2], Oxford Handbook of Membrane Computing editat împreună cu G. Rozenberg şi A. Salomaa, la Oxford University Press, în 2010.
[3]M. Ionescu, Gh. Păun, T. Yokomori: „Spiking neural P systems”, Fundamenta Informaticae, vol. 71, 2006, pp. 279-308
[4] detalii în lucrarea „The stochastic loss of spikes in spiking neural P systems: Design and implementation of reliable arithmetic circuits”, de Zihan Xu, Matteo Cavaliere, Pei An, Sarma Vrudhula, Yu Cao, în curs de apariţie în Fundamenta Informaticae.
[5] vezi, W. Maass: „Networks of spiking neurons: The third generation of neural network models”, Neural Networks, vol. 10, 1997, pp. 1659-1671
[6] Andrei Păun şi Gh. Păun, BioSystems, vol. 90, 2007, pp. 48-60
[7] M. Tomita: „Whole-cell simulation: A grand challenge of the 21st century”, Trends in Biotechnology, vol. 19, 2001, pp. 205-210.
[8] Gh. Păun, Radu Păun: „Membrane computing and economics: Numerical P systems”, Fundamenta Informaticae, vol. 73, 2006, pp. 213-227.
footer