TABLICE HASZUJĄCE PRZYKŁAD FUNKCJE HASZUJĄCE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI TABLICE HASZUJĄCE, GRAFY.

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

Download "TABLICE HASZUJĄCE PRZYKŁAD FUNKCJE HASZUJĄCE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI TABLICE HASZUJĄCE, GRAFY."

Transkrypt

1 PROJKTOWANI ALGORYTMÓW I MTODY SZTUCZNJ INTLIGNCJI TABLIC HASZUJĄC, GRAFY TABLIC HASZUJĄC Wykład dr inż. Łukasz Jeleń Na podstawie wykładów dr. T. Fevensa FUNKCJ HASZUJĄC Funkcja haszująca h mapuje klucze danego typu na integery w stałym przedziale [, N-] Przykład h(x) = x mod N jest funkcją haszującą dla kluczy (integerów) Integer h(x) jest nazywane wartością haszującą klucza x Tablica haszująca dla danego typu kluczy składa się z funkcji haszującej h Tablicy o rozmiarze N Zaprojektujemy tablicę haszującą do przechowywania wpisów (NIP, Nazwisko), gdzie NIP jest liczbowym integerem Nasza tablica haszująca wykorzystywać będzie tablice o rozmiarze N = z funkcją haszującą h(x) = ostanie cztery cyfry liczby x

2 FUNKCJ HASZUJĄC FUNKCJ KOMPRSJI Funkcja haszującą jest zazwyczaj połączeniem dwóch funkcji Kodu haszującego: h : klucze integery Funkcji kompresji: h : integery [, N ] Początkowo stosujemy kod haszujący, a następnie nakładamy na to funkcję kompresji: h(x) = h (h (x)) Celem stosowania funkcji haszującej jest rozproszenie kluczy w pozornie losowy sposób Dzielenie: h (y) = y mod N Rozmiar tablicy haszującej N jest zazwyczaj wybierany jako liczba pierwsza Mnożenie, Dodawanie i Dzielenie: h (y) = (ay + b) mod N a (wsp. skalujący) i b (przesunięcie) są integerami takimi, że a mod N w przeciwnym wypadku każdy integer mapowałby się do b OBSŁUGA KOLIZJI Kolizje występują gdy różne elementy są mapowane do tej samej komórki linkowanie każda komórka tablicy wskazuje na listę zmapowanych tam wpisów linkowanie jest łatwe, ale wymaga dodatkowych nakładów pamięci PRÓBKOWANI LINIOW Owarte adresowanie: kolidujące elementy są umieszczane w innej komórce tablicy Próbkowanie liniowe radzi sobie z kolizjami przez umieszczenie kolidującego elementu w kolejnej (okólnie) wolnej komórce tablicy Klucz = 3 do dodania [h(3) = 6] Musimy próbkować dodatkowe dwa razy Każda komórka tablicy zbadana komórka określana jest jako próbka w powyższym przykładzie użyto trzech próbek do umieszczenia w tablicy liczby 3

3 PRÓBKOWANIA LINIOWGO Dana jest tablica haszująca przechowująca klucze i rozwiązująca kolizje za pomocą próbkowania liniowego N = 3 h(k) = k mod 3 Wstaw klucze, 4,, 44, 59, 3, 3, 3 (kolejność istotna) Całkowita ilość próbek: 9 Próbka k h (k ) Probes PRÓBKOWANI LINIOW - PRZSZUKIWANI Dana jest tablica A wykorzystująca próbkowanie liniowe get(k) zaczynamy od komórki h(k) próbkujemy kolejne lokalizacje do momentu wystąpienia jednej z poniższych sytuacji: element o kluczu k został znaleziony znaleziono pustą komórkę Sprawdzono bez powodzenia N komórek Algorytm get(k) i h(k) p // zlicza ilość próbek repeat c A[i] if c = // pusta komórka return null else if c.key () = k return c.element() else // próbkowanie liniowe i (i + ) mod N p p + until p = N return null UAKTUALNIANI Z ZASTOSOWANIM PRÓBKOWANIA LINIOWGO W celu wykonania operacji wstawienia i usunięcia wprowadzimy specjalny obiekt, DOSTĘPNY, który zastąpi usunięte elementy remove(k) szukamy wpisu o kluczu k Jeśli taki wpis (k, v) został znaleziony, to zastępujemy go obiektem DOSTĘPNY i zwracamy wartość v w przeciwnym razie zwracamy null put(k,v) Wyrzucamy wyjątek jeśli tablica jest pełna Rozpoczynamy od komórki h(k) Próbkujemy kolejne komórki do momentu wystąpienia jednej z poniższych sytuacji: Znaleziona komórka i albo jest pusta, albo zawiera znacznik DOSTĘPNY Sprawdzono bez powodzenia N komórek Zapisujemy wpis (k, v) w komórce i Dodaj następujące integery do tablicy haszującej stosując próbkowanie liniowe {, 4,, 44, 6, 3, 3, 9} Zastosowanie: N = funkcja haszująca: h(x) = x mod

