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

Wielkość: px
Rozpocząć pokaz od strony:

Download "Algorytmy Równoległe i Rozproszone Część IV - Model PRAM"

Transkrypt

1 Algorytmy Równoległe i Rozproszone Część IV - Model PRAM Łukasz Kuszner pokój 209, WETI kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu kuszner/arir/ Wykład 15 godzin, Projekt 15 godzin Powody rozwoju systemów równoległych i rozproszonych wymiana informacji, współdzielenie zasobów, zwiększanie niezawodności poprzez powielanie, zwiększanie wydajności poprzez zrównoleglanie, upraszczanie konstrukcji poprzez specjalizację. 1

2 Wymiana informacji Konieczność wymiany informacji pociąga za sobą konieczność budowy systemów, które taką wymianę umożliwiają. W powszechnym użyciu jest wiele takich systemów jak choćby globalna sieć Internet, sieci telefonii stacjonarnej i komórkowej, wewnętrzne sieci komputerowe dużych korporacji przemysłowych, wojskowe i cywilne systemy wczesnego ostrzegania, systemy nawigacji satelitarnej i inne. Współdzielenie zasobów Wytworzenie, a później utrzymanie niektórych zasobów może być bardzo kosztowne. Konieczne staje się więc współdzielenie ich przez wielu użytkowników. W takim wypadku dla ułatwienia dostępu i uregulowania zasad korzystania z zasobów powstają często rozproszone systemy dostępu i kontroli. Jako przykłady można tu podać np.: teleskop kosmiczny Hubble a, a w mniejszej skali ploter lub drukarkę współdzieloną przez kilku użytkowników. Zasobami mogą być też dane, lub moc obliczeniowa superkomputerów. Zwiększanie niezawodności poprzez powielanie Systemy rozproszone mogą być potencjalnie bardziej niezawodne. O ile awaria lub zniszczenie samodzielnie działającego komputera uniemożliwa pracę całego systemu, o tyle awaria systemu rozproszonego może być zneutralizowana poprzez zastąpienie niesprawnego elementu poprzez inne działające równolegle. 2

3 Zwiększanie wydajności poprzez zrównoleglanie W systemach masowej obsługi powielenie jednostek wykonujących to samo zadanie powoduje wzrost wydajności. Przykładem tutaj mogą być komputery odpowiadające na zapytania kierowane do baz danych. Również w innego rodzaju systemach jeśli tylko realizowane zadania mogą być dzielone na mniejsze części, to możemy przyspieszyć obsługę poprzez zrównoleglenie pewnych operacji. Upraszczanie konstrukcji poprzez specjalizację Konstrukcja systemów komputerowych może być bardzo złożona. Podobnie jak klasyczna modularyzacja podział systemu na kooperujące części może zaowocować zmniejszeniem złożoności pojedynczych elementów i zarazem uproszczeniem konstrukcji całego systemu. 2 Jakość algorytmów równoległych Czas obliczeń (złożoność algorytmu) Liczba potrzebnych procesorów. Przyjęty model obliczeń Przyspieszenie Efektywność Skalowalność 3

4 Przyspieszenie Rozważmy problem, dla którego sekwencyjny algorytm wymaga czasu T s. Dysponujemy algorytmem, który działa w czasie T p przy użyciu P procesorów. Speedup = T s T p Efficiency = T s P T p W jaki sposób obliczamy czasy T s i T p? Przyspieszenie względne (Relative Speedup) Niech A będzie algorytmem równoległym. RelativeSpeedup(n, p) = T s T p T s =Czas rozwiązania problemu P na jednym procesorze T p =Czas rozwiązania problemu P na p procesorach 4

5 Przyspieszenie rzeczywiste (Real Speedup) Niech A będzie algorytmem równoległym. RealSpeedup(n, p) = T s T p T s =Czas rozwiązania problemu najlepszym znanym algorytmem sekwencyjnym, T p =Czas rozwiązania problemu P na p procesorach. W obu wypadkach mierzymy czas na maszynie równoległej. Przyspieszenie bezwzględne (Absolute Speedup) Niech A będzie algorytmem równoległem. AbsoluteSpeedup(n, p) = T s T p T s =Czas rozwiązania problemu najlepszym znanym algorytmem sekwencyjnym na najszybszym znanym procesorze, T p =Czas rozwiązania problemu P na p procesorach. 5

6 Asymptotyczne przyspieszenie rzeczywiste (Asymptotic Real Speedup) Niech S(n) będzie złożonością obliczeniową najlepszego algorytmu sekwencyjnego, a A algorytmem równoległym i P A (n) jego złożonością bez ograniczenia na liczbę procesorów. AsymptoticRealSpeedup(n, p) = S(n) P (n) Cost Normalized Speedup CNS(n, p) = Speedup(n, p) koszt systemu równoległego koszt systemu sekwencyjnego Efektywność Efektywność jest miarą ściśle związaną z przyspieszeniem. Ogólnie można zapisać Efficiency(n, p) = Speedup(n, p), p gdzie n jest rozmiarem problemu, a p jest liczbą użytych procesorów. W zależności od tego jaką przyjmiemy miarę przyspieszenia uzyskamy różne miary efektywności. Skalowalność Intuicyjnie system/algorytm jest skalowalny, jeśli efektywność maleje wolno wraz ze wzrostem rozmiaru problemu i liczby procesorów. 6

7 3 Model - wstęp W modelu przetwarzania sekwencyjnego kluczową rolę pełni model maszyny RAM (random access machine). Każda taka maszyna składa się z ustalonego programu, jednostki obliczeniowej, taśmy (tylko do odczytu) z danymi wejściowymi, taśmy (tylko do zapisu) na wynik działania programu oraz nieograniczonej pamięci o dostępie swobodnym. Ponadto każda komórka pamięci jest w stanie zapamiętać liczbę całkowitą o nieograniczonym zakresie. Jednostka obliczeniowa nie jest skomplikowana pozwala na wykonywanie najprostszych instrukcji takich jak: kopiowanie komórek pamięci, porównania i skoki warunkowe, podstawowe operacje arytmetyczne itp. Ustalony program użytkownika składa się z ciągu takich instrukcji. Miarą złożoności programów dla maszyny RAM są typowo czas działania mierzony liczbą wykonanych instrukcji i zużycie pamięci mierzone liczbą wykorzystywanych komórek. Żeby uchronić ten model przed zniekształceniami zabronione jest generowanie bardzo dużych liczb w krótkim czasie. Np. zabrania się generowania liczb o niewielomianowej długości zapisu w wielomianowym czasie. Można to osiągnąć albo przez uważny dobór zestawu instrukcji, albo przerzucając odpowiedzialność na twórców algorytmów dla danego modelu. W ten sposób otrzymujemy gamę równoważnych modeli dla obliczeń sekwencyjnych. 7

