Przyspieszenie knn. Plan wykładu. Klasyfikacja w oparciu o przykładach. Algorytm klasyfikacji. Funkcja odległoci

Podobne dokumenty
PRZYSPIESZENIE KNN. Ulepszone metody indeksowania przestrzeni danych: R-drzewo, R*-drzewo, SS-drzewo, SR-drzewo.

Bazy danych. Plan wykładu. Metody organizacji pliku rekordów. Pojcie indeksu. Wykład 11: Indeksy. Pojcie indeksu - rodzaje indeksów

Temat: Geometria obliczeniowa cz II. Para najmniej odległych punktów. Sprawdzenie, czy istnieje para przecinajcych si odcinków.

Tadeusz Pankowski

Bazy danych. Plan wykładu. Klucz wyszukiwania. Pojcie indeksu. Wykład 8: Indeksy. Pojcie indeksu - rodzaje indeksów

Temat: Struktury do przechowywania danych w pamici zewntrznej. B - drzewa. B * - drzewa. B + - drzewa.

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

Szukanie najkrótszych dróg z jednym ródłem

Temat: Problem minimalnego drzewa Steinera. Definicja problemu. Zastosowania. Algorytm dokładny Hakimi. Algorytmy aproksymacyjne.

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

.! $ Stos jest list z trzema operacjami: dodawanie elementów na wierzch stosu, zdejmowanie elementu z wierzchu stosu, sprawdzanie czy stos jest pusty.

Wysokość drzewa Głębokość węzła

Bazy danych. Plan wykładu. Podzapytania - wskazówki. Podzapytania po FROM. Wykład 5: Zalenoci wielowartociowe. Sprowadzanie do postaci normalnych.

Wstp. Warto przepływu to

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

Temat: Technika zachłanna. Przykłady zastosowania. Własno wyboru zachłannego i optymalnej podstruktury.

Przykładowe B+ drzewo

CLUSTERING II. Efektywne metody grupowania danych

Algorytmy i Struktury Danych

Definicja pliku kratowego

ZASADY PROGRAMOWANIA KOMPUTERÓW ZAP zima 2014/2015. Drzewa BST c.d., równoważenie drzew, kopce.

Wyk lad 7: Drzewa decyzyjne dla dużych zbiorów danych

Wektor o pocztku i kocu odpowiednio w punktach. Prosta zawierajca punkty p i q: pq Półprosta zaczynajca si w punkcie p i zawierajca punkt q:.

Algorytmy zrandomizowane

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

stopie szaro ci piksela ( x, y)

< K (2) = ( Adams, John ), P (2) = adres bloku 2 > < K (1) = ( Aaron, Ed ), P (1) = adres bloku 1 >

Algorytmy i Struktury Danych, 9. ćwiczenia

Uniwersytet Zielonogórski Instytut Sterowania i Systemów Informatycznych. Algorytmy i struktury danych Laboratorium 7. 2 Drzewa poszukiwań binarnych

Wykład 2. Drzewa poszukiwań binarnych (BST)

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

Drzewo. Drzewo uporządkowane ma ponumerowanych (oznaczonych) następników. Drzewo uporządkowane składa się z węzłów, które zawierają następujące pola:

Plan wykładu. Reguły asocjacyjne. Przykłady asocjacji. Reguły asocjacyjne. Jeli warunki to efekty. warunki efekty

Kolejka priorytetowa. Często rozważa się kolejki priorytetowe, w których poszukuje się elementu minimalnego zamiast maksymalnego.

Tworzenie bazy danych Biblioteka tworzenie tabel i powiza, manipulowanie danymi. Zadania do wykonani przed przystpieniem do pracy:

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

Temat: Algorytmy zachłanne

Drzewa poszukiwań binarnych

Plan wykładu. Klucz wyszukiwania. Pojęcie indeksu BAZY DANYCH. Pojęcie indeksu - rodzaje indeksów Metody implementacji indeksów.

R-drzewa. Realizowane funkcje: Struktura węzłów R-drzewa