4 PODWÓJN HASZOWANI Technika podwójnego haszowania wykorzystuje drugą funkcję haszującą d(k) i rozwiązuje kolizje poprzez umieszczenie elementu w pierwszej wolnej komórce spełniającej: (i + j*d(k)) mod N gdzie i = h(k) dla j =,,, N- Druga funkcja haszująca nie może przyjmować wartości równych Rozmiar tablicy N musi być liczbą pierwszą Najczęstszym wyborem drugiej funkcji haszującej jest: d(k) = q - (k mod q) gdzie q < N q jest liczbą pierwszą Możliwe wartości dla d(k) to,,, q Dana jest tablica haszująca przechowująca klucze i rozwiązująca kolizje za pomocą podwójnego haszowania N = 3 h(k) = k mod 3 d(k) = - k mad Wstaw klucze, 4,, 44, 59, 3, 3, 3 (kolejność istotna) Całkowita ilość próbek: Próbka k h (k ) d (k ) Probes ZŁOŻONOŚĆ HASZOWANIA W najgorszym przypadku, operacje przeszukiwania, wstawiania i usuwania na tablicach haszujących działają w czasie O(n) Najgorszy przypadek występuje w momencie kiedy wszystkie klucze umieszczane w tablicy posiadają kolizje Oczekiwany czas działania wszystkich operacji na tablicy haszującej to O() W praktyce haszowanie jest bardzo szybkie Zastosowanie tablic haszujących małe bazy danych kompilatory pamięć podręczna przeglądarek GRAFY

5 GRAFY Graf jest parą (V, ), gdzie V jest zbiorem węzłów zwanych wierzchołkami jest zbiorem par wierzchołków zwanych krawędziami Wierzchołki i krawędzie są pozycjami przechowującymi elementy Przykład: Wierzchołek reprezentuje lotnisko i przechowuje trzyliterowe kody lotnisk Krawędzie reprezentują połączenie lotnicze między dwoma lotniskami i przechowują długość połączenia HNL LGA 4 99 TYPY KRAWĘDZI Krawędź skierowana skierowana para wierzchołków (u, v) pierwszy wierzchołek u jest początkiem drugi wierzchołek v jest celem/końcem np.: lot Krawędź nieskierowana nieskierowana para wierzchołków (u, v) np.: połączenie lotnicze Graf skierowany wszystkie krawędzie są skierowane np.: mapa połączeń Graf nieskierowany wszystkie krawędzie są nieskierowane lot AA 6 mil ZASTOSOWANIA TRMINOLOGIA Obwody elektroniczne płytki drukowane Sieci transportowe sieć autostrad sieć połączeń lotniczych Sieci komputerowe LAN Internet Web Bazy danych diagram związków encji cslaba cslabb math.brown.edu cs.brown.edu brown.edu qwest.net att.net cox.net John Paul David Wierzchołki końcowe krawędzi U i V są końcami krawędzi a Krawędzie incydentne do wierzchołków a, b są incydentne do V Wierzchołki sąsiednie U i V są sąsiednie Stopień wierzchołka X ma stopień 5 Krawędzie równoległe h i j są równoległe Pętla i jest pętlą U a c V W d f b e Gęstość grafu: Stosunek liczby krawędzi do max. liczby krawędzi V ( V - ) X Y g h j Z i

6 TRMINOLOGIA TRMINOLOGIA 3 Ścieżka sekwencja kolejnych wierzchołków i krawędzi rozpoczyna się od wierzchołka kończy się na wierzchołku każdą krawędź poprzedza i następuje jej U wierzchołek końcowy Prosta ścieżka ścieżka, w której wszystkie wierzchołki i krawędzie różnią się od siebie Przykłady: P =(V,b,X,h,Z) jest prostą ścieżką P =(U,c,W,e,X,g,Y,f,W,d,V) nie jest ścieżką prostą a c d P V W f b e P X Y g h Z Cykl okrężna sekwencja kolejnych wierzchołków i krawędzi każdą krawędź poprzedza i następuje jej wierzchołek końcowy Cykl prosty cykl, w którym wszystkie wierzchołki i krawędzie różnią się od siebie Przykłady: C =(V,b,X,g,Y,f,W,c,U,a, ) jest cyklem prostym C =(U,c,W,e,X,g,Y,f,W,d,V,a, ) nie jest cyklem prostym U a c d C V W f e b X Y C g h Z WŁAŚCIWOŚCI GŁÓWN MTODY GRAFÓW ADT Właściwość Σ v deg(v) = m Dowód: każda nieskierowana krawędź jest liczona dwa razy Właściwość W grafie nieskierowanym bez pętli i wielokrotnych krawędzi m n (n )/ Dowód: każdy wierzchołek ma stopień najwyżej (n ) Notacja n m deg(v) ilość wierzchołków ilość krawędzi stopień wierzchołka v Przykład n = 4 m = 6 deg(v) = 3 Wierzchołki i krawędzie są pozycjami przechowują elementy Metody dostępu: endvertices(e): tablica dwóch końcowych wierzchołków e opposite(v, e): przeciwległy wierzchołek do v względem e areadjacent(v, w): prawda iff v i w sąsiednie replace(v, x): zastąp element w wierzchołku v na x replace(e, x): zastąp element na krawędzi e na x Metody uaktualniające insertvertex(o): dodaj wierzchołek przechowujący element o insertdge(v, w, o): dodaj krawędź (v,w) przechowujący element o removevertex(v): usuń wierzchołek v (oraz przylegające krawędzie) removedge(e): usuń krawędź e Metody iterujące incidentdges(v): krawędzie przylegające do v vertices(): wszystkie wierzchołki w grafie edges(): wszystkie krawędzie w grafie