8 Naturalnym uogólnieniem modelu RAM (ang. random access machine) jest dodanie większej liczby jednostek obliczeniowych. Ideę maszyny PRAM (ang. parallel random access machine) może ilustrować poniższy schemat: Pamięć współdzielona P 1 P 2 P n 4 PRAM - założenia Pamięć jest wspólna dla wszystkich procesorów. Każdy procesor jest maszyną typu RAM. Wszystkie procesory działają synchronicznie. Czas działania mierzymy liczbą dostępów do pamięci współdzielonej. Zużycie pamięci liczymy liczbą użytych komórek. Dodatkowym parametrem jest liczba użytych procesorów. Tu zakładamy, że w wielomianowym czasie można użyć tylko wielomianowej liczby procesorów. 8

9 Uwagi do założeń Ostatni punkt założeń można rozwiązać np. w taki sposób, że procesor P 1 oblicza potrzebną liczbę procesorów, a następnie włącza je wpisując liczbę do odpowiedniego rejestru. Liczenie dostępów do pamięci ma taki sens praktyczny, że zwykle wszelkie operacje typu komunikacyjnego zabierają znacznie więcej czasu niż obliczenia lokalne. Wadą założenia o jednostkowym czasie dostępu jest, występowanie w rzeczywistych systemach równoległych mechanizmów komunikacji o bardzo zróżnicowanej wydajności. Dostęp do pamięci Istnieje kilka sposobów modelowania równoległego dostępu do pamięci współdzielonej. We wszystkich modelach zakładamy oddzielenie operacji zapisu i odczytu. Przyjmujemy, że maszyna PRAM działa w cyklu składającym się z: (jeśli potrzeba) czytaj z pamięci współdzielonej, (jeśli potrzeba) wykonaj obliczenia lokalne, (jeśli potrzeba) pisz do pamięci współdzielonej. W ten sposób zakładamy, że nie ma konfliktów typu: jednoczesny zapis/odczyt. 9

10 Pozostają jednak konflikty typu: jednoczesny zapis/zapis i odczyt/odczyt. Generalnie możliwości są następujące: maszyna EREW-PRAM: (ang. exclusive read exclusive write) nie dopuszcza się konfliktów żadnego rodzaju, maszyna CREW-PRAM: (ang. concurrent read exclusive write) dopuszcza się konflikty typu jednoczesny odczyt, maszyna ERCW-PRAM: (ang. exclusive read concurrent write) dopuszcza się konflikty typu jednoczesny zapis, maszyna CRCW-PRAM: (ang. concurrent read concurrent write) dopuszcza się zarówno konflikty typu jednoczesny odczyt jak i jednoczesny zapis. Przy czym w przypadku dopuszczenia jednoczesnego odczytu (CREW, CRCW) zakładamy, że wszystkie procesory przeczytają żądaną komórkę pamięci. W przypadku dopuszczenia jednoczesnego zapisu sytuacja jest bardziej złożona. Rozwiązywanie konfliktów typu jednoczesny zapis ECR (equality conflict resolution) - jednoczesny zapis się powiedzie, jeśli wszystkie procesory próbują zapisać to samo. PCR (priority conflict resolution) - zapis udaje się tylko procesorowi o najwyższym priorytecie. ACR (arbitrary conflict resolution) - jednemu z procesorów zapis się powiedzie. 10

11 5 Twierdzenie Brenta Twierdzenie 1 Każdy układ kombinacyjny o rozmiarze n, głębokości d i stopniu wejściowym bramek ograniczonym przez stałą da się symulować na p-procesorowej maszynie CREW-PRAM w czasie O(n/p + d). Ćwiczenie 1 Uzasadnij twierdzenie Brenta (zob. Cormen str 793). 6 Kilka przykładów Algorytm 1: Iloczyn skalarny 1: for i = 1 to n in parallel do 2: c i = a i b i 3: end for 4: p = n/2 5: while p > 0 do 6: for i = 1 to p in parallel do 7: c i = c i + c i+p 8: end for 9: p = p/2 10: end while We: Tablice współrzędnych a[1 : n] i b[1 : n] Wy: Liczba będąca iloczynem skalarnym wektorów a i b. Model: EREW PRAM. Czas O(lg n) i O(n) procesorów. 11

12 Algorytm 2: Koniunkcja logiczna 1 1: result=true 2: for i = 1 to n in parallel do 3: if A[i]==FALSE then 4: result=false 5: end if 6: end for We: Tablica wartości logicznych A[1 : n]. Wy: result Model: ERCW PRAM. Czas O(1) i O(n) procesorów. Algorytm 3: Koniunkcja logiczna 2 1: result=false 2: for i = 1 to n in parallel do 3: result=a[i] 4: end for We: Tablica wartości logicznych A[1 : n]. Wy: result Model: ERCW-ECR PRAM. Czas O(1) i O(n) procesorów. Ćwiczenie 2 Uzasadnij poprawność powyższych algorytmów. 12

13 7 Obliczenia w drzewie binarnym Algorytm 4: Koniunkcja logiczna 3 1: p = n/2 2: while p > 0 do 3: for i = 1 to p in parallel do 4: A[i] = A[2i 1]A[2i] 5: end for 6: p = p/2 7: end while We: Tablica wartości logicznych A[1 : n]. Wy: result Model: EREW PRAM. Czas O(lg n) i O(n) procesorów. 8 Pointer jumping Pointer jumping (przeskakiwanie) pozwala na tworzenie równoległych algorytmów dla list. Przykład Problem list-ranking obliczanie odległości obiektu od końca listy. Niech A będzie tablicą obiektów, a Link[i] = j oznacza, że element j następuje w liście po elemencie i. Jeśli Link[i] = 0, to nie ma kolejnego elementu, i jest elementem ostatnim. Przez Head oznaczymy pierwszy element na liście. 13

