• Nie Znaleziono Wyników

Index of /rozprawy2/10132

N/A
N/A
Protected

Academic year: 2021

Share "Index of /rozprawy2/10132"

Copied!
134
0
0

Pełen tekst

(1)AKADEMIA GÓRNICZO – HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE WYDZIAŁ ELEKTROTECHNIKI, AUTOMATYKI, INFORMATYKI I ELEKTRONIKI KATEDRA AUTOMATYKI. ROZPRAWA DOKTORSKA ˙ Krzysztof Raczka mgr inz. ˛. Technologia wieloagentowej integracji danych w rozproszonym systemie medycznym. Promotor: ˙ Wiesław Wajs Prof. dr hab. inz.. Kraków, 2008.

(2) Składam serdeczne podzi˛ekowania dla Pana Profesora Wiesława Wajsa za przyj˛ecie mnie do zespołu na˙ ukowego, umozliwienie mi prowadzenia bada´n oraz za cała˛ pomoc okazana˛ zarówno przed, jak i w trakcie trwania przewodu doktorskiego.. Dzi˛ekuj˛e Panu doktorowi Janowi Gyurcsakowi za wieloletnia˛ opiek˛e naukowa,˛ udzielanie cennych ˙ rad i wskazówek oraz wielokrotnie okazywana˛ zyczliwo´sc´..

(3) Spis tre´sci Wst˛ep. vii. 1. . . . . . . . . . . . . . . . . .. 1 1 3 3 4 4 6 6 7 8 10 11 12 17 22 22 24 26. . . . . . . . . .. 36 36 37 37 39 40 40 40 41 42. 2. Koncepcja systemu medycznego ˙ 1.1 Przyj˛ete załozenia . . . . . . . . . . . . 1.2 Komponenty logiczne . . . . . . . . . 1.2.1 Fizyczna platforma sprz˛etowa 1.2.2 Moduł obliczeniowy . . . . . . 1.2.3 Projekt . . . . . . . . . . . . . . 1.2.4 Centralna baza danych . . . . . 1.2.5 Lokalna baza danych . . . . . . 1.2.6 Interfejs danych . . . . . . . . . 1.3 Struktura systemu . . . . . . . . . . . . 1.4 Optymalizacja replikacji . . . . . . . . 1.5 Problem maksymalnego przepływu . 1.5.1 Przesył danych jednorodnych . ˙ 1.5.2 Dane o róznorodnej strukturze 1.6 Sekwencje decyzji . . . . . . . . . . . . 1.6.1 Model problemu . . . . . . . . 1.6.2 Metody optymalizacji . . . . . 1.6.3 Kryterium sumy kosztów . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . .. Zało˙zenia projektowe podsystemu replikacji 2.1 Charakterystyka przetwarzania . . . . . . ˙ 2.1.1 Ograniczone mozliwo´ sci . . . . . . 2.1.2 Zdecentralizowane sterowanie . . 2.1.3 Rozproszone dane . . . . . . . . . 2.1.4 Przetwarzanie asynchroniczne . . 2.2 Wła´sciwo´sci agentów . . . . . . . . . . . . 2.2.1 Reaktywno´sc´ . . . . . . . . . . . . 2.2.2 Autonomia . . . . . . . . . . . . . 2.2.3 Zorientowanie na cel . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . .. . . . . . . . . . . . . . . . . .. . . . . . . . . ..

(4) Spis tre´sci. 2.3. 2.4. 3. 4. 5. iv. 2.2.4 Czasowa ciagło´ ˛ sc´ . . . . . . 2.2.5 Komunikatywno´sc´ . . . . . 2.2.6 Mobilno´sc´ . . . . . . . . . . ´ Srodowisko uruchomieniowe . . . 2.3.1 Platformy uniwersalne . . . 2.3.2 Rozwiazania ˛ dedykowane . Metodyka realizacji . . . . . . . . . 2.4.1 Architektura M-agenta . . . 2.4.2 Specyfikacja trójpoziomowa. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. . . . . . . . . .. Realizacja wieloagentowej integracji danych ´ 3.1 Srodowisko pracy . . . . . . . . . . . . . . 3.2 Typy agentów . . . . . . . . . . . . . . . . 3.2.1 Agent zarzadzaj ˛ acy ˛ . . . . . . . . . 3.2.2 Agent replikujacy ˛ . . . . . . . . . . 3.2.3 Agent czytajacy ˛ . . . . . . . . . . . 3.2.4 Agent transformujacy ˛ . . . . . . . 3.2.5 Agent korygujacy ˛ . . . . . . . . . . 3.2.6 Agent sprawdzajacy ˛ . . . . . . . . 3.2.7 Agent zapisujacy ˛ . . . . . . . . . . 3.2.8 Agent monitorujacy ˛ . . . . . . . . 3.3 Moduł optymalizujacy ˛ . . . . . . . . . . . 3.3.1 Zakres sterowania . . . . . . . . . 3.3.2 Przedmiot optymalizacji . . . . . . 3.3.3 Prosty algorytm decyzyjny . . . . Testy oraz przykłady zastosowania 4.1 Agent replikujacy ˛ . . . . . . . . 4.2 Agent czytajacy ˛ . . . . . . . . . 4.3 Agent zapisujacy ˛ . . . . . . . . 4.4 Agent zarzadzaj ˛ acy ˛ . . . . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. . . . . . . . . . . . . . .. . . . .. . . . . . . . . .. 43 43 44 46 46 49 51 51 52. . . . . . . . . . . . . . .. 53 53 54 54 59 65 68 69 70 71 73 77 77 79 80. . . . .. 81 81 82 86 90. Podsumowanie. 99. Bibliografia. 101. Dodatek Parametry techniczne . Dodatkowe testy . . . Obliczenia w Mathcad Kod z´ ródłowy . . . . . Model danych . . . . .. 107 107 109 112 118 122. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . ..

(5) Spis rysunków 1. Problem uszeregowania projektów . . . . . . . . . . . . . . . . . .. ix. 1.1 1.2 1.3 1.4. Hierarchiczny model systemu . Warstwy integracji . . . . . . . Logiczna architektura systemu Szczegółowy model systemu .. . . . .. 2 3 9 10. 2.1 2.2. Topologia integracji danych . . . . . . . . . . . . . . . . . . . . . . Rozproszone dane . . . . . . . . . . . . . . . . . . . . . . . . . . . .. 38 39. 3.1 3.2 3.3 3.4 3.5 3.6 3.7. Model replikacji danych Agent czytajacy ˛ . . . . . Agent transformujacy ˛ . . Agent korygujacy ˛ . . . . Agent sprawdzajacy ˛ . . Agent zapisujacy ˛ . . . . Przepływ danych . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. 60 65 68 69 70 71 79. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11. Plik — Oracle (zmienny bufor odczytu) . . Plik — Oracle (przetwarzanie równoległe) . Oracle — plik (zmienny bufor odczytu) . . Oracle — plik (zmienny bufor zapisu) . . . Plik — plik (przetwarzanie równoległe) . . Plik — Oracle (zmienny bufor zapisu) . . . Plik — Oracle (przetwarzanie równoległe) . Przykładowa struktura sieciowa . . . . . . Przepływ dla projektu P1 . . . . . . . . . . . Przepływ dla projektu P2 . . . . . . . . . . . Przepływ dla projektów P1 , P2 . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. . . . . . . . . . . .. 83 84 85 86 87 88 89 90 91 92 94. . . . . . . .. . . . . . . .. . . . . . . .. . . . . . . .. . . . .. . . . . . . .. . . . .. . . . . . . .. . . . .. . . . . . . .. . . . .. . . . . . . .. . . . .. . . . . . . .. . . . .. . . . . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . .. . . . ..

(6) Spis tabel 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 1.11 1.12. Algorytm Forda – Fulkersona . . . . . . . . . . . Algorytm Edmondsa – Karpa . . . . . . . . . . . Algorytm push(v, w) . . . . . . . . . . . . . . . . Algorytm relabel(v) . . . . . . . . . . . . . . . . . Algorytm Goldberga – Tarjana . . . . . . . . . . Algorytm Karakostasa — przepływ niejawny . . Algorytm Karakostasa — przepływ jawny . . . . n | ai ti−1 + bi ; ai > 0; bi > 0; t0 ­ 0 | min(max(ti )) P n | ai Ci−1 ; ai > 0; C0 ­ 0 | min Ci . . . . . . . . P n | aCi−1 + bi ; a > 0; bi > 0; C0 ­ 0 | min Ci . . P n | ai Ci−1 + b; ai > 0; b > 0; C0 ­ 0 | min Ci . . P n | ai Ci−1 + bi ; ai > 0; bi > 0; C0 ­ 0 | min Ci .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. . . . . . . . . . . . .. 13 14 15 16 16 20 21 25 27 28 30 35. 3.1 3.2 3.3 3.4 3.5. Algorytm — wykonalno´sc´ projektu . Algorytm — konkurencja . . . . . . Algorytm — kooperacja, b = const . Algorytm — kooperacja . . . . . . . Zestawienie cech agentów . . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. . . . . .. 57 58 58 59 77. 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10. Parametry komputerów . . . . . . Wydajno´sc´ przetwarzania . . . . . Przykład konkurencji agentów . . Przykład ai ti−1 — dane . . . . . . . Przykład ati−1 + bi — dane . . . . . Przykład ai ti−1 + bi — dane, faza 1 Przykład ai ti−1 + bi — iteracja 1 . . Przykład ai ti−1 + bi — iteracja 2 . . Przykład ai ti−1 + bi — iteracja 3 . . Przykład ai ti−1 + bi — dane, faza 4. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. . . . . . . . . . .. 81 82 93 94 95 96 97 97 98 98. . . . . . . . . . ..

(7) Wst˛ep W klasie systemów rozproszonych, charakteryzujacych ˛ si˛e wykorzystaniem ˙ ˙ duzej ilo´sci danych oraz rezimem czasowym, wyst˛epuje problem przepustowo´sci sieci i problem okre´slenia kolejno´sci procesów zwiazanych ˛ z pozyskaniem, replikacja,˛ przesyłaniem i zagospodarowaniem danych przez poszcze˙ n´ niniejszej rozgólne procesy. System medyczny, b˛edacy ˛ przedmiotem rozwaza prawy, stanowi szczególny przypadek, w którym dane dynamiczne pochodza˛ ce z urzadze ˛ n´ pomiarowych oraz specjalistycznej aparatury medycznej sa˛ wykorzystywane przez moduły predykcyjne, dedykowane do wspierania decyzji lekarzy. Z domeny zastosowania wprost wynikaja˛ s´ cisłe uwarunkowania czasowe, wymagajace ˛ zapewnienia efektywno´sci rozwiazania. ˛ Centralnym zagadnieniem dysertacji jest autorski podsystem replikacji, zrealizowany w technologii wieloagentowej, który wspiera efektywna˛ integracj˛e danych zarówno w aspekcie replikacji lokalnej, jak i sieciowej integracji danych. ˙ si˛e automatyzacj˛e doboru wydajnego zaW pierwszym zagadnieniu rozwaza kresu pracy (parametrów buforujacych ˛ oraz stopnia zrównoleglenia przetwa˙ automarzania) oraz lokalizacji agentów (metody transportu danych), a takze tyzacj˛e monitorowania. Drugie z nich stanowi rozszerzenie i uogólnienie tematyki poszukiwania maksymalnego przepływu w sieci komputerowej o mechanizmy wspierajace ˛ priorytety poszczególnych procesów. ˙ Wyrózniamy ogólnie dwa modele sieciowej integracji danych. W pierwszym modelu optymalizowany jest czas, a w drugim koszt wykonywania operacji zwiazanej ˛ z danym zadaniem. Rozpatrujac ˛ pierwszy model przyjmujemy, ˙ znany jest priorytet dla operacji, która˛ nazwiemy „budowa modelu mateze matycznego zadania oznaczonego indeksem 1” oraz znany jest priorytet dla operacji, która˛ nazwiemy „budowa modelu matematycznego zadania oznaczonego indeksem 2”. Czas trwania operacji pierwszej oznaczymy jako p˙1 = a1 t, a czas trwania operacji drugiej oznaczymy jako p˙2 = a2 t. ˙ czas trwania operacji oznaczonej jako p˙1 jest powi˛ekszony Przyjmijmy, ze ˙ o czas trwania operacji przesyłania danych uzalezniony od wyniku obliczania przepustowo´sci sieci metoda˛ Forda – Fulkersona odpowiednio: b1 oraz b2 . Przyj˙ całkowity czas trwania pierwszej operacji dany jest modelem mijmy, ze a1 t + b 1 ,. (1).

