draft Prawa bezskalowe w grafach przepływu informacji dla geometrycznych sieci neuronowych, symulacje w środowisku współbieżnym

Podobne dokumenty
Symulacje geometrycznych sieci neuronowych w środowisku rozproszonym

Obszary strukturalne i funkcyjne mózgu

Statystyki teoriografowe grafów funkcjonalnych w sieciach neuronowych

Prawa potęgowe w grafach przepływu informacji dla geometrycznych sieci neuronowych

Grafy Alberta-Barabasiego

Wstęp do sieci neuronowych, wykład 12 Wykorzystanie sieci rekurencyjnych w optymalizacji grafowej

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa

Wstęp do sieci neuronowych, wykład 10 Sieci rekurencyjne. Autoasocjator Hopfielda

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova

Wstęp do sieci neuronowych, wykład 9 Sieci rekurencyjne. Autoasocjator Hopfielda

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka Adaline.

Wstęp do sieci neuronowych, wykład 10 Sieci rekurencyjne. Autoasocjator Hopfielda

Wstęp do sieci neuronowych, wykład 9 Sieci rekurencyjne. Autoasocjator Hopfielda

Spacery losowe generowanie realizacji procesu losowego

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

Wstęp do sieci neuronowych, wykład 8 Uczenie nienadzorowane.

Modelowanie sieci złożonych

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie

Matematyczne Podstawy Informatyki

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych.

Sztuczna Inteligencja Tematy projektów Sieci Neuronowe

Wstęp do sieci neuronowych, wykład 04. Skierowane sieci neuronowe. Algorytmy konstrukcyjne dla sieci skierowanych

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

Optymalizacja ciągła

Algorytmy mrówkowe (optymalizacja kolonii mrówek, Ant Colony optimisation)

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane cd.

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

Podstawy Sztucznej Inteligencji (PSZT)

Algorytmiczna teoria grafów

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami

AiSD zadanie trzecie

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego

Wykładnicze grafy przypadkowe: teoria i przykłady zastosowań do analizy rzeczywistych sieci złożonych

8. Neuron z ciągłą funkcją aktywacji.

a) 7 b) 19 c) 21 d) 34

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Zajęcia nr. 3 notatki

Tworzenie programów równoległych cd. Krzysztof Banaś Obliczenia równoległe 1

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane.

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane:

Wstęp do sieci neuronowych, wykład 03 Warstwy RBF, jednostka ADALINE.

Podstawy OpenCL część 2

Graf. Definicja marca / 1

Sieci Petriego. Sieć Petriego

Algorytmika Problemów Trudnych

Wykorzystanie algorytmów mrówkowych w dynamicznym problem

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010

Wstęp do sieci neuronowych, wykład 07 Uczenie nienadzorowane.

POISSONOWSKA APROKSYMACJA W SYSTEMACH NIEZAWODNOŚCIOWYCH

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

KURS MATEMATYKA DYSKRETNA

Numeryczna algebra liniowa

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

Algorytmiczna teoria grafów

Matematyka dyskretna

TEORETYCZNE PODSTAWY INFORMATYKI

0 + 0 = 0, = 1, = 1, = 0.

Algorytm. Krótka historia algorytmów

Przetwarzanie równoległe Zadanie domowe III

PRZYKŁADY ZADAŃ MATURALNYCH Z MATEMATYKI NA POSZCZEGÓLNE STANDARDY DLA WYBRANYCH TREŚCI PROGRAMOWYCH Z POZIOMU PODSTAWOWEGO I ROZSZERZONEGO

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1

Sortowanie topologiczne skierowanych grafów acyklicznych

Wstęp do sieci neuronowych, wykład 02 Perceptrony c.d. Maszyna liniowa.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Tworzenie programów równoległych. Krzysztof Banaś Obliczenia równoległe 1

Sieci obliczeniowe poprawny dobór i modelowanie

Analiza Algorytmów 2018/2019 (zadania na laboratorium)

miejsca przejścia, łuki i żetony

b) Niech: - wśród trzech wylosowanych opakowań jest co najwyżej jedno o dawce 15 mg. Wówczas:

Podstawowe własności grafów. Wykład 3. Własności grafów

Uczenie sieci typu MLP

Metody Sztucznej Inteligencji II

Matematyczne Podstawy Informatyki

Wstęp do sieci neuronowych laboratorium 01 Organizacja zajęć. Perceptron prosty

Digraf. 13 maja 2017

SPOTKANIE 9: Metody redukcji wymiarów

1 Automaty niedeterministyczne

Zasady analizy algorytmów

Matematyczne Podstawy Informatyki

Algorytmy mrówkowe. H. Bednarz. Wydział Informatyki Zachodniopomorski Uniwersytet Technologiczny w Szczecinie Inteligentne systemy informatyczne

Ogólne wiadomości o grafach

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

G. Wybrane elementy teorii grafów

LUBELSKA PRÓBA PRZED MATURĄ 09 MARCA Kartoteka testu. Maksymalna liczba punktów. Nr zad. Matematyka dla klasy 3 poziom podstawowy

Wykład 10 Grafy, algorytmy grafowe

Warsztaty metod fizyki teoretycznej

Propozycje rozwiązań zadań otwartych z próbnej matury rozszerzonej przygotowanej przez OPERON.

Uczenie sieci neuronowych i bayesowskich

Wykład 9: Markov Chain Monte Carlo

Wykład z Technologii Informacyjnych. Piotr Mika

Prawdopodobieństwo i statystyka r.

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie

Transkrypt:

Prawa bezskalowe w grafach przepływu informacji dla geometrycznych sieci neuronowych, symulacje w środowisku współbieżnym Jarosław Piersa, Tomasz Schreiber Uniwersytet Mikołaja Kopernika, Wydział Matematyki i Informatyki Streszczenie W pracy poniższej przedstawione zostaną wyniki badań nad strukturą grafu przepływu impulsów zarysowującego się podczas dynamiki geometrycznych sieci neuronowych. Zostaną również omówione koncepcje dotyczące modelowania dynamiki sieci neuronowych w środowiku rozproszonym z wykorzystaniem wątków. 1 Wstęp W pracy [3] po raz pierwszy zostały przedstawione wyniki badań nad funkcjonalnymi grafami aktywności mózgowej, które jak się okazuje, są bliższe grafom bezskalowym niż modelowi Erdősa-Rényiego. Przedstawiony w [4] model matematyczny wyjaśnia genezę tego zjawiska w sieciach pełnych. Dalej w [6] model został rozszerzony na sieci neuronowe wzbogacone o istotny komponent geometryczny i co za tym idzie znacznie bardziej swobodną strukturę. Kontynuując prace przedstawimy pobieżnie uzyskane wyniki dotyczące rozkładu stopni wierzchołków oraz przybliżymy zagadnienia symulacji sieci neuronowych w środowisku równoległym. Dokument poniższy zorganizowany jest w następujący sposób: w rozdziale drugim omówiony będzie model symulacyjny wraz z dynamiką. Uzyskane wyniki są przedstawione i omówione w rozdziale trzecim. Problematyka dostosowania dynamiki sieci do wymagań systemów współbieżnych oraz uzyskane rezultaty będą przybliżone w rozdziale czwartym. Pracę zamyka krótkie podsumowanie i plan dalszych badań. 2 Model Symulacyjny Ewolucja układu zachodzi na bazującej sieci strukturalnej, to jest zadanej przez faktycznie połączenia synaptyczne. W odróżnieniu od tej ostatniej sieć funkcjonalna samoistnie zarysowuje się w trakcie symulacji. 2.1 Sieć Strukturalna Wierzchołki grafu strukturalnego są losowo wybierane z powierzchni dwuwymiarowej sfery o promieniu R > 1. Liczba neuronów pochodzi z rozkładu Poissona