14 Algorytm 5: List Ranking 1: for i = 1 to n in parallel do 2: Rank[i]=1 3: Next[i]=Link[i] 4: end for 5: for j = 1 to lg n do 6: for i = 1 to n in parallel do 7: if Next[i] 0 then 8: Rank[i]+ = Rank[N ext[i]] 9: Next[i] = Next[Next[i]] 10: end if 11: end for 12: end for We: Tablice A[1 : n], Link[1 : n]. Wy: Rank[1:n] Model: EREW PRAM. Czas O(lg n) i O(n) procesorów. Na rysunku znajdują się procesory oznaczone prostokątami w kolejności wskazywanej przez Link. Strzałki obrazują wartość Next, a liczby wpisane w każdy prostokąt wartości Rank

15 9 Metoda cyklu Eulera Niech G = (V, E) spójny graf prosty. Możemy utworzyć graf G o tym samym zbiorze wierzchołków V oraz zbiorze krawędzi E otrzymanym przez zastąpienie każdej nieskierowanej krawędzi E e = {u, v} poprzez dwie krawędzie skierowane (u, v) i (v, u). Fakt 2 Otrzymany w ten sposób graf jest Eulerowski. Rozważmy teraz drzewo T. Zaczniemy od znalezienia cyklu Eulera w T = (V, E ). Niech v V będzie wierzchołkiem w T, a N(v) = {u 0, u 1, u 2,..., u deg(v) 1 } listą sąsiadów. Istotne jest, że dla każdego wierzchołka v zbiór sąsiadów N(v) musi być uporządkowany. Dla każdej krawędzi (u i, v) definiujemy następnik succ(u i, v) = (v, u i+1(mod deg(v)) ) Fakt 3 Tak zdefiniowana funkcja succ (następnik) definiuje cykl Eulera w T. 15

16 Przykład Zakładając kolejność sąsiadów: 1 : {2}, 2 : {1, 3, 4}, 3 : {2}, 6 4 : {2, 5}, 5 5 : {4, 6, 7, 8}, 6 : {5}, 7 : {5}, 4 8 : {5, 9, 10}, 9 : {8}, 2 10 : {8, 11}, 11 : {10}, Na tym rysunku uzyskamy cykl: 1, 2, 3, 2, 4, 5, 6, 5, 7, 5, 8, 9, 8, 10, 11, 10, 8, 5, 4, 2, 1 Mając krawędzie drzewa ułożone w cykl możemy stosować metody typu pointer jumping dla drzew. Otrzymujemy w ten sposób metodę konstruowania algorytmów przy użyciu O(n) procesorów i logarytmicznym czasie działania. Ćwiczenie 3 Zaprojektuj efektywny algorytm równoległy obliczania sumy wszystkich elementów zapamiętanych w strukturze drzewiastej. 16

17 Kolejność Postorder We: Drzewo T = (V, E) z korzeniem r wyróżnionym poprzez relację p, gdzie p(u) = v - oznacza v jest rodzicem u w drzewie T oraz Cykl Eulera w T w formie relacji succ. Wy: Dla każdego wierzchołka jego numer w kolejności Postorder post(v). Algorytm 6: Kolejność Postorder 1: for każda krawędź (u, v) in parallel do 2: if u = p(v) then 3: krawędź ma wagę w(u, v) = 0 4: else 5: krawędź ma wagę w(u, v) = 1 6: end if 7: end for 8: Znajdź sumę wag na krawędziach stosując pointer jumping 9: for każdy wierzchołek (v) in parallel do 10: post(v) = suma prefiksowa wag w na łuku (v, p(v)). 11: end for Model: CREW PRAM, czas O(log n) i O(m) procesorów. 17

18 Przykład w(4, 2) = 0, w(2, 1) = 0, w(1, 2) = 1, w(2, 4) = 1, w(4, 3) = 0, w(3, 4) = 1, w(4, 5) = 0, w(5, 6) = 0, w(6, 5) = 1, w(5, 7) = 0, w(7, 5) = 1, w(5, 8) = 0, w(8, 10) = 0, w(10, 11) = 0, w(11, 10) = 1, w(10, 8) = 1, w(8, 5) = 1, w(5, 9) = 0, w(9, 5) = 1, w(5, 4) = Ćwiczenie 4 Zaprojektuj algorytm typu EREW PRAM, który w czasie O(log n) oblicza rozmiary poddrzew o korzeniach we wszystkich węzłach drzewa binarnego. 18

19 10 Algorytm Floyda-Warshalla Rozważmy graf G = (V, E), w którym z każdą krawędzią skojarzono nieujemną wagę w ij. Uzupełniając przekątną zerami: w ii = 0 i pozostałe wagi wartością nieskończoność: w ij = (jeśli nie ma krawędzi z i do j) otrzymamy macierz wag W = (w ij ). Algorytm Floyda-Warshalla pozwala obliczyć długość najkrótszej ścieżki z i do j, jak też i jej przebieg. Odtworzenie każdej ścieżki umożliwi macierz (p ij ), w której element p ij pokazuje wierzchołek poprzedni w stosunku do j w najkrótszej ścieżce z i do j. Algorytm 7: Floyd-Warshall 1: for i = 1 to n in parallel do 2: for j = 1 to n in parallel do 3: d ij = w ij 4: p ij = i 5: end for 6: end for 7: for k = 1 to n do 8: for każda para i, j, gdzie 0 < i, j n i i, j k in parallel do 9: if d ij > d ik + d kj then 10: d ij = d ik + d kj 11: p ij = p kj 12: end if 13: end for 14: end for We: Graf w postaci macierzy wag w ij Wy: Macierze d ij i P ij Model: CREW PRAM. Czas O(n) i O(n 2 ) procesorów. 19

20 Ćwiczenie 5 Zaprojektuj algorytm typu CREW PRAM, który w czasie O(n) znajdzie przechodnie domknięcie relacji binarnej. 11 Sortowanie przez ranking Czas O(log n) i O(n 2 ) procesorów. We: Wektor do posortowania X = [x 1,... x n ] Model: CREW PRAM. Algorytm 8: Sortowanie przez ranking 1: for każda para i, j, gdzie 0 < i, j n in parallel do 2: if x i > x j then 3: c ij = 1 4: else 5: c ij = 0 6: end if 7: end for 8: for i = 1 to n in parallel do 9: policz r i = n j=1 c ij 10: end for 11: for i = 1 to n in parallel do 12: ustaw element i na pozycji r i + 1 w tablicy wynikowej 13: end for 20

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

