Metoda list inwersyjnych. Wykład III

Podobne dokumenty
Metoda list inwersyjnych

Metoda List Inwersyjnych

Metoda list prostych Wykład II. Agnieszka Nowak - Brzezińska

Metoda List Łańcuchowych

Systemy Wyszukiwania Informacji

Metoda List Prostych mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Sosnowiec, 2012

Wprowadzenie i pojęcia wstępne.

METODA LIST PROSTYCH. Marcin Jaskuła

Metoda Składowych atomowych

Dekompozycja w systemach wyszukiwania informacji

Systemy Wyszukiwania Informacji: Metoda list inwersyjnych

Metody indeksowania dokumentów tekstowych

Haszowanie (adresowanie rozpraszające, mieszające)

Algorytmy i struktury danych

Teoretyczne podstawy informatyki

wykład Organizacja plików Opracował: dr inż. Janusz DUDCZYK

Metoda Karnaugh. B A BC A

Hurtownie danych. Przetwarzanie zapytań. ZAPYTANIA NA ZAPLECZU

Bazy danych. Andrzej Łachwa, UJ, /15

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

Lista, Stos, Kolejka, Tablica Asocjacyjna


znalezienia elementu w zbiorze, gdy w nim jest; dołączenia nowego elementu w odpowiednie miejsce, aby zbiór pozostał nadal uporządkowany.

KOMBINATORYKA OBIEKTY KOMBINATORYCZNE MATEMATYKA DYSKRETNA (2014/2015)

Definicja pliku kratowego

Luty 2001 Algorytmy (4) 2000/2001

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

Algorytmy i złożoności. Wykład 3. Listy jednokierunkowe

SYSTEMY WYSZUKIWANIA INFORMACJI

Tadeusz Pankowski

SYSTEMY UCZĄCE SIĘ WYKŁAD 10. PRZEKSZTAŁCANIE ATRYBUTÓW. Dr hab. inż. Grzegorz Dudek Wydział Elektryczny Politechnika Częstochowska.

Wykład 2. Relacyjny model danych

1. Reguły minimalne (optymalne) Podstawowe twierdzenia i definicje. Definicja 1 Funkcję postaci f. nazwiemy n-argumentową funkcją boolowską.

operacje porównania, a jeśli jest to konieczne ze względu na złe uporządkowanie porównywanych liczb zmieniamy ich kolejność, czyli przestawiamy je.

Mathcad c.d. - Macierze, wykresy 3D, rozwiązywanie równań, pochodne i całki, animacje

METODY INŻYNIERII WIEDZY

Definicja. Ciąg wejściowy: Funkcja uporządkowująca: Sortowanie polega na: a 1, a 2,, a n-1, a n. f(a 1 ) f(a 2 ) f(a n )

Kodowanie i kompresja Tomasz Jurdziński Studia Wieczorowe Wykład Kody liniowe - kodowanie w oparciu o macierz parzystości

Wstęp do programowania

1 Macierz odwrotna metoda operacji elementarnych

Bazy danych wykład dwunasty. dwunasty Wykonywanie i optymalizacja zapytań SQL 1 / 36

Normalizacja baz danych

Przykładowe B+ drzewo

Matematyczne Podstawy Informatyki

SAS Institute Technical Support

Moduł 1 Pliki i foldery

OSTASZEWSKI Paweł (55566) PAWLICKI Piotr (55567) Algorytmy i Struktury Danych PIŁA

Kodowanie i kompresja Streszczenie Studia Licencjackie Wykład 11,

WYKŁAD 12. Analiza obrazu Wyznaczanie parametrów ruchu obiektów

Algorytmy i struktury danych

Sortowanie przez wstawianie Insertion Sort

Instrukcja zmiany stawki VAT oraz innych informacji dodatkowych dotyczących kartoteki asortymentowej oraz cenników w systemie MAAT

Ustalanie dostępu do plików - Windows XP Home/Professional