(8) Wst˛ep. viii. a drugiej (2). a2 t + b 2 .. ˙ przyjmiemy, ze ˙ pierwsza operacja rozpocznie si˛e w chwili t0 , to termin Jezeli jej zakonczenia ´ jest okre´slony przez równanie (3). t0 + a1 t0 + b1 = (a1 + 1)t0 + b1 = t1 ,. a zakonczenie ´ drugiej operacji, gdy jest ona wykonywana jako pierwsza w kolejno´sci przez równanie 0. (4). t0 + a2 t0 + b2 = (a2 + 1)t0 + b2 = t1 .. ˙ teraz po pierwszej operacji, która zostanie zakonczona Jezeli ´ w terminie t1 zostanie wykonana operacja druga, to jej termin zakonczenia ´ okre´slimy równaniem t1 + a2 t1 + b2 = (a2 + 1)t1 + b2 = (a2 + 1)((a1 + 1)t0 + b1 ) + b2 = t2 .. (5). Gdy jednak jako pierwsza zostanie wykonana druga operacja, a po niej w kolejno´sci pierwsza operacja to termin zakonczenia ´ okre´slimy jako 0. 0. 0. 0. t1 + a1 t1 + b1 = (a1 + 1)t1 + b1 = (a1 + 1)((a2 + 1)t0 + b2 ) + b1 = t2 .. (6). Powstaje zatem problem okre´slenia sekwencji operacji, gdy dane sa:˛ t0 , a1 , b1 , a2 , b2 w taki sposób, aby termin zakonczenia ´ obu operacji był najmniejszy. ˙ Podobnie mozna sformułowa´c zagadnienie dla kosztowej funkcji celu. ˙ koszt poczatkowy Przyjmijmy, ze ˛ wykonywania sekwencji operacji dany jest liczba˛ C0 . Współczynniki a1 oraz a2 okre´slaja˛ pr˛edko´sc´ narastania kosztu, a współczynniki b1 oraz b2 sa˛ kosztami okre´slonymi metoda˛ Forda i Fulkerso˙ na zaleznymi od obliczonych przepustowo´sci dla sieci przesyłajacych ˛ dane dla odpowiednio realizowanych zadan. ´ W podobny sposób jak to pokazano powy˙ zaleznie ˙ zej, od przyj˛etej sekwencji realizacji otrzymamy odpowiednio warto´sci 0 kosztów okre´slone przez C2 oraz przez C2 . W przyj˛etym modelu znaczenie ma zarówno przepustowo´sc´ sieci do przesyłania danych dla wybranego zadania, jak tez˙ priorytet przypisany do okres´ lonego zadania. Pr˛edko´sc´ sieci Internet jest zadana i realizacja projektów nie ma na nia˛ wpływu. Powoduje to redukcj˛e grafu sieci komputerowej do cz˛es´ ci dostarczajacej ˛ oraz pobierajacej ˛ dane z sieci Internet. Priorytety wynikaja˛ z ar˙ bitralnego okre´slenia wazno´sci realizacji zadania, które jest powiazane ˛ z rozpa˙ trywanym przypadkiem chorobowym. Priorytet jest ustalany za kazdym razem ˙ sci i terminowo´sci realizacji konkretnego zadania. Pow odniesieniu do wazno´ dej´scie takie jest niezb˛edne w domenie medycznej, gdzie dostarczenie danych ˙ po wymaganym czasie jest bezuzyteczne. Lepszym rozwiazaniem ˛ jest okre´sle˙ nie wykonalno´sci zadania oraz odrzucenie projektów niemozliwych do zrealizowania jeszcze przed faza˛ integracji danych. Strategia ta zapewnia wcze´sniej˙ sza˛ informacj˛e zwrotna˛ do uzytkowników systemu oraz wyklucza replikacj˛e ˙ danych cz˛es´ ciowych, które pozostałyby bezuzyteczne..

(9) Wst˛ep. ix. Dwa, przykładowe moduły obliczeniowe w systemie medycznym przeznaczone sa˛ do predykcji wystapienia ˛ dysplazji oskrzelowo–płucnej u noworodków oraz przewidywania parametrów gazometrii krwi. Stosowane modele statystyczne wymagaja˛ danych z pulsoksymetrów oraz respiratorów. Ilo´sc´ pozy˙ od rodzaju aparatury pomiarowej. Wykorzystywane skiwanych danych zalezy w systemie pulsoksymetry typu Nellcor NPB–295 transmituja˛ dane co 2 sekundy, respiratory typu Bear CUB750 co 10 ms. Odpowiada to przyrostowi ponad ˙ 260 milionów rekordów miesi˛ecznie dla kazdego pacjenta. Analiza statystycz˙ ilo´sci przypadków chorobowych. Preferowana wymaga rozpatrywania duzej na ilo´sc´ pacjentów (danych) uwzgl˛ednianych podczas budowy modelu jest nie mniejsza od 500. Ilo´sc´ ta zapewnia poprawna˛ analiz˛e, nawet po odfiltrowaniu ˙ przypadków niezgodnych z załozonym modelem. Źródła danych 1. 3. 2. u = 0.12. 0.15. 0.18 Przekrój podaży. Internet t0=0.01 FF=0.43 FF1=0.21 FF2=0.22. Przekrój popytu 0.21. a1=0.05 b1=0.4884. 0.22. 1. 2. a2=0.07 b2=0.5116. Odbiorcy danych. Rysunek 1: Przykład problemu uszeregowania projektów W przykładzie przedstawionym na diagramie 1 istnieja˛ trzy z´ ródłowe bazy danych oraz dwa projekty b˛edace ˛ odbiorcami danych. Wydajno´sc´ poszczególnych kraw˛edzi u wpływa na przepustowo´sc´ grafu. Maksymalny przepływ F F wyliczony jest na podstawie twierdzenia Forda – Fulkersona. Przyjmijmy zadane warto´sci czasu poczatkowego ˛ t0 oraz priorytety projektów a1 oraz a2 , wy˙ sci od maksymalnego z˙ adanego znaczone w zalezno´ ˛ czasu dostarczenia danych. Współczynniki b1 , b2 wyliczone sa˛ na podstawie stosunku warto´sci przepływu maksymalnego dla projektu do całkowitej przepustowo´sci grafu..

(10) Wst˛ep. x. ˙ Kolejno´sc´ realizacji zadan´ uzalezniona jest od trybu pracy systemu. W przypadku konkurencji optymalne uszeregowanie odpowiada uporzadkowaniu ˛ 0 a2 /b2 = 0.1368 > a1 /b1 = 0.1024 (t2 = 1.0454, t2 = 1.0368). Oznacza to, iz˙ projekt numer dwa realizowany b˛edzie przed projektem numer jeden. Optymalne upo˙ od relacji mi˛edzy parametrami a i b. rzadkowanie ˛ dla strategii kooperacji zalezy W najprostszym przypadku, kiedy wydajno´sc´ sieci nie jest ograniczeniem pracy ˙ zosta´c pomini˛ety, wówczas optymalne uszeregowasystemu parametr b moze 0 ˙ nie dane jest zalezno´scia˛ a1 = 0.05 < a2 = 0.07 (t2 = 0.0112, t2 = 0.0112). W sytuacji, kiedy oba projekty miałyby jednakowy priorytet, przykładowo a = 0.05, ˙ scia˛ b1 = 0.4884 < b2 = 0.5116 optymalne uszeregowanie dane byłoby zalezno´ 0 (t2 = 1.0354, t2 = 1.0366). Zakładajac, ˛ iz˙ przepustowo´sc´ sieci jest identyczna ˙ dla kazdego projektu, współczynnik b przyjmuje stała˛ warto´sc´ , przykładowo 0.5. W sytuacji takiej w przykładzie z dwoma projektami uporzadkowanie ˛ za0 ˙ od spełnienia relacji t2 = (a2 + 1)((a1 + 1)t0 + b) + b = 1.0462 > t2 = lezy (a1 + 1)((a2 + 1)t0 + b) + b = 1.0362 co oznacza, iz˙ sekwencja optymalna rozpoczyna si˛e od drugiego projektu. W najbardziej ogólnym przypadku, kiedy ˙ (jak na rysunku 1) okre´sli´c mozna ˙ sekwencj˛e warto´sci parametrów a, b sa˛ rózne ˙ a˛ do optymalnej. Rozwazaj ˙ ac zblizon ˛ wyłacznie ˛ dwa projekty uszeregowanie ˙ od wyniku nierówno´sci t0 (a1 + 1) + b1 + ((a2 + 1)b1 + b2 ) = 1.5331 < zalezy t0 (a2 + 1) + b2 + ((a1 + 1)b2 + b1 ) = 1.5479, co oznacza realizacj˛e projektu pierwszego przed drugim. Zaprezentowany model wraz z przykładem obrazuje istot˛e problemu sieciowej integracji danych. Unikalne zapewnienie wsparcia dla priorytetów poszcze˙ gólnych procesów zapewniajace ˛ efektywno´sc´ replikacji jest uwazane przez au˙ tora za najwazniejszy element rozprawy. Rozwiazanie ˛ stanowi rozszerzenie algorytmów trasowania stosowanych w sieci Internet, gdzie nast˛epuje optymalizacja drogi przesyłu bez rozpatrywania priorytetów realizacji. Podej´scie proponowane w zagadnieniu replikacji lokalnej jest równiez˙ nowatorskie. Obszerna lista projektów integracyjnych na s´ wiecie [81] nie zawiera referencji do projektów stosujacych ˛ podobne techniki optymalizacyjne. Zaprojektowany oraz zrealizowany przez autora podsystem replikacji, wy˙ korzystujacy ˛ przedstawione pomysły został uzyty do wykazania prawdziwo´sci tezy niniejszej rozprawy, która brzmi nast˛epujaco: ˛ Moz˙ liwe jest zastosowanie technologii wieloagentowej w celu zapewnienia efektywno´sci replikacji w sieciowym s´rodowisku rozproszonym, charakteryzujacym ˛ si˛e uwa˙ runkowaniami czasowymi oraz duza˛ ilo´scia˛ wykorzystywanych danych. Z tezy wynikaja˛ nast˛epujace ˛ zadania badawcze i realizacyjne, wpływajace ˛ bezpo´srednio na efektywno´sc´ replikacji danych: • Replikacja lokalna – automatyczne wyznaczanie warto´sci parametrów zapewniajacych ˛ wydajna˛ ekstrakcj˛e oraz ładowanie danych,.

