Metoda list inwersyjnych

Podobne dokumenty
Metoda list inwersyjnych. Wykład III

Metoda List Inwersyjnych

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

Metoda List Łańcuchowych

METODA LIST PROSTYCH. Marcin Jaskuła

Dekompozycja w systemach wyszukiwania informacji

Metoda Składowych atomowych

Wprowadzenie i pojęcia wstępne.

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

Systemy Wyszukiwania Informacji

Systemy Wyszukiwania Informacji: Metoda list inwersyjnych

Modelowanie hierarchicznych struktur w relacyjnych bazach danych

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

Haszowanie (adresowanie rozpraszające, mieszające)

WYRAŻENIA ALGEBRAICZNE

Wykład nr 1 Techniki Mikroprocesorowe. dr inż. Artur Cichowski

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

domykanie relacji, relacja równoważności, rozkłady zbiorów

Definicja pliku kratowego

Funkcje wyszukiwania i adresu PODAJ.POZYCJĘ

PROJEKT CZĘŚCIOWO FINANSOWANY PRZEZ UNIĘ EUROPEJSKĄ. Opis działania raportów w ClearQuest

Struktury Danych i Złożoność Obliczeniowa

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

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

Wykład 8: klasy cz. 4

Wykład 5: Klasy cz. 3

5.3. Tabele. Tworzenie tabeli. Tworzenie tabeli z widoku projektu. Rozdział III Tworzenie i modyfikacja tabel

KS-ZSA. Mechanizm centralnego zarządzania rolami

Programowanie w VB Proste algorytmy sortowania

0 + 0 = 0, = 1, = 1, = 0.

Teoretyczne podstawy informatyki

Drzewa rozpinajace, zbiory rozłaczne, czas zamortyzowany

KS-ZSA. Korporacyjne grupy towarowe

1. Operacje logiczne A B A OR B

Algorytmy i struktury danych

ZMIERZYĆ SIĘ Z KALKULATOREM

dr inż. Jarosław Forenc

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

Zestaw C-11: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.cpp i.h)!!! Zad. 1: Zad. 2:

Tadeusz Pankowski

Pojęcie funkcji. Funkcja liniowa

Materiały dla finalistów

ARYTMETYKA BINARNA. Dziesiątkowy system pozycyjny nie jest jedynym sposobem kodowania liczb z jakim mamy na co dzień do czynienia.

Metoda Karnaugh. B A BC A

zaznaczymy na osi liczbowej w ten sposób:

Ciała i wielomiany 1. przez 1, i nazywamy jedynką, zaś element odwrotny do a 0 względem działania oznaczamy przez a 1, i nazywamy odwrotnością a);

3. Macierze i Układy Równań Liniowych

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

Maciej Piotr Jankowski

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

W jakim celu to robimy? Tablica Karnaugh. Minimalizacja

Temat 8. Zrobić to szybciej Sieci sortujące

; B = Wykonaj poniższe obliczenia: Mnożenia, transpozycje etc wykonuję programem i przepisuję wyniki. Mam nadzieję, że umiesz mnożyć macierze...

Uzupełnienia dotyczące zbiorów uporządkowanych (3 lutego 2011).

Minimalizacja form boolowskich

Pojęcie systemu informacyjnego i informatycznego

1. Liczby naturalne, podzielność, silnie, reszty z dzielenia

Wstęp do programowania

dolar tylko przed numerem wiersza, a następnie tylko przed literą kolumny.

8. Listy wartości, dodatkowe informacje dotyczące elementów i przycisków

ZAGADNIENIE TRANSPORTOWE

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

Modelowanie niezawodności prostych struktur sprzętowych

Programowanie obiektowe

x 2 = a RÓWNANIA KWADRATOWE 1. Wprowadzenie do równań kwadratowych 2. Proste równania kwadratowe Równanie kwadratowe typu:

Kompresja danych Streszczenie Studia Dzienne Wykład 10,

FUNKCJA LINIOWA - WYKRES

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

Karty pracy. Ustawienia. W tym rozdziale została opisana konfiguracja modułu CRM Karty pracy oraz widoki i funkcje w nim dostępne.

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

Wykład 2. Relacyjny model danych

Widoki zagnieżdżone, layout. 1. Wprowadzenie Repozytoria danych

Klasyczne zagadnienie przydziału

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