Podstawy Informatyki. Metody dostępu do danych

Problemy optymalizacyjne - zastosowania

CLUSTERING. Metody grupowania danych

Wykład 6. Drzewa poszukiwań binarnych (BST)

Zadania do wykonaj przed przyst!pieniem do pracy:

Drzewa ćwiartek (ang. Quadtree) i R-drzewa (ang. R-tree)

Zadanie 1 Przygotuj algorytm programu - sortowanie przez wstawianie.

Luty 2001 Algorytmy (4) 2000/2001

SYSTEMY UCZĄCE SIĘ WYKŁAD 4. DRZEWA REGRESYJNE, INDUKCJA REGUŁ. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska

oraz spełnia warunki: (*) dla wszystkich wierzchołków

Sposoby przekazywania parametrów w metodach.

Bazy danych Podstawy teoretyczne

Algorytmy zwiazane z gramatykami bezkontekstowymi

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

ALGORYTMY I STRUKTURY DANYCH

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

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

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Przykłady wyrae uywanych w kwerendach i filtrach

Drzewa binarne. Drzewo binarne to dowolny obiekt powstały zgodnie z regułami: jest drzewem binarnym Jeśli T 0. jest drzewem binarnym Np.

KLUCZ PUNKTOWANIA ODPOWIEDZI

I Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 10 kwietnia 2013 grupa elektryczno-elektroniczna

Strategia "dziel i zwyciężaj"

Temat: Problem najkrótszych cieek w grafach waonych, cz. I: Algorytmy typu label - setting.

Porządek symetryczny: right(x)

Bazy danych. Plan wykładu. Dekompozycja relacji. Anomalie. Wykład 5: Projektowanie relacyjnych schematów baz danych. SQL - funkcje grupujce

Problem decyzyjny naley do klasy NP. (Polynomial), jeeli moe by rozwizany w czasie conajwyej wielomianowym przez algorytm A dla DTM.

Przypomnij sobie krótki wstęp do teorii grafów przedstawiony na początku semestru.

ODPOWIEDZI I SCHEMAT PUNKTOWANIA ZESTAW NR 2 POZIOM PODSTAWOWY. 1. x y x y

Bazy danych. Plan wykładu. Proces modelowania i implementacji bazy danych. Elementy ERD. Wykład 2: Diagramy zwizków encji (ERD)

rysunek. Standardowym Przybornika Elips.

B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

Rekurencja. Dla rozwiązania danego problemu, algorytm wywołuje sam siebie przy rozwiązywaniu podobnych podproblemów. Przykład: silnia: n! = n(n-1)!

Algorytmy i Struktury Danych, 2. ćwiczenia

Wykład 3. Metoda dziel i zwyciężaj

Drzewa poszukiwań binarnych

Podstawowe algorytmy i ich implementacje w C. Wykład 9

5. Kliknij czarny trójkt umieszczony w prawym dolnym rogu ikony narzdzia Wypełnienie i - z rozsuwanej palety - wybierz pozycj Wypełnienie jednolite.

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

Sortowanie bąbelkowe

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

IV Powiatowy Konkurs Matematyka, Fizyka i Informatyka w Technice Etap finałowy 1 kwietnia 2016

Data Mining Wykład 9. Analiza skupień (grupowanie) Grupowanie hierarchiczne O-Cluster. Plan wykładu. Sformułowanie problemu

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

Wprowadzenie do algorytmów. START

Algorytmy i Struktury Danych. Co dziś? Drzewo decyzyjne. Wykład IV Sortowania cd. Elementarne struktury danych

Róniczka. f x. V Vx. Zadanie 4. Znale maksymalny błd bezwzgldny i wzgldny powstały przy obliczaniu objtoci stoka, jeli promie podstawy wynosi

Granular Computing 9999 pages 15 METODY SZTUCZNEJ INTELIGENCJI - PROJEKTY

Rekurencyjne struktury danych

Wybrane algorytmy tablicowe

Analiza algorytmów zadania podstawowe

Sortowanie przez scalanie

