Podstawowe algorytmy grafowe i ich zastosowania

Save this PDF as:
Wielkość: px
Rozpocząć pokaz od strony:

Download "Podstawowe algorytmy grafowe i ich zastosowania"

Transkrypt

1 Podstawowe algorytmy grafowe i ich zastosowania Autor projektu: dr Andrzej Mróz (UMK) Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania Programu Operacyjnego Kapitaª Ludzki 1 / 48

2 Przeszukiwanie grafu Przeszukiwanie (przegl danie) grafu = systematyczne przechodzenie wzdªu» jego kraw dzi w celu odwiedzenia wszystkich wierzchoªków. Sªu»y m.in. do zbierania informacji o strukturze grafu. Algorytmy grafowe cz sto zaczyna si od przeszukania wej±ciowego grafu. Wiele bardziej zaawansowanych algorytmów grafowych jest modykacj podstawowych algorytmów przeszukiwania. 2 / 48

3 Przeszukiwanie grafu Dwie metody przeszukiwania grafu: w gª b (ang. depth-rst search, DFS), wszerz (ang. breadth-rst search, BFS). W obu metodach b dziemy iterowa po s siadach danego wierzchoªka. Dlatego najwygodniejsz reprezentacj grafu s listy s siedztwa. Oznaczenia: Adj = tablica list s siedztwa; dla u V, Adj[u] = lista s siadów u w grae G. Uwaga Iteracj po s siadach danego wierzchoªka mo»na ªatwo zrealizowa równie» na macierzy s siedztwa. Jest to jednak bardziej kosztowne w sensie zªo»ono±ci obliczeniowej. 3 / 48

4 Przeszukiwanie grafu w gª b Ustalmy graf niezorientowany G = (V, E). Z ustalonego wierzchoªka ¹ródªowego w si gamy coraz gª biej w graf, je»eli jest to tylko mo»liwe. badamy wszystkie niezbadane dot d kraw dzie ostatnio odwiedzonego wierzchoªka v, gdy wszystkie kraw dzie v s zbadane, wracamy do wierzchoªka, z którego v zostaª odwiedzony, proces kontynuujemy dopóki wszystkie wierzchoªki osi galne z wierzchoªka ¹ródªowego w nie zostan odwiedzone. Je»eli po powy»szym procesie pozostanie jakikolwiek nie odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj c go jako nowy wierzchoªek ¹ródªowy. Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan odwiedzone. 4 / 48

5 Przeszukiwanie grafu w gª b Nale»y zatem zapami tywa stany, w jakich znajduj si w danej chwili wierzchoªki. Do zapisania aktualnego stanu wierzchoªka u»ywamy jednego z trzech kolorów: Uwaga biaªy wszystkie wierzchoªki na pocz tku; wierzchoªek odwiedzany po raz pierwszy kolorujemy na szaro; wierzchoªek przetworzony (= lista jego s siadów jest caªkowicie zbadana) kolorujemy na czarno. Tak naprawd w najprostszej implementacji wystarcz dwa stany: nieodwiedzony i odwiedzony. Jednak dokªadniejsze rozró»nienie stanów pozwala lepiej zrozumie ide DFS oraz jest wykorzystywane w niektórych zastosowaniach. 5 / 48

6 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; 6 / 48

7 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

8 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

9 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

10 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

11 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

12 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

13 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

14 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

15 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

16 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

17 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

18 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

19 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

20 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

21 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

22 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

23 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

24 Przeszukiwanie grafu w gª b DFS-Visit(G, u) 2 kolor(u) := szary; 3 for ka»dy v Adj[u] do 4 if kolor(v) = biaªy then DFS-Visit(G, v); 5 kolor(u) := czarny; 6 end; / 48

25 Przeszukiwanie grafu w gª b Zauwa»my,»e po wywoªaniu DFS-Visit dla wierzchoªka u wierzchoªki, które nie s osi galne z u pozostan nieodwiedzone (biaªe). Aby zatem przejrze caªy graf, nale»y wywoªywa DFS-Visit dopóki b d biaªe wierzchoªki. Peªen przebieg algorytmu DFS jest realizowany przez poni»sz procedur : DFS(G) 2 for ka»dy u V(G) do 3 kolor(u) := biaªy; 4 for ka»dy u V(G) do 5 if kolor(u) = biaªy then 6 DFS-Visit(G, u); 7 end; 7 / 48

26 Przeszukiwanie grafu w gª b Zªo»ono± czasowa: O( V + E ): odwiedzamy ka»dy wierzchoªek i (dwukrotnie!) ka»d kraw d¹. Zªo»ono± pami ciowa: O( V ): przechowywanie kolorów, przechowywanie wierzchoªków na stosie rekurencji. 8 / 48

27 Badanie spójno±ci Podstawowe zastosowania: Sprawdzanie spójno±ci grafu. Wyznaczanie skªadowych spójno±ci grafu. Zauwa»my,»e w procedurze DFS wywoªujemy DFS-Visit dokªadnie tyle razy, ile jest skªadowych spójno±ci w grae G. W szczególno±ci, gdy graf jest spójny, DFS-Visit zostanie wywoªana dokªadnie raz przez procedur DFS. Nietrudno uzupeªni procedur DFS o kod zliczaj cy skªadowe spójno±ci, jak równie» przypisuj cy wierzchoªkom numer skªadowej. 9 / 48

28 DFS - inne zastosowania Inne zastosowania: Wyznaczanie silnie spójnych skªadowych (w wersji dla grafu skierowanego). Sortowanie topologiczne grafu zorientowanego (bez zorientowanych cykli). Generowanie labiryntów. Znajdowanie drogi w labiryncie. Zainteresowanych odsyªamy do literatury (patrz te» dodatkowe materiaªy do wykªadu i zaj laboratoryjnych). 10 / 48

29 Przeszukiwanie grafu wszerz Z ustalonego wierzchoªka ¹ródªowego s przegl damy kolejne wierzchoªki z niego osi galne. wierzchoªki w odlegªo±ci (=najmniejszej liczbie kraw dzi) k od ¹ródªa s odwiedzane przed wierzchoªkami w odlegªo±ci k + 1, granica mi dzy wierzchoªkami odwiedzonymi i nieodwiedzonymi jest przekraczana jednocze±nie na caªej jej szeroko±ci. Je»eli po powy»szym procesie pozostanie jakikolwiek nie odwiedzony wierzchoªek u, kontynuujemy przeszukiwanie traktuj c go jako nowy wierzchoªek ¹ródªowy. Caªy proces powtarzamy, a» wszystkie wierzchoªki w grae zostan odwiedzone. 11 / 48