WYKŁAD 1. Wprowadzenie do problematyki baz danych

Struktury Danych i Złożoność Obliczeniowa

Jaką postać mają informacje w umyśle? Radosław Sterczyński

Matematyka licea ogólnokształcące, technika

Najmniejszą możliwą macierzą jest macierz 1 x 2 lub 2 x 1 składająca się z dwóch przyległych komórek.

METODY INŻYNIERII WIEDZY

Matura próbna 2014 z matematyki-poziom podstawowy

ZMIERZYĆ SIĘ Z KALKULATOREM

6. Zagadnienie parkowania ciężarówki.

1 Układy równań liniowych

WYKŁAD 3 WYPEŁNIANIE OBSZARÓW. Plan wykładu: 1. Wypełnianie wieloboku

Elementy modelowania matematycznego

ZADANIA ZAMKNIETE W zadaniach 1-25 wybierz i zaznacz na karcie odpowiedzi poprawna

Zasady programowania Dokumentacja

Klasyczne zagadnienie przydziału

Zastosowanie stereowizji do śledzenia trajektorii obiektów w przestrzeni 3D

Maciej Piotr Jankowski

Wstęp do Informatyki zadania ze złożoności obliczeniowej z rozwiązaniami

Klasy abstrakcyjne i interfejsy

Jednym z najprostszych sposobów porządkowania jest technika stosowana przy sortowaniu listów:

FUNKCJA KWADRATOWA. Zad 1 Przedstaw funkcję kwadratową w postaci ogólnej. Postać ogólna funkcji kwadratowej to: y = ax + bx + c;(

Zadania do wykonania. Rozwiązując poniższe zadania użyj pętlę for.

Wstęp do programowania

Systemy ekspertowe : Tablice decyzyjne

2a. Przeciętna stopa zwrotu

Algorytmy sortujące i wyszukujące

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

Rozkład Gaussa i test χ2

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

Pojęcie zależności funkcyjnej

PODSTAWY INFORMATYKI wykład 5.

EGZAMIN MATURALNY Z INFORMATYKI

Materiały dla finalistów

Wstęp do Techniki Cyfrowej... Teoria automatów

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III

Podstawy Informatyki. Metody dostępu do danych

MS Word Długi dokument. Praca z długim dokumentem. Kinga Sorkowska

SYSTEMY WYSZUKIWANIA INFORMACJI

2.8. Algorytmy, schematy, programy

Asocjacyjna reprezentacja danych i wnioskowanie

Jarosław Kuchta Projektowanie Aplikacji Internetowych. Projektowanie warstwy danych

PLAN WYKŁADU BAZY DANYCH INDEKSY - DEFINICJE. Indeksy jednopoziomowe Indeksy wielopoziomowe Indeksy z użyciem B-drzew i B + -drzew

Kody Tunstalla. Kodowanie arytmetyczne

PRÓBNY EGZAMIN MATURALNY Z INFORMATYKI

Transkrypt:

Metoda list inwersyjnych Wykład III

Plan wykładu Cele metody Tworzenie kartoteki wyszukiwawczej Redundancja i zajętość pamięci Wyszukiwanie informacji Czasy wyszukiwania Ocena metody: wady i zalety Modyfikacje aktualizacja

Cel metody Skrócenie czasu wyszukiwania na pytania szczegółowe pamiętając o tym jak długi był czas wyszukiwania odpowiedzi na tego typu pytania w metodzie list prostych!

Lista inwersyjna To lista adresów obiektów, które w swoim opisie zawierają deskryptor d i (d i t x ), gdzie d i =(a j,v ij ). Oznaczamy je jako L(d i )={n 1,n 2,,n z } pod warunkiem, że elementy: n 1,n 2,,n z będą adresami obiektów x 1,x 2,,x z. Tworzymy tyle list inwersyjnych ile jest w systemie deskryptorów d i.

Tworzenie kartoteki wyszukiwawczej

Przykładowy system informacyjny Wszystkie obiekty mają unikalne opisy a więc funkcja adresująca przydzieli każdemu obiektowi inny adres C B A X1 C1 B1 A1 X2 C1 B2 A1 X3 C2 B1 A1 X4 C2 B2 A1 X5 C3 B2 A2 X6 C3 B2 A1 X7 C4 B1 A2 x8 C4 B2 a2

C B A 1 X1 C1 B1 A1 2 X2 C1 B2 A1 3 X3 C2 B1 A1 4 X4 C2 B2 A1 5 X5 C3 B2 A2 6 X6 C3 B2 A1 7 X7 C4 B1 A2 8 x8 C4 B2 a2

Kartoteka wtórna z funkcją adresową C B A 1 X1 C1 B1 A1 2 X2 C1 B2 A1 3 X3 C2 B1 A1 4 X4 C2 B2 A1 5 X5 C3 B2 A2 6 X6 C3 B2 A1 7 X7 C4 B1 A2 8 x8 C4 B2 a2 Kartoteka wyszukiwawcza D = {(a,a1),(a,a2), (b,b1), (b,b2), (c,c1), (c,c2), (c,c3), (c,c4) } (a,a1) = {1,2,3,4,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4,5,6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8}

Cechy kartoteki wyszukiwawczej Kolejność list inwersyjnych jest dowolna ale dla szybkości wyszukiwania stosuje się: porządek leksykograficzny dla nazw (kodów) deskryptorów.

Redundancja Informacja o każdym obiekcie pamiętana jest w wielu miejscach dokładnie tylu ile jest atrybutów opisujących każdy obiekt. (a,a1) = {1,2,3,4,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4,5,6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} 3 razy pamiętamy informację o adresie {1} 3 atrybuty w systemie: {a,b,c}

Wzór na redundancję (a,a1) = {1,2,3,4,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4,5,6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} Dla r=8 2 ), ( 2 ), ( 2 ), ( 2 ), ( 5 ), ( 3 ), ( 3 ), ( 5 ), ( 4 3 2 1 2 1 2 1 c c c c c c c c b b b b a a a a 2 8 8 2) 2 2 2 5 3 3 (5 R

Zajętość pamięci Zajętość pamięci zależy od liczby deskryptorów opisujących obiekty w systemie bo to dla nich budowane są listy inwersyjne. Zajętość pamięci potrzebna na zapamiętanie jednej listy inwersyjnej. R liczba deskryptorów

Wyszukiwanie Mając zadane pytanie odnajdujemy listy inwersyjne a następnie adresy tych obiektów, które mają w swoim opisie deskryptory zawarte w pytaniu. Dla niezaprzeczonych deskryptorów pytania obliczamy część wspólną (iloczyn mnogościowy) odpowiadających im list inwersyjnych.

Wyszukiwanie pytanie ogólne

przykład (a,a1) = {1,2,3,4,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4,5,6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} Wyszukiwanie odpowiedzi: 1. Szukamy wśród list inwersyjnych tej właściwej a więc zawierającej deskryptor z pytania t: Czy t (a,a1)? NIE Czy t (a,a2)? NIE Czy t (b,b1)? NIE Czy t (b,b2)? NIE Czy t (c,c1)? NIE Czy t (c,c2)? NIE Czy t (c,c3)? TAK 2. Wygenerowanie listy inwersyjnej (c,c3) = {5,6}={x5,x6} 3. Znaczenie termu t: (t) = (c,c3) = {5,6}={x5,x6}

Wyszukiwanie: pytanie szczegółowe

Przykład Wyszukiwanie odpowiedzi na pytanie t=(a,a1)(b,b1) + (c,c3) 1. T =t1 + t2 T1 = (a,a1)(b,b1) T2=(c,c3) 2. Szukamy odpowiednich list inwersyjnych osobno dla każdego termu składowego (najpierw dla t1): a) Szukamy deskryptora (a,a1) Czy t (a,a1)? Tak -> (a,a1) = {1,2,3,4,6} b) Szukamy deskryptora (b,b1) Czy t (a,a1)? NIE Czy t (a,a2)? Nie Czy t (b,b1)? Tak -> (b,b1) = {1,3,7} c) Wyznaczamy znaczenie termu t1, który jest iloczynem deskryptorów (a,a1) i (b,b1): (t1) = {1,2,3,4,6} {1,3,7}={1,3} = {x1,x3} 3. Szukamy teraz znaczenia termu t2: a) Szukamy list inwersyjnych dla wszystkich deskryptorów tego pytania, a wiec tylko (c,c3): Czy t (a,a1)? NIE Czy t (a,a2)? NIE Czy t (b,b1)? NIE Czy t (b,b2)? NIE Czy t (c,c1)? NIE Czy t (c,c2)? NIE Czy t (c,c3)? TAK -> (c,c3) = {5,6} b) Wyznaczamy znaczenie termu t2: (t2) = {5,6} = {x5,x6} 4. Wyznaczamy znaczenie termu t: (t) = {x1,x3} {x5,x6}={x1,x3,x5,x6}

