Title: Skojarzenia doskonale W drodze ku przeplywom
1Skojarzenia doskonale W drodze ku przeplywom
- Autorzy Maciej Chrósniak
- Jakub Dworniczak
- Karol Ziarko
Projekt wykonywany w ramach przedmiotu
Programowanie równolegle 420 na UAM Prowadzacy
zajecia dr Marcin Paprzycki
2Cel projektu
Implementacja probabilistycznego algorytmu
równoleglego znajdowania skojarzen doskonalych w
grafach. Pierwotnie wykorzystanie algorytmu dla
grafów dwudzielnych jako etap posredni w
rozwiazaniu problemu maksymalnego przeplywu.
3Zastosowanie algorytmu
- Równolegly algorytm znajdowania skojarzenia
doskonalego znajduje zastosowanie w wielu
problemach - maksymalnego przeplywu
- najwiekszego skojarzenia
- skojarzenia o maksymalnej wadze
4Schemat algorytmu
Znalezienie skojarzenia doskonalego w grafie
G(V,E)
- Losowy dobór liczb wi z zakresu 1,...,2E dla
kazdej krawedzi ei (zastosowanie biblioteki GMP
(GNU Multiple Precision) operujacej na liczbach o
duzych rozmiarach) - Utworzenie zmodyfikowanej macierzy przyleglosci
A z przypisanymi wagami 2wi - Wyliczenie det(A) oraz macierzy dopelnien
algebraicznych D - Analiza otrzymanych wartosci w celu odnalezienia
krawedzi tworzacych skojarzenie doskonale
5Modyfikacja algorytmu
Istnieje wiele teoretycznych rozwazan na temat
przytoczonego algorytmu (klasy RNC, Monte Carlo)
rozwiazujacego podany problem w
polilogarytmicznym czasie (O(log2n)) przy
wykorzystaniu wielomianowej liczby
procesorów. Najbardziej pracochlonna czescia
procedury jest obliczanie wyznaczników dla A i
macierzy dopelnien algebraicznych D (n2
wyznaczników macierzy o rozmiarach
(n-1)x(n-1)). Proponowane rozwiazania sa
czasochlonne. Dlatego tez postanowilismy
zmodyfikowac algorytm.
6Modyfikacja algorytmu
- Obliczenie wyznacznika i macierzy dopelnien
algebraicznych wykonywane jest za pomoca
eliminacji Gaussa (O(n3)) - proste wyliczenie det(A) po dekompozycji
macierzy - wyznaczenie macierzy odwrotnej A-1 w celu
utworzenia D - D det(A) (A-1) T
- Problem eliminacja wykorzystuje operacje
dzielenia i wylicza przyblizone wartosci - Rozwiazanie wykorzystanie biblioteki
pozwalajacej dzialac na liczbach wymiernych -
uzyskanie dokladnych wyników
7Techniczne aspekty implementacji równoleglej
Wykorzystanie watków POSIX-owych. Rozwiazanie
narzucone przez wykorzystanie wspomnianej
biblioteki GMP (liczby o duzych rozmiarach).
Zalety
- wspólna pamiec wszystkie watki maja dostep
wspólnego obszaru danych (brak koniecznosci ich
wymiany)
- unikniecie kosztownej komunikacji (wystepujacej
przy zastosowaniu procesów)
8Techniczne aspektyimplementacji równoleglej
Wady
- koniecznosc organizacji dostepu do wspólnych
danych, utrudniona
synchronizacja (np. za pomoca mutex-ów) zwlaszcza
przy dynamicznym przydziale prac
- trudnosc w pomiarze czasu (wykorzystanie czasu
dziennego) zwlaszcza dla obciazonej maszyny
obliczeniowej
- ograniczenie implementacji do architektury z
pamiecia wspólna
9Analiza wyników (czas)
Implementacja algorytmu dla grafów
dwudzielnych Wykorzystanie grafów rzadkich ze
wzgledu na czasochlonnosc
10Analiza wyników (przyspieszenie)
Aby uwidocznic korzysci zrównoleglenia algorytmu
badamy przyspieszenie S(p)T1/ Tp T1 - czas
wykonania na 1 procesorze Tp - czas wykonania na
p procesorach
11Analiza wyników (wykorzystanie pamieci)
Pomiar uzywanej pamieci obrazuje wzrost rozmiaru
liczb w czasie dokonywania obliczen
12Analiza wyników Liczby
Jest to liczba wymierna. Tylko jej czesc!
....................674602546050935116431143246410
57583006393187287689041179762105443523106469666335
07214845589217129112302907670498208428327691843415
16493043433472231242890336021752721770971933508047
17193226382432882622400384282468112061257953365776
93468560605154845491370299300906590358390974177108
70353178222768080336576672045915908025103888003985
18034834242552219752265168292520428912880367295789
43312334615976951509881128833574378653908582156315
35113417490008214267612554161505679325697588597979
70990515415932453576914683701921572518804398184035
80892067494788095447211581764474140914764612639477
21833558805710420370227657936219719529803387009968
77931865558572995532640563123297868247848808910608
21876213698458013854908010510217520350228614099877
26036689901496567068822961641696794478430596721748
96515476771122471835140477832678261144724002793211
32496958263551385075427574870216258713666529067604
37978527576854309027508106805883941110761340902230
46998618769485722828446000541541849111340345153205
49142862381180585636790375988539448341447121840682
70151685425603509979579089738021328626905805840157
13831348193045895514857848577293311044763204737267
80914780066275185615458631079565726702179970834147
12860090350079277729305223364395674349268661557706
24985144696076980658523905377946604672807866566566
56762838790671223903431435852780492013083982245023
45042184636180886285340549592637774054680128232066
30904757195819935632396499735765486538727294864381
37804726066433253565750732353422306588847129569685
11623069128520112632840389688202582172899600407152
41241463716937392995824962294319657649462842170205
72243157695071482293217308785881568522102619930657
82031653550547662157613754070636636367376794635855
69695536061746551235235419113760135702849253415831
54772650983447719328199675900690305409830460740526
10679431549503960026892284869103532513069459277337
07141145039134580238505971387728358853607135659664
48153483287148939443351497713363314698988761606263
88253768826790436346013076181628245021257/39219917
16748007706015782321286393715338155312351046529968
92426982828297422293021697081464060178453860013555
30220892904954465113728131761062812940882577776270
70485926569606517091661605744831505967411666523561
81428832978352118479589138710974790208032890315431
48295481866863674649707085565621482645696942302680
96638577514032636038068904248935878452360555776082
28601632038577449445957010725350528549850623548246
15319692397969498687578066305489547977343367957228
86457553127887064379135891688592118036590056541610
89256754565609950564321129017673902498127695498174
13146091444493275922876839828644858315530696871753
09709498049693622222234122092074726349677405391527
88547199065411901419061168454399825712557812834045
49850816956260077551752595209789101502036129617767
03218765416290063381151896313693781921700126892042
14889464540450998418066968664473469952805007138375
49052168081272426661793688174982310661974992567663
16710207700192735599483179315180005082013016975307
72990160787702271549468581565707636793791697717595
57305793417186132607123676254472895753307941398261
05411589934435328956509152970521759934969561185739
17548917319628086390596271161944602194683369237004
35329996923980648253218450800593597567052035368802
62534640785688155671404921263012660588869261574665
97520870985996753077004887090665919889951531522062
89632990570309619049333962648553796942012041957826
95778075441316266631451639751837466946525535113189
52291584857504918612049993748164685373082966545486
73556352740519793939811496714359569554713801151784
93944763954409641540639150919355744128492682650211
80336825381219202730459487198886836195597475464933
53872105644221532749063562260045750809894641677022
87661600223498365972783221903816342088134525781269
31637642701471415556659167726978589388487105039174
10645221673383455756503456615316360506124863696277
44598017919386954765801370760470123791723973756012
73222956720572377256372320687698734459468909713168
34629091177831207566443404577957570843526184602444
35250510418306478995588718860650209239840718822957
34073543603467322498118854659242474405141614953708
93090778692182831176877069832935579836154429460085
12071347945671464287339755931587108914101113035355
27303260075392044592769356691686418552023716353029
37418907655096945693719472885499034303280033395454
25369412568230955023536306846638209028250451986383
04236752944892029339209526842163770328220505050144
04462741828984858577846716412232057543229156963488
02531028776381630888854178796709381775877853215257
53455370001091599456103418496041007748274237468703
36885209099120060743141261154272174684636780802281
04633715767156745843820292687767955083084020639429
36825462408551722940663175581625693354817131279930
59417567036289264930168797456110265603887772986248
55797671713946399436715391573916622261140232655459
28952298382313403203573456814056628876316795918569
16479497051573535123020950069415300278685998399993
30893136431245208066405480913135673703050163259473
69767144782806735218317280639445407241332102153009
0304507330214335429539681848451677982283311301479.
...................
13Czas na prawde
Algorytm równolegly kontra sekwencyjny - metoda
wegierska (O(n3))
14Analiza wyników Operacje na liczbach
Porównanie czasu dla operacji dokonywanych na
liczbach wymiernych oraz zmiennoprzecinkowych
(long double - 8B) pokazuje skale
zróznicowania. Czas dla 10 000 operacji
najczesciej wystepujacych w algorytmie
dzielenia i odejmowania (w sek.)
- 0,014 - liczby zmiennoprzecinkowe
15Próba wykorzystania algorytmu dla znajdowania
maksymalnych przeplywów
- Algorytm ten moze byc etapem posrednim w celu
rozwiazania problemu znajdowania maksymalnych
przeplywów. - Mozliwosci zastosowania
- prawdopodobienstwo, ze algorytm odnajdzie
skojarzenie doskonale jest wieksze niz 1/2 - (gdy brak skojarzenia procedura zawsze da
odpowiedz prawdziwa) - przejscie do problemu odnajdywania przeplywów
wymaga wykonania log2V czasochlonnych operacji
znajdowania skojarzenia i gwarantuje, ze
prawdopodobienstwo poprawnosci dzialania calej
procedury jest wieksze niz 1/V.
16Algorytm dla dowolnych grafów
Algorytm równiez mozna wykorzystac dla grafów
dowolnych. Wymaga to przeksztalcenia danych
(macierzy przyleglosci) prostego w realizacji,
lecz modyfikacja ta wplywa na efektywnosc.
17Próba zwiekszenia prawdomównosci
- Na prawdopodobienstwo P wygenerowania poprawnego
wyniku ma wplyw wielkosc wykorzystywanych wag dla
krawedzi. - Krawedzi ei przypisujemy wage 2wi , gdzie wi to
losowa liczba z zakresu 1,...,CE. - P mozna zwiekszyc poprzez
- zwiekszenie wartosci C
- kilkakrotne wykonanie procedury
18Próba zwiekszenia prawdomównosci(analiza czasu
i wykorzystania pamieci)
Badania wykonywane dla grafu dwudzielnego
posiadajacego 80 wierzcholków
- Metoda zwiekszenia prawdopodobienstwa P?7/8
- zwiekszenie C C8
- 3-krotne wywolanie procedury (dla C2)
- Druga metoda dziala krócej.
19Próba zwiekszenia prawdomównosciOptymistyczny
akcent
Testy prawdopodobienstwa (100 prób) daja wyniki
znacznie lepsze niz oszacowanie (P?1/2 dla C2).
C P
2 0,98
1/4 0,81
1/16 0,51