30 Przeszukiwanie grafu wszerz Ka»dy wierzchoªek posiada jeden z 3 kolorów: biaªy, szary lub czarny (podobnie jak w DFS). Na pocz tku wszystkie wierzchoªki s biaªe. Wierzchoªki szare s przechowywane w kolejce FIFO. Po jej opuszczeniu kolorujemy je na czarno. 12 / 48

31 Kolejka FIFO Kolejka FIFO Q jest dynamiczn struktur danych w formie ci gu, do której mo»na doª czy skªadnik tylko w jednym ko«cu (na ko«cu kolejki - tail), a usun tylko w drugim ko«cu (na pocz tku kolejki - head). Mamy zatem dwie podstawowe operacje: Enqueue(Q, v) = dodanie elementu v na ko«cu kolejki, Dequeue(Q) = usuni cie elementu z pocz tku kolejki. Dodatkowo wykorzystamy operacj Uwaga Head(Q) = zwrócenie elementu z pocz tku kolejki (bez usuwania go). Kolejk implementujemy przy u»yciu struktur wska¹nikowych. Mo»na te» zasymulowa jej dziaªanie na zwykªej (statycznej) tablicy, albo wykorzysta gotowe struktury biblioteczne, np. queue biblioteki STL w C++: 13 / 48

32 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end 14 / 48

33 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: 14 / 48

34 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

35 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

36 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

37 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

38 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

39 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

40 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

41 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

42 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

43 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

44 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: / 48

45 Przeszukiwanie grafu wszerz BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 Enqueue(Q, v) 10 end; 11 Dequeue(Q); 12 kolor(u) := czarny 13 end 14 end Q: 26 / 48

46 Przeszukiwanie grafu wszerz Zauwa»my,»e po wywoªaniu BFS-Visit dla wierzchoªka u wierzchoªki, które nie s osi galne z u pozostan nieodwiedzone (biaªe). Aby zatem przejrze caªy graf, nale»y wywoªywa BFS-Visit dopóki b d biaªe wierzchoªki. Peªen przebieg algorytmu BFS jest realizowany przez poni»sz procedur : BFS(G) 2 for ka»dy u V(G) do 3 kolor(u) := biaªy; 4 for ka»dy u V(G) do 5 if kolor(u) = biaªy then 6 BFS-Visit(G, u); 7 end; 27 / 48

47 Przeszukiwanie grafu wszerz Zªo»ono± czasowa: O( V + E ) (analogicznie jak dla DFS). Zªo»ono± pami ciowa: O( V ) (przechowywanie kolorów, kolejka). 28 / 48

48 Najkrótsza droga Zastosowanie: znajdowanie najkrótszej drogi pomi dzy wierzchoªkami s i v. Modykacja procedury BFS-Visit: przechowywanie wektora poprzedników π. Tj. poprzednikiem wierzchoªka v na najkrótszej drodze z s do v jest wierzchoªek π[v]; poprzednikiem wierzchoªka π[v] jest wierzchoªek π[π[v]] / 48

49 Najkrótsza droga Przygotowanie: for ka»dy u V(G) do begin kolor(u) := biaªy; π[u] := end; 30 / 48

50 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end 31 / 48

51 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: 31 / 48

52 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

53 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

54 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

55 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

56 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

57 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

58 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

59 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

60 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

61 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

62 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: / 48

63 Zmodykowany BFS BFS-Visit(G, s) 2 kolor(s) := szary; 3 Q := {s}; 4 while Q <> do begin 5 u := Head(Q); 6 for ka»dy v Adj[u] do 7 if kolor(v) = biaªy then begin 8 kolor(v) := szary; 9 π[v] := u; 10 Enqueue(Q, v) 11 end; 12 Dequeue(Q); 13 kolor(u) := czarny 14 end 15 end w π[w] Q: 43 / 48

64 Odczytanie dróg Po wykonaniu BFS-Visit(G, s) w wektorze π zakodowane s najkrótsze drogi z wierzchoªka ¹ródªowego s do wszystkich wierzchoªków w osi galnych z s. W naszym przykªadzie s = 1: w π[w] Np. najkrótsza droga z s = 1 do 6 to: 6 π[6] π[π[6]], czyli A najkrótsza droga z s = 1 do 3 to: 3 π[3] π[π[3]], czyli / 48

65 Odczytanie dróg Odczytanie i wypisanie drogi z s do v od ko«ca mo»e by zrealizowane przez poni»szy pseudokod: PrintPathRev(s, v) 2 if s = v then wypisz(v) 3 else if π[v] = then wypisz('nie ma drogi') 4 else begin 5 while v <> s do begin 6 wypisz(v); 7 v := π[v] 8 end; 9 wypisz(s) 10 end 11 end; 45 / 48

66 Odczytanie dróg Jednak bardziej naturalnym byªoby wypisanie drogi z s do v od pocz tku. Do tego mo»e posªu»y poni»sza elegancka procedura rekurencyjna: PrintPath(s, v) 2 if s = v then wypisz(v) 3 else if π[v] = then wypisz('nie ma drogi') 4 else begin 5 PrintPath(s, π[v]); 6 wypisz(v) 7 end 8 end; 46 / 48

67 Podsumowanie Je»eli interesuje nas najkrótsza droga pomi dzy dwoma ustalonymi wierzchoªkami s i t, to: uruchamiamy BFS-Visit dla wierzchoªka s, odczytujemy drog z s do t z wektora π. Wektor π b dzie zawieraª, jako skutek uboczny, najkrótsze drogi z s do wszystkich wierzchoªków osi galnych z s (nie tylko t!). Wyliczania tej nadmiarowej informacji nie da si tu unikn. 47 / 48

68 Podsumowanie Zauwa»my,»e tu przez najkrótsz drog rozumieli±my drog o najmniejszej liczbie kraw dzi. Mo»na rozwa»a grafy, w których kraw dzie maj dªugo± (lub inny koszt) i poszukiwa najkrótszych dróg wzgl dem tego parametru. Tym zagadnieniem zajmiemy si na nast pnym wykªadzie. 48 / 48

