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

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

4.6. Gramatyki regularne

PODSTAWY BAZ DANYCH Wykład 3 2. Pojęcie Relacyjnej Bazy Danych

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

Przechadzka Bajtusia - omówienie zadania

Kodowanie liczb. Kodowanie stałopozycyjne liczb całkowitych. Niech liczba całkowita a ma w systemie dwójkowym postać: Kod prosty

Gramatyki regularne. Teoria automatów i języków formalnych. Dr inż. Janusz Majewski Katedra Informatyki

Hipoteza Černego, czyli jak zaciekawić ucznia teorią grafów

Wektor kolumnowy m wymiarowy macierz prostokątna o wymiarze n=1 Wektor wierszowy n wymiarowy macierz prostokątna o wymiarze m=1

Zadania. I. Podzielność liczb całkowitych

WYMAGANIA I KRYTERIA OCENIANIA Z MATEMATYKI W 3 LETNIM LICEUM OGÓLNOKSZTAŁCĄCYM

Algorytmy graficzne. Filtry wektorowe. Filtracja obrazów kolorowych

Laura Opalska. Klasa 1. Gimnazjum nr 1 z Oddziałami Integracyjnym i Sportowymi im. Bł. Salomei w Skale

Algebra macierzowa. Akademia Morska w Gdyni Katedra Automatyki Okrętowej Teoria sterowania. Mirosław Tomera 1. ELEMENTARNA TEORIA MACIERZOWA

usuwa niewymierność z mianownika wyrażenia typu

Oznaczenia: K wymagania konieczne; P wymagania podstawowe; R wymagania rozszerzające; D wymagania dopełniające; W wymagania wykraczające

Wymagania na ocenę dopuszczającą z matematyki klasa II Matematyka - Babiański, Chańko-Nowa Era nr prog. DKOS /02

Wprowadzenie: Do czego służą wektory?

2. FUNKCJE WYMIERNE Poziom (K) lub (P)

Wykład 2. Granice, ciągłość, pochodna funkcji i jej interpretacja geometryczna

2. PODSTAWY STATYKI NA PŁASZCZYŹNIE

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

Komisja Egzaminacyjna dla Aktuariuszy LII Egzamin dla Aktuariuszy z 15 marca 2010 r. Część I Matematyka finansowa

Programy współbieżne

Wymagania edukacyjne matematyka klasa 2 zakres podstawowy 1. SUMY ALGEBRAICZNE

Matematyczne Podstawy Informatyki

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE IIc ZAKRES PODSTAWOWY I ROZSZERZONY

MATeMAtyka 3 inf. Przedmiotowy system oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony. Dorota Ponczek, Karolina Wej

Aby opisać strukturę krystaliczną, konieczne jest określenie jej części składowych: sieci przestrzennej oraz bazy atomowej.

4.3. Przekształcenia automatów skończonych

Wymagania kl. 2. Uczeń:

Karta oceny merytorycznej wniosku o dofinansowanie projektu konkursowego PO KL 1

Algebra Boola i podstawy systemów liczbowych. Ćwiczenia z Teorii Układów Logicznych, dr inż. Ernest Jamro. 1. System dwójkowy reprezentacja binarna

Klucz odpowiedzi do zadań zamkniętych i schemat oceniania zadań otwartych

KONKURS MATEMATYCZNY dla uczniów gimnazjów w roku szkolnym 2012/13. Propozycja punktowania rozwiązań zadań

Temat lekcji Zakres treści Osiągnięcia ucznia

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

Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych (zakres podstawowy)

Wspomaganie obliczeń za pomocą programu MathCad

zestaw DO ĆWICZEŃ z matematyki

bezkontekstowa generujac X 010 0X0.

Podstawy programowania obiektowego

Wszystkim życzę Wesołych Świąt :-)

INSTRUKCJA. - Jak rozwiązywać zadania wysoko punktowane?

PODSTAWY BAZ DANYCH Wykład 2 2. Pojęcie Relacyjnej Bazy Danych