WPROWADZENIE DO BAZ DANYCH

Luty 2001 Algorytmy (4) 2000/2001

Programowanie obiektowe

Wygra Polska czy Brazylia, czyli o tym jak zwięźle zapisywać informacje

Podstawy Automatyki. Wykład 12 - synteza i minimalizacja funkcji logicznych. dr inż. Jakub Możaryn. Warszawa, Instytut Automatyki i Robotyki

w kalendarzu pracownika po wybraniu z menu podręcznego polecenia Dziennik zdarzeń pracownika

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

Metody indeksowania dokumentów tekstowych

MS Excel 2007 Kurs zaawansowany Obsługa baz danych. prowadzi: Dr inż. Tomasz Bartuś. Kraków:

Teoretyczne podstawy informatyki

Program szkoleniowy. 16 h dydaktycznych (12 h zegarowych) NAZWA SZCZEGÓŁY CZAS. Skróty do przeglądania arkusza. Skróty dostępu do narzędzi

Systemy liczbowe używane w technice komputerowej

Baza danych to zbiór wzajemnie powiązanych ze sobą i zintegrowanych danych z pewnej dziedziny.

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

Asocjacyjna reprezentacja danych i wnioskowanie

Obiektowy PHP. Czym jest obiekt? Definicja klasy. Składowe klasy pola i metody

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.

13. Równania różniczkowe - portrety fazowe

Zapytania do bazy danych

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

Cel normalizacji. Tadeusz Pankowski

TP1 - TABELE PRZESTAWNE od A do Z

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

Algorytmy i struktury danych. Wykład 4

Bazy Danych. Bazy Danych i SQL Podstawowe informacje o bazach danych. Krzysztof Regulski WIMiIP, KISiM,

Dokumentowanie zajęć realizowanych w szkołach dla dorosłych

Transkrypt:

Metoda list inwersyjnych Zakładam, że materiał ten zastępuje nam zajęcia, które się niestety nie odbyły w dniach 10 i 17 kwiecień. Bardzo proszę przejrzeć cały materiał i na kolejne zajęcia przyjść przygotowanym. Przy rozwiązywaniu zadań, wiedza ta będzie niezbędna. A więc zaczynamy Oczywiście rozważamy system informacyjny jako uporządkowaną czwórkę S =<X,A,V,>. Zakładamy, że kartoteka wtórna ma następującą zawartość: A B C 1 A1 B1 C1 2 A2 B1 C2 3 A1 B2 C3 4 A2 B2 C4 5 A1 B2 C1 6 A2 B2 C2 7 A1 B2 C3 8 A2 B2 C4 W metodzie list inwersyjnych wyodrębniamy zbiór wszystkich deskryptorów systemu S zbiór D, oraz funkcję przyporządkowującą adresy : X -> N, gdzie N zbiór adresów. Funkcja tak więc, każdemu obiektowi w systemie przyporządkowuje pewien adres, będący liczbą naturalną (całkowitą, dodatnią), ale tak, że dwóm obiektom przyporządkuje ten sam adres, jeśli będą miały identyczne opisy. Kartoteka wyszukiwawcza Kartotekę tworzą listy adresów tych wszystkich obiektów, które w swoim opisie posiadają deskryptor di listy inwersyjne takie listy tworzymy dla wszystkich deskryptorów ze zbioru D. Definicja. Listę adresów obiektów, które zawierają w swoim opisie deskryptor d i nazywamy listą inwersyjną (d i ). deskryptor d i (d i )= {n 1, n 2,..., n i ), gdzie n i - adres kolejnego obiektu, który w swoim opisie zawiera Zadawanie pytań, uzyskiwanie odpowiedzi czyli jak to działa... Pytania do tak zdefiniowanego systemu S zadajemy w postaci termu t będącego sumą termów składowych t = t1 +...+ tm. Termy składowe pytania mogą być pojedynczymi deskryptorami, a więc term t jest postaci: t = d1 + d2 + d3 +... + dk. Odpowiedź na pytanie t otrzymujemy bezpośrednio przez wygenerowanie list inwersyjnych dla deskryptorów występujących w pytaniu. Zatem: σ(t) = α(d1) α(d2)... α(dk). Termy składowe mają postać iloczynu deskryptorów. Odpowiedź na term t jest więc sumą odpowiedzi na termy składowe: σ(t) = σ(t1) σ(t2)... σ(tm).