(11) Wst˛ep. xi – dynamiczna alokacja zasobów poprzez automatyczny dobór ilo´sci agentów dedykowanych do realizacji konkretnego etapu integracji danych, – wczesne ostrzeganie o sytuacjach wyjatkowych ˛ oraz detekcja sytuacji krytycznych, determinujacych ˛ decyzj˛e o celowo´sci rozpocz˛ecia lub kontynuacji przetwarzania, – optymalizacja lokalizacji agentów wykonawczych oraz zwiazanej ˛ z tym metody transportu danych.. • Sieciowa integracja danych – minimalizacja maksymalnego kosztu (czasu) przesyłu danych uwzgl˛edniajac ˛ priorytety poszczególnych procesów, – minimalizacja całkowitego kosztu (czasu) przesyłu danych uwzgl˛edniajac ˛ priorytety poszczególnych procesów. Weryfikacja tezy oraz konkretne badania praktyczne przeprowadzone sa˛ w oparciu o rozproszony system zbierania oraz predykcji danych dotyczacych ˛ opisu parametrów, okre´slajacych ˛ stan zdrowia noworodków hospitalizowanych na Oddziale Intensywnej Terapii Noworodka Polsko – Amerykanskiego ´ Instytutu Pediatrii Collegium Medicum Uniwersytetu Jagiellonskiego. ´ System medyczny zrealizowany w ramach grantu badawczego o numerze MNiSW: 3 T11E 042 27 wykorzystuje własna˛ platform˛e wieloagentowa˛ w celu separacji przepływów danych od warstwy logicznej [54][56]. Autor jest równiez˙ twórca˛ architektury systemu oraz pełnego modelu centralnej bazy danych..

(12) Rozdział 1 Koncepcja systemu medycznego ˙ n´ jest rozproszony system medyczny, dedykowany do Przedmiotem rozwaza wspierania decyzji lekarzy. System generuje sugestie oraz wskazówki odno´snie stosownych metod leczenia. W celu realizacji zadania niezb˛edne jest zbieranie, replikacja oraz predykcja danych, dotyczacych ˛ opisu parametrów okre´slajacych ˛ stan zdrowia pacjentów.. 1.1. Przyj˛ete załoz˙ enia. System obejmuje sie´c autonomicznych szpitali. O´srodki partycypujace ˛ w projekcie podzielone sa˛ na szereg oddziałów, dedykowanych okre´slonym grupom schorzen. ´ Niektóre, wysoko specjalizowane oddziały znajduja˛ si˛e wyłacznie ˛ w obr˛ebie pojedynczych szpitali, inne, o wi˛ekszym zapotrzebowaniu na usługi, ˙ w kazdym ˙ spotka´c mozna szpitalu. ˙ ˙ Kazdy oddział o okre´slonym profilu s´ wiadczy podobne usługi niezaleznie ˙ Integracja działalno´sci tych jednostek przyod szpitala, do którego przynalezy. nosi korzy´sci w postaci ułatwienia wymiany wiedzy i do´swiadczenia pomi˛e˙ rozszerzenia zakresu danych reprezentujacych dzy lekarzami, a takze ˛ przypadki chorobowe, wyniki badan´ oraz inne informacje ułatwiajace ˛ diagnozowanie i s´ ledzenie post˛epów leczenia. W ramach poszczególnych oddziałów funkcjonuja˛ dedykowane systemy medyczne, typowo posiadajace ˛ własne bazy danych składujace ˛ informacj˛e lokalna.˛ Bazy te zasilane moga˛ by´c poprzez dane wprowadzane r˛ecznie, jak równiez˙ automatycznie z poszczególnych urzadze ˛ n´ medycznych. Niektóre z urza˛ ˙ ˙ dzen´ umozliwiaja˛ wewn˛etrzne buforowanie danych, a takze zdalny dost˛ep do ˙ by´c traktowana jak niezalezne ˙ podsystemy funkcjonich. Aparatura taka moze nalne. Ze wzgl˛edu na wymagana˛ duz˙ a˛ moc obliczeniowa,˛ poszczególne moduły ˙ predykcyjne realizowane sa˛ na zbiorze serwerów centralanalityczne, a takze ˙ ˙ obliczeniowe. nych. Wyróznia si˛e dedykowane serwery bazodanowe, a takze Cało´sc´ hierarchicznej struktury systemu zaprezentowano na diagramie 1.1..

(13) ˙ 1.1. Przyj˛ete załozenia Moduł Obliczeniowy Numer 1. 2 Moduł Obliczeniowy Numer 2. Moduł Obliczeniowy Numer 3. Moduł Obliczeniowy Numer M. Centralna Baza Danych. Szpital Numer 1. Oddział Numer 11. Lokalna Baza Danych Numer 111. Oddział Numer 21. Lokalna Baza Danych Numer 211. Urządzenie Medyczne 1 Numer 12,1. Szpital Numer S. Lokalna Baza Danych Numer 121. Urządzenie Medyczne 1 Numer 22,1. Lokalna Baza Danych Numer 221. Oddział Numer Os. Lokalna Baza Danych Numer 321. Urządzenie Medyczne 1 Numer 13,2. Lokalna Baza Danych Numer 1os. Urządzenie Medyczne 1 Numer 23,2. Lokalna Baza Danych Numer 2os. Urządzenie Medyczne s Numer 12,o. Lokalna Baza Danych Numer 3os. Urządzenie Medyczne s Numer 22,o. Lokalna Baza Danych Numer Los. Urządzenie Medyczne Numer UMsl,o. Rysunek 1.1: Hierarchiczny model systemu Moduły obliczeniowe wykorzystuja˛ dane poprzez interfejsy do centralnej bazy danych. Zgodnie z klasyfikacja˛ zaproponowana˛ przez Dittricha i Jonsche˙ ˙ ra [18] integracj˛e przeprowadzi´c mozna w róznych warstwach systemów 1.2. Zastosowanie strategii polegajacej ˛ na stworzeniu wspólnego widoku logiczne˙ go stwarza mozliwo´ sc´ dost˛epu do danych pozostajacych ˛ w lokalizacjach macierzystych. Charakterystyka wykorzystania danych przez moduły obliczeniowe ˙ wymagany czas dost˛epu wymuszaja˛ integracj˛e systemu medycznego, a takze poprzez fizyczna˛ replikacj˛e do centralnej bazy danych. Skala problemu — ilo´sc´ danych składowanych w lokalnych bazach danych, ˙ generowanych w czasie rzeczywistym poprzez aparatur˛e medyczna,˛ a takze ˙ uniemozliwia pełna˛ synchronizacj˛e informacji. Niezb˛edna jest replikacja wyłacznie ˛ danych istotnych z punktu widzenia potrzeb okre´slonego modułu obliczeniowego. ˙ Zakłada si˛e realizacj˛e kazdej analizy przypadku chorobowego w postaci oddzielnego projektu. Strategia taka dopuszcza równoległe prowadzenie wielu ˙ niezaleznych badan. ´ W rezultacie konieczne jest tworzenie baz danych na z˙ a˛ ˙ z nich posiada prywatna˛ kopi˛e niezb˛ednych danych. danie. Kazda Przyj˛ete podej´scie nakłada znaczace ˛ wymagania wydajno´sciowe na realizowany system. Konieczne jest wprowadzenie mechanizmów priorytetowego ˙ ˙ automatyzacja rozwiazywania ˛ potrzeb w s´ cisłym rezimie czasowym, a takze zarzadzania ˛ projektami. Do realizacji systemu wybrano technologi˛e wieloagentowa.˛ Implementacj˛e przeprowadzono w j˛ezyku Java..

(14) 1.2. Komponenty logiczne. Użytkownicy. Interfejs Użytkownika - GUI Aplikacja. Aplikacja. Aplikacja. Warstwa Pośrednicząca - Middleware. Zarządzanie Danymi. 3. Użytkownicy. Integracja Ręczna Wspólne GUI Integracja Aplikacji Integracja Middleware. Dostęp do Danych. Wspólny Widok. Składowanie Danych. Wspólne Dane. Dane Aplikacji. Interfejs Użytkownika - GUI Aplikacja. Aplikacja. Aplikacja. Warstwa Pośrednicząca - Middleware. Zarządzanie Danymi. Dostęp do Danych Składowanie Danych. Dane Aplikacji. Rysunek 1.2: Warstwy integracji (Dittrich i Jonscher). 1.2. Komponenty logiczne. Podstawowe komponenty logiczne rozproszonego systemu medycznego: mo˙ bazy lokalne wdrozone ˙ duły obliczeniowe, centralna baza danych, a takze sa˛ na ˙ fizycznych platformach sprz˛etowych. Projekty nalez˙ a˛ do poszczególnych uzyt˙ kowników. Kazdy projekt wykorzystuje pojedyncza˛ instancj˛e modułu obliczeniowego oraz prywatna˛ kopi˛e centralnej bazy danych. Niezb˛edne informacje replikowane sa˛ z baz lokalnych poprzez interfejsy danych.. 1.2.1. Fizyczna platforma sprz˛etowa. Okre´slenie fizyczna platforma sprz˛etowa obejmuje szeroka˛ gam˛e s´ rodowisk wykonawczych. Przykładami moga˛ by´c: pojedynczy serwer, klaster obliczeniowy, komputer PC lub specjalistyczny mikroprocesor stosowany w urzadzeniu ˛ pomiarowym. Platformy zbudowane sa˛ stosujac ˛ rozmaite typy jednostek ob˙ liczeniowych. Posiadaja˛ zróznicowan a˛ ilo´sc´ pami˛eci operacyjnej. Moga,˛ ale nie musza˛ zapewnia´c permanentne składowanie danych. Odmienne przeznaczenie ˙ powoduje zasadnicze róznice w wydajno´sci poszczególnych platform. Fizyczna platforma sprz˛etowa oznaczana b˛edzie F P Sf , natomiast łaczna ˛ ilo´sc´ platform w systemie F . ˙ kazdy ˙ Przyjmuje si˛e, ze moduł obliczeniowy wykorzystuje dedykowana˛ ˙ centralna baza danych wdrozona ˙ ˙ platform˛e sprz˛etowa,˛ oraz ze jest niezaleznie. Lokalne bazy danych, szczególnie w obr˛ebie oddziałów, moga˛ współdzieli´c wykorzystywane platformy fizyczne. Fakt ten wpływa na wydajno´sc´ integracji danych pomi˛edzy tak skonfigurowanymi z´ ródłami..