7 LISTA KRAWĘDZI LISTA SĄSIDZTWA Obiekt - wierzchołek element referencja do pozycji w liście wierzchołków Obiekt - krawędź element obiekt - wierzchołek początkowy obiekt - wierzchołek końcowy referencja do pozycji w liście krawędzi Lista wierzchołków sekwencja obiektów wierzchołka Lista krawędzi sekwencja obiektów krawędzi V u a c b d v w z u v w z a b c d Struktura listy krawędzi Lista incydencji dla każdego wierzchołka, I(v) sekwencja referencji do obiektów krawędzi krawędzi incydentnych Rozszerzone obiekty krawędzi referencje do listy sąsiedztwa wierzchołków końcowych I(u) a v b u w u v w I(w) I(v) a b V MACIRZ SĄSIDZTWA ZŁOŻONOŚĆ ASYMPTOTYCZNA Struktura listy krawędzi Rozszerzony obiekt wierzchołka klucz - integer key (indeks) - powiązany z wierzchołkiem Tablica D sąsiedztwa Referencja do obiektu krawędzi dla sąsiednich wierzchołków Null dla wierzchołków niesąsiadujących a u a u v w v b w b V n wierzchołków, m krawędzi brak krawędzi równoległych brak pętli Złożoność w notacji duże-o Lista krawędzi Lista sąsiedztwa Macierz sąsiedztwa Miejsce n + m n + m n incidentdges(v) m deg(v) n areadjacent (v, w) m min(deg(v), deg(w)) insertvertex(o) n insertdge(v, w, o) removevertex(v) m deg(v) n removedge(e)

8 PODGRAFY ŁĄCZNOŚĆ Podgraf S grafu G jest takim grafem, że wierzchołki S są podzbiorem wierzchołków G Podgraf rozpinający grafu G jest podgrafem, który zawiera wszystkie Podgraf Graf jest połączony (spójny) jeśli istnieje ścieżka między każdą parą wierzchołków. lementem połączonym grafu G jest maksymalny podgraf połączony grafu G Graf połączony wierzchołki G Podgraf rozpinający Graf niepołączony (niespójny) z dwoma połączonymi elementami DRZWA I LASY DRZWA I LASY ROZPINAJĄC Drzewo jest grafem nieskierowanym takim, że T jest połączone Drzewo rozpinające grafu połączonego jest podgrafem połączonym, które jest drzewem T nie zawiera cykli Jest to inna definicja drzewa niż w przypadku drzewa ukorzenionego Lasem jest graf nieskierowany bez cykli Komponenty połączone lasu są drzewami Drzewo Las Drzewo rozpinające nie jest unikalne dopóki graf nie jest drzewem Drzewa rozpinające mają zastosowanie w sieciach komunikacyjnych Las rozpinający grafu jest podgrafem rozpinającym, który jest lasem Graf Drzewo rozpinające

9 GRAF WAŻONY W grafie ważonym każda krawędź ma przypisaną wartość liczbową, tzw. wagę krawędzi Wagi krawędzi mogą reprezentować odległości, koszt, czas, itp. Przykład: W grafie tras lotniczych waga krawędzi reprezentuje odległość między lotniskami końcowymi wyrażoną w milach HNL LGA PROBLM Załóżmy, że chcemy połączyć wszystkie komputery w nowo tworzonym laboratorium/biurze minimalna ilość kabla - koszty Rozwiązanie: Model grafu ważonego (G) wierzchołki - komputery krawędzie - wszystkie możliwe pary (u, v) komputerów deg(u, v) = w(u, v) - odpowiada długości kabla potrzebnego do połączenia komputera v z komputerem u Moglibyśmy wyznaczyć najkrótszą drogę od wierzchołka v nieoptymalne Znajdziemy drzewo T, które zawiera wszystkie wierzchołki G i posiada najmniejsze łączne wagi ze wszystkich drzew rozpinających. cslaba Paul cs.brown.edu att.net cslabb cox.net brown.edu David math.brown.edu John qwest.net MINIMALN DRZWA ROZPINAJĄC Mając dany nieskierowany graf G, chcemy znaleźć drzewo T, które zawiera wszystkie wierzchołki i minimalizuje sumę: w(t) = w((v, u)) ((v, u) T) Problem wyznaczania drzewa rozpinającego o najmniejszej wadze nazywa się problemem minimalnego drzewa rozpinającego (MST). ALGORYTM KRUSKALA Buduje minimalne drzewo rozpinające z zastosowaniem klastrów grupowania węzłów Początkowo wszystkie węzły stanowią osobne klastry Krawędzie przechowywane w kolejce priorytetowej wagi są kluczami Dla wszystkich krawędzi: Q.removeMin(); Jeśli u i v nie należą do tego samego klastra to dodajemy (v, u) do T Łączymy klastry zawierające u i v w jeden Algorytm Kruskal(G) Wejście: Graf ważony G z n wierzchołkami i m krawędziami Wyjście: Minimalne drzewo rozpinające T dla grafu G for każdy wierzchołek v w G C(v) {k} Q {} // - lista krawędzi T while T.size() < n- do (u, v) Q.removeMin() if C(v) C(u) T.Add(v, u) Merge(C(v), C(u)) return T

10

11

12