Programowanie dynamiczne cz. 2

Cash flow projektu zakładajcego posiadanie własnego magazynu oraz posiłkowanie si magazynem obcym w przypadku sezonowych zwyek

Struktury Danych i Złożoność Obliczeniowa

WYKŁAD 4 PLAN WYKŁADU. Sieci neuronowe: Algorytmy uczenia & Dalsze zastosowania. Metody uczenia sieci: Zastosowania

CorelDraw rysunek. Standardowym Otwórz, Elipsa Ctrl. Rozmieszczenie > Transformacja. Transformacja. Rozmiar. Nieproporcjonalnie. 125 Zastosuj.

System plików warstwa fizyczna

System plików warstwa fizyczna

System plików warstwa fizyczna

Transkrypt:

Plan wykładu Przyspieszenie knn Ulepszone metody indeksowania przestrzeni danych: R-drzewo, R*-drzewo, SS-drzewo, SR-drzewo. Klasyfikacja w oparciu o przykładach Problem indeksowania przestrzeni obiektów Struktura przestrzeni obiektów R-tree Operacje na R drzewie Insert Delete Search Wyszukiwania k najbliszych ssiadów w oparciu o R- drzewie Ulepszenia Klasyfikacja w oparciu o przykładach Algorytm klasyfikacji Wejcie: Tablica decyzyjna D, nowy obiekt x q Wyjcie: Klasa decyzyjna, do której naley x q (czyli Dec(x q )) Parametry: k - liczba ssiadów, funkcja odległoci d IBL: k najbliszych ssiadów Reguły decyzyjne Krok 1: Szukaj w zbiorze D, k najbliej połoonych obiektów {x 1, x 2,..., x k } Krok 2: Wyznacz klas dla x q na podstawie Dec(x 1 ), Dec(x 2 ),..., Dec(x k ) Funkcja odległoci Problematyki zwizane z klasyfikacj w oparciu o przykładach Niech kady obiekt x bdzie zdefiniowany wektorem wartoci: <a 1 (x),...,a k (x)> Odległo Euklidesowa: d( x, y) = ( a ( x) 2 a ( y) ) i i i Funkcja odległo Szukanie k najbliszych ssiadów Strategia głosowanie Dla atrybutów symbolicznych a i : 0 ai ( x) ai ( y) = 1 a ( x) = a ( y) a ( x) a ( y) Atrybuty rzeczywiste: Unormowa i i i i 1

Wyszukiwanie k najbliszych ssiadów Tablica danych: Sekwencyjne poszukiwanie: O(n) (n liczba obiektów w zbiorze D) Strukturalny zbiór danych (indeksowany zbiór danych): Struktura: Obiekty s prezentowane jako punkty w przestrzeni R n Przestrze obiektów jest podzielona na małe fragmenty Fragmenty s zapamitane w strukturze drzewiastym Wyszukiwanie: Przegldaj drzewo i wybieraj fragmenty, gdzie mog zawiera najbliszych ssiadów dla danego obiektu Szuka w znalezionych fragmentach najbliszych ssiadów Czas wyszukiwania: O(logn) Podział przestrzeni obiektów Przestrze obiektów jest podzielona na n-wymiarowe prostokty (niekoniecznie rozłczne). Prostokty pokrywaj wszystkie obiekty w zbiorze danych Prostokty s minimalne (MBR - Minimum Bounding Rectangle) Opis prostokta: I = {[a 1, b 1 ],...,[a n, b n ]} Struktura R-drzewa Własnoci R - drzewa Drzewo zrównowaone Wzeł wewntrzny zawiera klucze (opis prostokta I) i wskaniki do synów Wzeł zewntrzny zawiera list obiektów zawierajcych si w odpowiednim prostokcie Korze ma co najmniej dwóch synów Kady wzeł wewntrzny ma pomidzy m a M synów Kady li zawiera pomidzy m a M obiektów Wszystkie licie znajduj si na jednym poziomie drzewa m: minimalna liczba rozgałzienia w wle M: maksymalna liczba rozgałzienia w wle 2 m M Wzeł przepełniony: zawiera wicej ni M rekordów (kluczy) Wzeł niedomiarowy: zawiera mniej ni m rekordów Figure 1 Collections of Rectangles Operacje na drzewie Wstawianie (insert) Usuwanie (delete) Wyszukiwanie (search) Wstawianie obiektu do drzewa Wejcie: T dane R-drzewo, x new nowy obiekt do wstawiania Wyjcie: R-drzewo T zawierajce obiekt x new 2