(15) 1.2. Komponenty logiczne. 1.2.2. 4. Moduł obliczeniowy. Zasadniczym celem systemu jest predykcja oraz wspieranie decyzji lekarzy. Niezb˛edne przetwarzanie odbywa si˛e w dedykowanych modułach obliczenio˙ wych. Oznaczmy kazdy z nich poprzez M OBm oraz łaczn ˛ a˛ ilo´sc´ modułów jako M. W poczatkowej ˛ fazie realizacji systemu M = 3. Dost˛epne sa˛ nast˛epujace ˛ moduły: M OB1 — predykcja warto´sci parametrów gazometrii krwi, M OB2 — predykcja dysplazji oskrzelowo – płucnej, M OB3 — predykcja wystapienia ˛ retinopatii wcze´sniaków. ˙ n´ zwiazanych Nie poczyniono załoze ˛ z ilo´scia˛ modułów obliczeniowych. ˙ Dodanie nowego typu modułu nie wymaga zmian strukturalnych. Rozwazany model pozostaje niezmienny. ˙ Kazdy dost˛epny moduł obliczeniowy stanowi pewien szablon realizacji obliczen. ´ Faktyczne wykorzystanie opiera si˛e na pojedynczej instancji modułu ob˙ instancja pracuje w sposób w pełni niezaliczeniowego. Przyjmuje si˛e, iz˙ kazda ˙ ˙ lezny, na potrzeby okre´slonego projektu uzytkownika. Poszczególne instancje ˙ nie maja˛ „´swiadomo´sci” istnienia innych instancji oraz wdrozone sa˛ na tej samej 1 platformie sprz˛etowej co szablon instancji. Przyj˛eto oznaczenie i-tej instancji modułu obliczeniowego M OBm poprzez i M OBm oraz łacznej ˛ ilo´sci instancji wszystkich modułów I. Dodatkowo ilo´sc´ instancji modułu M OBm oznaczana jest Im . I =. M X. Im. (1.1). m=1. 1.2.3. Projekt. ˙ Przetwarzanie w systemie odbywa si˛e na potrzeby uzytkowników (lekarzy) ˙ oznaczanych U ZTu . Kazdy z nich w danym momencie czasu prowadzi´c mo˙ kilka projektów. W danym momencie czasu uzytkownik ˙ ˙ ze jest aktywny, jezeli na jego potrzeby realizowany jest przynajmniej jeden projekt. Łaczna ˛ ilo´sc´ ak˙ tywnych uzytkowników systemu oznaczana jest U . ˙ Wybierajac ˛ jeden z dost˛epnych modułów obliczeniowych uzytkownik sys˙ on by´c postrzegany jako: j-ty projekt temu zakłada specyficzny projekt. Moze ˙ uzytkownika U ZTu , oznaczany P RJuj , i-ty projekt na modelu obliczeniowym i M OBm , oznaczany P RJm , lub ogólnie p-ty projekt P RJp . ˙ Łaczna ˛ liczba aktywnych projektów uzytkownika U ZTu oznaczana jest Pu , łaczna ˛ liczba projektów na module M OBm to Pm oraz sumarycznie łaczna ˛ ilo´sc´ 1. Struktura ta przypomina relacj˛e pomi˛edzy systemem zarzadzania ˛ baza˛ danych, a baza˛ danych..

(16) 1.2. Komponenty logiczne. 5. projektów w systemie P =. U X u=1. M X. Pu =. Pm .. (1.2). m=1. Dodatkowo I =P. Im = Pm. Iu = Pu .. (1.3). Poszczególne projekty dotyczace ˛ przypadków chorobowych musza˛ by´c ob˙ ˙ sługiwane z róznymi priorytetami zaleznymi od krytyczno´sci pozyskania od˙ powiedzi systemu w okre´slonym przedziale czasowym. Załozenie to bezpo˙ s´ rednio zwiazane ˛ jest z domena˛ medyczna,˛ w której sytuacje ratowania zycia musza˛ by´c traktowane odmiennie, niz˙ badania statystycznego rozwoju choroby w skali kilku dni lub tygodni. Krytyczno´sc´ czasowego pozyskania danych okre´sla priorytet danego pro˙ od czajektu, który znany jest w momencie poczatkowym. ˛ Priorytet ten zalezy su niezb˛ednego do przeprowadzenia obliczen´ stosujac ˛ zadany moduł obliczeniowy oraz skali czasu, do której odnosza˛ si˛e wyniki obliczen. ´ Wygenerowanie ˙ wyników predykcji po czasie, którego ona dotyczy nie wnosi zadnej warto´sci ˙ dodanej, powoduje jedynie niepotrzebne obcia˛zenie systemu. ˙ ˙ Mozliwa jest sytuacja, podczas której w systemie nie jest realizowany za˙ den projekt uzytkownika. Stan ten nie oznacza zupełnej bezczynno´sci. Nieza˙ leznie od projektów prowadzone sa˛ pewne automatyczne działania, majace ˛ na celu utrzymanie aktualnego stanu wiedzy odno´snie podłaczonych ˛ lokalnych ˙ inne działania biez˙ ace. baz danych, a takze ˛ ˙ ˙ Cykl zyciowy poszczególnych projektów jest cz˛es´ cia˛ cyklu zyciowego całego systemu. Po okresie inicjalizacji system pozostaje w stanie gotowo´sci do ˙ rozpocz˛ecia projektów. Załozenie nowego projektu skutkuje w nast˛epujacych ˛ akcjach: • utworzenia instancji wybranego modułu obliczeniowego, • utworzenia prywatnej kopii centralnej bazy danych, • inicjalizacji kopii bazy danych stosownymi danymi referencyjnymi oraz metadanymi, • replikacji niezb˛ednych danych zasadniczych dotyczacych ˛ konkretnego przypadku chorobowego z lokalnych baz danych. Na etapie tym replikowane sa˛ wyłacznie ˛ statyczne dane konkretnego pacjenta, które sa˛ konieczne do inicjalizacji przetwarzania. Po okresie inicjalizacji projekt wkracza w faz˛e zasadnicza,˛ w której na z˙ ada˛ nie modułu predykcji dostarczane sa˛ wymagane dane, a nast˛epnie przeprowa˙ dzane sa˛ stosowne obliczenia. Proces dostarczania danych oraz kalkulacji moze.

(17) 1.2. Komponenty logiczne. 6. by´c prowadzony w sposób iteratywny, az˙ do momentu uzyskania satysfakcjo˙ nujacych ˛ rezultatów. Uzytkownik systemu decyduje o konieczno´sci kontynuacji stworzonego przez siebie projektu. Zakonczenie ´ projektu skutkuje w usuni˛eciu prywatnej kopi bazy danych, ˙ instancji modułu obliczeniowego. Nast˛epuje zwolnienie zasobów do a takze ˙ wiele projektów jednocze´snie, przy czym systemu. System realizowa´c moze ˙ ˙ scia.˛ W sytuacji, kiedy zaden ˙ kazdy z nich cechuje si˛e pełna˛ niezalezno´ projekt ˙ nie jest aktywny istnieje mozliwo´ sc´ dezaktywacji oraz wyłaczenia ˛ całego systemu.. 1.2.4. Centralna baza danych. Centralna baza danych przechowuje wszystkie niezb˛edne informacje potrzeb˙ ˙ sci pone do realizacji poszczególnych projektów. Załozenie pełnej niezalezno´ szczególnych projektów pociaga ˛ za soba˛ konieczno´sc´ tworzenia prywatnej ko˙ pii bazy danych dla kazdego aktywnego projektu. Zakonczenie ´ realizacji projektu powoduje usuni˛ecie odno´snej kopii bazy danych. ˙ Konieczne jest wyra´zne rozróznienie pomi˛edzy systemem zarzadzania ˛ bazami danych, szablonem (pustym modelem) centralnej bazy danych, a konkretnymi kopiami (instancjami) baz danych na potrzeby projektu. SZBD instalowa˙ ny jest raz, podczas wdrozenia projektu. Nast˛epnie jest on nieaktywny do czasu stworzenia pierwszej roboczej instancji bazy danych. Szablon centralnej bazy ˙ by´c w postaci pustej bazy danych lub w postaci danych zrealizowany moze ˙ n´ istotna jest jedynie aktywna kopia centralnej skryptów. Dla dalszych rozwaza bazy danych. ˙ Instancja centralnej bazy danych, podobnie jak projekt postrzegana moze ˙ by´c nast˛epujaco: ˛ j-ta kopia centralnej bazy danych uzytkownika U ZTu , oznaczana CBDuj , i-ta instancja centralnej bazy danych dla modelu obliczeniowego i M OBm , oznaczana CBDm , lub ogólnie p-ta centralna baza danych CBDp . ˙ Łaczna ˛ liczba CBD uzytkownika U ZTu oznaczana jest Cu , łaczna ˛ liczba CBD dla modułu M OBm to Cm oraz sumarycznie łaczna ˛ ilo´sc´ CBD w systemie C =. U X u=1. Cu =. M X. Cm .. (1.4). m=1. Dodatkowo I =P =C. 1.2.5. Im = Pm = Cm. Iu = Pu = Cu .. (1.5). Lokalna baza danych. ˙ Zakłada si˛e wdrozenie rozproszonego systemu medycznego do S szpitali, ˙ ˙ z których kazdy posiada Os oddziałów. Na kazdym z nich pracuja˛ lokalne bazy danych, które stanowia˛ zasadnicze z´ ródło danych systemu..

(18) 1.2. Komponenty logiczne. 7. Oznaczmy lokalna˛ baz˛e danych jako LBDl , natomiast łaczn ˛ a˛ ilo´sc´ baz loo kalnych w szpitalu symbolem Ls , na oddziale poprzez Ls , wykorzystywanych przez projekt P RJp jako Lp oraz w systemie L. ˙ Zapisa´c mozna Ls =. O X. Los. (1.6). o=1. L =. S X s=1. Ls =. S X O X. Los. (1.7). s=1 o=1. ˙ Poszczególne bazy danych pochodzi´c moga˛ od róznych producentów oraz stworzone moga˛ by´c w oparciu o wielorakie wersje oprogramowania. Cechy te ˙ ˙ determinuja˛ mozliwo´ sc´ stosowania okre´slonego dialektu j˛ezyka SQL, a takze ˙ dost˛epno´sc´ funkcji niestandardowych. Dodatkowo, kazda baza danych posia˙ da jeden lub wi˛ecej interfejs, okre´slajacy ˛ mozliwy sposób dost˛epu. Przykładem ˙ by´c obsługa standardu JDBC lub ODBC, a takze ˙ prywatny interfejs szeremoze gowy lub inny. ˙ n´ nie jest istotny rodzaj lokalnej Z punktu widzenia prowadzonych rozwaza ˙ bazy danych. Zakłada si˛e, iz˙ istnieje mozliwo´ sc´ odczytu danych, stosujac ˛ jeden ze wspieranych przez system interfejsów dost˛epowych.. 1.2.6. Interfejs danych. Bazy danych przechowuja˛ dane w tabelach, reprezentujacych ˛ poszczególne koncepty logiczne systemu. W relacyjnych bazach danych tabele połaczone ˛ sa˛ ˙ sci logiczne pomi˛edzy nimi. Lokalne poprzez relacje, odzwierciedlajace ˛ zalezno´ bazy danych, jak i baza centralna składuja˛ dane w wielu tabelach, z których tylko niektóre sa˛ istotne dla poszczególnych projektów. Przesył cało´sci danych z baz lokalnych do centralnej byłby nadmiarowy. t e w i-tej kopii centralnej bazy danych Oznaczmy przez T ABCBD i t-ta˛ tabel˛ m obsługujacej ˛ moduł obliczeniowy M OBm . Niech Tmi oznacza ilo´sc´ tabel wykoi rzystywanych przez moduł oraz Tmax ilo´sc´ wszystkich tabel w pojedynczej instancji centralnej bazy danych. Zachodzi i Tmi ¬ Tmax .. (1.8). Łaczna ˛ ilo´sc´ tabel w systemie nie jest istotna. Praktyczne natomiast jest okre´sle˙ nie łacznej ˛ ilo´sci aktywnie uzywanych tabel centralnej bazy danych. T =. M X I X. Tmi. (1.9). m=1 i=1. Integracja danych w systemie odbywa si˛e pomi˛edzy lokalnymi bazami danych, a baza˛ centralna˛ poprzez interfejsy danych. Interfejs jest jednostka˛ atomowa˛ okre´slajac ˛ a˛ poz˙ adany ˛ przepływ danych. Opisuje on sposób odczytu danych z bazy z´ ródłowej oraz zapisu do tabeli docelowej centralnej bazy danych..