P z parametrem c S 2, gdzie c > 1 jest oczekiwanym zagęszczeniem wierzchołków na jednostkę kwadratową sfery. Dla każdej pary neuronów u, v do zbioru połączeń synaptycznych E dodajemy krawędź (u, v) z prawdpodobieństwem: { 1 d(u, v) [, 1) P((u, v) E) = 1, wpw d(u,v) α gdzie d jest odległością euklidesową, natomiast α > 1. Krawędź (u, v) otrzymuje losowo swoją wagę w uv. Zarówno krawędzie jak i wagi traktujemy jako symetryczne. Przy wysokiej gęstości c uzyskana sieć z dużym prawdpodobieństwem jest spójna. Ponadto każda jednostka otrzymuje początkowy ładunek σ, którego wartość może się zmienać podczas dynamiki, ale nie może spaść poniżej. Dla tak zadanej sieci przy określonej konfiguracji ładunku σ definiowana jest energia układu jako E( σ) = w u,v σ v σu (1) 2.2 Dynamika (u,v) E W każdym kolejnym korku poddajemy sieć następującym modyfikacjom: 1. Losowana jest para neuronów u oraz v takich, że u posaida ładunek σ u 1 oraz u i v są połączone synapsą, to jest (u, v) E, 2. Próbujemy przenieść jedną jednostkę ładunku z u do v, uzyskujemy w ten sposób nową konfigurację ładunku: (a) Jeżeli powoduje to spadek energii E(σ), to zmianę przyjmujemy, tj. przypisujemy σ u = σ u 1 oraz σ v = σ v + 1, (b) Jeżeli zmiana powoduje wzrost energii E, to ją przyjmujemy z prawdpodobieństwem P = exp( β E), gdzie β jest temperaturą odwrotną, zaś E jezt wzrostem energii spowodowanym przez zmianę, oraz odrzucamy w prawdopodobieństwem przeciwnym, 3. Powtarzamy iterację aż do ustabilizowania się stanu sieci. W praktyce jako warunek zakończenia ewolucji sieci można stosować osiągnięcie określonej ilości kroków. 2.3 Funkcjonalny Graf Połączeń Niech u i v będą parą neuronów połączonych krawędzią synaptyczną. Przyjmijmy oznaczenie p uv jako ilość ładunku przesłanego z u do v w trakcie całej symulacji. Zauważmy, że w przeciwieństwie do wag w, przesył nie musi być (i zazwyczaj nie jest) symetryczny tj. nie musi zachodzić równość p uv = p vu. Definiujmy funkcjonalny graf przesyłu ładunku jako:

za wierzchołki przyjmowany jest zbiór neuronów grafu strukturalnego, jako zbiór krawędzi przyjmowane są te połączenia synaptyczne z E, przez które przepłynęła przynajmniej jedna jednostka ładunku w trakcie symulacyji, tj {(u, v) E : p uv + p vu 1} Intuicyjnie sieć ta odpowiada funkcjonalnemu grafowi aktywności mózgowej dla poszczególnych wokseli, uzyskanemu w badaniach fmri [3,2]. 3 Wyniki Ewolucja sieci prowadzi do koncentracji ładunku w niewielkiej liczbie wysoce przystosowanych jednostek. Jako że ujemne wartości dla σ v nie są dopuszczane, po pewnym czasie sytuacja ulega stabilizacji. Dynamika przedstawionego powyżej modelu jest dokładniej studiowana w [6]. 3.1 Grafy bezskalowe Przypomnijmy, że X spełnia prawo potęgowe jeżeli zachodzi zależność P(X = k) k α gdzie α < 1. Z powyższej definicji przechodzi się do grafu bezskalowego G = (V, E) jeżeli spełna on P(deg v = k) k α (2) Grafy bezskalowe charakterysują się wysoką odpornością na awarie interpretowane jako losowe usunięcia wierzchołków wraz z incydentnymi krawędziami [1] oraz relatywnie krótką średnią długością ścieżki. Jako przykłady podawane są liczne wersje grafów socjalnych, kooperacji, internet na poziomie stron www, czy sieci lingwistyczne (tamże), a także grafy aktywności mózgowej zebrane podczas wykonywania prostych czynności [3]. 3.2 Rozkład Stopni Wierzchołków Zdefiniujmy stopień wejściowy wierzchołka v w grafie funkcjonalnym jako sumaryczną ilość ładunku, jaka wpłynęła do danego neuronu deg in (v) = u:(u,v) E Stopień wyjściowy wierzchołka może zostać zdefiniowany w symetryczny sposób. Numerycznie obliczona postać rozkładu wskazuje na zachowanie przez tenże rozkład prawa potęgowego. Uzyskana wartość wykładnika wynosi w przybliżeniu 2. Przypomnijmy, że zależność liniowa na wykresie w podziałce logarytmicznej odpowiada zależności potęgowej, przy czym współczynnik nachylenia prostej odpowiada wartości wykładnika. p uv

8 7 6 5 4 3 2 1 all values truncated only estimated slope 1 2 3 4 5 6 (a) Kumulatywny wykres rozkładu stopni wejściowych. 1 5 1 4 1 3 1 2 1 1 1 a = -1.52855 truncation = [1 to 1] of [1 to 1271] 1 1 1 1 2 1 3 1 4 all values truncated only estimated curve (b) Wykres w podziałce logarytmicznej Rysunek 1. Kumulatywny wykres rozkładu deg in 3.3 Współczynnik Klasteryzacji Współczynnikiem klasteryzacji wierzchołka v w grafie nazwiemy 2E v C(v) = k v (k v 1) gdzie k v jest liczbą krawędzi incydentnych z v, natomiast E v ilość krawędzi w podgrafie obciętym do {u : (u, v) E}. Współczynnikiem klasteryzacji grafu G = (V, E) nazwiemy średni współczynnik klasteryzacji jego wierzchołków: CC = 1 C(v) N Uzyskany numerycznie rozkład współczynników klasteryzacji wieszchołków widoczny jest na rysunku 3.3. Średni współczynnik klasteryzacji grafu wynosi około CC.2, co jest wartością o dwa rzędy większą niż w odpowiadającym grafie Erdősa-Rényiego, o tej samej liczbie krawędzi i wierzchołków. Sąsiedztwo v może liczyć maksymalnie k v krawędzi, z których średnio p k v jest dodawanych do grafu. Zatem współczynnik klasteryzacji v wyniesie średnio C v = p kv k v = p i jest to wartość niezależna od v. Wartość oczekiwana CC wyniesie również p Niech ˆp będzie estymatorem p: E ˆp = V ( V 1)/2. Przy V = 95261 oraz E 6.7 1 6 mamy ˆp = CC ˆ.148. v

Tablica 1. Uzyskane rezultaty. Kolumy tabeli od lewej: ilość neuronów, ilość krawędzi, ilość iteracji, uzyskany współczynnik nachylenia prostej w kumulatywnej postaci rozkładu stopni, geometria sieci (sfera 2d lub kostka 3d), ułamek neuronów które zawierają ładunek po zakończeniu symulacji. neurony synapsy iteracje nachylenie geometria neur: k i > 27359 2M 2M -1.99 (..d) 3.72 33963 2.8M 4M -1.78 (..d) 3.6 4889 3.4M 5M -1.66 (..d) 3.65 48889 4.1M 6M -1.143 (..d) 3.19 48955 4.1M 8M -1.63 (..d) 3.56 12355 7k 1M -1.37 S 2.11 2267 1.4M 4M -1.23 S 2.79 28148 1.8M 8M -1.25 S 2.79 28293 1.8M 7M -1.54 S 2.84 3217 2M 3M -1.12 S 2.83 44996 3M 5M -1.13 S 2.82 49957 3.4M 6M -1.19 S 2.89 5143 3.4M 8M -1.8 S 2.16 5764 3.5M 8M -1.58 S 2.78 55398 3.8M 8M -1.48 S 2.83 58245 4M 9M -1.91 S 2.82 58523 5M 1G -1.81 S 2.6 78428 5.4M 1.2G -1.63 S 2.84 8167 5.6M 1.4G -1.4 S 2.82 88828 6.2M 1.6G -1.58 S 2.78 95261 6.7M 1.8G -1.81 S 2.81 freq.2.15.1.5.2.4.6.8 1 CC CC distribution Rysunek 2. Uzyskany rozkład współczynników klasteryzacji w grafie. 4 Zrównoleglenie System składa się z ogromnej liczby jednostek połączonych ze sobą nietrywialnym i nielokalnym grafem synaps. Istnienie synapsy oznacza jawną zależność

dynamiki łączonych neuronów, zatem system współbieżny poddając jednostkę zmianom podczas kolejnej iteracji, musi mieć zapewniony dostęp do odczytu do wszystkich neuronów sąsiadujących ze zmienianymi przypomnijmy, że zgodnie z dynamiką opisaną powyżej w pojedynczym kroku może być zmieniany stan ładunku w dwóch neuronach. Projektując symulację zdecydowaliśmy się na umożliwienie wykonania głównej pętli symulacyjnej w sposób równoległy, co jest najbardziej oczywistym rozwiązaniem. Innymi słowy zrównoleglenie dotyczy zmiany sformuowanego w 2.2 wywołania sekwencyjnego pętli: for (int i=; i<iterations; i++) simulateonestep(); na for (int k=; k<threads_number; k++){ executeasthreaad{ for (int i=; i<iterations/threads_number; i++){ simulateonestep(); } // for i } // thread } // for k Przypuśćmy, że symulacja jest obliczana przez k równolegle działających wątków T 1,.., T k. W danym kroku wątek i-ty próbuje dokonać zmiany na parze neuronów oznaczmy je poprzez n i1 oraz n i2. Kolejność nie ma znaczenia, gdyż na obu konieczna jest wyłączna blokada do zapisu. Pula k wątków zablokuje zatem 2k krawędzi: n 11, n 12, n 21,..., n k1, n k2. Nietrudno zauważyć analogię do klasycznego problemu pięciu filozofów (z tym, zarówno filozofów jak i widelców jest znacznie więcej oraz dowolny filozof może chwycić dowolną parę widelców ). Policzmy prawdopodobieństwo, że żadne dwie jednostki w tym zbiorze się nie powtarzają. P( i j {n i1, n i2 } {n j1, n j2 } ) ( k 2 ( k 2 ) (n 2k 1 + o(n 2k 2 )) n 2k + o(n 2k 2 ) ) n(n 1)(n (n 2k + 2) ( n k = 2) k2 Co oznacza, że prawdopodobieństwo kolizji rośnie kwadratowo wraz z ilością wątków w symulacji. Jest to niestety zła wiadomość, gdyż sprawia że symulacja dużych instancji sieci w środowisku masowo równoległym, jak na przykład wieloprocesorowe karty GPU, z dużym prawdopodobieństwem będzie wymagało synchronizacji dostępu do rejestrów neuronu muteksami. Ponadto dynamika jawnie wymaga rozdzielania potoku instrukcji w każdym z kroków (instrukcja warunkowa if else), co sprawia że kart graficzne jako jednostki obliczeniowe tracą swoją zasadniczą przewagę. n

Sytuację dodatkowo komplikuje blokada do czytania na wszystkie wierzchołki sąsiadujące z wylosowanymi, choć ze wzgędu łagodniejszą naturę blokady do czytania jest to mniej kłopotliwe ograniczenie. Mimo tych promlemów udało się uzyskać dość istotne przyśpieszenie symulacji, choć ze względu na rozległe obszary krytyczne, daleko jeszcze do maksymalnych możliwych teoretycznych wyników. Jak widać na rysunku 4 dwukrotne przyśpieszenie daje się osiągnąć na trzech wątkach, co daje efektywność na poziomie ok. 66%. Zaznaczyć należy, że wyniki zostały uzyskane na komputerze przenośnym, a więc nie przeznaczonym do wykonywania intensywnych obliczeń. iterations per second 1 8 6 4 2 12k Neurons 28k Neurons 1 2 3 4 5 6 7 threads (a) Ilość iteracji na sekundę. time (mins) 3 25 2 15 1 5 12k Neurons 18k Neurons 1 2 3 4 5 6 threads (b) Czas obliczeń Rysunek 3. Uzyskane rezultaty (Core 2 Quad 2GHz, Fedora 11 / Fedora 13). Kolejnym punktem, w którym można szukać oszczędności czasowej poprzez zrównoleglenie jest generowanie krawędzi grafu strukturalnego, poprzez sprawdzanie dla każdej pary wierzchołków czy ma zostać dodane połączenie. for (int i=; i<n-1; i++) for (int j=i+1; j<n; j++) if (rand() < g(dist(n(i), n(j)))) addedge(i,j); Ponieważ graf jest nieskierowany, obszar danych do sprawdzenia jest macierzą górnotrójkątną. Naiwne przypisanie granic obszarów daje znacznie większy obszar do przeszukania wątkom o niższym indeksie. Równomierne przypisanie wymaga rozwiązania układu równań: g = 1 2 (g k 1 + 1 + g k ) (g k g k 1 1) = M n = N g n gdzie N ilość neuronów w grafie, n ilość wątków. Jak nietrudno zauważyć granice można zapisać rekurencyją zależnością g k = 2M n + (g k 1 + 1) 2. Rozważania nie uwzględniają wymogu, że granice zakresów indeksów muszą być

całkowite, ale pomimo tego dają wątkom porównywale zbiory do przeszukania rys. 4(c) oraz 4(d). neuron id neuron id 12 1 8 6 4 2 12 1 8 6 4 2 th 1 th 2 th 3 th 4 2 4 6 8 1 12 neuron id (a) Podział jednostajny granic. th 1 th 2 th 3 th 4 2 4 6 8 1 12 neuron id (c) Podział uzyskany z równań. domain domain 3.5e+7 3e+7 2.5e+7 2e+7 1.5e+7 1e+7 5e+6 2e+7 1.5e+7 1e+7 5e+6 1 2 3 4 5 thread (b) Ilość sprawdzeń na wątek. 1 2 3 4 5 thread (d) Ilość sprawdzeń na wątek. Rysunek 4. Obszar do przeszukania przez kolejne wątki 5 Podsumowanie i Dalsze Badania To, co prawa fizyki gwarantują za darmo na poziomie komórek neuronowych, tj. akumulacja ładunku, równoległe działanie, wymaga szeregu rejestrów o zsynchronizowanym dostępie przy implementacji w środowisku współbieżnym. Przedstawiona metoda daje znaczne przyśpieszenie w porównaniu do obliczeń sekwencyjnych, ale jest jedynie jednym z wielu punktów symulacji. Po zakończeniu dynamiki następuje przetwarzanie wyników uwzględniające między innymi obliczanie rozkładu stopnie wierzchołków, obliczanie współczynników klasteryzacji uzyskanego grafu funkcjonalnego, obliczenie rozkładu spektralnego czy macierzy najkrótszych ścieżek. Podręcznikowy algorytm Floyda-Warshalla do obliczania wszystkich najkrótszych ścieżek w grafie ma złożoność O(n 3 ), gdzie n jest ilością neuronów w sieci.

Już dla próbki V = 13k daje to około dziesięciokrotny zysk czasowy w porównaniu do naiwnego uruchamiania BFS dla każdej pary wierzchołków, złożoność O(n 2 (n + m)), gdzie m jest ilością połączeń synaptycznych. Podobny rząd złożoności ma algorytm QR, obliczający wartości własne macierzy. Nawet przy średnich instancjach sieci liczących kilkadziesiąt tysięcy neuronów, czas analizy wyników zaczyna dominować nad czasem samej dynamiki sieci. Literatura 1. R. Albert, A. L. Barabasi, Statistical mechanics of complex networks, Reviews of modern physics, Vol 74, January 22 2. E. Bullmore, O. Sporns, Complex brain networks: graph theoretical analysis of structural and functional systems, Nature Reviews, Neuroscience, vol 1, March 29 3. V. Eguiluz, D. Chialvo, G. Cecchi, M. Baliki, V. Apkarian Scale-Free Brain Functional Networks, Physical Review Letters, PRL 94 1812, JAN 25, 4. F. Piekniewski, Spontaneous scale-free structures in spike flow graphs for recurrent neural networks, Ph.D. dissertation, Warsaw University, Warsaw, Poland, 28, 5. F. Piekniewski and T.Schreiber, Spontaneous scale-free structure of spike flow graphs in recurrent neural networks, Neural Networks vol. 21, no. 1, pp. 153-1536, 28 6. J. Piersa, F. Piekniewski, T. Schreiber, Theoretical model for mesoscopic-level scalefree self-organization of functional brain networks, IEEE TNN 21