Odpowiedź na term składowy ti otrzymujemy jako przecięcie (część wspólna) list inwersyjnych związanych z deskryptorami występującymi w pytaniu ti: σ(ti) = α(d1) α(d2)... α(dk), gdzie ti = d1 d2... dk. Jeśli w listach inwersyjnych występowały adresy obiektów, to kolejnym krokiem będzie znalezienie obiektów odpowiadających tym adresom. Ogólnie więc biorąc odpowiedź na zapytanie t, będące sumą termów składowych jest sumą odpowiedzi na termy składowe: σ(t) = σ(t1) σ(t2)... σ(tm), przy czym σ(ti) = {x є X, μ(x)=ni oraz ni є N' = j α(dj), gdzie N' є N, a dj є ti}. Odpowiedź na pytanie t jest sumą odpowiedzi na pytania składowe, przy czym odpowiedź na pytanie składowe uzyskujemy jako przecięcie list inwersyjnych związanych z deskryptorami występującymi w pytaniu składowym. Redundancja i zajętość pamięci Metoda ta wnosi dużą redundancję, którą można opisać wzorem: r ( di ) N i R 1 N gdzie r liczba deskryptorów w systemie, N liczba obiektów (lub adresów), a symbol d ) - oznacza moc zbioru X. Przykład krok po kroku. 1. Budujemy zbiór deskryptorów D: D = {(A,a1),(a,a2),(B,b1),(B,b2),(C,c1),(C,c2),(C,c3),(C,c4)} 2. Przypisujemy obiektom numery zgodnie z funkcją : X -> N. X1 1 X2 2 X3 3 X4 4 X5 5 X6 6 X7 3 X8 4 Uwaga! Obiekty x3 i x7 oraz obiekty x4 i x8 otrzymują ten sam adres, gdyż mają takie same opisy!!! 3. Tworzymy listy inwersyjne dla każdego deskryptora di należącego do zbioru D: (A,a1)={1,3,5} (a,a2) ={2,4,6} (B,b1) ={1,2} (B,b2) ={3,4,5,6} (C,c1) ={1,5} (C,c2) ={2,6} (C,c3) ={3,7} (C,c4) ={4,8} 4. Zadajemy pytanie jednodeskryptorowe do systemu S:. t=(c,c2) ( i

Przeszukujemy wszystkie listy inwersyjne i znajdujemy listę z deskryptorem pytania t: Uwaga: Zapis będzie oznaczał, że pytanie nie zawiera się w liście inwersyjnej, zaś zapis będzie oznaczał, że pytanie zawiera się w liście inwersyjnej t (A,a1) a więc to nie jest szukana lista inwersyjne, szukamy więc dalej t (a,a2) a więc to nie jest szukana lista inwersyjne, szukamy więc dalej t (B,b1) a więc to nie jest szukana lista inwersyjne, szukamy więc dalej t (B,b2) a więc to nie jest szukana lista inwersyjne, szukamy więc dalej t (C,c1) a więc to nie jest szukana lista inwersyjne, szukamy więc dalej t (C,c2) wreszcie znaleźliśmy listę, która da nam odpowiedź na pytanie t!. Przerywamy przeszukiwanie list 5. Zadajemy pytanie wielodeskryptorowe do systemu S: t=(b,b2)(c,c2) + (A,a2) Jak wcześniej już zaznaczono, gdy pytanie jest w postaci sumy termów składowych, to odpowiedź na każdy term składowy Ti znajdujemy jako: A więc: σ(ti) = α(d1) α(d2)... α(dk), gdzie ti = d1 d2... dk. t=(b,b2)(c,c2) + (A,a2) = t1 + t2 t1 = (B,b2)(C,c2) t2 =(A,a2) A więc teraz odpowiadamy na każde z pytań składowych. t1 = (B,b2)(C,c2) t2 =(A,a2) 1. Szukamy listy inwersyjnej dla pierwszego deskryptora pytania t1, a więc deskryptora (B,b2) t (A,a1) t (a,a2) t (B,b1) t (B,b2) A więc: (B,b2)={1,2} 2. Szukamy listy inwersyjnej dla drugiego deskryptora pytania t2, a więc deskryptora (C,c2) 1. Szukamy listy inwersyjnej dla pierwszego (jedynego) deskryptora pytania t2, a więc deskryptora (A,a2) t (A,a1) t (a,a2) A więc: (A,a2)={2,4,6} t (A,a1) t (a,a2) t (B,b1) t! (B,b2) t (C,c1) t (C,c2 A więc: (C,c2)={2,6} 3. Budujemy odpowiedź na pytanie t1, jako przecięcie list inwersyjnych dla deskryptorów (B,b2) oraz (C,c2) (B,b2)(c,c2)={1,2}{2,6}={2} (t1)={2} (t2)={2,4,6} Odpowiedź na pełne pytanie t uzyskamy jako suma odpowiedzi na pytania składowe: σ(t) = σ(t1) σ(t2)... σ(tm).

W naszym przypadku: T = (t1) (t2) = {2} {2,4,6}={2,4,6} = {x2,x4,x8,x6} Uwaga! Należy uważnie przyjrzeć się odpowiedzi na pytanie t. Otóż odpowiedzią są adresy {2,4,6} ale pamiętajmy, że pod adresem 4 kryją się dwa obiekty {x4} i {x8}. 6. Określamy wielkość redundancji w systemie S: Gdzie: R liczba deskryptorów, u nas jest ich 8 N - liczba adresów obiektów, a więc 6 r ( di ) N i R 1 N ( A, a1) 3, ( A, a2) 3, ( B, b1) 2, ( B, b2) 4, ( C, c1) 2, ( C, c2) 2, ( C, c3) 2, ( C, c4) 2 Redundancja, a więc nadmiar informacji w stosunku do przyjętego minimum wynosi 2. Daje się to bardzo łatwo wytłumaczyć. Otóż każdy adres (1,2,3,4,5,6) jest przechowywany w listach inwersyjnych (A,a1), (a,a2), (B,b1), (B,b2), (C,c1), (C,c2), (C,c3), (C,c4). Dokładnie 3 razy. Np. adres 1 występuje na liście (A,a1), (B,b1) oraz (C,c1).Z tych 3 wystąpień powiemy, że raz potrzebnie, a 2 nadmiarowo. 7. AKTUALIZACJA Proces aktualizacji w przypadku klasycznej metody list inwersyjnych jest identyczny jak w metodzie list prostych z małym uzupełnieniem. W przypadku dodawania nowego obiektu po prostu dopisuje się ten obiekt jako ostatni. W przypadku usuwania proces składa się z wyszukania obiektu i usunięcia go. W przypadku modyfikowania obiektu można to zrobić przez usunięcie tego obiektu i dopisanie go ze zmodyfikowanymi wartościami na końcu. Te operacje są przeprowadzane na kartotece wtórnej, natomiast w kartotece wyszukiwawczej tj. listach muszą zostać zaktualizowane deskryptory opisujące obiekt dopisywany, usuwany lub modyfikowany. Tak, więc dla obiektu dopisywanego: w każdej liście z deskryptorem, do którego obiekt jest relewantny dopisywany jest adres tego obiektu; dla usuwanego obiektu -usuwa się adres tego obiektu z list zawierających adres tego obiektu; a dla modyfikacji - z danej listy jest usuwany adres i dopisywany jest on do innej. Ocena metody klasycznej: Zalety Szybki czas wyszukiwania odpowiedzi na pytania ogólne, wystarczy tylko znaleźć odpowiednią listę inwersyjne Stosunkowo szybki czas wyszukiwania odpowiedzi na pytania szczegółowe. Wady Duża redundancja, Skompilowana aktualizacja Zwiększona zajętość pamięci, przez konieczność pamiętania wszystkich list inwersyjnych

Modyfikacje mają więc na celu: Skrócenie czasu wyszukiwania dla pytań szczegółowych Zmniejszenie zajętości pamięci Niektóre modyfikacje dedykowane są tylko do jednego z tych kryteriów, a inne realizują oba zadania. MODYFIKACJE: 1. PORZĄDKOWANIE ADRESÓW OBIEKTÓW NA LISTACH 2. PORZĄDKOWANIE LIST WG DŁUGOŚCI LEKSYKOGRAFICZNIE WG WYBRANEGO KRYTERIUM Z TABLICA ADRESOWĄ (INDEKSOWANIE) WG CZĘSTOŚCI WYSTĘPOWANIA DANYCH DESKRYPTORÓW W PYTANIU 3. 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 4. DEKOMPOZYCJE ATRYBUTOWA OBIEKTOWA OBIEKTOWO ATRYBUTOWA HIERARCHICZNA MODYFIKACJE poprawiające czas wyszukiwania odpowiedzi PORZĄDKOWANIE ADRESÓW OBIEKTÓW NA LISTACH Modyfikacja ta ma dość istotne znaczenie. Poniższy przykład pokazuje jakie znaczenie ma dla szybkości wyszukania przecięcia dwóch list inwersyjnych, to czy listy te są uporządkowane czy nie. listy nieuporządkowane: L(d1)={13, 2, 9, 25, 27, 43, 40, 39} L(d2)={9, 8, 2, 13, 10, 22, 16, 14, 25, 37, 27, 43} t= d1 * d2 (konieczność przecięcia list d1 i d2) Ilość porównań w tym celu: 4 + 3 + 1 + 9 + 11 + 12 + 12 + 12 listy uporządkowane: L(d1)={2, 9, 13, 25, 27, 39, 40, 43} L(d2)={2, 8, 9, 10, 13, 14, 16, 22, 25, 27, 37, 43} t= d1 * d2 (konieczność przecięcia list d1 i d2) Ilość porównań w tym celu: 1 + 2 + 2 + 4 + 1 + 2 + 2 + 2 - krótszy czas wyszukiwania - skraca się czas przecięcia list

- czas generowania obiektów skraca się jeżeli dostęp do list jest sekwencyjny, bo jeżeli bezpośredni to nie!!! Aktualizacja: - dodanie: pogarsza, należy porządkować listy po każdej aktualizacji - usunięcie: upraszcza się - modyfikacja opisu obiektu: konieczna reorganizacja, trzeba usunąć obiekt z jednej listy, a dodać go do innej i tą uporządkować 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. - 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ć!!! 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 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 PORZĄDKOWANIE LIST WG CZĘSTOŚCI WYSTĘPOWANIA DANYCH DESKRYPTORÓW W PYTANIACH 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}

-Czas wyszukiwania jest krótszy -zmniejszona zajętość pamięci Aktualizacja: skomplikowana ze względu na konieczną zmianę przedziałów 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 ) } Np.: L(d1)={1, 2, 5, 7, 10, 12, 13} L(d2)={3, 5, 7, 9, 10, 12, 15, 18} L w (d1,d2) = {5, 7, 10, 12} L r (d1)= {1, 2, 13} L r (d2)= {3, 9, 15, 18} L(d i,d j ) = { {1, 2, 13} {5, 7, 10, 12} {3, 9, 15, 18} } -Czas wyszukiwania jest krótszy -zmniejszona zajętość pamięci Aktualizacja: raczej prosta 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} -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 ZREDUKOWANE: - LISTY DLA PAR DESKRYPTORÓWZ ZAZNACZENIE CZĘSCI WSPÓLNEJ - LISTY WIELODESKRYPTOROWE szczególne przypadek list dla par deskryptorów USUWANIE LIST DŁUGICH LISTY ZANEGOWANE X A1 A2 X1 2 A X2 1 A X3 2 B X4 2 A X5 2 A X6 2 A X7 2 B X8 2 A t= t1 * t2 L(1) = {x2} L(2) = {x1,x3,x4,x5,x6,x7,x8} L(a) = {x1,x2,x4,,x5,x6,x8} L(b) = {x3,x7} L(1) = {x2} L(2) = {x2} L(a) = {x3,x7} L(b) = {x3,x7} t= (A1,2) * (A2,b) t= d1 * d2 d1 = (A1,2) {x2} d2 = (A2,b) {x3, x7} б(t) = {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.

-Czas wyszukiwania 2 sposoby: np. = a1 * a2 1. szukamy a1 i przecinamy z listą dla a2 2. szukamy obiekty z a2 odjąć obiekty z a1 -zmniejszona zajętość pamięci Aktualizacja: skomplikowana 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) Gdzie: di D i di D' Ta modyfikacja powinna być omówiona przez Panią Profesor na wykładzie, więc pozwalam sobie jej już nie przypominać, choć od razu zaznaczam, że jest to jedna z najważniejszych modyfikacji metody list inwersyjnych, więc proszę się jej koniecznie nauczyć na egzamin. To samo tyczy się modyfikacji polegających na dekompozycjach systemu informacyjnego S. One także miały być omówione na wykładzie. Proszę w ramach zajęć zastanowić się nad tym, jakie zalety może wnieść każda dekompozycja dla danego systemu: czy wpłynie na czas wyszukiwania, czy na zajętość pamięci? DEKOMPOZYCJA ATRYBUTOWA. DEKOMPOZYCJA OBIEKTOWA Patrz: wykład z przedmiotu!!!!. PODSUMOWANIE Metoda list inwersyjnych jest klasyczną metodą wyszukiwania informacji - można ją stosować nie tylko dla maszyn cyfrowych. Charakteryzuje się ona szybkim czasem wyszukiwania, lecz dużą redundancją adresową, a więc dużą zajętością pamięci. Zmniejszenie redundancji można uzyskać stosując modyfikacje tej metody. Niestety, niektóre z nich poprawiając zajętość pamięci mogą wydłużyć czas wyszukiwania (np. przy tworzeniu list dla podzbioru deskryptorów). BAZA DANYCH stanowi: zbiór list inwersyjnych kartoteka wyszukiwawcza kartoteka wtórna, na którą można nałożyć pewne warunki. OPTYMALIZACJA: uporządkowanie list inwersyjnych wewnątrz (adresy obiektów należy uporządkować) Ponieważ najefektywniejsze jest przetwarzanie list od najmniejszej do największej wobec tego należy: a). Utworzyć pewną tablicę, w której przechowywalibyśmy (deskryptor, długość listy) lub (deskryptor, adres listy w kartotece wyszukiwawczej), przy czym obiekty te muszą być uporządkowane rosnąco. b). Kiedy nie stosujemy a należy uporządkować listy od najkrótszej do najdłuższej Zajętość pamięci w tej metodzie jest dużo większa niż w metodzie list prostych. Pojawia się redundancja adresowa. LISTY MOŻNA PRZETWARZAĆ RÓWNOLEGLE LUB SZEREGOWO!!!