13 ZŁOŻONOŚĆ ALGORYTMU KRUSKALA Możemy zaimplementować kolejkę priorytetową za pomocą kopca O(m log n) - sukcesywne wstawianie do kolejki O(m) - techniką bottom-up Usuwanie: O(log m) => O(log n) (graf jest prosty) Zatem czas to O(m log n) (pętla while) Całkowita złożoność algorytmu Kruskala: Całkowity czas pętli while: ( + deg(v))log n (v G) co daje czas O((n + m) log n) po uproszczeniu O(m log n) ALGORYTM PRIMA - JARNIKA Buduje minimalne drzewo rozpinające z zastosowaniem klastrów rozpoczyna od dowolnego wierzchołka v korzenia Idea zbliżona do algorytmu Dijkstry (później) Dodajemy v do drzewa T, a krawędzie incydentne do v umieszczamy w kolejce priorytetowej wagi są kluczami Q.removeMin(): jeśli wierzchołek z MST to dodajemy z do MST dodajemy do Q krawędzie incydentne do z jeśli T zawiera wszystkie wierzchołki grafu to koniec Algorytm PrimJarnik(G) Wejście: Graf ważony G z n wierzchołkami i m krawędziami Wyjście: Minimalne drzewo rozpinające T dla grafu G v losowy wierzchołek z G D(v) //bieżące MST for każdy wierzchołek u v D(u) + Q {} // - lista krawędzi T while Q.ismpty = false do (u, e) Q.removeMin() T.Add(u, e) for każdy wierzchołek z Q sąsiedni do u if w(u, z) < D(z) D(z) w(u,z) Wstaw (u, z) do Q z kluczem D(z) return T 6 6

14

15 6 ZŁOŻONOŚĆ 6 6 Możemy zaimplementować kolejkę priorytetową za pomocą kopca Usuwanie: O(log n) Zatem czas to O(m log n) (pętla while) Uaktualnianie: max. O(log n) dla każdej krawędzi (u, z) Pozostałe operacje wykonywane w czasie O() Zatem całkowity czas to O((n + m) log n) po uproszczeniu O(m log n)

16 NAJKRÓTSZA ŚCIŻKA NAJKRÓTSZA ŚCIŻKA A 4 3 B C D F Mając dany graf ważony i dwa wierzchołki u i v chcemy wyznaczy ścieżkę między nimi o najmniejszej całkowitej wadze. Długość ścieżki jest sumą wag jej krawędzi. Przykład: Najkrótsza ścieżka między Providence i Honolulu Zastosowania Przekierowywanie pakietów Internetowych Rezerwacje lotów Wskazówki dla kierowców (np.: GPS) HNL LGA WŁAŚCIWOŚCI Właściwość : Podścieżka najkrótszej ścieżki jest najkrótszą ścieżką sama w sobie Właściwość : Istnieje drzewo najkrótszych ścieżek począwszy od węzła startowego do wszystkich pozostałych węzłów Przykład: Drzewo najkrótszych ścieżek z Providence HNL LGA ALGORYTM DIJKSTRY Odległość wierzchołka h v od wierzchołka s jest długością najkrótszej ścieżki między s and v Algorytm Dijkstra wyznacza odległości wszystkich wierzchołków począwszy od wierzchołka startowego s Założenia: graf jest spójny/połączony krawędzie są nieskierowane wagi krawędzi są nieujemne Podobnie jak w przypadku algorytmu Prima będziemy tworzyć chmurę ze wszystkich wierzchołków (MST) począwszy od s Przechowujemy każdy wierzchołek v, etykietę d(v) reprezentującą odległość v od s w podgrafie zawierającym MST wraz z sąsiednimi wierzchołkami Przy każdej iteracji Dodajemy wierzchołek u nieznajdujący się w MST o najmniejszej odległości, d(u) Uaktualniamy etykiety wierzchołków sąsiednich do u

17 RLAKSACJA WIRZCHOŁKÓW Weźmy krawędź e = (u,z) taką, że u jest wierzchołkiem ostatnio dodanym z jest poza MST/chmurą s d(u) = 5 u e d(z) = 5 z A 4 A B C D B C D F F Relaksacja krawędzi e aktualizuje odległość d(z) następująco: d(z) min{d(z),d(u) + waga(e)} s d(u) = 5 u e d(z) = 6 z A 4 3 B C D F B A 4 C F 3 D ALGORYTM DIJKSTRA A 4 3 B C D F A 4 3 B C D F Kolejka priorytetowa przechowuje wierzchołki nieznajdujące sie w bieżącym MST Klucz: odległość lement: wierchołek insert(k,e) zwraca lokalizację replacekey(l,k) zamienia klucz dla danego elementu Przechowujemy dwie etykiety dla każdego wierzchołka: Odległość (d(v)) lokalizacje w kolejce priorytetowej Algorithm DijkstraDistances(G, s) Q nowa kolejka priorytetowa bazująca na kopcu for all v G.vertices() if v = s setdistance(v, ) else setdistance(v, ) l Q.insert(getDistance(v), v) setlocator(v,l) while ~Q.ismpty() u Q.removeMin() for all e G.incidentdges(u) {relaksacja krawędzi e } z G.opposite(u,e) r getdistance(u) + weight(e) if r < getdistance(z) setdistance(z,r) Q.replaceKey(getLocator(z),r)