W porównaniu z metodą list prostych Nie jest tu konieczne przeglądanie wszystkich list inwersyjnych na dane pytanie. Należy wybrać tylko tyle list inwersyjnych, ile jest deskryptorów w pytaniu i wykonać na tych listach operacje mnogościowe. Jest to więc szybsza metoda, ale ma również swoje wady: 1. Metoda operuje na adresach (numerach), a nie na opisach obiektów. Nie możemy więc bezpośrednio przy wyszukiwaniu uwzględnić m.in. związków między deskryptorami w opisach dokumentów. 2. Deskryptory ogólne (powtarzające się w dużej liczbie opisów dokumentów) zwiększają redundancję i czas wyszukiwania.

Czas wyszukiwania Dla każdego deskryptora szukamy listy inwersyjnej i potem dokonujemy przecięcia (operacji mnogościowej). gi czas generowania listy inwersyjnej dla deskryptora d i p czas przecięcia

Aktualizacja Dodanie nowego obiektu wymaga wstawienia adresu obiektu wszędzie tam (gdzie występują deskryptory opisujące ten obiekt). Usunięcie obiektu wiąże się z koniecznością usunięcia adresu obiektu z każdej listy inwersyjnej w której on występuje. Modyfikacja opisu obiektu wymaga usunięcia adresu obiektu z listy, która mu już nie odpowiada i dopisania do tej, która jest właściwa.

Wady i zalety Podstawowymi wadami metody list inwersyjnych są: nadmierna redundancja zajętość pamięci. Aby zmniejszyć te dwa parametry, nie tracąc zbytnio na szybkości można zastosować wybrane modyfikacje.

MODYFIKACJE: PORZĄDKOWANIE ADRESÓW OBIEKTÓW NA LISTACH PORZĄDKOWANIE LIST 1.WG DŁUGOŚCI 2.LEKSYKOGRAFICZNIE 3.WG WYBRANEGO KRYTERIUM Z TABLICA ADRESOWĄ (INDEKSOWANIE) 4.WG CZĘSTOŚCI WYSTĘPOWANIA DANYCH DESKRYPTORÓW W PYTANIU TWORZENIE LIST ZREDUKOWANYCH ZAZNACZANIE PRZEDZIAŁÓW ADRESÓW LISTY DLA PAR DESKRYPTORÓWZ ZAZNACZENIE CZĘSCI WSPÓLNEJ LISTY WIELODESKRYPTOROWE USUWANIE LIST DŁUGICH LISTY ZANEGOWANE TWORZENIE LIST DLA PEWNEGO POZBIORU DESKRYPTORÓW DEKOMPOZYCJE ATRYBUTOWA OBIEKTOWA OBIEKTOWO ATRYBUTOWA