4. RACHUNEK WEKTOROWY

PODSTAWY ALGEBRY MACIERZY. Operacje na macierzach

WEKTORY skalary wektory W ogólnym przypadku, aby określić wektor, należy znać:

1 Wprowadzenie do automatów

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY VIII w roku szkolnym 2015/2016

Realizacje zmiennych są niezależne, co sprawia, że ciąg jest ciągiem niezależnych zmiennych losowych,

WEKTORY skalary wektory W ogólnym przypadku, aby określić wektor, należy znać:

ZADANIA Z ZAKRESU SZKOŁY PODSTAWOWEJ, GIMNAZJUM I SZKOŁY ŚREDNIEJ

Przekształcenia automatów skończonych

RBD Relacyjne Bazy Danych

GRAFY i SIECI. Graf: G = ( V, E ) - para uporządkowana

ZADANIA OTWARTE. Są więc takie same. Trzeba jeszcze pokazać, że wynoszą one 2b, gdyż taka jest długość krawędzi dwudziestościanu.

Wymagania edukacyjne z matematyki FUNKCJE dopuszczającą dostateczną dobrą bardzo dobrą

Lista 4 Deterministyczne i niedeterministyczne automaty

Równania i nierówności kwadratowe z jedną niewiadomą

Semantyka i Weryfikacja Programów - Laboratorium 2 Działania na ułamkach, krotki i rekordy

DZIAŁ 2. Figury geometryczne

ZAGADKI WYKŁAD 7: ALGORYTMY I OBLICZENIA. 1 Notacja strzałkowa Knutha KOGNITYWISTYKA UAM (III, IV, V)

Wyrównanie sieci niwelacyjnej

1. Wstęp. Pojęcie grafu przepływowego. Niech pewien system liniowy będzie opisany układem liniowych równań algebraicznych

Szczegółowe wymagania edukacyjne z matematyki, klasa 2C, poziom podstawowy

Wymagania edukacyjne matematyka klasa 2b, 2c, 2e zakres podstawowy rok szkolny 2015/ Sumy algebraiczne

WYKŁAD 5. Typy macierzy, działania na macierzach, macierz układu równań. Podstawowe wiadomości o macierzach

Legenda. Optymalizacja wielopoziomowa Inne typy bramek logicznych System funkcjonalnie pełny

PRZEGLĄD FUNKCJI ELEMENTARNYCH. (powtórzenie) y=f(x)=ax+b,

Jest błędem odwołanie się do zmiennej, której nie przypisano wcześniej żadnej wartości.

Badanie regularności w słowach

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

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

Analiza matematyczna i algebra liniowa

Wymagania edukacyjne z matematyki Klasa IIB. Rok szkolny 2013/2014 Poziom podstawowy

Grażyna Nowicka, Waldemar Nowicki BADANIE RÓWNOWAG KWASOWO-ZASADOWYCH W ROZTWORACH ELEKTROLITÓW AMFOTERYCZNYCH

Podstawy układów logicznych

symbol dodatkowy element graficzny kolorystyka typografia

Rozwiązania maj 2017r. Zadania zamknięte

Klucz odpowiedzi do zadań zamkniętych i schemat oceniania zadań otwartych

WYZNACZANIE OGNISKOWEJ SOCZEWEK CIENKICH ZA POMOCĄ ŁAWY OPTYCZNEJ

Matematyczne Podstawy Informatyki