Podstawowe algorytmy grafowe i ich zastosowania

Podstawowe algorytmy grafowe i ich zastosowania Podstawowe algorytmy grafowe i ich zastosowania dr Andrzej Mróz (UMK w Toruniu) 2013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt pn. Wzmocnienie

Bardziej szczegółowo

Najkrótsze drogi w grafach z wagami

Najkrótsze drogi w grafach z wagami Najkrótsze drogi w grafach z wagami Autor projektu: dr Andrzej Mróz (UMK) Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych realizowany w ramach Poddziaªania

Bardziej szczegółowo

Najkrótsze drogi w grafach z wagami

Najkrótsze drogi w grafach z wagami Najkrótsze drogi w grafach z wagami dr Andrzej Mróz (UMK w Toruniu) 013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt pn. Wzmocnienie potencjaªu

Bardziej szczegółowo

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska

Grafy. Andrzej Jastrz bski. Akademia ET I. Politechnika Gda«ska Andrzej Jastrz bski Akademia ET I Graf Grafem nazywamy par G = (V, E), gdzie V to zbiór wierzchoªków, E zbiór kraw dzi taki,»e E {{u, v} : u, v V u v}. Wierzchoªki v, u V s s siaduj ce je±li s poª czone

Bardziej szczegółowo

c Marcin Sydow Grafy i Zastosowania BFS DFS 4: Przeszukiwanie Grafów (BFS, DFS i zastosowania) DFS nieskierowane DFS skierowane Podsumowanie

c Marcin Sydow Grafy i Zastosowania BFS DFS 4: Przeszukiwanie Grafów (BFS, DFS i zastosowania) DFS nieskierowane DFS skierowane Podsumowanie 4: Przeszukiwanie Grafów (, i zastosowania) Spis zagadnie«przeszukiwanie grafów (rola, schemat ogólny, zastosowania) realizacje (kolejka, stos, rekurencja) przeszukiwanie wszerz zastosowania przeszukiwanie

Bardziej szczegółowo

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2

Algorytmy grafowe 2. Andrzej Jastrz bski. Akademia ETI. Politechnika Gda«ska Algorytmy grafowe 2 Algorytmy grafowe 2 Andrzej Jastrz bski Akademia ETI Minimalne drzewo spinaj ce Drzewem nazywamy spójny graf nie posiadaj cy cyklu. Liczba wierzchoªków drzewa jest o jeden wi ksza od liczby jego kraw dzi.

Bardziej szczegółowo

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II.

Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II. Zadania z kolokwiów ze Wst pu do Informatyki. Semestr II. Poni»sze zadania s wyborem zada«z kolokwiów ze Wst pu do Informatyki jakie przeprowadziªem w ci gu ostatnich lat. Marek Zawadowski Zadanie 1 Napisz

Bardziej szczegółowo

Minimalne drzewa rozpinaj ce

Minimalne drzewa rozpinaj ce y i y i drzewa Spis zagadnie«y i drzewa i lasy cykle fundamentalne i rozci cia fundamentalne wªasno±ci cykli i rozci minimalne drzewa algorytm algorytm Drzewo y i spójnego, nieskierowanego grafu prostego

Bardziej szczegółowo

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na.

Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA. W obu podpunktach zakªadamy,»e kolejno± ta«ców jest wa»na. Zad. 1 Zad. 2 Zad. 3 Zad. 4 Zad. 5 SUMA Zadanko 1 (12p.) Na imprezie w Noc Kupaªy s 44 dziewczyny. Nosz one 11 ró»nych imion, a dla ka»dego imienia s dokªadnie 4 dziewczyny o tym imieniu przy czym ka»da

Bardziej szczegółowo

Teoria grafów i jej zastosowania. 1 / 126

Teoria grafów i jej zastosowania. 1 / 126 Teoria grafów i jej zastosowania. 1 / 126 Mosty królewieckie W Królewcu, na rzece Pregole znajduj si dwie wyspy poª czone ze sob, a tak»e z brzegami za pomoc siedmiu mostów, tak jak pokazuje rysunek 2

Bardziej szczegółowo

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe.

Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Temat: Struktury danych do reprezentacji grafów. Wybrane algorytmy grafowe. Oznaczenia G = V, E - graf bez wag, gdzie V - zbiór wierzchołków, E- zbiór krawdzi V = n - liczba wierzchołków grafu G E = m

Bardziej szczegółowo

12: Znajdowanie najkrótszych ±cie»ek w grafach

12: Znajdowanie najkrótszych ±cie»ek w grafach 12: Znajdowanie najkrótszych ±cie»ek w grafach Spis zagadnie«problem najkrótszych ±cie»ek z jednym ¹ródªem Rozwi zanie sznurkowe kraw dzi Wariant 1: Wariant 2: nieujemne kraw dzie (Dijkstra) Wariant 3:

Bardziej szczegółowo

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie

c Marcin Sydow Spójno± Grafy i Zastosowania Grafy Eulerowskie 2: Drogi i Cykle Grafy Hamiltonowskie Podsumowanie 2: Drogi i Cykle Spis Zagadnie«drogi i cykle spójno± w tym sªaba i silna k-spójno± (wierzchoªkowa i kraw dziowa) dekompozycja grafu na bloki odlegªo±ci w grae i poj cia pochodne grafy Eulera i Hamiltona

Bardziej szczegółowo

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV

Algorytmy grafowe. Wykład 2 Przeszukiwanie grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 2 Przeszukiwanie grafów Tomasz Tyksiński CDV Rozkład materiału 1. Podstawowe pojęcia teorii grafów, reprezentacje komputerowe grafów 2. Przeszukiwanie grafów 3. Spójność grafu,

Bardziej szczegółowo

Lab. 02: Algorytm Schrage

Lab. 02: Algorytm Schrage Lab. 02: Algorytm Schrage Andrzej Gnatowski 5 kwietnia 2015 1 Opis zadania Celem zadania laboratoryjnego jest zapoznanie si z jednym z przybli»onych algorytmów sªu» cych do szukania rozwi za«znanego z

Bardziej szczegółowo

Elementy teorii grafów, sposoby reprezentacji grafów w komputerze