MODYFIKACJE: PORZĄDKOWANIE ADRESÓW OBIEKTÓW NA LISTACH PORZĄDKOWANIE LIST 1.WG DŁUGOŚCI 2.LEKSYKOGRAFICZNIE 3.WG WYBRANEGO KRYTERIUM Z TABLICA ADRESOWĄ (INDEKSOWANIE) 4.WG CZĘSTOŚCI WYSTĘPOWANIA DANYCH DESKRYPTORÓW W PYTANIU TWORZENIE LIST ZREDUKOWANYCH ZAZNACZANIE PRZEDZIAŁÓW ADRESÓW LISTY DLA PAR DESKRYPTORÓWZ ZAZNACZENIE CZĘSCI WSPÓLNEJ LISTY WIELODESKRYPTOROWE USUWANIE LIST DŁUGICH LISTY ZANEGOWANE TWORZENIE LIST DLA PEWNEGO POZBIORU DESKRYPTORÓW DEKOMPOZYCJE ATRYBUTOWA OBIEKTOWA OBIEKTOWO ATRYBUTOWA

TWORZENIE LIST DLA PEWNEGO POZBIORU DESKRYPTORÓW Tworzymy listy inwersyjne tylko dla wybranego podzbioru D deskryptorów, gdzie D D. Wybrany zbiór może być zbiorem deskryptorów najczęściej występujących w pytaniach do systemu S lub zbiorem deskryptorów pewnego atrybutu (pewnych atrybutów). Tworzymy listy inwersyjne (di) = {n1,n2,,nk} gdzie: di D di D' i

Cel modyfikacji: Poprawa czasu wyszukiwania odpowiedzi zmniejszenie zajętości pamięci

Wyszukiwanie Jeśli t = t 1 + t 2 +... + t m i ti=d1 * d2 * * dk to należy rozpatrzyć 3 przypadki: 1. Wszystkie deskryptory termów składowych zawierają się w D. Jest to najlepszy możliwy przypadek. W tej sytuacji szybkość systemy jest maksymalna. Postępuje się jak w klasycznej metodzie list inwersyjnych. (ti) = α(d1)α(d2) α(dk), djd, 1 j k, gdzie k to liczba deskryptorów pytania ti 2. Jeśli nie wszystkie deskryptory pytania ti należą do zbioru D to budujemy odpowiedź przybliżoną jako zbiór Xp, taki, że Xp = α(dj) dla każdego djd. Wtedy Xti Xp. Taki zbiór Xp przeglądamy moetodą list prostych by znaleźć adresy tych obiektów, które w swoim opisie zawierają też pozostałe deskryptory pytania: (ti) = X ti = {x Xp: (x,ai) = vi, (ai,vi)=di. di ti i di D } 3. Jeśli żaden z deskryptorów nie zawiera się w D to należy dokonać przeglądu zupełnego (czyli potraktować kartotekę wtórną jako wyszukiwawczą i wykorzystać klasyczną metodę list prostych).

przykład D = {(a,a1),(a,a2), (b,b1), (b,b2), (c,c1), (c,c2), (c,c3), (c,c4) } (a,a1) = {1,2,3,4,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4,5,6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} Czyli D=5 zamiast 8, mamy więc r=5 a nie 8, przez co na pewno mamy mniejszą redundancję oraz zajętość pamięci.ale i skraca się czas wyszukiwania każdej listy inwersyjnej w zbiorze list.

=(5+3+5+2+2 8)/8 = 9/8 = 1.1 = 5 * =tg jest mniejsze bo szukamy na liscie 5 list inwersyjnych a nie 8

MODYFIKACJE poprawiające czas wyszukiwania odpowiedzi