18 Operacje grafowe ZŁOŻONOŚĆ Metoda incidentdges jest wywoływana raz dla każdego wierzchołka Operacje etykietowania Ustawiamy/pobieramy odległość i lokalizację wierzchołka z O(deg(z)) razy Ustawianie/pobieranie etykiety zajmuje czas O() Operacje na kolejce priorytetowej Każdy wierzchołek jest umieszczany i usuwany z kolejki tylko raz. Każda taka operacja zajmuje czas O(log n) Klucz wierzchołka jest modyfikowany najwyżej deg(w) razy. Każda zmiana klucza zajmuje czas O(log n) Algorytm Dijkstra działa w czasie O((n + m) log n) pod warunkiem, że graf jest zaimplementowany za pomocą listy sąsiedztwa Po uproszczeniu O(m log n) - graf jest spójny

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

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

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

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

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

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

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

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV

Algorytmy grafowe. Wykład 1 Podstawy teorii grafów Reprezentacje grafów. Tomasz Tyksiński CDV Algorytmy grafowe Wykład 1 Podstawy teorii grafów Reprezentacje 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

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

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

Graf. Definicja marca / 1

Graf. Definicja marca / 1 Graf 25 marca 2018 Graf Definicja 1 Graf ogólny to para G = (V, E), gdzie V jest zbiorem wierzchołków (węzłów, punktów grafu), E jest rodziną krawędzi, które mogą być wielokrotne, dokładniej jednoelementowych

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

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2016 andrzej.lachwa@uj.edu.pl 13/14 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

Egzamin, AISDI, I termin, 18 czerwca 2015 r.

Egzamin, AISDI, I termin, 18 czerwca 2015 r. Egzamin, AISDI, I termin, 18 czerwca 2015 r. 1 W czasie niezależnym do danych wejściowych działają algorytmy A. sortowanie bąbelkowego i Shella B. sortowanie szybkiego i przez prosty wybór C. przez podział

Bardziej szczegółowo

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

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA DROGI i CYKLE w grafach Dla grafu (nieskierowanego) G = ( V, E ) drogą z wierzchołka v 0 V do v t V nazywamy ciąg (naprzemienny) wierzchołków i krawędzi grafu: ( v 0, e, v, e,..., v t, e t, v t ), spełniający

Bardziej szczegółowo

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

Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Algorytm Dijkstry znajdowania najkrótszej ścieżki w grafie Używane struktury danych: V - zbiór wierzchołków grafu, V = {1,2,3...,n} E - zbiór krawędzi grafu, E = {(i,j),...}, gdzie i, j Î V i istnieje

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

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

Podstawowe własności grafów. Wykład 3. Własności grafów Wykład 3. Własności grafów 1 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2). 2 / 87 Suma grafów Niech będą dane grafy proste G 1 = (V 1, E 1) oraz G 2 = (V 2, E 2).

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

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

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

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

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew

Drzewa. Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew Drzewa Las - graf, który nie zawiera cykli Drzewo - las spójny Jeżeli graf G jest lasem, który ma n wierzchołków i k składowych, to G ma n k krawędzi. Własności drzew Niech T graf o n wierzchołkach będący

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

Algorytmiczna teoria grafów

Algorytmiczna teoria grafów Podstawowe pojęcia i klasy grafów Wykład 1 Grafy nieskierowane Definicja Graf nieskierowany (graf) G = (V,E) jest to uporządkowana para składająca się z niepustego skończonego zbioru wierzchołków V oraz

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

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 Twierdzenie 2.1 Niech G będzie grafem prostym

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

Matematyka dyskretna. Andrzej Łachwa, UJ, /15

Matematyka dyskretna. Andrzej Łachwa, UJ, /15 Matematyka dyskretna Andrzej Łachwa, UJ, 2013 andrzej.lachwa@uj.edu.pl 14/15 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

Bardziej szczegółowo

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew

EGZAMIN - Wersja A. ALGORYTMY I STRUKTURY DANYCH Lisek89 opracowanie kartki od Pani dr E. Koszelew 1. ( pkt) Dany jest algorytm, który dla dowolnej liczby naturalnej n, powinien wyznaczyd sumę kolejnych liczb naturalnych mniejszych od n. Wynik algorytmu jest zapisany w zmiennej suma. Algorytm i=1; suma=0;

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

KOPCE KOLEJKI PRIORYTETOWE - PRZYPOMNIENIE KOPCE WYSOKOŚĆ KOPCA KOPCE I KOLEJKI PRIORYTETOWE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

KOPCE KOLEJKI PRIORYTETOWE - PRZYPOMNIENIE KOPCE WYSOKOŚĆ KOPCA KOPCE I KOLEJKI PRIORYTETOWE PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI KOPCE, ALGORYTMY SORTOWANIA KOPCE Wykład dr inż. Łukasz Jeleń Na podstawie wykładów dr. T. Fevensa KOLEJKI PRIORYTETOWE - PRZYPOMNIENIE Możemy wykorzystać

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, /14

Matematyka dyskretna. Andrzej Łachwa, UJ, /14 Matematyka dyskretna Andrzej Łachwa, UJ, 2012 andrzej.lachwa@uj.edu.pl 13/14 Grafy podstawowe definicje Graf to para G=(V, E), gdzie V to niepusty i skończony zbiór, którego elementy nazywamy wierzchołkami

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

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne

Algorytmy i struktury danych. Drzewa: BST, kopce. Letnie Warsztaty Matematyczno-Informatyczne Algorytmy i struktury danych Drzewa: BST, kopce Letnie Warsztaty Matematyczno-Informatyczne Drzewa: BST, kopce Definicja drzewa Drzewo (ang. tree) to nieskierowany, acykliczny, spójny graf. Drzewo może