Algorytmy Równoległe i Rozproszone Część IV - Model PRAM Algorytmy Równoległe i Rozproszone Część IV - Model PRAM Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06

Bardziej szczegółowo

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

Algorytmy Równoległe i Rozproszone Część IV - Model PRAM Algorytmy Równoległe i Rozproszone Część IV - Model PRAM Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://www.kaims.pl/ kuszner/arir/ Wykład

Bardziej szczegółowo

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

Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Algorytmy Równoległe i Rozproszone Część V - Model PRAM II Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/ kuszner/arir/ 2005/06

Bardziej szczegółowo

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

Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami Równoległy algorytm wyznaczania bloków dla cyklicznego problemu przepływowego z przezbrojeniami dr inż. Mariusz Uchroński Wrocławskie Centrum Sieciowo-Superkomputerowe Agenda Cykliczny problem przepływowy

Bardziej szczegółowo

Algorytmy dla maszyny PRAM

Algorytmy dla maszyny PRAM Instytut Informatyki 21 listopada 2015 PRAM Podstawowym modelem służącym do badań algorytmów równoległych jest maszyna typu PRAM. Jej głównymi składnikami są globalna pamięć oraz zbiór procesorów. Do rozważań

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące.

Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Algorytmy Równoległe i Rozproszone Część X - Algorytmy samostabilizujące. Łukasz Kuszner pokój 209, WETI http://www.sphere.pl/ kuszner/ kuszner@sphere.pl Oficjalna strona wykładu http://www.sphere.pl/

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład. Prof. dr hab. inż. Jan Magott Algorytmy grafowe: podstawowe pojęcia, reprezentacja grafów, metody przeszukiwania, minimalne drzewa rozpinające, problemy

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2013/14 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Analiza ilościowa w przetwarzaniu równoległym

Analiza ilościowa w przetwarzaniu równoległym Komputery i Systemy Równoległe Jędrzej Ułasiewicz 1 Analiza ilościowa w przetwarzaniu równoległym 10. Analiza ilościowa w przetwarzaniu równoległym...2 10.1 Kryteria efektywności przetwarzania równoległego...2

Bardziej szczegółowo

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott

Struktury danych i złozoność obliczeniowa. Prof. dr hab. inż. Jan Magott Struktury danych i złozoność obliczeniowa Prof. dr hab. inż. Jan Magott Formy zajęć: Wykład 1 godz., Ćwiczenia 1 godz., Projekt 2 godz.. Adres strony z materiałami do wykładu: http://www.zio.iiar.pwr.wroc.pl/sdizo.html

Bardziej szczegółowo

Programowanie współbieżne Wstęp do obliczeń równoległych. Rafał Skinderowicz

Programowanie współbieżne Wstęp do obliczeń równoległych. Rafał Skinderowicz Programowanie współbieżne Wstęp do obliczeń równoległych Rafał Skinderowicz Plan wykładu Modele obliczeń równoległych Miary oceny wydajności algorytmów równoległych Prawo Amdahla Prawo Gustavsona Modele

Bardziej szczegółowo

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015

Analiza efektywności przetwarzania współbieżnego. Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak Grudzień 2015 Źródła kosztów przetwarzania współbieżnego interakcje między procesami

Bardziej szczegółowo

Programowanie równoległe

Programowanie równoległe Programowanie równoległe ELEMENTARNE ALGORYTMY (PODSTAWA: Z.CZECH. WPROWADZENIE DO OBLICZEŃ RÓWNOLEGŁYCH. PWN, 2010) Andrzej Baran baran@kft.umcs.lublin.pl Charakterystyka ilościowa algorytmów Przez algorytm

Bardziej szczegółowo

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

Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Porównanie wydajności CUDA i OpenCL na przykładzie równoległego algorytmu wyznaczania wartości funkcji celu dla problemu gniazdowego Mariusz Uchroński 3 grudnia 2010 Plan prezentacji 1. Wprowadzenie 2.

Bardziej szczegółowo

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie. Sortowanie Dane wejściowe: ciąg n-liczb (kluczy) (a 1, a 2, a 3,..., a n 1, a n ) Dane wyjściowe: permutacja ciągu wejściowego (a 1, a 2, a 3,..., a n 1, a n) taka, że a 1 a 2 a 3... a n 1 a n. Będziemy

Bardziej szczegółowo

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych

Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Algorytmy równoległe: prezentacja i ocena efektywności prostych algorytmów dla systemów równoległych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2018/19 Problem: znajdowanie

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Złożoność obliczeniowa, poprawność programów Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XII Jesień 2013 1 / 20 Złożoność obliczeniowa Problem Ile czasu

Bardziej szczegółowo

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych

Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Algorytmy równoległe: ocena efektywności prostych algorytmów dla systemów wielokomputerowych Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2014/15 Znajdowanie maksimum w zbiorze

Bardziej szczegółowo

Wprowadzenie do złożoności obliczeniowej

Wprowadzenie do złożoności obliczeniowej problemów Katedra Informatyki Politechniki Świętokrzyskiej Kielce, 16 stycznia 2007 problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów Plan wykładu 1 2 algorytmów 3 4 5 6 problemów problemów

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność

Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Algorytmy Równoległe i Rozproszone Część III - Układy kombinacyjne i P-zupełność Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://www.kaims.pl/

Bardziej szczegółowo

Wykład 8. Drzewo rozpinające (minimum spanning tree)

Wykład 8. Drzewo rozpinające (minimum spanning tree) Wykład 8 Drzewo rozpinające (minimum spanning tree) 1 Minimalne drzewo rozpinające - przegląd Definicja problemu Własności minimalnych drzew rozpinających Algorytm Kruskala Algorytm Prima Literatura Cormen,

Bardziej szczegółowo

Analiza efektywności przetwarzania współbieżnego

Analiza efektywności przetwarzania współbieżnego Analiza efektywności przetwarzania współbieżnego Wykład: Przetwarzanie Równoległe Politechnika Poznańska Rafał Walkowiak 1/4/2013 Analiza efektywności 1 Źródła kosztów przetwarzania współbieżnego interakcje