Wstawianie obiektu do drzewa Wejcie: T: R - drzewo, x new - obiekt do wstawiania Wyjcie: T z obiektem x new Algorytm Insert: Krok 1. Wybieraj odpowiedni li L do wstawiania x new uywajc ChooseLeaf Krok 2. Jeli jest miejsce w L, wstaw x new w L wpp. 2.1 Wstaw x new w L 2.2 Podziel L na L 1 i L 2 2.3 Modyfikuj drzewo uywajc AdjustTree Krok 3. Jeli korze musi by podzielony, utwórz nowy korze, którego synami s dwie czci poprzedniego korzenia Funkcja ChooseLeaf Wejcie: T: R - drzewo, x new - obiekt do wstawiania Wyjcie: odpowiedni li L dla x new (funkcja rekurencyjna) Krok 1. L korze(t) Krok 2. if L jest liciem return L; else // L jest wzłem wewntrznym wybierz prostokt F k L lecy najbliej obiektu x new Jeli takich jest kilka, wybierz najmniejszy prostokt Krok 3. Zastosuj ChooseLeaf dla F k Funkcja AdjustTree Zadania: Powiksza istniejce prostokty, eby zawierały nowy obiekt Podzieli due wzły na mniejsze, jeli zawieraj wicej ni M elementów Wejcie: T: drzewo, L li, od którego drzewo ma by modyfikowane Wyjcie: T spełniajce ograniczenia R-drzewa Funkcja AdjustTree Funkcja AdjustTree(L) Krok 1. ActiveNode L Krok 2. if ActiveNode jest korzeniem stop else P = ActiveNode.Parent(); Powiksz prostokt w P zwizany z ActiveNode, eby zawierał on wszystkie prostokty w ActiveNode; Krok 3. if P zawiera wicej ni M elementów SpliteNode (P); AdjustTree (P.Parent()); Funkcja Splite Funkcja Splite (c.d.) Zadanie: Podzieli przepełniony wzeł na dwa nowe wzły Kryterium: Nowe powstajce prostokty s małe Idea: Wybierz rdzenia nowych grup: wybierz dwa najdalej połoone prostokty i wstaw je do rónych wzłów Rozdziel pozostałe elementy: wstaw p do tej grupy, która wymaga najmniejszego powikszania, aby zawierała p Dobry podział Zły podział rdzenia 3

Algorytm Splite Usuwanie obiektu z drzewa Wejcie: Wzeł w zawiera M+1 elementów Wyjcie: Dwa wzły, kady zawiera pomidzy m a M elementów Krok 1: Wybierz rdzenia grup i wstaw je do dwóch nowych wzłów Krok 2: repeat przydziel elementy until wszystkie elementy s przydzielone do grup lub jedna grupa ma m (lub M+1-m) elementów Krok 3: dołcz pozostałe elementy do drugiej grupy Algorytm usuwania obiektu Wejcie:T: R - drzewo, x - obiekt do usuwania Wyjcie: T : drzewo bez x Krok 1: Szukaj licia L, który zawiera x (uywajc FindLeaf) Krok 2: Usu x z L Krok 3: Modyfikuj drzewo uywajc CondenseTree Krok 4: Jeli korze zawiera tylko jednego syna, usu stary korze, syn bdzie korzeniem. Funkcja FindLeaf Wejcie:T: R-drzewo, x: obiekt Wyjcie: li, który zawiera x Krok 1: Jeli T jest liciem zwracaj T Krok 2: Dla kadego syna T.s, jeli prostokt zawiera x to FindLeaf(T.s) Krok 3: Jeli T jest liciem, sprawd, czy w nim x wystpuje. Jeli tak, zwracaj T Funkcja CondenseTree Wyszukiwanie k najbliszych ssiadów za pomoc R- drzewa Wejcie:T: R - drzewo, L li, od którego drzewo ma by poprawione Wyjcie: T: skondensowane drzewo Krok 1: N = L; Jeli N nie jest korzeniem P = N.Parent() Krok 2: if N zawiera mniej ni m synów usu N z drzewa zapisz wszystkie elementy N na licie Q Krok 3: if N jest dobry zmniejsz prostokt w N, eby prostokt w N był MBR Krok 4: N = P; goto Krok 1 Krok 5: Wstaw wszystkie elementy Q do drzewa. 4