Maciej Grzesiak. Iloczyn skalarny. 1. Iloczyn skalarny wektorów na płaszczyźnie i w przestrzeni. a b = a b cos ϕ. j) (b x. i + b y

WYMAGANIA EDUKACYJNE NIEZBĘDNE DO UZYSKANIA POSZCZEGÓLNYCH ŚRÓDROCZNYCH I ROCZNYCH OCEN KLASYFIKACYJNYCH Z MATEMATYKI POZIOM PODSTAWOWY KLASA 2

PRZESZUKIWANIE W GŁĄB ALGORYTM PRZYKŁAD - C.D. PRZYKŁAD PRZESZUKIWANIE W GŁĄB (DFS) PROJEKTOWANIE ALGORYTMÓW I METODY SZTUCZNEJ INTELIGENCJI

Spis treści. Wstęp... 4

O RELACJACH MIĘDZY GRUPĄ OBROTÓW, A GRUPĄ PERMUTACJI

Równania nieliniowe. x i 1

system identyfikacji wizualnej forma podstawowa karta A03 część A znak marki

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE Ib ZAKRES PODSTAWOWY

Wymagania edukacyjne na poszczególne oceny z matematyki w klasie II poziom rozszerzony

SZTUCZNA INTELIGENCJA

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

WYZNACZNIKI. . Gdybyśmy rozważali układ dwóch równań liniowych, powiedzmy: Takie układy w matematyce nazywa się macierzami. Przyjmijmy definicję:

Wykład 6 Dyfrakcja Fresnela i Fraunhofera

Wymagania na poszczególne oceny z matematyki w Zespole Szkół im. St. Staszica w Pile. Kl. II poziom podstawowy

Ogólne wiadomości o grafach

Macierz. Wyznacznik macierzy. Układ równań liniowych

Przedmiotowy system oceniania z matematyki wraz z określeniem wymagań edukacyjnych (zakres podstawowy) Klasa II TAK

Transkrypt:

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 typu kluczy skłd się z funkcji hszującej h Tlicy o rozmirze N Kodu hszującego: h1: klucze integery unkcji kompresji: h: integery [, N 1] Nsz tlic hszując wykorzystywć ędzie tlice o rozmirze N = 1 z funkcją hszującą h(x) = ostnie cztery cyfry liczy x 1 3 4 9997 9998 9999 13-61--1 16-1-- 556---4-759-99-98 UNKJ HASZUJĄ unkcj hszującą jest zzwyczj połączeniem dwóch funkcji Zprojektujemy tlicę hszującą do przechowywni wpisów (NIP, Nzwisko), gdzie NIP jest 1 liczowym integerem unkcj hszując h mpuje klucze dnego typu n integery w stłym przedzile [, N-1] Przykłd h(x) = x mod N jest funkcją hszującą dl kluczy (integerów) Integer h(x) jest nzywne wrtością hszującą klucz x Początkowo stosujemy kod hszujący, nstępnie nkłdmy n to funkcję kompresji: h(x) = h(h1(x)) elem stosowni funkcji hszującej jest rozproszenie kluczy w pozornie losowy sposó UNKJ KOMPRSJI zielenie: h (y) = y mod N Rozmir tlicy hszującej N jest zzwyczj wyierny jko licz pierwsz Mnożenie, odwnie i zielenie: h (y) = (y + ) mod N (wsp. sklujący) i (przesunięcie) są integermi tkimi, że mod N w przeciwnym wypdku kżdy integer mpowły się do

OSŁUGA KOLIZJI Kolizje występują gdy różne elementy są mpowne do tej smej komórki linkownie kżd komórk tlicy wskzuje n listę zmpownych tm wpisów 1 3 5-61--1 4 451-9--4 981-11--4 linkownie jest łtwe, le wymg dodtkowych nkłdów pmięci PRÓKOWANI LINIOW Owrte dresownie: kolidujące elementy są umieszczne w innej komórce tlicy Prókownie liniowe rdzi soie z kolizjmi przez umieszczenie kolidującego elementu w kolejnej (okólnie) wolnej komórce tlicy Klucz = 3 do dodni [h(3) = 6] 41 18 44 59 3 1 3 4 5 6 7 8 9 1 11 1 Musimy prókowć dodtkowe dw rzy Kżd zdn komórk tlicy określn jest jko prók w powyższym przykłdzie użyto trzech próek do umieszczeni w tlicy liczy 3 PRÓKOWANIA LINIOWGO n jest tlic hszując przechowując klucze i rozwiązując kolizje z pomocą prókowni liniowego N = 13 h(k) = k mod 13 Wstw klucze 18, 41,, 44, 59, 3, 31, 73 (kolejność istotn) łkowit ilość próek: 19 k h (k ) Proes Prók 18 5 5 41 9 9 44 5 5 6 59 7 7 3 6 6 7 8 31 5 5 6 7 8 9 1 73 8 8 9 1 11 1 3 4 5 6 7 8 9 1 11 1 41 18 44 59 3 31 73 PRÓKOWANI LINIOW - PRZSZUKIWANI n jest tlic A wykorzystując prókownie liniowe get(k) zczynmy od komórki h(k) prókujemy kolejne loklizcje do momentu wystąpieni jednej z poniższych sytucji: element o kluczu k zostł znleziony znleziono pustą komórkę Sprwdzono ez powodzeni N komórek Algorytm get(k) i h(k) p // zlicz ilość próek repet c A[i] if c = // pust komórk return null else if c.key () = k return c.element() else // prókownie liniowe i (i + 1) mod N p p + 1 until p = N return null UAKTUALNIANI Z ZASTOSOWANIM PRÓKOWANIA LINIOWGO W celu wykonni opercji wstwieni i usunięci wprowdzimy specjlny oiekt, OSTĘPNY, który zstąpi usunięte elementy remove(k) szukmy wpisu o kluczu k Jeśli tki wpis (k, v) zostł znleziony, to zstępujemy go oiektem OSTĘPNY i zwrcmy wrtość v w przeciwnym rzie zwrcmy null put(k,v) Wyrzucmy wyjątek jeśli tlic jest pełn Rozpoczynmy od komórki h(k) Prókujemy kolejne komórki do momentu wystąpieni jednej z poniższych sytucji: Znlezion komórk i lo jest pust, lo zwier zncznik OSTĘPNY Sprwdzono ez powodzeni N komórek Zpisujemy wpis (k, v) w komórce i odj nstępujące integery do tlicy hszującej stosując prókownie liniowe {18, 41,, 44, 6, 31, 3, 9} Zstosownie: N = 11 funkcj hszując: h(x) = x mod 11 1 3 4 5 6 7 8 9 1

POWÓJN HASZOWANI Technik podwójnego hszowni wykorzystuje drugą funkcję hszującą d(k) i rozwiązuje kolizje poprzez umieszczenie elementu w pierwszej wolnej komórce spełnijącej: (i + j*d(k)) mod N gdzie i = h(k) dl j =, 1,, N-1 rug funkcj hszując nie może przyjmowć wrtości równych Rozmir tlicy N musi yć liczą pierwszą Njczęstszym wyorem drugiej funkcji hszującej jest: d(k) = q - (k mod q) gdzie q < N q jest liczą pierwszą Możliwe wrtości dl d(k) to 1,,, q n jest tlic hszując przechowując klucze i rozwiązując kolizje z pomocą podwójnego hszowni N = 13 h(k) = k mod 13 d(k) = 7 - k mod 7 Wstw klucze 18, 41,, 44, 59, 3, 31, 73 (kolejność istotn) łkowit ilość próek: 11 k h (k ) d (k ) Prók Proes 18 5 3 5 41 1 9 6 9 44 5 5 5 1 59 7 4 7 3 6 3 6 31 5 4 5 9 73 8 4 8 1 3 4 5 6 7 8 9 1 11 1 31 41 18 3 59 73 44 1 3 4 5 6 7 8 9 1 11 1 ZŁOŻONOŚĆ HASZOWANIA W njgorszym przypdku, opercje przeszukiwni, wstwini i usuwni n tlicch hszujących dziłją w czsie O(n) Njgorszy przypdek występuje w momencie kiedy wszystkie klucze umieszczne w tlicy posidją kolizje Oczekiwny czs dziłni wszystkich opercji n tlicy hszującej to O(1) W prktyce hszownie jest rdzo szykie Zstosownie tlic hszujących młe zy dnych kompiltory pmięć podręczn przeglądrek GRAY 3 1743 133 GRAY Grf jest prą (V, ), gdzie V jest ziorem węzłów zwnych wierzchołkmi jest ziorem pr wierzchołków zwnych krwędzimi Wierzchołki i krwędzie są pozycjmi przechowującymi elementy Przykłd: Wierzchołek reprezentuje lotnisko i przechowuje trzyliterowe kody lotnisk Krwędzie reprezentują połączenie lotnicze między dwom lotniskmi i przechowują długość połączeni HNL 555 3 1743 133 1387 11 LGA 14 199 TYPY KRAWĘZI Krwędź skierown skierown pr wierzchołków (u, v) pierwszy wierzchołek u jest początkiem drugi wierzchołek v jest celem/końcem np.: lot Krwędź nieskierown nieskierown pr wierzchołków (u, v) np.: połączenie lotnicze Grf skierowny wszystkie krwędzie są skierowne np.: mp połączeń Grf nieskierowny wszystkie krwędzie są nieskierowne lot AA 16 mil

ZASTOSOWANIA TRMINOLOGIA Owody elektroniczne płytki drukowne Sieci trnsportowe sieć utostrd sieć połączeń lotniczych Sieci komputerowe LAN Internet We zy dnych digrm związków encji csl1 csl1 mth.rown.edu cs.rown.edu rown.edu qwest.net tt.net cox.net John Pul vid Wierzchołki końcowe krwędzi U i V są końcmi krwędzi Krwędzie incydentne do wierzchołków, są incydentne do V Wierzchołki sąsiednie U i V są sąsiednie Stopień wierzchołk X m stopień 5 Krwędzie równoległe h i j są równoległe Pętl i jest pętlą U c V d W f e Gęstość grfu: Stosunek liczy krwędzi do mx. liczy krwędzi V ( V - 1) X Y g h j Z i TRMINOLOGIA TRMINOLOGIA 3 Ścieżk sekwencj kolejnych wierzchołków i krwędzi rozpoczyn się od wierzchołk kończy się n wierzchołku kżdą krwędź poprzedz i nstępuje jej U wierzchołek końcowy Prost ścieżk ścieżk, w której wszystkie wierzchołki i krwędzie różnią się od sieie Przykłdy: P 1 =(V,,X,h,Z) jest prostą ścieżką P =(U,c,W,e,X,g,Y,f,W,d,V) nie jest ścieżką prostą c d P V W f e P 1 X Y g h Z ykl okrężn sekwencj kolejnych wierzchołków i krwędzi kżdą krwędź poprzedz i nstępuje jej wierzchołek końcowy ykl prosty U cykl, w którym wszystkie wierzchołki i c krwędzie różnią się od sieie Przykłdy: 1 =(V,,X,g,Y,f,W,c,U,, ) jest cyklem prostym =(U,c,W,e,X,g,Y,f,W,d,V,, ) nie jest cyklem prostym d V W f e X Y 1 g h Z WŁAŚIWOŚI GŁÓWN MTOY GRAÓW AT Włściwość 1 Σ v deg(v) = m owód: kżd nieskierown krwędź jest liczon dw rzy Włściwość W grfie nieskierownym ez pętli i wielokrotnych krwędzi m n (n 1)/ owód: kżdy wierzchołek m stopień njwyżej (n 1) Notcj n m deg(v) ilość wierzchołków ilość krwędzi stopień wierzchołk v Przykłd n = 4 m = 6 deg(v) = 3 Wierzchołki i krwędzie są pozycjmi przechowują elementy Metody dostępu: endvertices(e): tlic dwóch końcowych wierzchołków e opposite(v, e): przeciwległy wierzchołek do v względem e readjcent(v, w): prwd iff v i w sąsiednie replce(v, x): zstąp element w wierzchołku v n x replce(e, x): zstąp element n krwędzi e n x Metody uktulnijące insertvertex(o): dodj wierzchołek przechowujący element o insertdge(v, w, o): dodj krwędź (v,w) przechowujący element o removevertex(v): usuń wierzchołek v (orz przylegjące krwędzie) removedge(e): usuń krwędź e Metody iterujące incidentdges(v): krwędzie przylegjące do v vertices(): wszystkie wierzchołki w grfie edges(): wszystkie krwędzie w grfie

LISTA KRAWĘZI LISTA SĄSIZTWA Oiekt - wierzchołek element referencj do pozycji w liście wierzchołków Oiekt - krwędź element oiekt - wierzchołek początkowy oiekt - wierzchołek końcowy referencj do pozycji w liście krwędzi V u c d v w z u v w z Struktur listy krwędzi List incydencji dl kżdego wierzchołk, I(v) sekwencj referencji do oiektów krwędzi krwędzi incydentnych I(u) v u w u v w I(w) I(v) V List wierzchołków sekwencj oiektów wierzchołk c d Rozszerzone oiekty krwędzi List krwędzi referencje do listy sąsiedztw sekwencj oiektów krwędzi wierzchołków końcowych MAIRZ SĄSIZTWA ZŁOŻONOŚĆ ASYMPTOTYZNA Struktur listy krwędzi Rozszerzony oiekt wierzchołk klucz - integer key (indeks) - powiązny z wierzchołkiem Tlic sąsiedztw Referencj do oiektu krwędzi dl sąsiednich wierzchołków Null dl wierzchołków niesąsidujących u u 1 v w v 1 1 w V n wierzchołków, m krwędzi rk krwędzi równoległych rk pętli Złożoność w notcji duże-o List krwędzi List sąsiedztw Mcierz sąsiedztw Miejsce n + m n + m n incidentdges(v) m deg(v) n readjcent (v, w) m min(deg(v), deg(w)) 1 insertvertex(o) 1 1 n insertdge(v, w, o) 1 1 1 removevertex(v) m deg(v) n removedge(e) 1 1 1 POGRAY ŁĄZNOŚĆ Podgrf S grfu G jest tkim grfem, że wierzchołki S są podziorem wierzchołków G Podgrf Grf jest połączony (spójny) jeśli istnieje ścieżk między kżdą prą wierzchołków. Grf połączony Podgrf rozpinjący grfu G jest podgrfem, który zwier wszystkie wierzchołki G lementem połączonym grfu G jest mksymlny podgrf połączony grfu G Podgrf rozpinjący Grf niepołączony (niespójny) z dwom połączonymi elementmi

RZWA I LASY RZWA I LASY ROZPINAJĄ rzewo jest grfem nieskierownym tkim, że T jest połączone rzewo rozpinjące grfu połączonego jest podgrfem połączonym, które jest drzewem T nie zwier cykli Jest to inn definicj drzew niż w przypdku drzew ukorzenionego Lsem jest grf nieskierowny ez cykli Komponenty połączone lsu są drzewmi rzewo Ls rzewo rozpinjące nie jest uniklne dopóki grf nie jest drzewem rzew rozpinjące mją zstosownie w siecich komunikcyjnych Ls rozpinjący grfu jest podgrfem rozpinjącym, który jest lsem Grf rzewo rozpinjące GRA WAŻONY W grfie wżonym kżd krwędź m przypisną wrtość liczową, tzw. wgę krwędzi Wgi krwędzi mogą reprezentowć odległości, koszt, czs, itp. Przykłd: W grfie trs lotniczych wg krwędzi reprezentuje odległość między lotniskmi końcowymi wyrżoną w milch HNL 555 3 1743 133 1387 11 LGA 14 199 15 PROLM Złóżmy, że chcemy połączyć wszystkie komputery w nowo tworzonym lortorium/iurze minimln ilość kl - koszty Rozwiąznie: Model grfu wżonego (G) wierzchołki - komputery krwędzie - wszystkie możliwe pry (u, v) komputerów deg(u, v) = w(u, v) - odpowid długości kl potrzenego do połączeni komputer v z komputerem u Mogliyśmy wyznczyć njkrótszą drogę od wierzchołk v nieoptymlne Znjdziemy drzewo T, które zwier wszystkie wierzchołki G i posid njmniejsze łączne wgi ze wszystkich drzew rozpinjących. csl1 Pul cs.rown.edu tt.net csl1 cox.net rown.edu vid mth.rown.edu John qwest.net MINIMALN RZWA ROZPINAJĄ Mjąc dny nieskierowny grf G, chcemy znleźć drzewo T, które zwier wszystkie wierzchołki i minimlizuje sumę: w(t) = w((v, u)) ((v, u) T) Prolem wyznczni drzew rozpinjącego o njmniejszej wdze nzyw się prolemem minimlnego drzew rozpinjącego (MST). ALGORYTM KRUSKALA uduje minimlne drzewo rozpinjące z zstosowniem klstrów grupowni węzłów Początkowo wszystkie węzły stnowią osone klstry Krwędzie przechowywne w kolejce priorytetowej wgi są kluczmi l wszystkich krwędzi: Q.removeMin(); Jeśli u i v nie nleżą do tego smego klstr to dodjemy (v, u) do T Łączymy klstry zwierjące u i v w jeden Algorytm Kruskl(G) Wejście: Grf wżony G z n wierzchołkmi i m krwędzimi Wyjście: Minimlne drzewo rozpinjące T dl grfu G for kżdy wierzchołek v w G (v) {k} Q {} // - list krwędzi T while T.size() < n-1 do (u, v) Q.removeMin() if (v) (u) T.Add(v, u) Merge((v), (u)) return T

6 6 6 6 6 6

6 6 6 6 6 6

ZŁOŻONOŚĆ ALGORYTMU KRUSKALA 6 Możemy zimplementowć kolejkę priorytetową z pomocą kopc O(m log n) - sukcesywne wstwinie do kolejki O(m) - techniką ottom-up Usuwnie: O(log m) => O(log n) (grf jest prosty) Ztem czs to O(m log n) (pętl while) łkowit złożoność lgorytmu Kruskl: łkowity czs pętli while: (1 + deg(v))log n (v G) co dje czs O((n + m) log n) po uproszczeniu O(m log n) ALGORYTM PRIMA - JARNIKA uduje minimlne drzewo rozpinjące z zstosowniem klstrów rozpoczyn od dowolnego wierzchołk v korzeni Ide zliżon do lgorytmu ijkstry (później) odjemy v do drzew T, krwędzie incydentne do v umieszczmy w kolejce priorytetowej wgi są kluczmi Q.removeMin(): jeśli wierzchołek z MST to dodjemy z do MST dodjemy do Q krwędzie incydentne do z jeśli T zwier wszystkie wierzchołki grfu to koniec Algorytm PrimJrnik(G) Wejście: Grf wżony G z n wierzchołkmi i m krwędzimi Wyjście: Minimlne drzewo rozpinjące T dl grfu G v losowy wierzchołek z G (v) //ieżące MST for kżdy wierzchołek u v (u) + Q {} // - list krwędzi T while Q.ismpty = flse do (u, e) Q.removeMin() T.Add(u, e) for kżdy wierzchołek z Q sąsiedni do u if w(u, z) < (z) (z) w(u,z) Wstw (u, z) do Q z kluczem (z) return T 6 6 6

6 6 6 6 6 6

ZŁOŻONOŚĆ Możemy zimplementowć kolejkę priorytetową z pomocą kopc Usuwnie: O(log n) Ztem czs to O(m log n) (pętl while) Uktulninie: mx. O(log n) dl kżdej krwędzi (u, z) Pozostłe opercje wykonywne w czsie O(1) Ztem cłkowity czs to O((n + m) log n) po uproszczeniu O(m log n) NAJKRÓTSZA ŚIŻKA 8 7 1 3 5 3 9 8 5 NAJKRÓTSZA ŚIŻKA Mjąc dny grf wżony i dw wierzchołki u i v chcemy wyznczy ścieżkę między nimi o njmniejszej cłkowitej wdze. ługość ścieżki jest sumą wg jej krwędzi. Przykłd: Njkrótsz ścieżk między Providence i Honolulu Zstosowni Przekierowywnie pkietów Internetowych Rezerwcje lotów Wskzówki dl kierowców (np.: GPS) HNL 555 3 1743 133 1387 11 LGA 14 199 15 WŁAŚIWOŚI Włściwość 1: Podścieżk njkrótszej ścieżki jest njkrótszą ścieżką sm w soie Włściwość : Istnieje drzewo njkrótszych ścieżek począwszy od węzł strtowego do wszystkich pozostłych węzłów Przykłd: rzewo njkrótszych ścieżek z Providence HNL 555 3 1743 133 1387 11 LGA 14 199 15 ALGORYTM IJKSTRY RLAKSAJA WIRZHOŁKÓW Odległość wierzchołk v od wierzchołk s jest długością njkrótszej ścieżki między s nd v Algorytm ijkstr wyzncz odległości wszystkich wierzchołków począwszy od wierzchołk strtowego s Złożeni: grf jest spójny/połączony krwędzie są nieskierowne wgi krwędzi są nieujemne Podonie jk w przypdku lgorytmu Prim ędziemy tworzyć chmurę ze wszystkich wierzchołków (MST) począwszy od s Przechowujemy kżdy wierzchołek v, etykietę d(v) reprezentującą odległość v od s w podgrfie zwierjącym MST wrz z sąsiednimi wierzchołkmi Przy kżdej itercji odjemy wierzchołek u nieznjdujący się w MST o njmniejszej odległości, d(u) Uktulnimy etykiety wierzchołków sąsiednich do u Weźmy krwędź e = (u,z) tką, że u jest wierzchołkiem osttnio dodnym z jest poz MST/chmurą Relkscj krwędzi e ktulizuje odległość d(z) nstępująco: d(z) min{d(z),d(u) + wg(e)} s s d(u) = 5 u d(u) = 5 u e e 1 1 d(z) = 75 z d(z) = 6 z

8 7 1 4 3 9 5 8 7 1 3 5 3 9 11 5 8 7 1 3 5 3 9 8 5 7 7 1 3 5 3 9 8 7 7 1 3 5 3 9 8 5 7 7 1 3 5 3 9 8 5 ALGORYTM IJKSTRA Kolejk priorytetow przechowuje wierzchołki nieznjdujące sie w ieżącym MST Klucz: odległość lement: wierchołek insert(k,e) zwrc loklizcję replcekey(l,k) zmieni klucz dl dnego elementu Przechowujemy dwie etykiety dl kżdego wierzchołk: Odległość (d(v)) loklizcje w kolejce priorytetowej Algorithm ijkstristnces(g, s) Q now kolejk priorytetow zując n kopcu for ll v G.vertices() if v = s setistnce(v, ) else setistnce(v, ) l Q.insert(getistnce(v), v) setloctor(v,l) while ~Q.ismpty() u Q.removeMin() for ll e G.incidentdges(u) {relkscj krwędzi e } z G.opposite(u,e) r getistnce(u) + weight(e) if r < getistnce(z) setistnce(z,r) Q.replceKey(getLoctor(z),r) Opercje grfowe ZŁOŻONOŚĆ Metod incidentdges jest wywoływn rz dl kżdego wierzchołk Opercje etykietowni Ustwimy/poiermy odległość i loklizcję wierzchołk z O(deg(z)) rzy Ustwinie/poiernie etykiety zjmuje czs O(1) Opercje n kolejce priorytetowej Kżdy wierzchołek jest umieszczny i usuwny z kolejki tylko rz. Kżd tk opercj zjmuje czs O(log n) Klucz wierzchołk jest modyfikowny njwyżej deg(w) rzy. Kżd zmin klucz zjmuje czs O(log n) Algorytm ijkstr dził w czsie O((n + m) log n) pod wrunkiem, że grf jest zimplementowny z pomocą listy sąsiedztw Po uproszczeniu O(m log n) - grf jest spójny