Bardziej szczegółowo

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Drzewa. Piotr Chrząstowski-Wachtel Wstęp do programowania Drzewa Piotr Chrząstowski-Wachtel Drzewa Drzewa definiują matematycy, jako spójne nieskierowane grafy bez cykli. Równoważne określenia: Spójne grafy o n wierzchołkach i n-1 krawędziach

Bardziej szczegółowo

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

Algorytmy równoległe. Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka 2010 Algorytmy równoległe Rafał Walkowiak Politechnika Poznańska Studia inżynierskie Informatyka Znajdowanie maksimum w zbiorze n liczb węzły - maksimum liczb głębokość = 3 praca = 4++ = 7 (operacji) n - liczność

Bardziej szczegółowo

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

Przykłady grafów. Graf prosty, to graf bez pętli i bez krawędzi wielokrotnych. Grafy Graf Graf (ang. graph) to zbiór wierzchołków (ang. vertices), które mogą być połączone krawędziami (ang. edges) w taki sposób, że każda krawędź kończy się i zaczyna w którymś z wierzchołków. Graf

Bardziej szczegółowo

Algorytmika Problemów Trudnych

Algorytmika Problemów Trudnych Algorytmika Problemów Trudnych Wykład 9 Tomasz Krawczyk krawczyk@tcs.uj.edu.pl Kraków, semestr letni 2016/17 plan wykładu Algorytmy aproksymacyjne: Pojęcie algorytmu aproksymacyjnego i współczynnika aproksymowalności.

Bardziej szczegółowo

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Kompresja danych Streszczenie Studia Dzienne Wykład 10, 1 Kwantyzacja wektorowa Kompresja danych Streszczenie Studia Dzienne Wykład 10, 28.04.2006 Kwantyzacja wektorowa: dane dzielone na bloki (wektory), każdy blok kwantyzowany jako jeden element danych. Ogólny

Bardziej szczegółowo

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325

prowadzący dr ADRIAN HORZYK /~horzyk e-mail: horzyk@agh tel.: 012-617 Konsultacje paw. D-13/325 PODSTAWY INFORMATYKI WYKŁAD 8. prowadzący dr ADRIAN HORZYK http://home home.agh.edu.pl/~ /~horzyk e-mail: horzyk@agh agh.edu.pl tel.: 012-617 617-4319 Konsultacje paw. D-13/325 DRZEWA Drzewa to rodzaj

Bardziej szczegółowo

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe

Wykład 1_2 Algorytmy sortowania tablic Sortowanie bąbelkowe I. Struktury sterujące.bezpośrednie następstwo (A,B-czynności) Wykład _2 Algorytmy sortowania tablic Sortowanie bąbelkowe Elementy języka stosowanego do opisu algorytmu Elementy Poziom koncepcji Poziom

Bardziej szczegółowo

Macierze. Rozdział Działania na macierzach

Macierze. Rozdział Działania na macierzach Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy

Bardziej szczegółowo

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI

ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI J.NAWROCKI, M. ANTCZAK, H. ĆWIEK, W. FROHMBERG, A. HOFFA, M. KIERZYNKA, S.WĄSIK ĆWICZENIE NR 1 WPROWADZENIE DO INFORMATYKI ZAD. 1. Narysowad graf nieskierowany. Zmodyfikowad go w taki sposób, aby stał

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 14c 2 Definicje indukcyjne Twierdzenia dowodzone przez indukcje Definicje indukcyjne Definicja drzewa

Bardziej szczegółowo

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY

MATEMATYKA DYSKRETNA - MATERIAŁY DO WYKŁADU GRAFY ERIAŁY DO WYKŁADU GRAFY Graf nieskierowany Grafem nieskierowanym nazywamy parę G = (V, E), gdzie V jest pewnym zbiorem skończonym (zwanym zbiorem wierzchołków grafu G), natomiast E jest zbiorem nieuporządkowanych

Bardziej szczegółowo

Analiza algorytmów zadania podstawowe

Analiza algorytmów zadania podstawowe Analiza algorytmów zadania podstawowe Zadanie 1 Zliczanie Zliczaj(n) 1 r 0 2 for i 1 to n 1 3 do for j i + 1 to n 4 do for k 1 to j 5 do r r + 1 6 return r 0 Jaka wartość zostanie zwrócona przez powyższą

Bardziej szczegółowo

Programowanie współbieżne Wykład 2. Iwona Kochańska

Programowanie współbieżne Wykład 2. Iwona Kochańska Programowanie współbieżne Wykład 2 Iwona Kochańska Miary skalowalności algorytmu równoległego Przyspieszenie Stały rozmiar danych N T(1) - czas obliczeń dla najlepszego algorytmu sekwencyjnego T(p) - czas

Bardziej szczegółowo

Algorytm. a programowanie -

Algorytm. a programowanie - Algorytm a programowanie - Program komputerowy: Program komputerowy można rozumieć jako: kod źródłowy - program komputerowy zapisany w pewnym języku programowania, zestaw poszczególnych instrukcji, plik

Bardziej szczegółowo

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

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott Struktury danych i złożoność obliczeniowa Wykład 7 Prof. dr hab. inż. Jan Magott Problemy NP-zupełne Transformacją wielomianową problemu π 2 do problemu π 1 (π 2 π 1 ) jest funkcja f: D π2 D π1 spełniająca

Bardziej szczegółowo

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne

E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne E: Rekonstrukcja ewolucji. Algorytmy filogenetyczne Przypominajka: 152 drzewo filogenetyczne to drzewo, którego liśćmi są istniejące gatunki, a węzły wewnętrzne mają stopień większy niż jeden i reprezentują

Bardziej szczegółowo

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia

Informacja w perspektywie obliczeniowej. Informacje, liczby i obliczenia Informacja w perspektywie obliczeniowej Informacje, liczby i obliczenia Cztery punkty odniesienia (dla pojęcia informacji) ŚWIAT ontologia fizyka UMYSŁ psychologia epistemologia JĘZYK lingwistyka nauki

Bardziej szczegółowo

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

Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, Grafy dzielimy na grafy skierowane i nieskierowane: Wykład 4 grafy Grafem nazywamy strukturę G = (V, E): V zbiór węzłów lub wierzchołków, E zbiór krawędzi, Grafy dzielimy na grafy skierowane i nieskierowane: Formalnie, w grafach skierowanych E jest podzbiorem

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część II - Sieci porównujące