MBR Minimal Bounding Rectangle Własno MBR MBR jest n-wymiarowym prostoktem uywanym w R-drzewie, który ogranicza obiekty. Własno MBR: Kadaciana prostokta zawiera co najmniej jeden punkt bazy danych. Funkcje odległoci uywane do wyszukiwania k-nn MINDIST (p, R): minimalna odległo punktu p do prostokta R. MINDIST(p, R) = min o R d(p,o) Własnoci: Jeli p znajduje si wewntrz prostokta, to MINDIST(p,R) = 0 Dla kadego o D R, MINDIST(p, R) d(p,o) Funkcje odległoci uywane do wyszukiwania k-nn MINMAXDIST (p, R) jest minimalna odległo punktu p do najdalszych punktów cian prostokta R Jeli d*(p,s) oznacza odległo p do najdalszego punktu ciany S, to MINMAXDIST (p, R) = min S:ciana R d*(p,s) Własno: Istnieje obiekt w R, którego odległo do p jest mniejsza ni MINMAXDIST o D R d(p,o) MINMAXDIST(p, R) MINDIST & MINMAXDIST MINDIST(p,R) <= NN(p) <= MINMAXDIST(p,R) Algorytm szukanie najbliszego ssiada Idea: Przegldaj drzewo od korzenia w dół. Dla kadego wzła usu rozgałzienia, które nie powinny zawiera najbliszego ssiada Jeli doidziesz do licia, szukaj w nim najbliszego ssiada. 5

Usuwanie zbdnych rogałzie MINDIST vs MINMAXDIST Zasada 1: Prostokt R nie zawiera najbliszego ssiada dla p (wic bdzie usuwany) jeli istnieje prostokt R taki, e: MINDIST(p,R ) > MINMAXDIST(p,R) Zasada 2: Obiekt o nie jest najbliszym ssiadem p jeli istnieje prostokt R taki, e d(p,o) > MINIMAXDIST(p,R) Zasada 3: Prostokt R nie zawiera najbliszego ssiada punktu p jeli istnieje obiekt o taki, e MINDIST(p,R) > d(p,o) Zasada 1 Zasada 2 Zasada 3 R R p MINDIST MINMAXDIST R p d(p,o) o MINMAXDIST R MINDIST p o NN Search Algorithm Ulepszanie Krok 1: Inicjalizuj odległo do najbliszego ssiada = ; Krok 2: Obchod drzewo od korzenia w dół. Przy kadym nieodwiedzonym wle t sortuj prostokty zapisane w t rosnco wzgldem MINDIST i zapisz jego synów w licie ABL (Active Branch List) Krok 3: Usu z ABL zbdne rozgałzienia stosujc strategie przycinania 1 i 2. Krok 4: Dla kadego wzła t z ABL rekurencyjnie szukaj najbliszego ssiada p; Usu wzeł t z ABL Krok 5: Jeli wzeł jest liciem, poszukaj najbliszego ssiada. Aktualizuj odległo do najbliszego ssiada. Krok 6: Po powrocie z rekursji skorzystaj z zasady przycinania 3 w celu usunicia niezbdnych rozgałzie Krok 7: Jeli ABL = zwró najbliszego ssiada. Tylko zasada przycinania 3 jest stosowana; Tylko MINDIST jest potrzebny; Przycinanie tylko gdy nowy ssiad jest znaleziony Szukanie k najbliszych ssiadów Zapamita k aktualnych ssiadów w uporzdkowanym buforze (wg. rosncej odległoci ssiada od punktu p) Przycinanie wzgldem najdalszego punktu na licie Modyfikacje R-drzew R*- tree: Modyfikacja operacja insert, zmniejsza cz wspóln midzy regionami SS tree: przestrze obiektów jest pokryta sferami Zaleta: prostszy opis Wada: regiony zachodz si SR tree: kombinacja R-tree i SS tree X tree: regiony nie maj czsci wspólnej 6