Porządkowanie adresów obiektów ww list inwersyjnych Skraca to czas przecięcia dwóch list inwersyjnych Bez uporządkowania L(a,a1) = {3,1,7,6} L(b,b4)={2,1,5,6} L((a,a1) (b,b4)) = {3,1,7,6} {2,1,5,6}={1,6} Ale by taką operację mnogościową wykonać potrzebujemy następujących porównań: 3 z 2, 3 z 1, 3 z 5, 3 z 6 brak wspólnego elementu 3 1 z 2, 1 z 1 1 jest wspólnym elementem 7 z 2, 7 z 1, 7 z 5, 7 z 6 7 nie jest wspólnym elementem 6 z 2, 6 z 1, 6 z 5, 6 z 6 6 jest wspólnym elementem A wiec porównań jest 14!!! z uporządkowaniem L(a,a1) = {1,3,6,7} L(b,b4)={1, 2,5,6} L((a,a1) (b,b4)) = {1,3,6,7} {1, 2,5,6}}={1,6} Ale by taką operację mnogościową wykonać potrzebujemy następujących porównań: 1 z 1 1 jest wspólnym elementem 3 z 1, 3 z 2, 3 z 5 - brak wspólnego elementu 3 6 z 5, 6 z 6 6 jest wspólnym elementem 7 z 6, koniec listy 7 nie jest wspólnym elementem A wiec porównań jest 7!!!

PORZĄDKOWANIE LIST WG DŁUGOŚCI Porządkujemy listy w ten sposób, ze na początku są listy najkrótsze a na końcu najdłuższe!!! q = d 1 q * d 2 q *...* d s k gdzie d 1 q pierwszy deskryptor pytania. Zalety: - wpływa to na czas przecięcia list inwersyjnych (bierze się pierwszy deskryptor z listy i pyta się czy znajduje się w pytaniu, jeśli tak to zapamiętujemy daną listę) Aktualizacja: jest skomplikowana, zmienia się bowiem długość list i należy jest od początku uporządkować!!!

(a,a1) = {1,2,3,4,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4,5,6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (a,a1) = {1,2,3,4,6} (b,b2) = {2,4,5,6,8} T= (c,c1)(b,b2) = {1,2}^{2,4,5,6,8} = {2}={x2}

PORZĄDKOWANIE LIST LEKSYKOGRAFICZNIE Umożliwia zastosowanie a). podziału połówkowego do wyszukiwania odpowiedniej listy inwersyjnej. Wówczas ilość porównań = log 2 k gdzie k ilość list inwersyjnych b). Przeszukiwania blokowego. Wówczas średnia liczba porównań = k Zalety: Czas szukania odpowiedniej listy znacznie się wtedy zmniejsza, natomiast czas przecięcia dwóch list nie!!! Aktualizacja: nie wpływa, pod warunkiem pamiętania list pustych (a,a1) = {1,2,3,4,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4,5,6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} T=(c,c2) (a,a1) = {1,2,3,4,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4,5,6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} (c,c2) > (c,c1) (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8}

PORZĄDKOWANIE LIST WG CZĘSTOŚCI WYSTĘPOWANIA DANYCH DESKRYPTORÓW W PYTANIACH Zalety: Czas szukania odpowiedniej listy znacznie się wtedy zmniejsza, natomiast czas przecięcia dwóch list nie!!! Wady: Metoda nie zdaje egzaminu w przypadku zadania pytania spoza zbioru standardowych pytań!!! (tak samo jak przy odcedzaniu)

MODYFIKACJE zmniejszające zajętość pamięci

ZAZNACZANIE PRZEDZIAŁÓW ADRESÓW Jeżeli w jakiejś liście występuje ciąg kolejnych adresów można wtedy zaznaczyć przedział poprzez znacznik i wtedy nie wpisujemy adresów wszystkich obiektów, a tylko pierwszy i ostatni adres danego ciągu. Np.: L(d1)={1, 2, 3, 4, 5, 8, 12, 13, 14, 15, 16, 20} L (d1)={1 5, 8, 12 16, 20} Zalety: -Czas wyszukiwania jest krótszy -zmniejszona zajętość pamięci Aktualizacja: skomplikowana ze względu na konieczną zmianę przedziałów (a,a1) = {14,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4 6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8}