Algorytmy Równoległe i Rozproszone Część II - Sieci porównujące Algorytmy Równoległe i Rozproszone Część II - Sieci porównujące Łukasz Kuszner pokój 209, WETI http://kaims.eti.pg.gda.pl/ kuszner/ kuszner@eti.pg.gda.pl Oficjalna strona wykładu http://kaims.eti.pg.gda.pl/

Bardziej szczegółowo

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Przedmiot fakultatywny 20h wykładu + 20h ćwiczeń 21 lutego 2014 Zasady zaliczenia 1 ćwiczenia (ocena): kolokwium, zadania programistyczne (implementacje algorytmów), praca na ćwiczeniach. 2 Wykład (egzamin)

Bardziej szczegółowo

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy

Wykład 3. Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Wykład 3 Złożoność i realizowalność algorytmów Elementarne struktury danych: stosy, kolejki, listy Dynamiczne struktury danych Lista jest to liniowo uporządkowany zbiór elementów, z których dowolny element

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, algoritme Dijkstry Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. XI Jesień 2013 1 / 25 Algorytmy zachłanne Strategia polegająca na

Bardziej szczegółowo

Macierzowe algorytmy równoległe

Macierzowe algorytmy równoległe Macierzowe algorytmy równoległe Zanim przedstawimy te algorytmy zapoznajmy się z metodami dekompozycji macierzy, możemy wyróżnić dwa sposoby dekompozycji macierzy: Dekompozycja paskowa - kolumnowa, wierszowa

Bardziej szczegółowo

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012

Projektowanie algorytmów równoległych. Zbigniew Koza Wrocław 2012 Projektowanie algorytmów równoległych Zbigniew Koza Wrocław 2012 Spis reści Zadniowo-kanałowy (task-channel) model algorytmów równoległych Projektowanie algorytmów równoległych metodą PACM Task-channel

Bardziej szczegółowo

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F

Bardziej szczegółowo

Digraf. 13 maja 2017

Digraf. 13 maja 2017 Digraf 13 maja 2017 Graf skierowany, digraf, digraf prosty Definicja 1 Digraf prosty G to (V, E), gdzie V jest zbiorem wierzchołków, E jest rodziną zorientowanych krawędzi, między różnymi wierzchołkami,

Bardziej szczegółowo

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

Porównanie algorytmów wyszukiwania najkrótszych ścieżek międz. grafu. Daniel Golubiewski. 22 listopada Instytut Informatyki Porównanie algorytmów wyszukiwania najkrótszych ścieżek między wierzchołkami grafu. Instytut Informatyki 22 listopada 2015 Algorytm DFS w głąb Algorytm przejścia/przeszukiwania w głąb (ang. Depth First

Bardziej szczegółowo

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to

Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to Złożoność obliczeniowa algorytmu ilość zasobów komputera jakiej potrzebuje dany algorytm. Pojęcie to wprowadzili J. Hartmanis i R. Stearns. Najczęściej przez zasób rozumie się czas oraz pamięć dlatego

Bardziej szczegółowo

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II

Drzewa spinające MST dla grafów ważonych Maksymalne drzewo spinające Drzewo Steinera. Wykład 6. Drzewa cz. II Wykład 6. Drzewa cz. II 1 / 65 drzewa spinające Drzewa spinające Zliczanie drzew spinających Drzewo T nazywamy drzewem rozpinającym (spinającym) (lub dendrytem) spójnego grafu G, jeżeli jest podgrafem

Bardziej szczegółowo

Znajdowanie skojarzeń na maszynie równoległej

Znajdowanie skojarzeń na maszynie równoległej 11 grudnia 2008 Spis treści 1 Skojarzenia w różnych klasach grafów Drzewa Grafy gęste Grafy regularne dwudzielne Claw-free graphs 2 Drzewa Skojarzenia w drzewach Fakt Wybierajac krawędź do skojarzenia

Bardziej szczegółowo

Matematyka dyskretna - 7.Drzewa

Matematyka dyskretna - 7.Drzewa Matematyka dyskretna - 7.Drzewa W tym rozdziale zajmiemy się drzewami: specjalnym przypadkiem grafów. Są one szczególnie przydatne do przechowywania informacji, umożliwiającego szybki dostęp do nich. Definicja

Bardziej szczegółowo

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

a) 7 b) 19 c) 21 d) 34 Zadanie 1. Pytania testowe dotyczące podstawowych własności grafów. Zadanie 2. Przy każdym z zadań może się pojawić polecenie krótkiej charakterystyki algorytmu. Zadanie 3. W zadanym grafie sprawdzenie

Bardziej szczegółowo

Programowanie dynamiczne cz. 2

Programowanie dynamiczne cz. 2 Programowanie dynamiczne cz. 2 Wykład 7 16 kwietnia 2019 (Wykład 7) Programowanie dynamiczne cz. 2 16 kwietnia 2019 1 / 19 Outline 1 Mnożenie ciągu macierzy Konstruowanie optymalnego rozwiązania 2 Podstawy

Bardziej szczegółowo

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania

1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja. 2. Schemat blokowy przedstawia algorytm obliczania 1. Nagłówek funkcji: int funkcja(void); wskazuje na to, że ta funkcja nie ma parametru i zwraca wartość na zewnątrz. nie ma parametru i nie zwraca wartości na zewnątrz. ma parametr o nazwie void i zwraca

Bardziej szczegółowo

Obliczenia równoległe

Obliczenia równoległe Instytut Informatyki Politechnika Śląska Obliczenia równoległe Opracował: Zbigniew J. Czech materiały dydaktyczne Gliwice, luty 1 Spis treści 1 Procesy współbieżne Podstawowe modele obliczeń równoległych

Bardziej szczegółowo

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek

Algorytmy i str ruktury danych. Metody algorytmiczne. Bartman Jacek Algorytmy i str ruktury danych Metody algorytmiczne Bartman Jacek jbartman@univ.rzeszow.pl Metody algorytmiczne - wprowadzenia Znamy strukturę algorytmów Trudność tkwi natomiast w podaniu metod służących

Bardziej szczegółowo

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer Realizacja algorytmu przez komputer Wstęp do informatyki Wykład UniwersytetWrocławski 0 Tydzień temu: opis algorytmu w języku zrozumiałym dla człowieka: schemat blokowy, pseudokod. Dziś: schemat logiczny