Bardziej szczegółowo

G. Wybrane elementy teorii grafów

G. Wybrane elementy teorii grafów Dorota Miszczyńska, Marek Miszczyński KBO UŁ Wybrane elementy teorii grafów 1 G. Wybrane elementy teorii grafów Grafy są stosowane współcześnie w różnych działach nauki i techniki. Za pomocą grafów znakomicie

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

Algorytmy i Struktury Danych, 9. ćwiczenia

Algorytmy i Struktury Danych, 9. ćwiczenia Algorytmy i Struktury Danych, 9. ćwiczenia 206-2-09 Plan zajęć usuwanie z B-drzew join i split na 2-3-4 drzewach drzepce adresowanie otwarte w haszowaniu z analizą 2 B-drzewa definicja każdy węzeł ma następujące

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

Wykład 7. Algorytmy grafowe

Wykład 7. Algorytmy grafowe Wykład Algorytmy grafowe Algorytmy grafowe i podstawowe algorytmy przeszukiwania Problem Definicje i własności Reprezentacja Przeszukiwanie wszerz (Breadthirst Search) Przeszukiwanie w głąb (Depthirst

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

Opracowanie prof. J. Domsta 1

Opracowanie prof. J. Domsta 1 Opracowanie prof. J. Domsta 1 Algorytm FLEURY'ego: Twierdzenie 6.5 G-graf eulerowski. Wtedy cykl Eulera otrzymujemy nastepująco: a) Start w dowolnym wierzchołku b) Krawędzie w dowolnej kolejności po przebyciu

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

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

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

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2

Algorytmy i struktury danych. Wykład 6 Tablice rozproszone cz. 2 Algorytmy i struktury danych Wykład 6 Tablice rozproszone cz. 2 Na poprzednim wykładzie Wiele problemów wymaga dynamicznych zbiorów danych, na których można wykonywać operacje: wstawiania (Insert) szukania

Bardziej szczegółowo

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane

Algorytmy i struktury danych. Wykład 4 Tablice nieporządkowane i uporządkowane Algorytmy i struktury danych Wykład 4 Tablice nieporządkowane i uporządkowane Tablice uporządkowane Szukanie binarne Szukanie interpolacyjne Tablice uporządkowane Szukanie binarne O(log N) Szukanie interpolacyjne

Bardziej szczegółowo

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz?

Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? DROGI i CYKLE EULERA w grafach Czy istnieje zamknięta droga spaceru przechodząca przez wszystkie mosty w Królewcu dokładnie jeden raz? Czy można narysować podaną figurę nie odrywając ołówka od papieru

Bardziej szczegółowo

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki.

SPÓJNOŚĆ. ,...v k. }, E={v 1. v k. i v k. ,...,v k-1. }. Wierzchołki v 1. v 2. to końce ścieżki. SPÓJNOŚĆ Graf jest spójny, gdy dla każdego podziału V na dwa rozłączne podzbiory A i B istnieje krawędź z A do B. Definicja równoważna: Graf jest spójny, gdy każde dwa wierzchołki są połączone ścieżką

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

Podstawy Programowania 2 Grafy i ich reprezentacje. Plan. Wstęp. Teoria grafów Graf skierowany. Notatki. Notatki. Notatki. Notatki.

Podstawy Programowania 2 Grafy i ich reprezentacje. Plan. Wstęp. Teoria grafów Graf skierowany. Notatki. Notatki. Notatki. Notatki. Podstawy Programowania Grafy i ich reprezentacje Arkadiusz Chrobot Zakład Informatyki 7 maja 09 / 4 Plan Wstęp Zastosowania grafów / 4 Wstęp Grafy są w informatyce strukturami danych stosowanymi w wielu

Bardziej szczegółowo

Podejście zachłanne, a programowanie dynamiczne

Podejście zachłanne, a programowanie dynamiczne Podejście zachłanne, a programowanie dynamiczne Algorytm zachłanny pobiera po kolei elementy danych, za każdym razem wybierając taki, który wydaje się najlepszy w zakresie spełniania pewnych kryteriów

Bardziej szczegółowo

. Podstawy Programowania 2. Grafy i ich reprezentacje. Arkadiusz Chrobot. 9 czerwca 2016

. Podstawy Programowania 2. Grafy i ich reprezentacje. Arkadiusz Chrobot. 9 czerwca 2016 Podstawy Programowania 2 Grafy i ich reprezentacje Arkadiusz Chrobot Zakład Informatyki 9 czerwca 2016 1 42 Plan 1 Wstęp 2 Teoria grafów 3 Grafy jako struktury danych 4 Zastosowania grafów 2 42 Wstęp Wstęp

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

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

Algorytmy Grafowe. dr hab. Bożena Woźna-Szcześniak, prof. UJD. Wykład 5 i 6. 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 5 i 6 B. Woźna-Szcześniak (UJD) Algorytmy

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

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle

Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Badania operacyjne: Wykład Zastosowanie kolorowania grafów w planowaniu produkcji typu no-idle Paweł Szołtysek 12 czerwca 2008 Streszczenie Planowanie produkcji jest jednym z problemów optymalizacji dyskretnej,

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

Wykłady z Matematyki Dyskretnej