(19) 1.3. Struktura systemu. 8. ˙ zawiera´c definicj˛e transformacji, korekty, a takze ˙ walidacji Opcjonalnie moze danych. Interfejs danych realizuje rol˛e filtra, dzi˛eki któremu czytane sa˛ wyłacz˛ nie niezb˛edne dane z wymaganej grupy tabel z´ ródłowych. Zapis danych poprzez pojedynczy interfejs nast˛epuje zawsze do jednej ta˙ ˙ by´c pobeli centralnej bazy danych. Kazda tabela docelowa zapisywana moze przez wi˛ecej niz˙ jeden interfejs. Strategia ta jest konieczna w celu replikacji iden˙ tycznych logicznie danych pochodzacych ˛ z róznych baz lokalnych. Odczyt da˙ nast˛epowa´c nie tylko z pojedynczej tabenych do pojedynczego interfejsu moze ˙ ˙ by´c stosujac li lokalnej bazy danych, ale równiez realizowany moze ˛ zapytanie SQL łacz ˛ ace ˛ dowolna˛ ilo´sc´ tabel. Sytuacja ta nie zmienia omawianego konceptu. Oznaczmy przez IN TTnAB t n-ty interfejs tabeli lub w uproszczeniu i CBDm. t . W uproszeniu zapisy˛ ilo´sc´ interfejsów na tabeli wynosi Nm,i IN Ttn . Łaczna wana jest poprzez Nt , a całkowita ilo´sc´ interfejsów w systemie oznaczana jest ˙ sci poprzez N . Zachodza˛ zalezno´ t Nm,i ­ Tmi. N =. T M X I X X. (1.10) t Nm,i .. (1.11). m=1 i=1 t=1. 1.3. Struktura systemu. W rozproszonym systemie medycznym dostawcami sa˛ lokalne bazy danych. Odbiorcami sa˛ poszczególne instancje bazy centralnej wykorzystywane przez ˙ projekty na potrzeby uzytkowników. Pomi˛edzy dostawcami, a odbiorcami istnieja˛ drogi przesyłu danych, które maja˛ okre´slona˛ przepustowo´sc´ . Przykładowa struktura systemu zilustrowana jest na diagramie 1.3. W przedstawionej perspektywie model systemu składa si˛e z P dwupoziomowych struktur drzewiastych. W˛ezłami głównymi sa˛ poszczególne kopie centralnej bazy danych, do których z jednej strony bezpo´srednio połaczone ˛ sa˛ konkretne instancje modułów obliczeniowych, z drugiej lokalne bazy danych. ˙ Kazde połaczenie ˛ reprezentowane na diagramie jako pojedyncza kraw˛ed´z drzewa odbywa si˛e poprzez sie´c komputerowa,˛ której składnikami sa˛ fizycz˙ od przyne platformy sprz˛etowe. Faktyczna realizacja tych połacze ˛ n´ zalezy ˙ nalezno´sci komponentów do okre´slonych platform sprz˛etowych oraz topologii połacze ˛ n´ pomi˛edzy nimi. Zakłada si˛e istnienie lokalnej sieci komputerowej ˙ pomi˛edzy serwerem bazodanowym w obr˛ebie poszczególnych szpitali, a takze i platformami obliczeniowymi. Przyjmuje si˛e, iz˙ połaczenia ˛ pomi˛edzy szpitalami, a serwerami centralnymi realizowane sa˛ poprzez sie´c Internet. ˙ fizycznych aspektów Po uwzgl˛ednieniu konceptu interfejsu danych, a takze sieci komputerowej łacz ˛ acej ˛ platformy sprz˛etowe, przykładowa struktura systemu medycznego prezentuje si˛e nast˛epujaco ˛ 1.4. W celu zachowania przejrzy-.

(20) 1.3. Struktura systemu. 9. FPS1 MOB23 2 1. 1 1. 1 2. MOB. MOB. MOB. MOB33. 1. MOB3. FPS2. FPS3. FPS4. 1 1. CBD12. CBD. CBD21. CBD23 CBD31. CBD33. FPS7 LBD31 1 1. LBD. LBD32. 1 2. LBD. FPS5. FPS6 LBD21 1 3. LBD. FPS8. 2. LBD2. 2. LBD3. Rysunek 1.3: Logiczna architektura systemu sto´sci rysunku interfejsy danych przedstawiono wyłacznie ˛ dla pierwszej instancji centralnej bazy danych obsługujacej ˛ pierwszy moduł obliczeniowy. Rozpatrujac ˛ aspekty połacze ˛ n´ sieciowych, logiczna struktura drzewiasta została zastapiona ˛ przez fizyczna˛ struktur˛e w postaci grafu. W˛ezłami sa˛ fizyczne platformy sprz˛etowe, natomiast kraw˛edziami poszczególne segmenty sieci komputerowej. ˙ Wydajno´sc´ replikacji pomi˛edzy dwoma ustalonymi w˛ezłami w róznych kie˙ ˙ ˙ runkach moze si˛e rózni´c. Warto´sc´ ta zalezy nie tylko od pr˛edko´sci sieci komputerowej, lecz równiez˙ od wydajno´sci poszczególnych w˛ezłów oraz stosowanego na nich oprogramowania. Pr˛edko´sc´ sieci komputerowej jest typowo identyczna ˙ ˙ sci od kierunku przew obie strony w sieciach lokalnych oraz rózna, w zalezno´ ˙ faktycznym ogranicznikiem wydajno´sci nie syłu danych w sieci Internet. Jezeli jest sie´c komputerowa natomiast charakterystyka fizycznych platform sprz˛eto˙ ˙ ˙ sci wych, wówczas mozliwe jest powstanie róznic wydajno´sciowych w zalezno´ od kierunku przesyłu danych równiez˙ w sieciach lokalnych. Fakt ten powoduje konieczno´sc´ opisu zagadnienia z zastosowaniem grafu zorientowanego..

(21) 1.4. Optymalizacja replikacji. 10. FPS1. FPS2. FPS3 100 Mbs. 100 Mbs 1. MOB1. 100 Mbs. 100 Mbs. 100 Mbs. CBD11. FPS4. TAB2. TAB1. TAB4. TAB3. 2 Mbs. 4 Mbs 2. INT11. INT. 1. 2 Mbs. INT2. 1. INT3 1 1. LBD. TAB1. INT4. 2 3. LBD31. 4 Mbs 1 4. 100 Mbs. 100 Mbs. FPS6 2. LBD1 TAB1. TAB2. TAB1. INT. FPS5. FPS7. FPS8. TAB2 100 Mbs. TAB3. Rysunek 1.4: Szczegółowy model systemu. 1.4. Optymalizacja replikacji. Głównym zadaniem podsystemu replikacji jest zapewnienie wydajnego dostarczania danych do modułów obliczeniowych. W celu efektywnej realizacji tego ˙ zadania niezb˛edna jest optymalizacja procesu integracji danych, która˛ mozna podzieli´c na nast˛epujace ˛ podproblemy: • replikacj˛e lokalna,˛ • sieciowa˛ integracj˛e danych. Przez replikacj˛e lokalna˛ rozumie si˛e wykonanie interfejsu danych pomi˛edzy dwoma, bezpo´srednio połaczonymi ˛ w˛ezłami sieci komputerowej. Problem ˙ sformalizowa´c mozna nast˛epujaco. ˛ Graf zorientowany okre´slony jest poprzez par˛e uporzadkowan ˛ a˛ G = (V, E), gdzie V jest skonczonym ´ zbiorem w˛ezłów (wierzchołków), a E jest skonczonym ´ zbiorem łuków grafu. W przyj˛etym mo˙ delu realizacja kazdego interfejsu danych odbywa si˛e poprzez łuki grafu. Dana jest lokalna, z´ ródłowa baza danych LBDi w w˛ez´ le Vi oraz baza docelowa.

(22) 1.5. Problem maksymalnego przepływu. 11. LBDj lub CBDj w wierzchołku Vj . Istnieje dokładnie jeden (ustalony) łuk (i, j) w zbiorze E, przez który odbywa si˛e replikacja danych. Na obu platformach ˙ sprz˛etowych dost˛epny jest równiez˙ serwer FTP. Mozliwa jest realizacja repli˙ tak kacji na komputerze z´ ródłowym, docelowym, bad´ ˛ z obydwu naraz. Nalezy dobra´c architektur˛e fizyczna˛ interfejsu danych (miejsce replikacji oraz sposób transferu danych), parametry buforujace ˛ agentów wykonawczych oraz stopien´ zrównoleglenia przetwarzania, aby zmaksymalizowa´c transfer danych (przepustowo´sc´ ) pomi˛edzy zadanymi komputerami. Ogólniejszy problem sieciowej integracji danych, dzieli si˛e na dwa zagadnienia: • wyznaczenia maksymalnego przepływu, • doboru optymalnej sekwencji decyzji wynikajacej ˛ z realizacji sekwencji zadan. ´ Rozwiazanie ˛ kwestii replikacji lokalnej dostarcza niezb˛edne dane wej´sciowe do wyznaczenia maksymalnego przepływu w zadanej sieci komputerowej. Zakłada si˛e, iz˙ graf zbudowany jest z wierzchołków reprezentujacych ˛ fizyczne ˙ kraw˛edzi symbolizujacych platformy sprz˛etowe, a takze ˛ sektory replikacji lokalnej. W zagadnieniu przyjmuje si˛e, iz˙ znana jest (wyznaczona w poprzednim ˙ etapie) pr˛edko´sc´ replikacji pomi˛edzy kazdymi dwoma, połaczonymi ˛ w˛ezłami sieci. Celem tej fazy zagadnienia optymalizacyjnego jest dobór drogi przesyłu ˙ danych oraz okre´slenie maksymalnego mozliwego przepływu w sieci komputerowej. Wyznaczone rozwiazanie ˛ problemu sieciowej integracji danych nie jest wy˙ starczajace ˛ w rozpatrywanym systemie medycznym. Wynika to z załozonej konieczno´sci obsługi priorytetów realizacji poszczególnych zadan. ´ Wynik drugie˙ go etapu procesu, łacznie ˛ z załozeniem znajomo´sci zadanych priorytetów realizacji poszczególnych zadan´ (zwiazanych ˛ z maksymalnym terminem dostarczenia danych) stanowi wej´scie do realizacji procesu kombinatorycznego, dedykowanego podj˛eciu optymalnej sekwencji decyzji dla zadanego wska´znika jako´sci. Przyjmuje si˛e dwa podstawowe kryteria uporzadkowania: ˛ minimaliza˙ minimalizacj˛e całkowitego kosztu realizacji cj˛e maksymalnego kosztu, a takze zadania.. 1.5. Problem maksymalnego przepływu. Zaprezentowany jest problem maksymalnego przepływu w sieci komputero˙ warianty implementacyjne metody Forda Fulkersona, wej z podziałem na rózne ˙ rozwiazania a takze ˛ alternatywne. Pokazana jest metodyka rozwiazania ˛ proble˙ mu ogólniejszego, czyli zagadnienia przesyłu danych o róznorodnej strukturze..