Struktura R*-drzewa R*-drzewo Struktura i główne operacje Podobiestwo do R - drzewa: Uywa prostoktów MBR (Minimal Bounding Rectangle) do grupowania punktów w przestrzeni danych Drzewo ma wszelkie własnoci jak R-tree (ograniczenia na liczb rozgałzie,...) Rónica: ulepszony wariant R-drzewa Minimalizuje czci wspólne midzy prostoktami (regionami) na jednym poziomie drzewa Minimalizuje pola (objtoci) prostoktów (regionów) Minimalizuje wielko drzewa Struktura R* - drzewa (c.d.)- Modyfikacje Modyfikacja operacji Insert: Optymalna heurystyka podziału wzła (inna kryterium oceny jakoci podziału) Nowa operacja do rekonstrukcji drzewa: wymuszone wstawianie (forced re-insert) Podstawowe oznaczenia Pole prostokta (objto prostopadłocianu): area(r) Obwód prostokta (powierzchnia prostopadłocianu): margin(r) Pokrycie (overlap): prostoktami w wle t: p gdzie R 1, R 2,...,R p s rekordami wzła t ( R. Rectangle R Rectangle ) overlap ( Rk ) = area k i. i= 1, k i Pojcia podstawowe Ilustracja Podstawowe operacje na prostoktach Powikszanie prostokta: (enlargement(r,x)) Zwiksza prostokt R minimalnie, eby pokrywa obiekt x Area(R) Margin(R) x R Enlargement(R,x) overlap(r) 7

Podstawowe operacje na drzewach Wstawianie (insert) Usuwanie (delete) Wyszukiwanie (search) Wstawianie Ogólny schemat: Szukaj licia do wstawiania (ChooseLeaf(x) ) Wstaw nowy obiekt Modyfikuj drzewo ChooseLeaf Idea Przegldaj drzewo top-down: W kadym wle wewntrznym: wybierz poddrzewo zawierajce prostokt, który wymaga najmniejszego powikszenia, eby pokrywa nowy obiekt W kadym wle zewntrznym (li): wybierz prostokt, który po powikszaniu ma najmniejsze pokrycie (overlap) z innymi prostoktami tego samego licia ChooseLeaf Ilustracja (7,5;70) (7,5;70) (7,5;70) Li znaleziony przez R * drzewo Li znaleziony przez R drzewo Funkcja ChooseLeaf Wejcie: T: R* - drzewo, x - obiekt do wstawiania Wyjcie: odpowiedni li L dla x Krok 1. L korze(t) Krok 2. if L jest liciem wybierz prostokt R taki, e enlargement (R,x) ma najmniejsz cz wspóln z innymi prostoktami w tym liciu; else // L jest wzłem wewntrznym wybierz syna S, który jest zwizany z prostoktem R o najmniejszym enlargement (R,x) Krok 3. Zastosuj ChooseLeaf dla S Modyfikuj drzewo Ogólny schemat Jeli li L nie jest przepełniony to Powiksz prostokt w L, do którego nowy obiekt był wstawiany Rekurencyjnie powiksz wszystkie prostokty w przodkach L, eby zawierały prostokty w liciu L. Jeli li L jest przepełniony to Podziel li L na 2 licie L 1 i L 2 lub Wykonuj re-insert dla czci prostoktów w L W sposób rekurencyjny modyfikuj ojca L 8