Wykłady z Matematyki Dyskretnej Wykłady z Matematyki Dyskretnej dla kierunku Informatyka dr Instytut Informatyki Politechnika Krakowska Wykłady na bazie materiałów: dra hab. Andrzeja Karafiata dr hab. Joanny Kołodziej, prof. PK Grafy

Bardziej szczegółowo

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

Kolorowanie wierzchołków Kolorowanie krawędzi Kolorowanie regionów i map. Wykład 8. Kolorowanie Wykład 8. Kolorowanie 1 / 62 Kolorowanie wierzchołków - definicja Zbiory niezależne Niech G będzie grafem bez pętli. Definicja Mówimy, że G jest grafem k kolorowalnym, jeśli każdemu wierzchołkowi możemy

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

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

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

6. Wstępne pojęcia teorii grafów

6. Wstępne pojęcia teorii grafów 6. Wstępne pojęcia teorii grafów Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 6. Wstępne pojęcia teorii grafów zima 2016/2017

Bardziej szczegółowo

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz

Grafy (3): drzewa. Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków. UTP Bydgoszcz Grafy (3): drzewa Wykłady z matematyki dyskretnej dla informatyków i teleinformatyków UTP Bydgoszcz 13 (Wykłady z matematyki dyskretnej) Grafy (3): drzewa 13 1 / 107 Drzewo Definicja. Drzewo to graf acykliczny

Bardziej szczegółowo

Wstęp do programowania

Wstęp do programowania Wstęp do programowania Algorytmy zachłanne, programowanie dynamiczne Paweł Daniluk Wydział Fizyki Jesień 2014 P. Daniluk(Wydział Fizyki) WP w. IX Jesień 2014 1 / 26 Algorytmy zachłanne Strategia polegająca

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

Definicja pliku kratowego

Definicja pliku kratowego Pliki kratowe Definicja pliku kratowego Plik kratowy (ang grid file) jest strukturą wspierająca realizację zapytań wielowymiarowych Uporządkowanie rekordów, zawierających dane wielowymiarowe w pliku kratowym,

Bardziej szczegółowo

Tablice z haszowaniem

Tablice z haszowaniem Tablice z haszowaniem - efektywna metoda reprezentacji słowników (zbiorów dynamicznych, na których zdefiniowane są operacje Insert, Search i Delete) - jest uogólnieniem zwykłej tablicy - przyspiesza operacje

Bardziej szczegółowo

Suma dwóch grafów. Zespolenie dwóch grafów

Suma dwóch grafów. Zespolenie dwóch grafów Suma dwóch grafów G 1 = ((G 1 ), E(G 1 )) G 2 = ((G 2 ), E(G 2 )) (G 1 ) i (G 2 ) rozłączne Suma G 1 G 2 graf ze zbiorem wierzchołków (G 1 ) (G 2 ) i rodziną krawędzi E(G 1 ) E(G 2 ) G 1 G 2 G 1 G 2 Zespolenie

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

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda

Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp. autor: Łukasz Chlebda Segmentacja obrazów cyfrowych Segmentacja obrazów cyfrowych z zastosowaniem teorii grafów - wstęp autor: Łukasz Chlebda 1 Segmentacja obrazów cyfrowych - temat pracy Temat pracy: Aplikacja do segmentacji

Bardziej szczegółowo

KURS MATEMATYKA DYSKRETNA

KURS MATEMATYKA DYSKRETNA KURS MATEMATYKA DYSKRETNA LEKCJA 28 Grafy hamiltonowskie Odpowiedzi do zadania domowego www.akademia.etrapez.pl Strona 1 Część 1: TEST 1) b 2) a 3) b 4) d 5) c 6) d 7) b 8) b 9) d 10) a Zad. 1 ODPOWIEDZI

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14

Matematyka dyskretna. Andrzej Łachwa, UJ, B/14 Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1B/14 Drogi w grafach Marszruta (trasa) w grafie G z wierzchołka w do wierzchołka u to skończony ciąg krawędzi w postaci. W skrócie

Bardziej szczegółowo

Matematyka dyskretna. Andrzej Łachwa, UJ, A/14

Matematyka dyskretna. Andrzej Łachwa, UJ, A/14 Matematyka dyskretna Andrzej Łachwa, UJ, 2019 andrzej.lachwa@uj.edu.pl 1A/14 Literatura obowiązkowa [1] K.A.Ross, Ch.R.B.Wright: Matematyka Dyskretna. Wydawnictwo Naukowe PWN, Warszawa 1996 [2] R.L.Graham,

Bardziej szczegółowo

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów

Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów Podstawowe pojęcia dotyczące drzew Podstawowe pojęcia dotyczące grafów Przykłady drzew i grafów Drzewa: Drzewo (ang. tree) jest strukturą danych zbudowaną z elementów, które nazywamy węzłami (ang. node).

Bardziej szczegółowo

5c. Sieci i przepływy

5c. Sieci i przepływy 5c. Sieci i przepływy Grzegorz Kosiorowski Uniwersytet Ekonomiczny w Krakowie zima 2016/2017 rzegorz Kosiorowski (Uniwersytet Ekonomiczny w Krakowie) 5c. Sieci i przepływy zima 2016/2017 1 / 40 1 Definicje

Bardziej szczegółowo

Spis treści. Przykład. Przykład 1 Przykład 2. Twórcy Informacje wstępne Pseudokod Przykład. 1 Grafy skierowane z wagami - przypomnienie