(23) 1.5. Problem maksymalnego przepływu. 1.5.1. 12. Przesył danych jednorodnych. ˙ Problem maksymalnego przepływu w sieci komputerowej sformalizowa´c moz˙ na nast˛epujaco. ˛ Załózmy istnienie grafu zorientowanego okre´slonego poprzez par˛e uporzadkowan ˛ a˛ G = (V, E), gdzie V jest skonczonym ´ zbiorem w˛ezłów ˙ (wierzchołków), a E jest skonczonym ´ zbiorem łuków grafu. Kazdy łuk (i, j) ˙ w zbiorze E ma przyporzadkowan ˛ a˛ nieujemna˛ przepustowo´sc´ uij . Rozróz˙ nia si˛e dwa specjalne wierzchołki grafu G: z´ ródło s oraz uj´scie t. Dla kazdego i w zbiorze V oznaczamy E(i) wszystkie łuki wychodzace ˛ z w˛ezła i. Niech U = max uij . Oznaczmy równiez˙ ilo´sc´ w˛ezłów poprzez n oraz łuków poprzez m. Celem jest znalezienie maksymalnego przepływu z w˛ezła z´ ródłowego s do ˙ w˛ezła docelowego t, który spełnia załozenie nieprzekraczalno´sci przepustowo˙ ˙ s´ ci dla kazdego łuku grafu oraz zasad˛e zachowania balansu dla kazdego w˛ezła. Oznaczmy przepływ poprzez łuk (i, j) nalez˙ acy ˛ do E symbolem xij . Dla tak przyj˛etych oznaczen´ model optymalizacji wyglada ˛ nast˛epujaco: ˛ Maximize f (x) =. X. xij. (1.12). (i,j)∈E(s). przy ograniczeniach X {j: (i,j)∈E}. xij −. X. xji = 0. ∀i ∈ V \ {s, t}. (1.13). {j: (j,i)∈E}. 0 ¬ xij ¬ uij. ∀(i, j) ∈ E. (1.14). ˙ Wektor (xij ), który spełnia wszystkie ograniczenia jest mozliwym rozwiaza˛ ˙ niem problemu lub inaczej mozliwym przepływem. Nie jest on koniecznie wek˙ torem maksymalnym. Dla zadanego przepływu x mozna skonstruowa´c sie´c rezydualna˛ odpowiadajac ˛ a˛ temu przepływowi stosujac ˛ nast˛epujac ˛ a,˛ intuicyjna˛ ˙ ˙ łuk (i, j) nalez˙ acy ide˛e. Załózmy, ze ˛ do E przesyła xij jednostek przepływu. Definiujemy przepustowo´sc´ rezydualna˛ na łuku (i, j) jako rij = uij − xij . Oznacza ˙ to, iz˙ mozliwe jest przesłanie dodatkowo rij jednostek przepływu z wierzchoł˙ ka i do wierzchołka j. Mozliwe jest równiez˙ anulowanie istniejacego ˛ przepływu ˙ wy´slemy nie wi˛ecej niz˙ xij jednostek z j do i poprzez łuk (i, j). xij na łuku, jezeli ˙ ac ˙ Rozwazaj ˛ mozliwy przypływ x definiujemy sie´c rezydualna˛ w stosunku ˙ do przepływu x w nast˛epujacy ˛ sposób. Załózmy istnienie sieci G = (V, E). ˙ Mozliwy przepływ x okre´sla nowa˛ (rezydualna) ˛ sie´c, która˛ definiujemy jako Gx = (V, Ex ), gdzie Ex jest zbiorem łuków rezydualnych odpowiadajacych ˛ ˙ ˙ mozliwemu rozwiazaniu ˛ x. Zbiór Ex tworzony jest poprzez zastapienie ˛ kazdego łuku (i, j) ze zbioru E poprzez dwa łuki: (i, j) oraz (j, i), przy czym łuk (i, j) ma przepustowo´sc´ (rezydualna) ˛ rij = uij −xij oraz łuk (j, i) ma przepustowo´sc´ (rezydualna) ˛ rji = xij . Nast˛epnie konstruujemy zbiór Ex z nowych łuków z dodatnia˛ przepustowo´scia˛ rezydualna.˛.

(24) 1.5. Problem maksymalnego przepływu. 13. ˙ Dodatkowo, mozliwe jest sprowadzenie problemu o wielu z´ ródłach i uj˙ Realizowane jest to za pomoca˛ s´ ciach do problemu przedstawionego powyzej. wprowadzenia dwóch dodatkowych w˛ezłów: super-´zródła oraz super-uj´scia, a nast˛epnie poprzez połaczenie ˛ wszystkich z´ ródeł z super-´zródłem oraz uj´sc´ ˙ oraz odpowiedz super-uj´sciem poprzez łuki o przepustowo´sci równej podazy nio zapotrzebowaniu w w˛ez´ le. 1.5.1.1. Metoda Forda – Fulkersona. Pierwsze rozwiazanie ˛ problemu o gwarantowanej optymalno´sci zaproponowane zostało przez dwóch naukowców Forda oraz Fulkersona w 1956 roku [25]. ˙ powi˛ekszajacej. Metoda wprowadza poj˛ecie s´ ciezki ˛ Jest ona zdefiniowana, jako ˙ z w˛ezła z´ ródłowego s do w˛ezła uj´scia t w sieci rezydualzorientowana s´ ciezka ˙ powi˛ekszajacej nej. Przepustowo´sc´ rezydualna s´ ciezki ˛ stanowi minimum prze˙ pustowo´sci łuków wchodzacych ˛ w jej skład. Naturalne jest, iz˙ istnieje mozli˙ e wo´sc´ przesłania dodatkowego przepływu ze z´ ródła do uj´scia poprzez s´ ciezk˛ powi˛ekszajac ˛ a.˛ Metoda Forda – Fulkersona opiera si˛e na twierdzeniu, iz˙ przepływ x∗ jest maksymalnym przepływem w sieci wtedy i tyko wtedy, gdy sie´c rezydualna ˙ ˙ powi˛ekszajacej. Gx∗ nie zawiera zadnej s´ ciezki ˛ Algorytm typowo rozpoczyna ˙ si˛e od przepływu zerowego. Nast˛epnie w oparciu o powyzsze twierdzenie algo˙ powi˛ekszajacej ˙ rytm poszukuje s´ ciezki ˛ i powi˛eksza przepływ poprzez t˛e s´ ciez˙ ˙ powi˛ekszajacej. k˛e tak długo, az˙ sie´c nie zawiera zadnej s´ ciezki ˛ Szczegółowy zapis procedury przedstawiony jest w postaci algorytmu 1.1. x←0 ˙ s;t while w grafie Gx istnieje s´ ciezka ˙ e P stosujac do wyznacz s´ ciezk˛ ˛ algorytm oznaczajacy ˛ δ ← min{rij : (i, j) ∈ P } ˙ P dodaj δ jednostek przepływu do s´ ciezki od´swiez˙ Gx return x Tabela 1.1: Algorytm Forda – Fulkersona ˙ Do poprawnej pracy algorytmu niezb˛edne jest spełnienie ponizszych zało˙ n: ze ´ 1. sie´c jest skierowana (zorientowana), 2. wszystkie przepustowo´sci sa˛ nieujemnymi liczbami całkowitymi, 3. problem ma ograniczone (skonczone) ´ rozwiazanie ˛ optymalne, 4. sie´c nie zawiera równoległych łuków..

(25) 1.5. Problem maksymalnego przepływu. 14. ˙ ˙ Ostatnie załozenie nie powoduje ograniczenia ogólno´sci, gdyz˙ mozliwe ˙ jest zbudowanie równowaznego grafu poprzez zsumowanie przepustowo´sci wszystkich równoległych łuków. ˙ Mozliwe jest dowiedzenie, iz˙ metoda Forda – Fulkersona działa popraw˙ nie. Załozenie o przepustowo´sci danej liczbami całkowitymi gwarantuje za˙ konczenie ´ algorytmu. Wynika to z faktu, iz˙ kazdy krok metody zwi˛eksza prze˙ pływ o minimum jedna˛ jednostk˛e. Złozono´ sc´ obliczeniowa algorytmu wynosi O(mx∗) [3]. 1.5.1.2. Algorytm Edmondsa – Karpa. Głównym ograniczeniem algorytmu Forda – Fulkersona jest brak okre´slenia ˙ powi˛ekszajacej. wydajnego sposobu poszukiwania s´ ciezki ˛ Zmodyfikowane al˙ gorytmy bazowane na tej metodzie wprowadzaja˛ załozenia na sposób poszuki˙ powi˛ekszajacej. wania s´ ciezki ˛ Dzi˛eki temu rozszerzeniu, poprawne zakoncze´ ˙ nie gwarantowane jest bez konieczno´sci załozenia przepustowo´sci okre´slonych liczbami całkowitymi. Dodatkowo zmodyfikowane metody gwarantuja˛ lepsza˛ ˙ złozono´ sc´ obliczeniowa˛ [3]. Edmonds oraz Karp zaproponowali w 1972 roku zmodyfikowany algo˙ rytm [23], w którym s´ ciezka powi˛ekszajaca ˛ wyznaczana jest jako najkrótsza ˙ s´ ciezka (rozumiane jako ilo´sc´ łuków) pomi˛edzy z´ ródłem a uj´sciem. Metoda ta ˙ została niezaleznie oraz wcze´sniej odkryta równiez˙ przez Dinica2 w 1970 ro˙ moze ˙ by´c przykładowo zrealizowaku [17]. Wyznaczenie najkrótszej s´ ciezki ne stosujac ˛ algorytm przeszukiwania w głab ˛ (ang. depth-first search (DFS)) lub wszerz (ang. breadth-first search (BFS)). Szczegóły post˛epowania przedstawione sa˛ w postaci algorytmu 1.2. x←0 ˙ s;t while w grafie Gx istnieje s´ ciezka ˙ e powi˛ekszajac do wyznacz najkrótsza˛ s´ ciezk˛ ˛ a˛ P δ ← min{rij : (i, j) ∈ P } ˙ P dodaj δ jednostek przepływu do s´ ciezki od´swiez˙ Gx return x Tabela 1.2: Algorytm Edmondsa – Karpa ˙ Złozono´ sc´ obliczeniowa algorytmu wynosi O(nm2 ). Wariantem metody jest ˙ poprzez wyszukiwanie s´ ciez˙ zastapienie ˛ wyszukiwania najkrótszej s´ ciezki ki o najwi˛ekszej pojemno´sci. Implementacja oparta na modyfikacji algoryt˙ mu Dijkstry osiaga ˛ złozono´ sc´ obliczeniowa˛ O(n2 m lg nU ). Inna specjalizacja 2. W literaturze spotyka si˛e dwojaka˛ pisowni˛e nazwiska autora: Dinic [3] lub Dinits [61], co wynika z innego tłumaczenia oryginalnego nazwiska rosyjskiego na alfabet łacinski. ´.

(26) 1.5. Problem maksymalnego przepływu. 15. ˙ metody, znana jako skalowanie przepustowo´sci osiaga ˛ teoretyczna˛ złozono´ sc´ 2 O(m lg U ). Najwydajniejszy wariant metody zaproponowany został przez Dinica. Jest ˙ oparty na idei przepływu blokujacego. ˛ Teoretyczna złozono´ sc´ obliczeniowa al2 gorytmu wynosi O(n m). Liczne badania praktyczne wykazały dominacj˛e wydajno´sciowa˛ algorytmu Dinica do czasu zaprezentowania metody Goldberga – Tarjana [11]. 1.5.1.3. Metoda Goldberga – Tarjana. Omówione uprzednio algorytmy poszukujace ˛ maksymalnego przepływu ˙ w sieci realizowały zadanie w oparciu o koncepcj˛e s´ ciezek powi˛ekszajacych. ˛ Odmiennie, metoda Goldberga – Tarjana [31], znana równiez˙ pod nazwa˛ pushrelabel, wykorzystuje ide˛e przed-przepływu (ang. preflow) zaproponowana˛ przez Karzanova. Przed-przepływ jest podobny do przepływu, za wyjatkiem ˛ dozwolenia wi˛ekszego, łacznego ˛ przepływu wej´sciowego niz˙ wyj´sciowego w w˛ez´ le. Metoda utrzymuje przed-przepływ w sieci oryginalnej,3 wypychajac ˛ nadmiar prze˙ pływu lokalnego w kierunku uj´scia wzdłuz˙ s´ ciezek, które zostały oszacowane jako najkrótsze w grafie rezydualnym. Wypychanie przepływu zmienia graf ˙ do uj´scia moga˛ sta´c si˛e nasycone. Nadmiar, rezydualny powodujac, ˛ iz˙ s´ ciezki ˙ zosta´c wypchni˛ety do uj´scia zostaje zwrócony do z´ ródła, rówktóry nie moze ˙ Dopiero w momencie zaniez˙ poprzez najkrótsze według oszacowania s´ ciezki. konczenia ´ algorytmu przed-przepływ staje si˛e przepływem, b˛edac ˛ jednoczes´ nie przepływem maksymalnym. ˙ W opisie formalnym, nast˛epuje zamiana (rozlu´znienie) załozenia o zacho˙ ˙ wania balansu dla kazdego w˛ezła na załozenie o nieujemno´sci przepływu. X. f (u, v) ­ 0. ∀v ∈ V \ {s}. (1.15). u∈V. Algorytm wprowadza dwie podstawowe metody: push — dedykowana˛ do przesuni˛ecia nadmiarowego przepływu z zadanego w˛ezła do innych 1.3 oraz relabel — słuz˙ ac ˛ a˛ do oszacowania odległo´sci pomi˛edzy zadanym w˛ezłem a ujs´ ciem oraz z´ ródłem 1.4. Stosowalno´sc´ v jest aktywny, rf (v, w) ­ 0 oraz d(v) = d(w) + 1 Akcja Wy´slij δ = min(e(v), rf (v, w)) jednostek przepływu z v do w f (v, w) ← f (v, w) + δ; f (w, v) ← f (w, v) − δ; e(v) ← e(v) − δ; e(w) ← e(w) + δ; Tabela 1.3: Algorytm push(v, w) 3. W przeciwienstwie ´ do algorytmu Karzanowa..