METODA WYSZUKIW ANIA STRUKTU RA BAZY DANYCH REDUNDANCJ A I ZAJĘTOŚĆ PAMIĘCI Duża redundancja: A K T U A L I Z A C J A PYTANIA OGÓLNE CZAS WYSZUKIWANIA PYTANIA SZCZEGÓŁOWE JĘZYK WYSZUKIWA WCZY TRYB PRACY METODA KLASYCZNA konieczno ść pamiętani a list inwersyjn ych r ( d j j R 1 Złożona. N Konieczność zmiany w listach. N liczba obiektów Bardzo krótki g Dochodzi czas przecięcia list ( i g p ) i i Dowolny z wyodrębnieni em zbioru deskryptorów. Wsadowy. Realizacja ręczna, mechaniczn a, automatycz na. r liczba deskryptorów METODA ZE ZMNIEJSZO NYM ZBIOREM LIST INWERSYJN YCH Jak w metodzie klasycznej. Mniejsza liczba list. Maleje liczba r konieczność zmiany w listach przy mniejszej liczbie list. Nieco większy niż w metodzie klasycznej. Dochodzi przeglądu 0 czas Jak wyżej. Dochodzi czas przeglądu 0 Dowolny z wyodrębnieni em zbioru deskryptorów. Wsadowy. Realizacja ręczna, mechaniczn a, automatycz na. METODA DEKOMPOZ YCJI OBIEKTOW EJ pamiętani e podsyste mów i list w podsyste mach. Zmniejsza się długość list w podsystemac h konieczność zmiany w listach, dla każdego podsystemu. Krótszy czas niż w metodzie klasycznej dla jednego podsystemu. Krótszy czas niż w metodzie klasycznej dla jednego podsystemu. Dowolny z wyodrębnieni em zbioru deskryptorów. Wsadowy. Realizacja ręczna, mechaniczn a, automatycz na. METODA DEKOMPOZ YCJI ATRYBUTO WEJ pamiętani e podsyste mów i list w podsyste mach. Maleje liczba r w podsystemac h konieczność zmiany w listach, dla każdego podsystemu. Krótki czas wyszukiwania w podsystemie. Krótki wyszukiwania podsystemie. czas w Dowolny z wyodrębnieni em zbioru deskryptorów. Wsadowy. Realizacja ręczna, mechaniczn a, automatycz na.