Elementy teorii grafów, sposoby reprezentacji grafów w komputerze Elementy teorii grafów, sposoby reprezentacji grafów w komputerze Autor projektu: dr Andrzej Mróz (UMK) Projekt pn. Wzmocnienie potencjaªu dydaktycznego UMK w Toruniu w dziedzinach matematyczno-przyrodniczych

Bardziej szczegółowo

Programowanie i struktury danych 1 / 44

Programowanie i struktury danych 1 / 44 Programowanie i struktury danych 1 / 44 Lista dwukierunkowa Lista dwukierunkowa to liniowa struktura danych skªadaj ca si z ci gu elementów, z których ka»dy pami ta swojego nast pnika i poprzednika. Operacje

Bardziej szczegółowo

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach

c Marcin Sydow Przepªywy Grafy i Zastosowania Podsumowanie 12: Przepªywy w sieciach 12: w sieciach Spis zagadnie«sieci przepªywowe przepªywy w sieciach ±cie»ka powi kszaj ca tw. Forda-Fulkersona Znajdowanie maksymalnego przepªywu Zastosowania przepªywów Sieci przepªywowe Sie przepªywowa

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Cz ± druga Prowadz cy: dr Andrzej Mróz, Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika 1 / 82 Rekurencja Procedura (funkcja) rekurencyjna wywoªuje sam siebie.

Bardziej szczegółowo

Elementy teorii grafów, sposoby reprezentacji grafów w komputerze

Elementy teorii grafów, sposoby reprezentacji grafów w komputerze Elementy teorii grafów, sposoby reprezentacji grafów w komputerze dr Andrzej Mróz (UMK w Toruniu) 2013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt

Bardziej szczegółowo

TEORIA GRAFÓW. Graf skierowany dla ka»dej kraw dzi (oznaczanej tutaj jako ªuk) para wierzchoªków incydentnych jest par uporz dkowan {u, v}.

TEORIA GRAFÓW. Graf skierowany dla ka»dej kraw dzi (oznaczanej tutaj jako ªuk) para wierzchoªków incydentnych jest par uporz dkowan {u, v}. Podstawowe denicje: TEORIA GRAFÓW Graf (nieskierowany) G = (V, E) struktura skªadaj ca si ze: zbioru wierzchoªków V = {,,..., v n } oraz zbioru kraw dzi E = {e 1, e 2,..., e m }. Z ka»d kraw dzi e skojarzona

Bardziej szczegółowo

Minimalne drzewo rozpinaj ce

Minimalne drzewo rozpinaj ce Minimalne drzewo rozpinaj ce dr Andrzej Mróz (UMK w Toruniu) 013 Projekt wspóªnansowany ze ±rodków Unii Europejskiej w ramach Europejskiego Funduszu Spoªecznego Projekt pn. Wzmocnienie potencjaªu dydaktycznego

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

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

Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw

Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw Mosty królewieckie, chi«ski listonosz i... kojarzenie maª»e«stw 3 kwietnia 2014 roku 1 / 106 Mosty królewieckie W Królewcu, na rzece Pregole znajduj si dwie wyspy poª czone ze sob, a tak»e z brzegami za

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

Listy i operacje pytania

Listy i operacje pytania Listy i operacje pytania Iwona Polak iwona.polak@us.edu.pl Uniwersytet l ski Instytut Informatyki pa¹dziernika 07 Który atrybut NIE wyst puje jako atrybut elementów listy? klucz elementu (key) wska¹nik

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 Podstawowe pojęcia Definition Graf = wierzchołki + krawędzie. Krawędzie muszą mieć różne końce. Między dwoma wierzchołkami może

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 03/0 Przeszukiwanie w głąb i wszerz I Przeszukiwanie metodą

Bardziej szczegółowo

Egzaminy i inne zadania. Semestr II.

Egzaminy i inne zadania. Semestr II. Egzaminy i inne zadania. Semestr II. Poni»sze zadania s wyborem zada«ze Wst pu do Informatyki z egzaminów jakie przeprowadziªem w ci gu ostatnich lat. Ponadto doª czyªem szereg zada«, które pojawiaªy si

Bardziej szczegółowo

c Marcin Sydow Wst p Grafy i Zastosowania Wierzchoªki 8: Kolorowanie Grafów Mapy Kraw dzie Zliczanie Podsumowanie

c Marcin Sydow Wst p Grafy i Zastosowania Wierzchoªki 8: Kolorowanie Grafów Mapy Kraw dzie Zliczanie Podsumowanie 8: Kolorowanie Grafów Spis zagadnie«kolorowanie wierzchoªków Kolorowanie map Kolorowanie kraw dzi Wielomian chromatyczny Zastosowania Problem kolorowania grafów ma wiele odmian (np. kolorowanie wierzchoªków,

Bardziej szczegółowo

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow. Digrafy. Porz dki cz ±ciowe * Euler i Hamilton. Turnieje

Grafy i Zastosowania. 9: Digrafy (grafy skierowane) c Marcin Sydow. Digrafy. Porz dki cz ±ciowe * Euler i Hamilton. Turnieje 9: (grafy skierowane) Spis zagadnie«cz ±ciowe Przykªady: gªosowanie wi kszo±ciowe, Digraf (graf skierowany) Digraf to równowa»ny termin z terminem graf skierowany (od ang. directed graph). W grafach skierowanych

Bardziej szczegółowo

10a: Wprowadzenie do grafów

10a: Wprowadzenie do grafów 10a: Wprowadzenie do grafów Spis zagadnie«zastosowania grafów denicja grafu (i skierowanego), prostego, multigrafu drogi i cykle, spójno± w tym sªaba i silna drzewo i las: denicja, charakteryzacje, wªasno±ci

Bardziej szczegółowo

Grafy i Zastosowania. 5: Drzewa Rozpinaj ce. c Marcin Sydow. Drzewa rozpinaj ce. Cykle i rozci cia fundamentalne. Zastosowania

Grafy i Zastosowania. 5: Drzewa Rozpinaj ce. c Marcin Sydow. Drzewa rozpinaj ce. Cykle i rozci cia fundamentalne. Zastosowania Grafy i Grafy i 5: Rozpinaj ce Spis zagadnie«grafy i i lasy cykle fundamentalne i wªasno±ci cykli i rozci przestrzenie cykli i rozci * : zastosowanie w sieciach elektrycznych minimalne * algorytm Kruskala*

Bardziej szczegółowo

Wykªad 4. Droga i cykl Eulera i Hamiltona

Wykªad 4. Droga i cykl Eulera i Hamiltona Wykªad 4. Droga i cykl Eulera i Hamiltona 1 / 92 Grafy Eulera Droga i cykl Eulera Niech G b dzie grafem spójnym. Denicja Je»eli w grae G istnieje zamkni ta droga prosta zawieraj ca wszystkie kraw dzie

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. Grafy dr hab. Bożena Woźna-Szcześniak bwozna@gmail.com Jan Długosz University, Poland Wykład 9 Bożena Woźna-Szcześniak (AJD) Algorytmy i Struktury Danych. Wykład 9 1 / 20

Bardziej szczegółowo

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza

1) Grafy eulerowskie własnoci algorytmy. 2) Problem chiskiego listonosza 165 1) Grafy eulerowskie własnoci algorytmy 2) Problem chiskiego listonosza 166 Grafy eulerowskie Def. Graf (multigraf, niekoniecznie spójny) jest grafem eulerowskim, jeli zawiera cykl zawierajcy wszystkie