Bardziej szczegółowo

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

Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova Wstęp do sieci neuronowych, wykład 11 Łańcuchy Markova M. Czoków, J. Piersa 2010-12-21 1 Definicja Własności Losowanie z rozkładu dyskretnego 2 3 Łańcuch Markova Definicja Własności Losowanie z rozkładu

Bardziej szczegółowo

PROBLEMY NIEROZSTRZYGALNE

PROBLEMY NIEROZSTRZYGALNE PROBLEMY NIEROZSTRZYGALNE Zestaw 1: T Przykład - problem domina T Czy podanym zestawem kafelków można pokryć dowolny płaski obszar zachowując odpowiedniość kolorów na styku kafelków? (dysponujemy nieograniczoną

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Przydział ciągły (ang. contiguous allocation) cały plik zajmuje ciąg kolejnych bloków Przydział listowy (łańcuchowy, ang. linked

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Plan wykładu Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka

Bardziej szczegółowo

System plików warstwa fizyczna

System plików warstwa fizyczna System plików warstwa fizyczna Dariusz Wawrzyniak Przydział miejsca na dysku Zarządzanie wolną przestrzenią Implementacja katalogu Przechowywanie podręczne Integralność systemu plików Semantyka spójności

Bardziej szczegółowo

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ

PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ PROGRAMOWANIE SIECIOWE. METODA ŚCIEŻKI KRYTYCZNEJ Maciej Patan Uniwersytet Zielonogórski WPROWADZENIE Metody programowania sieciowego wprowadzono pod koniec lat pięćdziesiatych Ze względu na strukturę

Bardziej szczegółowo

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania,

Przygotowanie kilku wersji kodu zgodnie z wymogami wersji zadania, Przetwarzanie równoległe PROJEKT OMP i CUDA Temat projektu dotyczy analizy efektywności przetwarzania równoległego realizowanego przy użyciu komputera równoległego z procesorem wielordzeniowym z pamięcią

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Wykład 3 2 Złożoność obliczeniowa algorytmów Notacja wielkie 0 Notacja Ω i Θ Algorytm Hornera Przykłady rzędów

Bardziej szczegółowo

Minimalne drzewa rozpinające

Minimalne drzewa rozpinające KNM UŚ 26-28 listopada 2010 Ostrzeżenie Wprowadzenie Motywacja Definicje Niektóre pojęcia pojawiające się podczas tego referatu są naszymi autorskimi tłumaczeniami z języka angielskiego. Nie udało nam

Bardziej szczegółowo

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

Zofia Kruczkiewicz, Algorytmu i struktury danych, Wykład 14, 1 Wykład Algorytmy grafowe metoda zachłanna. Właściwości algorytmu zachłannego:. W przeciwieństwie do metody programowania dynamicznego nie występuje etap dzielenia na mniejsze realizacje z wykorzystaniem

Bardziej szczegółowo

Pliki. Operacje na plikach w Pascalu

Pliki. Operacje na plikach w Pascalu Pliki. Operacje na plikach w Pascalu ścieżka zapisu, pliki elementowe, tekstowe, operacja plikowa, etapy, assign, zmienna plikowa, skojarzenie, tryby otwarcia, reset, rewrite, append, read, write, buforowanie

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2014 1 / 24 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo

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

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów Wykład 2. Reprezentacja komputerowa grafów 1 / 69 Macierz incydencji Niech graf G będzie grafem nieskierowanym bez pętli o n wierzchołkach (x 1, x 2,..., x n) i m krawędziach (e 1, e 2,..., e m). 2 / 69

Bardziej szczegółowo

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW

ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW ZŁOŻONOŚĆ OBLICZENIOWA ALGORYTMÓW NIEDETERMINISTYCZNE MASZYNY TURINGA Bartosz Zieliński Katedra Fizyki Teoretycznej i Informatyki Zima 2011-2012 NIEDETERMINISTYCZNE MASZYNY TURINGA DEFINICJA: NIEDETERMINISTYCZNA

Bardziej szczegółowo

AiSD zadanie trzecie

AiSD zadanie trzecie AiSD zadanie trzecie Gliwiński Jarosław Marek Kruczyński Konrad Marek Grupa dziekańska I5 5 czerwca 2008 1 Wstęp Celem postawionym przez zadanie trzecie było tzw. sortowanie topologiczne. Jest to typ sortowania

Bardziej szczegółowo

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Listy. Piotr Chrząstowski-Wachtel Wstęp do programowania Listy Piotr Chrząstowski-Wachtel Do czego stosujemy listy? Listy stosuje się wszędzie tam, gdzie występuje duży rozrzut w możliwym rozmiarze danych, np. w reprezentacji grafów jeśli

Bardziej szczegółowo

Sprawozdanie do zadania numer 2

Sprawozdanie do zadania numer 2 Sprawozdanie do zadania numer 2 Michał Pawlik 29836 Temat: Badanie efektywności algorytmów grafowych w zależności od rozmiaru instancji oraz sposobu reprezentacji grafu w pamięci komputera 1 WSTĘP W ramach

Bardziej szczegółowo

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany , 1 2 3, czas zamortyzowany zajęcia 3. Wojciech Śmietanka, Tomasz Kulczyński, Błażej Osiński rozpinajace, 1 2 3 rozpinajace Mamy graf nieskierowany, ważony, wagi większe od 0. Chcemy wybrać taki podzbiór

Bardziej szczegółowo

Wykład z Technologii Informacyjnych. Piotr Mika

Wykład z Technologii Informacyjnych. Piotr Mika Wykład z Technologii Informacyjnych Piotr Mika Uniwersalna forma graficznego zapisu algorytmów Schemat blokowy zbiór bloków, powiązanych ze sobą liniami zorientowanymi. Jest to rodzaj grafu, którego węzły

Bardziej szczegółowo

Algorytmy i Struktury Danych, 2. ćwiczenia

Algorytmy i Struktury Danych, 2. ćwiczenia Algorytmy i Struktury Danych, 2. ćwiczenia 2015-10-09 Spis treści 1 Szybkie potęgowanie 1 2 Liczby Fibonacciego 2 3 Dowód, że n 1 porównań jest potrzebne do znajdowania minimum 2 4 Optymalny algorytm do

Bardziej szczegółowo

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1

Skalowalność obliczeń równoległych. Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność obliczeń równoległych Krzysztof Banaś Obliczenia Wysokiej Wydajności 1 Skalowalność Przy rozważaniu wydajności przetwarzania (obliczeń, komunikacji itp.) często pojawia się pojęcie skalowalności

Bardziej szczegółowo

Algebra WYKŁAD 3 ALGEBRA 1

Algebra WYKŁAD 3 ALGEBRA 1 Algebra WYKŁAD 3 ALGEBRA 1 Liczby zespolone Postać wykładnicza liczby zespolonej Niech e oznacza stałą Eulera Definicja Równość e i cos isin nazywamy wzorem Eulera. ALGEBRA 2 Liczby zespolone Każdą liczbę

Bardziej szczegółowo

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno

Podstawy programowania 2. Temat: Drzewa binarne. Przygotował: mgr inż. Tomasz Michno Instrukcja laboratoryjna 5 Podstawy programowania 2 Temat: Drzewa binarne Przygotował: mgr inż. Tomasz Michno 1 Wstęp teoretyczny Drzewa są jedną z częściej wykorzystywanych struktur danych. Reprezentują

Bardziej szczegółowo

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia

Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Algorytmy Równoległe i Rozproszone Część VI - Systemy rozproszone, podstawowe pojęcia Łukasz Kuszner pokój 209, WETI http://www.kaims.pl/ kuszner/ kuszner@kaims.pl Oficjalna strona wykładu http://www.kaims.pl/

Bardziej szczegółowo

Matematyczne Podstawy Informatyki

Matematyczne Podstawy Informatyki Matematyczne Podstawy Informatyki dr inż. Andrzej Grosser Instytut Informatyki Teoretycznej i Stosowanej Politechnika Częstochowska Rok akademicki 2013/2014 Informacje podstawowe 1. Konsultacje: pokój

Bardziej szczegółowo

Numeryczna algebra liniowa

Numeryczna algebra liniowa Numeryczna algebra liniowa Numeryczna algebra liniowa obejmuje szereg algorytmów dotyczących wektorów i macierzy, takich jak podstawowe operacje na wektorach i macierzach, a także rozwiązywanie układów

Bardziej szczegółowo

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.)

wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) egzamin podstawowy 7 lutego 2017 r. wstęp do informatyki i programowania część testowa (25 pyt. / 60 min.) Instytut Informatyki Uniwersytetu Wrocławskiego Paweł Rzechonek imię, nazwisko i nr indeksu:..............................................................