LISTY DLA PAR DESKRYPTORÓWZ ZAZNACZENIE CZĘSCI WSPÓLNEJ Jeżeli mamy 2 listy L(di) i L(dj) i listy te mają pewne wspólne dla siebie adresy obiektów to: L w (d i,d j )= L(d i ) L(d j ) L r (d i )= L(d i ) \ L w (d i,d j ) L r (d j )= L(d j ) \ L w (d i,d j ) L(d i,d j )= { L r (d i ) L w (d i,d j ) L r (d j ) } (a,a1) = {14,6} (a,a2) = {5,7,8} (b,b1) = {1,3,7} (b,b2) = {2,4 6,8} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} (a,a1) = {14,6} (b,b1) = {1,3,7} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} w (a,a2)(b,b2) = {7#5,8#2,4,6} Zalety: -Czas wyszukiwania jest krótszy -zmniejszona zajętość pamięci Aktualizacja: raczej prosta

LISTY DLA PAR DESKRYPTORÓWZ ZAZNACZENIE CZĘSCI WSPÓLNEJ (a,a1) = {14,6} (b,b1) = {1,3,7} (c,c1) = {1,2} (c,c2) = {3,4} (c,c3) = {5,6} (c,c4) = {7,8} w (a,a2)(b,b2) = {7#5,8#2,4,6} Wówczas gdy: 1) T = (a,a2)(b,b2) odpowiedź na pytanie mamy od razu jako 2) T = (a,a2) odpowiedź na pytanie uzyskujemy poprzez złączenie elementów listy: 7 oraz 5,8 = {5,7,8} 3) T = (b,b2) odpowiedź uzyskujemy jako połączenie elementów: {5,8} oraz {2,4,6} = {2,4,5,6,8}

LISTY WIELODESKRYPTOROWE szczególne przypadek list dla par deskryptorów Jeżeli mamy 2 listy L(di) i L(dj) i listy te mają pewne wspólne dla siebie adresy obiektów to: Np.: L(d1)={1, 2, 5, 7, 8, 12, 17} L(d2)={1, 4, 5, 9, 10, 17, 20} L(d1*d2) = {1, 5, 17} Zalety: -Czas wyszukiwania jest krótszy -zmniejszona zajętość pamięci Aktualizacja: bardziej skomplikowana W przypadku list łączonych należy określić współczynnik Q, który wskazuje minimalną liczbę adresów wspólną dla dwóch list, dla których efektywne jest stosowanie tej modyfikacji, a zdeterminowane jest minimalizacją kosztów, zlikwidowanie redundancji oraz wszelkich działań niezbędnych do wyselekcjonowania z listy wspólnej adresów dotyczących danego deskryptora. L(d1 * d2 * d3 * d4)={1, 8, 12}

Listy zanegowane Zalety: -Czas wyszukiwania 2 sposoby: np. = a1 * a2 szukamy a1 i przecinamy z listą dla a2 szukamy obiekty z a2 odjąć obiekty z a1 -zmniejszona zajętość pamięci Aktualizacja: skomplikowana T = t1 * t2 L(A1,1) = {x2} L(A1,1) = {x2} L(A1,2) = {x1,x3,x4,x5,x6,x7,x8} L(A1,2) = {x1,x3,x4,x5,x6,x7,x8} A więc: L(A2,a) = {x1,x2,x4,x5,x6,x8} L(A1,2) = {x1,x3,x4,x5,x6,x7,x8}={x2} L(A2,b) = {x3,x7} T=(A1,1)*(A2,b) T=d1*d2 d1 = (A1,1) = (A1, 2) (d1)={x2} d2 = (A2,b) (d1)={x3,x7} Listy muszą pochodzić z jednego atrybutu wzajemnie dwudeskryptorowego o wartościach wzajemnie się negujących któraś z wartości musi występować w opisie obiektów.

Podsumowanie Aktualizacja bardziej skomplikowana niż dla metody list prostych Duża redundancja Szybsze wyszukiwanie niż w metodzie list prostych