Bardziej szczegółowo

Wstęp do programowania. Zastosowania stosów i kolejek. Piotr Chrząstowski-Wachtel

Wstęp do programowania. Zastosowania stosów i kolejek. Piotr Chrząstowski-Wachtel Wstęp do programowania Zastosowania stosów i kolejek Piotr Chrząstowski-Wachtel FIFO - LIFO Kolejki i stosy służą do przechowywania wartości zbiorów dynamicznych, czyli takich, które powstają przez dodawanie

Bardziej szczegółowo

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 1,2,3. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 1,2,3. Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie Algorytmy Grafowe dr hab. Bożena Woźna-Szcześniak, prof. UJD Uniwersytet Humanistyczno-Przyrodniczy im. Jana Długosza w Częstochowie b.wozna@ujd.edu.pl Wykład 1,2,3 B. Woźna-Szcześniak (UJD) Algorytmy

Bardziej szczegółowo

Grafy i Zastosowania. 6: Najkrótsze ±cie»ki. c Marcin Sydow. Najkrótsze cie»ki. Warianty. Relaksacja DAG. Algorytm Dijkstry.

Grafy i Zastosowania. 6: Najkrótsze ±cie»ki. c Marcin Sydow. Najkrótsze cie»ki. Warianty. Relaksacja DAG. Algorytm Dijkstry. 6: ±cie»ki Spis zagadnie«problem najkrótszych ±cie»ek z jednym ¹ródªem Rozwi zanie sznurkowe kraw dzi Wariant 1: Wariant 2: nieujemne kraw dzie (Dijkstra) Wariant 3: dowolny graf () ±cie»ki dla wszystkich

Bardziej szczegółowo

Algorytmy i Struktury Danych

Algorytmy i Struktury Danych Lista zada«. Nr 4. 9 kwietnia 2016 IIUWr. II rok informatyki. Algorytmy i Struktury Danych 1. (0pkt) Rozwi» wszystkie zadania dodatkowe. 2. (1pkt) Uªó» algorytm znajduj cy najta«sz drog przej±cia przez

Bardziej szczegółowo

Wstęp do Programowania potok funkcyjny

Wstęp do Programowania potok funkcyjny Wstęp do Programowania potok funkcyjny Marcin Kubica 2010/2011 Outline 1 BFS DFS Algorytm Dijkstry Algorytm Floyda-Warshalla Podstawowe pojęcia Definition Graf = wierzchołki + krawędzie. Krawędzie muszą

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Zadanie 1: Bar Programowanie wspóªbie»ne wiczenia 6 monitory cz. 2 Napisz monitor Bar synchronizuj cy prac barmana obsªuguj cego klientów przy kolistym barze z N stoªkami. Ka»dy klient realizuje nast

Bardziej szczegółowo

Teoria grafów i sieci 1 / 58

Teoria grafów i sieci 1 / 58 Teoria grafów i sieci 1 / 58 Literatura 1 B.Korte, J.Vygen, Combinatorial optimization 2 D.Jungnickel, Graphs, Networks and Algorithms 3 M.Sysªo, N.Deo Metody optymalizacji dyskretnej z przykªadami w Turbo

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

c Marcin Sydow Planarno± Grafy i Zastosowania Tw. Eulera 7: Planarno± Inne powierzchnie Dualno± Podsumowanie

c Marcin Sydow Planarno± Grafy i Zastosowania Tw. Eulera 7: Planarno± Inne powierzchnie Dualno± Podsumowanie 7: Spis zagadnie«twierdzenie Kuratowskiego Wªasno±ci planarno±ci Twierdzenie Eulera Grafy na innych powierzchniach Poj cie dualno±ci geometrycznej i abstrakcyjnej Graf Planarny Graf planarny to taki graf,

Bardziej szczegółowo

. Podstawy Programowania 2. Algorytmy dfs i bfs. Arkadiusz Chrobot. 2 czerwca 2019

. Podstawy Programowania 2. Algorytmy dfs i bfs. Arkadiusz Chrobot. 2 czerwca 2019 Podstawy Programowania Algorytmy dfs i bfs Arkadiusz Chrobot Zakład Informatyki czerwca 09 / 70 Plan Wstęp Algorytm BFS Podsumowanie / 70 Wstęp Wstęp Istnieje wiele algorytmów związanych z grafami, które

Bardziej szczegółowo

1 Bª dy i arytmetyka zmiennopozycyjna

1 Bª dy i arytmetyka zmiennopozycyjna 1 Bª dy i arytmetyka zmiennopozycyjna Liczby w pami ci komputera przedstawiamy w ukªadzie dwójkowym w postaci zmiennopozycyjnej Oznacza to,»e s one postaci ±m c, 01 m < 1, c min c c max, (1) gdzie m nazywamy

Bardziej szczegółowo

Wykªad 1. Wprowadzenie do teorii grafów

Wykªad 1. Wprowadzenie do teorii grafów Wykªad 1. Wprowadzenie do teorii grafów 1 / 112 Literatura 1 W. Lipski; Kombinatoryka dla programistów. 2 T. Cormen, Ch. E. Leiserson, R. L. Rivest; Wprowadzenie do algorytmów. 3 K. A. Ross, Ch. R. B.