Podzieli przepełniony wzeł - Idea Krok 1: Wybierz o S, wzgldem której podział ma by wykonywany Krok 2: Wybierz na osi S najlepszy podział Krok 3: Podziel obiekty Oceny jakoci podziału Niech P oznacza podział zbioru prostoktów S na dwa rozłczne podzbiory S 1 i S 2 bb(s i ): najmniejszy prostokt zawierajcy S i area-value(p) = area[bb(s 1 )] + area[bb(s 2 )] margin-value(p) = margin[bb(s 1 )] + margin[bb(s 2 )] overlap-value(p) = area[bb(s 1 ) bb(s 2 )] Podział P jest dobry, jeli wartoci area, margin i overlap s małe Algorytm wyboru osi Krok 1: Dla kadej osi X Uporzdkuj prostokty wzgldem X Oblicz warto margin-value(x): suma margin-value wszystkich podziałów na X Krok 2: Wybierz o o najmniejszej wartoci margin-value margin-value(x) = = margin-value(p 1 )+margin-value(p 2 )+margin-value(p 3 ) Algorytm wyboru miejsca podziału Dla wybranej osi X Dla kadego podziału P na X oblicz overlap-value(p) Wybierz podział o najmniejszej wartoci overlap-value Jeli istnieje kilka podziałów o najmniejszej wartoci overlapvalue, wybierz ten z najmniejsz area-value R 4 R 1 R 2 R 3 P 1 P 2 P 3 X P 1 P 2 P 3 overlap-value(p 2 ) Rekonstrukcja drzewa W R-drzewie: regiony s niezmienne podczas wstawiania obiektu (chyba e jest podzielony na dwa regiony); Wstawianie z rekonstrukcj - Ilustracja m = 2, M = 5 Wada: utworzone na pocztku prostokty s optymalne dla pierwszych obiektów, ale nie s optymalne dla nowych wstawianych obiektów Potrzeba narzdzi do rekonstrukcji drzewa R*-tree proponuje operacj wymuszonego wstawiania (forced reinsert) Regiony przed wstawianiem R drzewo: regiony po wstawianiu R* -drzewo: regiony po wstawianiu 9

Idea algorytmu reinsert (Przy wstawianiu nowego obiektu) Jeli wzeł t jest przepełniony (ma M+1 synów) i t nie był reorganizowany to Krok 1: wytnij p synów wzła t Krok 2: zmniejsz prostokt w t tak, eby nadal zawierał pozostałych synów Krok 3: wstaw z powrotem prostokty zwizane z wybranymi synami. Algorytm reinsert Dla przepełnionego wzła t (ma M+1 synów): Krok 1: Dla kadego syna s, oblicz odległo rodka prostokta zwizanego z s do rodka prostokta w t Krok 2: Uporzdkuj malejco synów wzgldem odległoci od swojego rodka do rodka prostokta w t Krok 3: Wybierz p pierwszych synów na licie Krok 4: Usu je i zmniejsz prostokt w t Krok 5: Wstaw z powrotem p usunitych prostoktów Reinsert - Ilustracja Ocena R * -drzewa R*- drzewo jest stabilny wobec złoliwych danych redni koszt wstawiania i usuwania na R*- drzewie jest niszy ni na R- drzewie Czas wyszukiwania jest szybszy ni na R- drzewie Regiony przed operacj reinsert Obiekty wybrane do ponownego wstawiania, p=3 Regiony po operacji reinsert Struktura SS-drzewo SS-drzewo Struktura i główne operacje Podobna struktura do R-drzewa Regiony s kołami Opis regionu: para (rodek, promie) rodek:rodek cikoci figury tworzonej przez rodki kół zapisanych w synach promie: odległo do najdalszego koła zapisanego w synach. 10

