200 likes | 357 Views
Detectarea fenomenelor complexe in automate celulare si paralelismul cu structurile vii. Adrian Iftime Departamentul de Bioinginerie si Biotehnologie, Inginerie Medicala si Clinica - Univ. Politehnica Bucuresti - . Etapele temei de dizertatie.
E N D
Detectarea fenomenelor complexe in automate celulare si paralelismul cu structurile vii Adrian Iftime Departamentul de Bioinginerie si Biotehnologie, Inginerie Medicala si Clinica - Univ. Politehnica Bucuresti -
Etapele temei de dizertatie • Crearea uneltelor software pentru dezvoltarea de automate semitotalistice si totalistice • Generarea de automate celulare semitotalistice si aprecierea numerica a aparitiei fenomenelor emergente in fiecare generatie • Generarea de automate celulare totalistice si repetarea pasilor enumerati anterior • Identificarea claselor de fenomene emergente • Asocierea fenomenelor emergente cu fenomenele similare din tesuturile vii (atat normale cat si patologice)
Automate celulare: definire • Matrice de elemente denumite “celule”, cu valori discrete (simplificat, 0 sau 1) • Unidimensionale - a(i) • Bidimensionale - a(i,j) • Multimensionale - a(i,j,…..,n) (dificil de cercetat datorita volumului mare de calcule) • Lege (sau set de legi) de evolutie in timp a setului de celule John Conway, 1970
Definirea unei vecinatati intr-un automat celular 2D Vecinate = 9 Vecinate = 5
Automatul celular denumit “Game of Life” a devenit remarcat prin asemanarea evolutiei sale in timp cu evolutia sistemelor celulare biologice
Automatul celular denumit “Game of Life” a devenit remarcat prin asemanarea evolutiei sale in timp cu evolutia sistemelor celulare biologice Fenomen evolutiv (“puffers”) Fenomen repetitiv (“oscilators”)
“Game of Life” este doar un caz particular de automate celulare. Setul de legi de evolutie poate fi descris in mod binar (tabel boolean) si generalizat. PARAMETRI: - vecinatate de 5 celule cu conventia de notare: "3" este celula centrala Numar total de functii “live or die”: 210 = 1024 (deci 1024 de automate posibile)
Setul de legi de evolutie descris in mod binar este dificil de urmarit si de implementat. • Pentru aceasta, am implementat si folosit sistematic aceeasi conventie de notare, astfel incat atunci cand este descrisa o functie, sa nu fie necesara enumerarea celor 10 posibiltati boolene. • Conventia de notare pe care am ales-o a fost denumirea functiilor si clasificarea lor in tabel prin convertirea expresiei boolene intr-un numar zecimal, astfel: • Pentru un automat cu vecinatate =9, exista 524288 legi, asa ca am scris un program simplu pentru crearea de tabele de legi – ID, tot in Visual C++ • Programul este disponibil pe serverele web create pentru facilitarea colaborarii intre cei doi colabolatori la acest proiect.
Program pentru vizualizarea automatelor celulare semitotalistice, conceput pentru a putea utiliza conventiile expuse anterior, scris in Visual C++
Program pentru vizualizarea automatelor celulare semitotalistice, conceput pentru a putea utiliza conventiile expuse anterior, scris in Visual C++
Program pentru vizualizarea automatelor celulare semitotalistice, conceput pentru a putea utiliza conventiile expuse anterior, scris in Visual C++
Evaluarea fenomenelor emergente pentru fiecare tip de automat prin urmarirea evolutiei in timp (pentru un numar mare de pasi) Stratri succesive (t=1,2,…n) Strat initial (t=0)
Evaluarea fenomenelor emergente pentru fiecare tip de automat prin urmarirea evolutiei in timp (pentru un numar mare de pasi) – Problemele intampinate: • Cantitatea mare de RAM necesara (217 Mb alocati numai pentru o matrice 151x151x10000) • Cantitatea mare de calculeEvaluarea gradului de organizare al fiecarui strat din cele 10000 trebuie facuta prin calcularea unui parametru numit conventional “haos”, calculat dupa o formula asemenatoare calcului entropiei, prezentata in materialul scris. • Calculatoarele folosite (insuficiente) • Athlon 1600Mhz – 256 Mb RAM • Duron 750 Mhz – 256 Mb RAM • Pentium III 500 Mhz – 256 Mb RAM
t=2k t=2k+1 Rezolvarea acestor probleme printr-un al doilea program optimizat creat in Visual C++ (chaos5finder2D.exe) 1. Folosirea a doar doua planuri interschimbabile si calcularea “entropiei” in planul activ. Aceasta permite reducerea memoriei RAM folosite pana la 335 Ko RAM • 2.Cantitatea mare de calcule: • programul permite calcul distribuit pe mai multe calculatoare (intr-o varianta simplificata) • folosirea a doua thread-uri de executie: • GUI-thread, care se ocupa de interactiunea cu utilizatorul, thread care merge in prioritate normala • Worker-thread, care ruleaza in background, in prioritate idle, astfel fiind folosit la maxim timpul de lucru al PCului, fara a deranja pe cel care lucreaza la altceva.
Rezolvarea acestor probleme printr-un al doilea program optimizat creat in Visual C++ (chaos5finder2D.exe) 3. Programul permite configurarea printr-un fisier de configurare human-readable, de tip text 4. Pentru a nu se repeta calcularea zonelor din matrice deja calculate, pentru fiecare functie am realizat jurnalizarea actiunilor realizate de program, intr-un fisier de log-uri. In cazul unui reset accidental al calculatorului, programul reia calculele de la locul ultimei jurnalizari, castigandu-se astfel timp prin evitarea actiunilor repetitive.
Rezultatele acestei faze a temei de dizertatie 1. Aprox. 500 Mb fisiere de stari finale ale automatelor celulare semitotalistice cu vecinatate = 5, pentru toate functiile posibile (1024). Acestea au fost obtinute pt doua dimensiuni ale automatelor (21x21, respectiv 151x151). 2. Verificarea validitatii algoritmilor prin implementare independenta, pe platforme diferite de cei doi colaboratori (Adrian Iftime – Visual C++, respectiv Dan Darloman – Matlab). (Rezultatele coincid). 3. Crearea de doua seturi de unelte software pe platforme diferite, ceea ce permite verificarea rezultatelor. 4. Crearea a doua pagini de web pentru facilitarea colaborarii on-line, pe servere web cu latime de banda mare: Adrian Iftime - http://biofizica.univermed-cdgm.ro/ai Dan Darloman - http://med.pub.ro/dan/index.htm
Evitarea conditiei de frontiera: transformarea planului in tor