Bardziej szczegółowo

Algorytmy wyznaczania centralności w sieci Szymon Szylko

Algorytmy wyznaczania centralności w sieci Szymon Szylko Algorytmy wyznaczania centralności w sieci Szymon Szylko Zakład systemów Informacyjnych Wrocław 10.01.2008 Agenda prezentacji Cechy sieci Algorytmy grafowe Badanie centralności Algorytmy wyznaczania centralności

Bardziej szczegółowo

1. Analiza algorytmów przypomnienie

1. Analiza algorytmów przypomnienie 1. Analiza algorytmów przypomnienie T.H. Cormen, C.E. Leiserson, R.L. Rivest, C. Stein Wprowadzenie do algorytmów, rozdziały 1-4 Wydawnictwa naukowo-techniczne (2004) Jak mierzyć efektywność algorytmu?

Bardziej szczegółowo

Zasady analizy algorytmów

Zasady analizy algorytmów Zasady analizy algorytmów A więc dziś w programie: - Kilka ważnych definicji i opisów formalnych - Złożoność: czasowa i pamięciowa - Kategorie problemów - Jakieś przykłady Problem: Zadanie możliwe do rozwiązania

Bardziej szczegółowo

Matematyka dyskretna

Matematyka dyskretna Matematyka dyskretna Wykład 13: Teoria Grafów Gniewomir Sarbicki Literatura R.J. Wilson Wprowadzenie do teorii grafów Definicja: Grafem (skończonym, nieskierowanym) G nazywamy parę zbiorów (V (G), E(G)),

Bardziej szczegółowo

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne

Algorytmy i struktury danych. Co dziś? Tytułem przypomnienia metoda dziel i zwyciężaj. Wykład VIII Elementarne techniki algorytmiczne Algorytmy i struktury danych Wykład VIII Elementarne techniki algorytmiczne Co dziś? Algorytmy zachłanne (greedyalgorithms) 2 Tytułem przypomnienia metoda dziel i zwyciężaj. Problem można podzielić na

Bardziej szczegółowo

Sortowanie topologiczne skierowanych grafów acyklicznych

Sortowanie topologiczne skierowanych grafów acyklicznych Sortowanie topologiczne skierowanych grafów acyklicznych Metody boolowskie w informatyce Robert Sulkowski http://robert.brainusers.net 23 stycznia 2010 1 Definicja 1 (Cykl skierowany). Niech C = (V, A)

Bardziej szczegółowo

Ogólne wiadomości o grafach

Ogólne wiadomości o grafach Ogólne wiadomości o grafach Algorytmy i struktury danych Wykład 5. Rok akademicki: / Pojęcie grafu Graf zbiór wierzchołków połączonych za pomocą krawędzi. Podstawowe rodzaje grafów: grafy nieskierowane,

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Algorytmy i Struktury Danych Kopce Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 11 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych Wykład 11 1 / 69 Plan wykładu

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Algorytmy sortujące 1

Algorytmy sortujące 1 Algorytmy sortujące 1 Sortowanie Jeden z najczęściej występujących, rozwiązywanych i stosowanych problemów. Ułożyć elementy listy (przyjmujemy: tablicy) w rosnącym porządku Sortowanie może być oparte na

Bardziej szczegółowo

Materiały dla finalistów

Materiały dla finalistów Materiały dla finalistów Malachoviacus Informaticus 2016 11 kwietnia 2016 Wprowadzenie Poniższy dokument zawiera opisy zagadnień, które będą niezbędne do rozwiązania zadań w drugim etapie konkursu. Polecamy

Bardziej szczegółowo

Programowanie obiektowe

Programowanie obiektowe Programowanie obiektowe Sieci powiązań Paweł Daniluk Wydział Fizyki Jesień 2015 P. Daniluk (Wydział Fizyki) PO w. IX Jesień 2015 1 / 21 Sieci powiązań Można (bardzo zgrubnie) wyróżnić dwa rodzaje powiązań

Bardziej szczegółowo