(27) 1.5. Problem maksymalnego przepływu. 16. Stosowalno´sc´ v jest aktywny oraz ∀w ∈ V , rf (v, w) > 0 ⇒ d(v) ¬ d(w) Akcja d(v) ← min{d(w) + 1 | (v, w) ∈ Ef } (Je´sli to minimum jest skonczone, ´ to pusty zbiór, d(v) ← ∞) Tabela 1.4: Algorytm relabel(v) ˙ Zakłada si˛e, ze: rf (v, w) – przepustowo´sc´ rezydualna pary wierzchołków (v, w), e(v) – nadmiar przepływu w wierzchołku v, d(v) – funkcja odległo´sci, ˙ v ∈ V \ {s, t}, d(v) < ∞ oraz e(v) > 0. v jest aktywny, jezeli Algorytm 1.5 rozpoczyna działanie od przed-przepływu f o warto´sci równej ˙ przepustowo´sci łuku dla kazdego łuku wychodzacego ˛ ze z´ ródła oraz warto´sci ˙ 0 dla kazdego innego łuku. Dodatkowo, realizowane jest poczatkowe ˛ oznaczenie (funkcja˛ odległo´sci) uj´scia. Nast˛epnie, dopóki istnieje aktywny w˛ezeł, algorytm powtarza operacje podstawowe (push, relabel). ∀(v, w) ∈ (V \ {s}) × (V \ {s}) do begin f (v, w) ← 0; f (w, v) ← 0; end ∀v ∈ V do begin f (s, v) ← c(s, v); f (v, s) ← −c(s, v); end d(s) ← n; ∀v ∈ V \ {s} do begin d(v) ← 0; e(v) ← f (s, v); end while ∃ wykonalna operacja podstawowa do wybierz operacj˛e podstawowa˛ i wykonaj; end return f ; Tabela 1.5: Algorytm Goldberga – Tarjana ˙ ˙ od kolejno´sci wyboru operacji Złozono´ sc´ obliczeniowa algorytmu zalezy ˙ oraz aktywnych w˛ezłów. Najprostsza implementacja osiaga ˛ teoretyczna˛ złozono´sc´ obliczeniowa˛ wynoszac ˛ a˛ O(n2 m). Zastosowanie struktury kolejki zmniej˙ sza złozono´ sc´ do O(n3 ). Wykorzystanie struktury drzew dynamicznych ce˙ chuje si˛e najlepsza˛ znana,˛ teoretyczna˛ złozono´ scia˛ obliczeniowa˛ wynoszac ˛ a˛ 2 O(nm lg(n /m)). Zaawansowane implementacje stosuja˛ dodatkowo heurysty˙ ki, które nie zmieniaja˛ teoretycznej złozono´ sci obliczeniowej, potrafia˛ jednak przyspieszy´c algorytm w przypadkach praktycznych [11]..

(28) 1.5. Problem maksymalnego przepływu. 1.5.2. 17. Dane o róz˙ norodnej strukturze. Wszystkie zaprezentowane uprzednio metody poszukiwania maksymalnego ˙ przypływu cechuje wspólne załozenie, iz˙ przez sie´c komputerowa˛ przesyłane sa˛ dane tego samego rodzaju. W rozpatrywanym systemie medycznym sytuacja taka zachodzi podczas realizacji projektu wykorzystujacego ˛ duz˙ a˛ ilo´sc´ da˙ nych z identycznego typu urzadzenia ˛ pomiarowego, stosowanego na róznych oddziałach szpitalnych. ˙ by´c pozyskanie danych róznych ˙ W innych projektach konieczne moze typów, pochodzacych ˛ z odmiennych urzadze ˛ n´ medycznych. W sytuacji takiej ko˙ ˙ nieczne jest rozwazanie zagadnienia transportu danych o róznorodnej strukturze (ang. multi-commodity flow). Problem tego typu cechuje si˛e znacznie wi˛eksza˛ komplikacja.˛ Dla przepływów o charakterze całkowitoliczbowym juz˙ w przy˙ do klasy problemów NP– padku dwóch rodzajów danych zagadnienie nalezy zupełnych [61]. ˙ nast˛epujaco. Zadanie sformalizowa´c mozna ˛ Majac ˛ dany graf zorientowany ˙ si 6= ti , G = (V, E), pary (s1 , t1 ), . . . , (sk , tk ) wierzchołków grafu G, takie ze ˙ znale´zc´ dla funkcj˛e przepustowo´sci u oraz zapotrzebowania d1 , . . . , dk , nalezy ˙ ˙ xi ma warto´sc´ di oraz dla kazdego i = 1, . . . , k, si − ti przepływ xi , taki ze ˙ kazdego łuku e grafu G zachodzi: k X. xi (e) ¬ u(e).. (1.16). i=1. ˙ istnie´c wyłacznie, Rozwiazanie ˛ problemu moze ˛ je´sli spełniony jest waru˙ nek przekroju (ang. cut condition), czyli dla kazdego W ⊆ V przepustowo´sc´ out ˙ przekroju δE (W ) jest niemniejsza niz zapotrzebowanie δRout (W ), gdzie R := {(s1 , t1 ), . . . , (sk , tk )}. Jest to warunek konieczny, ale w przypadku ogólnym niewystarczajacy. ˛ Jest on jednak wystarczajacy ˛ w szczególnej klasie zagadnien, ´ kiedy s1 = s2 = · · · = sk lub t1 = t2 = · · · = tk . Warto odnotowa´c, iz˙ w rozproszo˙ nym systemie medycznym, przy załozeniu istnienia wyłacznie ˛ jednej centralnej bazy danych zachodzi przypadek szczególny, w którym wszystkie uj´scia znajduja˛ si˛e w jednym w˛ez´ le. 1.5.2.1. Algorytm Forda – Fulkersona. ˙ Problem transportu danych o róznorodnej strukturze w klasie liczb wymier˙ nych opisa´c mozna poprzez zestaw nierówno´sci na zmiennych xi (e) dla i = ˙ 1, . . . , k oraz e ∈ E. Ograniczeniami sa˛ zasady zachowania balansu dla kazdego ˙ ˙ rodzaju danych niezaleznie, razem z uogólnionym załozeniem nieprzekraczal˙ no´sci przepustowo´sci dla kazdego łuku grafu. X e∈δ out (v). xi (e) −. X e∈δ in (v). xi (e) = 0. (i = 1, . . . , k; v ∈ V, v 6= si , ti ),. (1.17).