Bardziej szczegółowo

Programowanie i struktury danych

Programowanie i struktury danych Programowanie i struktury danych Wykªad 3 1 / 37 tekstowe binarne Wyró»niamy dwa rodzaje plików: pliki binarne pliki tekstowe 2 / 37 binarne tekstowe binarne Plik binarny to ci g bajtów zapami tanych w

Bardziej szczegółowo

Algorytm DFS Wprowadzenie teoretyczne. Algorytm DFS Wprowadzenie teoretyczne. Algorytm DFS Animacja. Algorytm DFS Animacja. Notatki. Notatki.

Algorytm DFS Wprowadzenie teoretyczne. Algorytm DFS Wprowadzenie teoretyczne. Algorytm DFS Animacja. Algorytm DFS Animacja. Notatki. Notatki. Podstawy Programowania Algorytmy dfs i bfs Arkadiusz Chrobot Zakład Informatyki czerwca 09 / 70 Plan Wstęp Podsumowanie / 70 Wstęp Istnieje wiele algorytmów związanych z grafami, które w skrócie nazywane

Bardziej szczegółowo

tylko poprawne odpowiedzi, ale nie wszystkie 2 pkt poprawne i niepoprawne odpowiedzi lub brak zaznaczenia 0 pkt

tylko poprawne odpowiedzi, ale nie wszystkie 2 pkt poprawne i niepoprawne odpowiedzi lub brak zaznaczenia 0 pkt Wydziaª Matematyki i Informatyki UJ 14 wrze±nia 2017 TEST NA STUDIA DOKTORANCKIE Z INFORMATYKI Przed Pa«stwem test wielokrotnego wyboru. Po zapoznaniu si z pytaniami prosz zaznaczy w tabeli, na zaª czonej

Bardziej szczegółowo

Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009

Drzewa Gomory-Hu Wprowadzenie. Drzewa Gomory-Hu. Jakub Š cki. 14 pa¹dziernika 2009 Wprowadzenie Drzewa Gomory-Hu Jakub Š cki 14 pa¹dziernika 2009 Wprowadzenie 1 Wprowadzenie Podstawowe poj cia i fakty 2 Istnienie drzew Gomory-Hu 3 Algorytm budowy drzew 4 Problemy otwarte Wprowadzenie

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

Wyszukiwanie. Algorytmy i Struktury Danych. (c) Marcin Sydow. Dziel i rz d¹. Wyszukiwanie. Statystyki pozycyjne. Podsumowanie

Wyszukiwanie. Algorytmy i Struktury Danych. (c) Marcin Sydow. Dziel i rz d¹. Wyszukiwanie. Statystyki pozycyjne. Podsumowanie Zawarto± tego wykªadu: reguªa dziel i rz d¹ wyszukiwanie algorytm wyszukiwania binarnego statystyki 2. najmniejsza warto± w ci gu (algorytm turniejowy - idea) algorytm (wyszukiwanie k-tej statystyki j)

Bardziej szczegółowo

Teoria grafów i sieci 1 / 188

Teoria grafów i sieci 1 / 188 Teoria grafów i sieci / Drzewa z wagami Drzewem z wagami nazywamy drzewo z korzeniem, w którym do ka»dego li±cia przyporz dkowana jest liczba nieujemna, nazywana wag tego li±cia. / Drzewa z wagami Drzewem

Bardziej szczegółowo

Złożoność obliczeniowa klasycznych problemów grafowych

Złożoność obliczeniowa klasycznych problemów grafowych Złożoność obliczeniowa klasycznych problemów grafowych Oznaczenia: G graf, V liczba wierzchołków, E liczba krawędzi 1. Spójność grafu Graf jest spójny jeżeli istnieje ścieżka łącząca każdą parę jego wierzchołków.

Bardziej szczegółowo

Grafy i Zastosowania. 1: Wprowadzenie i poj cia podstawowe. c Marcin Sydow. Wprowadzenie. Podstawowe poj cia. Operacje na grafach.

Grafy i Zastosowania. 1: Wprowadzenie i poj cia podstawowe. c Marcin Sydow. Wprowadzenie. Podstawowe poj cia. Operacje na grafach. 1: i podstawowe Spis Zagadnie«zastosowania grafów denicja grafu (i skierowanego), prostego, multigrafu s siedztwo i incydencja izomorzm grafów stopnie wierzchoªków (w tym wej±ciowy i wyj±ciowy), lemat

Bardziej szczegółowo

Biedronka. Wej±cie. Wyj±cie. Przykªady. VI OIG Zawody dru»ynowe, Finaª. 19 V 2012 Dost pna pami : 64 MB.

Biedronka. Wej±cie. Wyj±cie. Przykªady. VI OIG Zawody dru»ynowe, Finaª. 19 V 2012 Dost pna pami : 64 MB. Biedronka Pªot ma D cm dªugo±ci i zbudowany jest z desek zako«czonych trójk tami równoramiennymi, poª czonych ze sob w jedn caªo±. Dªugo± ramienia ka»dego z trójk tów stanowi P % dªugo±ci podstawy. Po

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

Wykład 10 Grafy, algorytmy grafowe

Wykład 10 Grafy, algorytmy grafowe . Typy złożoności obliczeniowej Wykład Grafy, algorytmy grafowe Typ złożoności oznaczenie n Jedna operacja trwa µs 5 logarytmiczna lgn. s. s.7 s liniowa n. s.5 s. s Logarytmicznoliniowa nlgn. s.8 s.4 s

Bardziej szczegółowo

Algorytmy i Struktury Danych. (c) Marcin Sydow. Wst p. Linked Lists. Abstrakcyjne Struktury Danych. Podsumowanie. Stos, Kolejka

Algorytmy i Struktury Danych. (c) Marcin Sydow. Wst p. Linked Lists. Abstrakcyjne Struktury Danych. Podsumowanie. Stos, Kolejka Zawarto± wykªadu: Typy operacji na ci gach Listy dowi zaniowe (ang. linked lists): lista jednokierunkowa lista dwukierunkowa Stos Kolejka przykªad rozszerzenia: kolejka dwustronna Ci gi Ci gi elementów