Struktura SS-drzewo Algorytm Insert Krok 1. Szukaj licia L do wstawiania Krok 2. Wstaw nowy obiekt x do L Krok 3. Modyfikuj drzewo (*od licia L do korzenia*) 3.1 Jeli zbadany wzeł t nie jest przepełniony Powiksz promie w t 3.2 Jeli wzeł t jest przepełniony i t nie był rekonstruowany re-insert (t) 3.3 Jeli t jest przepełniony i t był rekonstruowany splite (t) Algorytm podziału: Splite Cel: Podziel zbiór kół na dwa podzbiory, których koła ograniczajce maj małe promienie i jak najmniej zachodz si na siebie Krok 1: Wybierz o S, wzgldem której podział ma by wykonywany Krok 2: Wybierz na osi S najlepszy podział Krok 3: Podziel obiekty Ocena podziału Niech X bdzie osi współrzdnych Niech S bdzie zbiorem kół variance(s,x) = odległo midzy rodkami dwóch najdalszych kół na osi X Niech P oznacza podział zbioru kół S na dwa rozłczne podzbiory S 1 i S 2 variance(p) = variance(s 1 )+variance(s 2 ) Podział P jest dobry jeli variance(p) jest minimalny Wybór osi Szukanie miejsca podziału Dla kadej osi X Uporzdkuj koła wzgldem X Oblicz odległo najdalszych koł na osi X. ozn. variance(x) Wybierz o z najwiksz wartoci variance Dla wybranej osi X Dla kadego podziału P na X oblicz variance(p) Wybieraj podział o najmniejszej wartoci variance najlepszy podział variance(x) X P 1 P 2 P 3 X 11

Ocena SS -drzewa Zaleta: Mała informacja potrzebna do opisu koła ni prostokata rednica koła zwiksza si do wolno wzgldem wzrostu wymiaru danych (liczby atrybutów) szybki czas wyszukiwania w jednym regionie. Wada: Koło ma wiksz objto ni prostokt wiksza cz wspólna z innymi kołami (more overlap) SR-drzewo Struktura i główne operacje Obserwacja Prostokty dziel przestrze danych na regiony o małej objtoci, ale maj one du rednic ni koło Koła dziel przestrze danych na regiony o małej rednicy, ale ich objtoci s wiksze ni prostokty Rozwizanie: kombinacja prostoktów i kół SR - drzewo Struktura SR - drzewa Podobna struktura do R-drzewa Region jest przeciciem koła i prostokta Opis regionu: para (prostokt, koło) Prostokt : I =[(a 1,b 1 ),...,(a k,b k )] Koło: (rodek, promie) Algorytm: Insert Prostokt jest aktualizowany tak jak w R*- drzewie Koło wle t jest aktualizowane: (C 1,...,C k koła zwizane z synami t ) rodek: Algorytm Insert (c.d.) Promie: d s : maksymalna odległo rodka koła w wle t do kół w synach d r : maksymalna odległo rodka koła w wle t do prostoktów w synach gdzie C i : koło zwizane z i-tym synem C i.x i : i-ta współrzdna rodka koła C i C i.w: liczba obiektów zawartych w kole C i rodek koła Promie r 12

Szukanie najbliszego ssiada Odległo d punktu P do regionu zapisanego w wle C k jest definiowana: d s. : minimalna odległo punktu P do koła w wle C k d r : minimalna odległo punktu P do prostokta w wle C k x d r d s P Ocena SR-drzewa Zaleta: Zmniejsza i objto i rednic regionu w porównaniu z R*-drzewem i SS-drzewem Czas wyszukiwania krótszy ni SS-drzewo i R*- drzewo Wada: Koszt budowania SR-drzewa jest wikszy ni SSdrzewa. Rozmiar wzła wikszy od rozmiaru wzła SSdrzewa i R*-drzewa d = max(d s.,d r ) Podsumowanie R*-drzewo: ulepszony wariant R-drzewa Nowa heurystyka dla optymalizacji podziału -> modyfikacja w funkcji splite Nowa operacja rekonstrukcji drzewa: re-insert SS-drzewo: regiony s kołami SR-drzewo: regiony s przecicem prostokta i koła 13