(29) 1.5. Problem maksymalnego przepływu X e∈δ out (s k X. xi (e) − i). X e∈δ in (s. xi (e) = di. 18 (i = 1, . . . , k),. (1.18). (e ∈ E),. (1.19). (i = 1, . . . , k; e ∈ E).. (1.20). i). xi (e) ¬ u(e). i=1. xi (e) ­ 0. ˙ Tak postawiony problem rozwiaza´ ˛ c mozna w czasie wielomianowym poprzez ogólny algorytm programowania liniowego, jednak liczba zmiennych jest ˙ ˙ ˙ bardzo wysoka. Jedna zmienna dla kazdego i = 1, . . . , k oraz kazdej s´ ciezki si − ti . W 1958 roku Ford oraz Fulkerson zaproponowali technik˛e, dzi˛eki której ˙ unikna´ mozna ˛c tak wysokiej liczby zmiennych [26]. Algorytm oparty jest o metod˛e sympleksowa˛ (ang. simplex). Wprowadza niejawna˛ obsług˛e zmiennych, ˙ zwana˛ generacja˛ kolumn. Nawet najlepsze implementacje powyzszej techniki ˙ nie gwarantuja˛ jednak wystarczajacej ˛ wydajno´sci dla złozonych sieci obsługujacych ˛ wiele struktur danych jednocze´snie. 1.5.2.2. Rozwiazanie ˛ przybli˙zone Leightona. W 1991 roku zaproponowany został pierwszy szybki algorytm wyznaczajacy ˛ 4 ˙ przyblizone rozwiazanie ˛ problemu [47]. Algorytm jest znaczaco ˛ szybszy od najlepszych poprzednio znanych algorytmów opartych na programowaniu liniowym. Dla problemu o k typach danych czas wykonania jest (z dokładnos´ cia˛ do faktora logarytmicznego) identyczny z czasem niezb˛ednym do rozwia˛ zania k problemów o jednorodnej strukturze danych. Idea polega na wyznaczeniu przepływu, który spełnia wszystkie z˙ adania, ˛ narusza natomiast potencjalnie ograniczenie maksymalnej przepustowo´sci. Nast˛epnie iteratywnie nast˛epuje zmiana drogi sieciowej cz˛es´ ci przepływu, tak aby zmniejszy´c narusze˙ c rozwiazanie nie ograniczenia przepustowo´sci oraz przyblizy´ ˛ do optymalnego. Algorytm potrafi zmieni´c drog˛e sieciowa˛ całego typu danych podczas pojedyn˙ czej iteracji, dzi˛eki czemu osiaga ˛ znaczacy ˛ post˛ep podczas kazdego kroku. 1.5.2.3. Algorytm Karakostasa. ˙ Szybsze oszacowanie rozwiazania ˛ dla przepływów róznorodnych typów danych zaproponowane zostało w 2002 roku przez Karakostasa [41]. Metoda dostosowana jest zarówno do zagadnien, ´ w których wystarczajaca ˛ jest niejawna reprezentacja przepływu, jak i do typowych przypadków, kiedy niezb˛edna jest specyfikacja jawna. Niejawna reprezentacja składa si˛e ze zbioru drzew o korzeniach odpowia˙ istnie´c wi˛ecej niz˙ jedno drzewo dla z´ ródła) oraz ujdajacych ˛ z´ ródłom (moze s´ ciach b˛edacych ˛ li´sc´ mi struktury. Drzewa te przechowuja˛ warto´sci przepływów 4 ˙ Podobnie jak poprzednio, niezb˛edne jest załozenie o opisie przepływów za pomoca˛ liczb wymiernych..

(30) 1.5. Problem maksymalnego przepływu. 19. ˙ od z´ ródeł do uj´sc´ . Stosujac ˛ niejawna˛ reprezentacj˛e znana jest przyblizona warto´sc´ równoległych przepływów. Posta´c ta jest przydatna, je´sli wymagane jest ˙ szybkie obliczenie dobrego przyblizenia λ, natomiast nie jest niezb˛edna zna˙ jomo´sc´ szczegółów przepływu skutkujacego ˛ w λ. Złozono´ sc´ obliczeniowa tej ˙ od ilo´sci typów danych k. wersji algorytmu nie zalezy W sytuacjach, kiedy wymagane jest jawne okre´slenie przepływu przez gała´ ˛z, niezb˛edne jest połaczenie ˛ wszystkich drzew razem. Wprowadza to dodatkowy nakład obliczeniowy. Algorytm zaproponowany przez Karakostasa, wy˙ sc´ czasowa od znaczajacy ˛ jawny przypływ cechuje prawie minimalna zalezno´ ˙ sc´ ta wyrazona ˙ ilo´sci typów danych przesyłanych przez sie´c. Zalezno´ jest czynnikiem wielomianowo-logarytmicznym, dla dowolnej precyzji ε > 0. P Niech D(l) := e u(e)l(e). Definiuje si˛e disti (l) jako odległo´sc´ najkrótszej ˙ od si do ti w grafie G stosujac s´ ciezki ˛ funkcj˛e odległo´sci l. Przez Pi oznacza P ˙ pomi˛edzy si oraz ti . Niech α(l) := i d(i)disti (l). Oznaczmy si˛e zbiór s´ ciezek β := minl D(l)/α(l). Dla parametru β < 1 konieczne jest stosowanie procedury skalujacej, ˛ w przypadku kiedy β ­ 1 algorytm stosuje si˛e bezpo´srednio. ˙ Algorytm wykonywany jest w fazach. Kazda z nich składa si˛e z |S| iteracji. S oznacza zbiór z´ ródeł, który nie musi by´c równy ilo´sci typów danych k. W j-tej iteracji i-tej fazy rozpatruje si˛e wszystkie dane o wspólnym z´ ródle sj . Oznaczmy je poprzez c1 , c2 , . . . , cr . Przesyła si˛e d(cq ), q = 1, . . . , r jednostek danych okre´slonego typu cq w serii kroków. Podczas swojego działania algorytm utrzy˙ muje funkcj˛e odległo´sci l(·), która wyznacza odległo´sc´ l(e) dla kazdej kraw˛edzi ˙ e ∈ E. Niech li,j,s b˛edzie funkcja˛ odległo´sci na koniec s-tego kroku. W kazdym ˙ kroku oblicza si˛e najkrótsza˛ s´ ciezk˛e drzewa z sj do uj´sc´ danych cq , q = 1, . . . , r. cq ˙ a˛ w tym drzewie z sj do uj´scia konkretnego typu cq . b˛edzie s´ ciezk Niech Pi,j,s cq Przykładowo Pi,j,s ma długo´sc´ distcq (li,j,s −1 ). Zasadnicza˛ rzecza˛ jest, iz˙ drzewo ˙ dla wszystkich danych o wspólnym z´ ródle sj moze ˙ by´c obnajkrótszych s´ ciezek cq liczone stosujac ˛ wyłacznie ˛ jedno wywołanie algorytmu Dijkstry. Niech di,j,s >0 b˛edzie ilo´scia˛ danych typu cq , które nie zostały jeszcze przesłane w kroku s cq ˙ = d(cq )). Zauwazmy, iz˙ rozpatrujemy typy danych o s´ ci´sle dodatnim za(di,j,s potrzebowaniu do zrealizowania oraz ignorujemy te, których zapotrzebowanie ˙ uprzednio zostało przesłane w cało´sci. Przy takich załozeniach w s-tym kroku cq cq ˙ ˙ przesyła si˛e fi,j,s = di,j,s /σ jednostek kazdego typu danych cq wzdłuz˙ s´ ciezki cq ˙ Pi,j,s . σ jest czynnikiem skalujacym ˛ zapewniajacym, ˛ iz nie wysyła si˛e poprzez ˙ e zapotrzebowania wi˛ekszego od przepustowo´sci. Nast˛epnie ustala si˛e s´ ciezk˛ cq cq cq ˙ ˙ di,j,s := di,j,s łuku e na tych s´ ciezkach ustawiamy: −1 − fi,j,s oraz dla kazdego łaczny ˛ przepływ netto przez e li,j,s (e) := li,j,s −1 (e) 1 + ε · u(e)  P cq  cq f i,j,s cq :e ∈Pi,j,s . = li,j,s −1 (e) 1 + ε · u(e). !. (1.21). ˙ ˙ Zauwazmy, iz˙ dla kazdego nasyconego łuku e, jego długo´sc´ l(e) zwi˛eksza.

(31) 1.5. Problem maksymalnego przepływu. 20. ˙ ˙ si˛e o czynnik 1 + ε, oraz iz˙ w kazdej iteracji, podczas kazdego kroku, opcjonalnie oprócz ostatniego, przynajmniej jedna kraw˛ed´z zostaje nasycona, to znaczy przypisane do niej zostaje u(e) jednostek przepływu. Po ostatnim kroku s cq ˙ ˙ zostadi,j,s = 0 dla kazdego typu danych cq . Cała procedura konczy ´ si˛e, jezeli ˙ nie spełniony warunek D(li,j,s ) ­ 1 ustalajac ˛ warto´sc´ funkcji długo´sci l, a takze ˙ udowodni´c, iz˙ odpowiadajacy ˛ jej wektor przepływu x(q), q = 1, . . . , k. Mozna procedura oblicza rozwiazanie, ˛ które jest realizowalne oraz bliskie optimum. Pełny algorytm prezentuje si˛e nast˛epujaco ˛ 1.6: Inicjalizuj l(e) := δ/u(e), ∀e ∈ E, x(P ) := 0, ∀P. while D(l) < 1 do for i = 1 to |S| do d0 (cq ) := d(cq ), q = 1, . . . , r while D(l) < 1 oraz d0 (cq ) > 0 dla jakiego´s q do ˙ w Pcq uzywaj ˙ Pcq := najkrótsza s´ ciezka ac ˛ l, q = 1, . . . , r gdzie 0 d (cq ) > 0 0 fcq := d0 (cq ), q = 1, . . . , r gdzie P d (cq ) > 0 c :e ∈P. fc q. σ := max{1, maxe∈Pc1 ∪···∪Pcr { q u(e)cq }} fcq := fcq /σ, q = 1, . . . , r gdzie d0 (cq ) > 0 d0cq := d0cq − fcq , q = 1, . . . , r gdzie d0 (cq ) > 0 x(Pcq ) := x(Pcq ) + P fcq , q = 1, . . . , r gdzie d0 (cq ) > 0 c :e ∈P. fcq. l(e) := l(e)(1 + ε · q u(e)cq ), ∀e ∈ Pc1 ∪ · · · ∪ Pcr end while /* koniec kroku */ end for /* koniec iteracji */ end while /* koniec fazy */ , ∀P x(P ) := x(P )/ lg1+ε 1+ε δ P λ := mini. P ∈Pi. x(P ). d(i). Tabela 1.6: Algorytm Karakostasa — przepływ niejawny ˙ Powyzszy algorytm wylicza λ, czyli spełniona˛ cz˛es´ c´ zapotrzebowania oraz ˙ P , dla zadanej warto´sci dokładno´sci ε. Dodatkowo przepływ x(P ) na s´ ciezce do oznaczen´ przyj˛etych uprzednio δ jest parametrem danym wzorem: δ :=. 1 (1 + ε). 1−ε · m . 1−ε ε. 1 ε. (1.22). W rozproszonym systemie medycznym konieczna jest jawna reprezentacja ˙ problemu, w której dla kazdego typu danych okre´slony jest przepływ poprzez ˙ poszczególne s´ ciezki sieci. Szczegółowy zapis algorytmu wyglada ˛ nast˛epujaco ˛ 1.7. Wylicza on λ, czyli spełniona˛ cz˛es´ c´ zapotrzebowania oraz x, rozumiany ˙ ˙ jako przepływ kazdego rodzaju danych na kazdym łuku, dla zadanej warto´sci dokładno´sci ε..

(32) 1.5. Problem maksymalnego przepływu. 21. Inicjalizuj l(e) := δ/u(e), xe (q) := 0, ∀e ∈ E, q = 1, . . . , k. while D(l) < 1 do for i = 1 to |S| do d0 (cq ) := d(cq ), q = 1, . . . , r while D(l) < 1 oraz d0 (cq ) > 0 dla jakiego´s q do ˙ w Pcq uzywaj ˙ Pcq := najkrótsza s´ ciezka ac ˛ l, q = 1, . . . , r gdzie 0 d (cq ) > 0 u0 (e) := u(e), ∀e ∈ Pc1 ∪ · · · ∪ Pcr for q = 1 to r do c := mine∈Pcq u0 (e) if d0 (cq ) ¬ c then xe (cq ) := xe (cq ) + d0 (cq ), ∀e ∈ Pcq u0 (e) := u0 (e) − d0 (cq ), ∀e ∈ Pcq fcq := d0 (cq ) d0 (cq ) := 0 else xe (cq ) := xe (cq ) + c, ∀e ∈ Pcq fcq := c d0 (cq ) := d0 (cq ) − c break end for P c :e ∈P. fcq. l(e) := l(e)(1 + ε · q u(e)cq ), ∀e ∈ Pc1 ∪ · · · ∪ Pcr end while /* koniec kroku */ end for /* koniec iteracji */ end while /* koniec fazy */ xe (q) := xe (q)/ lg1+ε 1+ε , ∀e ∈ E, q = 1, . . . , k δ przepływ(si ,ti ) λ := mini d(i) Tabela 1.7: Algorytm Karakostasa — przepływ jawny ˙ Zauwazmy, iz˙ otrzymanie prawie optymalnego rozwiazania, ˛ z dokładno´scia˛ do ε nie stanowi ograniczenia praktycznego, gdyz˙ przepustowo´sci poszczególnych łuków wyznaczone sa˛ do´swiadczalnie z pewna˛ okre´slona˛ dokładno´scia.˛ ˙ dokładno´sci pomiaru przepustowo´sci powoduje, iz˙ obliczony Dobór ε powyzej ˙ wynik jest nierozróznialny od warto´sci optymalnej. ˜ −2 m2 ) dla reprezentacji ˙ Złozono´ sc´ obliczeniowa zredukowana została do O(ε −2 2 ˜ ˜ ) niejawnej oraz O(ε (m + kn)) dla jawnej prezentacji przepływu, gdzie O(f O(1) ˙ oznacza złozono´ sc´ O(f lg m)..

Cytaty

Powiązane dokumenty

Praca zawiera opis systemu komputerowego stworzonego w oparciu o środowisko Eclipse, opis implementacji poszczególnych rozwiązań i algorytmów, opis zdefiniowanych

Dla potrzeb lepszego wykorzystania układów FPGA oraz zwiększenia oczekiwanej akceleracji obliczeń autor rozprawy dokonał modyfikacji i następnie implementacji wybranych

• dalsze prace nad możliwościami implementacji równoległej metod cząstek z wykorzystaniem nowych środowisk i architektur zarówno komputerów, jak i procesorów, •

Celem rozprawy jest zaprojektowanie i próba implementacji modelu zarządzania gospodarką odpadami komunalnymi w gminach, posiadających tereny przyrodniczo cenne..

Nanostruktury na bazie TiO2 dla zastosowań fotoelektrochemicznych Anna Kusior.. 1

Koncepcja i model agentowego środowiska obliczeniowego 56 3.1.. Metodyka

Opisano dedykowany układ elektroniczny sterownika napędów, komunikacji i systemów sensorycznych robota wraz z niskopoziomową aplikacją jak i oprogramowaniem operatorskim

Przeprowadzone testy i wykonane analizy dla różnych geometrii sensorów i różnych ustawień elektroniki odczytu pozwoliły na sformułowanie ogólnych rekomendacji