Spis treści. Przykład. Przykład 1 Przykład 2. Twórcy Informacje wstępne Pseudokod Przykład. 1 Grafy skierowane z wagami - przypomnienie 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,11,1 B. Woźna-Szcześniak (UJD) Algorytmy

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

Tablice z haszowaniem

Tablice z haszowaniem Tablice z haszowaniem - efektywna metoda reprezentacji słowników (zbiorów dynamicznych, na których zdefiniowane są operacje Insert, Search i Delete) - jest uogólnieniem zwykłej tablicy - przyspiesza operacje

Bardziej szczegółowo

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14

Algorytmy dynamiczne. Piotr Sankowski. - p. 1/14 Algorytmy dynamiczne Piotr Sankowski - p. 1/14 Dynamiczne: drzewa wyszukiwanie wzorca w tekście spójność grafu problemy algebraiczne (FFT i inne) domknięcie przechodnie oraz dynamiczne macierze najkrótsze

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

Wykład 2. Drzewa zbalansowane AVL i 2-3-4

Wykład 2. Drzewa zbalansowane AVL i 2-3-4 Wykład Drzewa zbalansowane AVL i -3-4 Drzewa AVL Wprowadzenie Drzewa AVL Definicja drzewa AVL Operacje wstawiania i usuwania Złożoność obliczeniowa Drzewa -3-4 Definicja drzewa -3-4 Operacje wstawiania

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 / 53

Bardziej szczegółowo

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie)

Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Algorytmy i złożoności Wykład 5. Haszowanie (hashowanie, mieszanie) Wprowadzenie Haszowanie jest to pewna technika rozwiązywania ogólnego problemu słownika. Przez problem słownika rozumiemy tutaj takie

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

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ.

Gramatyki grafowe. Dla v V, ϕ(v) etykieta v. Klasa grafów nad Σ - G Σ. Gramatyki grafowe Def. Nieskierowany NL-graf (etykietowane wierzchołki) jest czwórką g = (V, E, Σ, ϕ), gdzie: V niepusty zbiór wierzchołków, E V V zbiór krawędzi, Σ - skończony, niepusty alfabet etykiet

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

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski : idea Indeksowanie: Drzewo decyzyjne, przeszukiwania binarnego: F = {5, 7, 10, 12, 13, 15, 17, 30, 34, 35, 37, 40, 45, 50, 60} 30 12 40 7 15 35 50 Tadeusz Pankowski www.put.poznan.pl/~tadeusz.pankowski

Bardziej szczegółowo

TABLICE HASZUJĄCE FUNKCJE HASZUJĄCE PRZYKŁAD FUNKCJE HASZUJĄCE FUNKCJE KOMPRESJI PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

TABLICE HASZUJĄCE FUNKCJE HASZUJĄCE PRZYKŁAD FUNKCJE HASZUJĄCE FUNKCJE KOMPRESJI PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI PROJKTOWANI ALGORYTMÓW I MTOY SZTUZNJ INTLIGNJI TALI HASZUJĄ, GRAY TALI HASZUJĄ 1 3 4 Wykłd 5-61-1 981-11- 451-9-4 dr inż. Łuksz Jeleń N podstwie wykłdów dr. T. evens UNKJ HASZUJĄ Tlic hszując dl dnego

Bardziej szczegółowo

Tworzenie gier na urządzenia mobilne

Tworzenie gier na urządzenia mobilne Katedra Inżynierii Wiedzy Wykład 11 O czym dzisiaj? labirynty, dużo labiryntów; automaty komórkowe; algorytmy do budowy labiryntów; algorytmy do szukania wyjścia z labiryntów; Blueprints i drzewa zachowań

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

Matematyka dyskretna - 5.Grafy.

Matematyka dyskretna - 5.Grafy. Matematyka dyskretna - 5.Grafy. W tym rozdziale zajmiemy się grafami. Są to wykresy zawierające rozmaite informacje, przedstawiające połączenia pomiędzy różnymi swoimi elementami. Algorytmy na nich oparte

Bardziej szczegółowo

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem

MODELE SIECIOWE 1. Drzewo rozpinające 2. Najkrótsza droga 3. Zagadnienie maksymalnego przepływu źródłem ujściem MODELE SIECIOWE 1. Drzewo rozpinające (spanning tree) w grafie liczącym n wierzchołków to zbiór n-1 jego krawędzi takich, że dowolne dwa wierzchołki grafu można połączyć za pomocą krawędzi należących do

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

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1

Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1 Marek Miszczyński KBO UŁ. Wybrane elementy teorii grafów 1 G. Wybrane elementy teorii grafów W matematyce teorię grafów klasyfikuje się jako gałąź topologii. Jest ona jednak ściśle związana z algebrą i

Bardziej szczegółowo

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski

Algorytmy i. Wykład 5: Drzewa. Dr inż. Paweł Kasprowski Algorytmy i struktury danych Wykład 5: Drzewa Dr inż. Paweł Kasprowski pawel@kasprowski.pl Drzewa Struktury przechowywania danych podobne do list ale z innymi zasadami wskazywania następników Szczególny

Bardziej szczegółowo

Algorytmy i struktury danych. wykład 5

Algorytmy i struktury danych. wykład 5 Plan wykładu: Wskaźniki. : listy, drzewa, kopce. Wskaźniki - wskaźniki Wskaźnik jest to liczba lub symbol który w ogólności wskazuje adres komórki pamięci. W językach wysokiego poziomu wskaźniki mogą również

Bardziej szczegółowo