Bardziej szczegółowo

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1

JAO - J zyki, Automaty i Obliczenia - Wykªad 1. JAO - J zyki, Automaty i Obliczenia - Wykªad 1 J zyki formalne i operacje na j zykach J zyki formalne s abstrakcyjnie zbiorami sªów nad alfabetem sko«czonym Σ. J zyk formalny L to opis pewnego problemu decyzyjnego: sªowa to kody instancji (wej±cia)

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,, S, GD], gdzie: N jest zbiorem wierzchołków

Bardziej szczegółowo

Egzaminy i inne zadania. Semestr II.

Egzaminy i inne zadania. Semestr II. Egzaminy i inne zadania. Semestr II. Poni»sze zadania s wyborem zada«ze Wst pu do Informatyki z egzaminów jakie przeprowadziªem w ci gu ostatnich lat. Ponadto doª czyªem szereg zada«, które pojawiaªy si

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Informatyka Studia InŜynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,[, S, GD], gdzie: N jest zbiorem wierzchołków

Bardziej szczegółowo

Rozwiązywanie problemów metodą przeszukiwania

Rozwiązywanie problemów metodą przeszukiwania Rozwiązywanie problemów metodą przeszukiwania Dariusz Banasiak Katedra Informatyki Technicznej W4/K9 Politechnika Wrocławska Reprezentacja problemu w przestrzeni stanów Jedną z ważniejszych metod sztucznej

Bardziej szczegółowo

Stereometria (geometria przestrzenna)

Stereometria (geometria przestrzenna) Stereometria (geometria przestrzenna) Wzajemne poªo»enie prostych w przestrzeni Stereometria jest dziaªem geometrii, którego przedmiotem bada«s bryªy przestrzenne oraz ich wªa±ciwo±ci. Na pocz tek omówimy

Bardziej szczegółowo

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika.

Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika. Temat: Liniowe uporzdkowane struktury danych: stos, kolejka. Specyfikacja, przykładowe implementacje i zastosowania. Struktura słownika. 1. Pojcie struktury danych Nieformalnie Struktura danych (ang. data

Bardziej szczegółowo

c Marcin Sydow Podstawy Grafy i Zastosowania Kod Prüfera 3: Drzewa Drzewa ukorzenione * Drzewa binarne Zastosowania Podsumowanie

c Marcin Sydow Podstawy Grafy i Zastosowania Kod Prüfera 3: Drzewa Drzewa ukorzenione * Drzewa binarne Zastosowania Podsumowanie Grafy i Grafy i 3: Spis zagadnie«grafy i drzewo i las: denicja, charakteryzacje, wªasno±ci kodowanie Prüfera i zliczanie drzew etykietowanych (tw. Cayleya) drzewa drzewa zliczanie drzew binarnych (tw.

Bardziej szczegółowo

Znajdowanie wyjścia z labiryntu

Znajdowanie wyjścia z labiryntu Znajdowanie wyjścia z labiryntu Zadanie to wraz z problemem pakowania najcenniejszego plecaka należy do problemów optymalizacji, które dotyczą znajdowania najlepszego rozwiązania wśród wielu możliwych

Bardziej szczegółowo

Bash i algorytmy. Elwira Wachowicz. 20 lutego

Bash i algorytmy. Elwira Wachowicz. 20 lutego Bash i algorytmy Elwira Wachowicz elwira@ifd.uni.wroc.pl 20 lutego 2012 Elwira Wachowicz (elwira@ifd.uni.wroc.pl) Bash i algorytmy 20 lutego 2012 1 / 16 Inne przydatne polecenia Polecenie Dziaªanie Przykªad

Bardziej szczegółowo

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X.

Relacj binarn okre±lon w zbiorze X nazywamy podzbiór ϱ X X. Relacje 1 Relacj n-argumentow nazywamy podzbiór ϱ X 1 X 2... X n. Je±li ϱ X Y jest relacj dwuargumentow (binarn ), to zamiast (x, y) ϱ piszemy xϱy. Relacj binarn okre±lon w zbiorze X nazywamy podzbiór

Bardziej szczegółowo

Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne.

Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne. Notatki z AiSD. Nr 2. 4 marca 2010 Algorytmy Zachªanne. IIUWr. II rok informatyki. Przygotowaª: Krzysztof Lory± 1 Schemat ogólny. Typowe zadanie rozwi zywane metod zachªann ma charakter optymalizacyjny.

Bardziej szczegółowo

Metodydowodzenia twierdzeń

Metodydowodzenia twierdzeń 1 Metodydowodzenia twierdzeń Przez zdanie rozumiemy dowolne stwierdzenie, które jest albo prawdziwe, albo faªszywe (nie mo»e by ono jednocze±nie prawdziwe i faªszywe). Tradycyjnie b dziemy u»ywali maªych

Bardziej szczegółowo

Uczenie Wielowarstwowych Sieci Neuronów o

Uczenie Wielowarstwowych Sieci Neuronów o Plan uczenie neuronu o ci gªej funkcji aktywacji uczenie jednowarstwowej sieci neuronów o ci gªej funkcji aktywacji uczenie sieci wielowarstwowej - metoda propagacji wstecznej neuronu o ci gªej funkcji

Bardziej szczegółowo

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

Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa Wstęp do sieci neuronowych, wykład 12 Łańcuchy Markowa M. Czoków, J. Piersa 2012-01-10 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego 3 1 Łańcucha Markowa 2 Istnienie Szukanie stanu stacjonarnego

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

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

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Stosy, kolejki, drzewa Paweł Daniluk Wydział Fizyki Jesień 2013 P. Daniluk(Wydział Fizyki) WP w. VII Jesień 2013 1 / 25 Listy Lista jest uporządkowanym zbiorem elementów. W Pythonie

Bardziej szczegółowo

A. Auxiliary Question of the Universe

A. Auxiliary Question of the Universe Nieformalny wst p Dodatkow trudno±ci w dzisiejszym konkursie byªo to,»e zadania byªy sformuªowane w j zyku angielskim, a do tego autorami zada«nie byli native speakers. W takich wypadkach nie warto si

Bardziej szczegółowo

Programowanie wspóªbie»ne

Programowanie wspóªbie»ne 1 Programowanie wspóªbie»ne wiczenia 5 monitory cz. 1 Zadanie 1: Stolik dwuosobowy raz jeszcze W systemie dziaªa N par procesów. Procesy z pary s nierozró»nialne. Ka»dy proces cyklicznie wykonuje wªasnesprawy,

Bardziej szczegółowo

Algorytmy i struktury danych

Algorytmy i struktury danych Algorytmy i struktury danych Cz ± pierwsza Prowadz cy: dr Andrzej Mróz, Wydziaª Matematyki i Informatyki, Uniwersytet Mikoªaja Kopernika 1 / 65 Opis przedmiotu Zagadnienia, którymi si zajmiemy: metody

Bardziej szczegółowo

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe

ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe Instytut Mechaniki i Inżynierii Obliczeniowej Wydział Mechaniczny Technologiczny, Politechnika Śląska www.imio.polsl.pl METODY HEURYSTYCZNE ĆWICZENIE 1: Przeszukiwanie grafów cz. 1 strategie ślepe opracował:

Bardziej szczegółowo

Wprowadzenie do Sztucznej Inteligencji

Wprowadzenie do Sztucznej Inteligencji Wprowadzenie do Sztucznej Inteligencji Wykład Studia Inżynierskie Przeszukiwanie przestrzeni stanów Przestrzeń stanów jest to czwórka uporządkowana [N,[, S, GD], gdzie: N jest zbiorem wierzchołków w odpowiadających

Bardziej szczegółowo

Ekstremalnie fajne równania

Ekstremalnie fajne równania Ekstremalnie fajne równania ELEMENTY RACHUNKU WARIACYJNEGO Zaczniemy od ogólnych uwag nt. rachunku wariacyjnego, który jest bardzo przydatnym narz dziem mog cym posªu»y do rozwi zywania wielu problemów

Bardziej szczegółowo

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania:

ANALIZA ALGORYTMÓW. Analiza algorytmów polega między innymi na odpowiedzi na pytania: ANALIZA ALGORYTMÓW Analiza algorytmów polega między innymi na odpowiedzi na pytania: 1) Czy problem może być rozwiązany na komputerze w dostępnym czasie i pamięci? 2) Który ze znanych algorytmów należy

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

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI

Algorytmy tekstowe. Andrzej Jastrz bski. Akademia ETI Andrzej Jastrz bski Akademia ETI Wyszukiwanie wzorca Wyszukiwaniem wzorca nazywamy sprawdzenie, czy w podanym tekscie T znajduje si podci g P. Szukamy sªowa kot: Ala ma kota, kot ma ale. Algorytm naiwny

Bardziej szczegółowo

Omówienie zada«potyczki Algorytmiczne 2015

Omówienie zada«potyczki Algorytmiczne 2015 Omówienie zada« Biznes Najszybsze rozwi zanie: Jarosªaw Kwiecie«(0:24) Na pocz tku mamy kapitaª P (megabajtalarów) i dochody 0 (megabajtalary/rok). W dowolnym momencie mo»emy kupi maszyn typu i, co kosztuje

Bardziej szczegółowo

Chess. Joanna Iwaniuk. 9 marca 2010

Chess. Joanna Iwaniuk. 9 marca 2010 9 marca 2010 Plan prezentacji 1. Co to jest? 2. Jak u»ywa? 3. Prezentacja dziaªania 4. kontrola przeplotów model checking odtwarzanie wadliwego wykonania 5. Ogólna idea Wynik dziaªania Co to jest? program

Bardziej szczegółowo

Algorytmy i Struktury Danych.

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

Bardziej szczegółowo

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych:

Struktura danych. Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych: Struktura danych Sposób uporządkowania informacji w komputerze. Na strukturach danych operują algorytmy. Przykładowe struktury danych: rekord tablica lista stos kolejka drzewo i jego odmiany (np. drzewo

Bardziej szczegółowo

Uogólnione drzewa Humana

Uogólnione drzewa Humana czyli ang. lopsided trees Seminarium Algorytmika 2009/2010 Plan prezentacji Sformuªowanie 1 Sformuªowanie problemów Wyj±ciowy problem Problem uogólniony 2 3 Modykacje problemu Zastosowania Plan prezentacji

Bardziej szczegółowo

Listy, kolejki, stosy

Listy, kolejki, stosy Listy, kolejki, stosy abc Lista O Struktura danych składa się z węzłów, gdzie mamy informacje (dane) i wskaźniki do następnych węzłów. Zajmuje tyle miejsca w pamięci ile mamy węzłów O Gdzie można wykorzystać:

Bardziej szczegółowo

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy.

1 Klasy. 1.1 Denicja klasy. 1.2 Skªadniki klasy. 1 Klasy. Klasa to inaczej mówi c typ który podobnie jak struktura skªada si z ró»nych typów danych. Tworz c klas programista tworzy nowy typ danych, który mo»e by modelem rzeczywistego obiektu. 1.1 Denicja

Bardziej szczegółowo

Szeregowanie zada« Wykªad nr 5. dr Hanna Furma«czyk. 4 kwietnia 2013

Szeregowanie zada« Wykªad nr 5. dr Hanna Furma«czyk. 4 kwietnia 2013 Wykªad nr 5 4 kwietnia 2013 Procesory dedykowane Przypomnienie: zadania s podzielone na operacje (zadanie Z j skªada si z operacji O ij do wykonania na maszynach M i, o dªugo±ciach czasowych p ij ); zadanie

Bardziej szczegółowo

Wykªad 4. Funkcje wielu zmiennych.

Wykªad 4. Funkcje wielu zmiennych. Wykªad jest prowadzony w oparciu o podr cznik Analiza matematyczna 2. Denicje, twierdzenia, wzory M. Gewerta i Z. Skoczylasa. Wykªad 4. Funkcje wielu zmiennych. Zbiory na pªaszczy¹nie i w przestrzeni.

Bardziej szczegółowo

1 Inne ciekawe (i trudne) wyniki

1 Inne ciekawe (i trudne) wyniki 1 Inne ciekawe (i trudne) wyniki Omówimy teraz krótko ciekawsze wyniki nie przedstawione we wcze±niejszych wykªadach, a dotycz ce problemu poprzednika b d¹ sortowania. 1.1 Problem poprzednika Przypomnijmy,»e

Bardziej szczegółowo