METODA LIST PROSTYCH Marcin Jaskuła
DEFINIOWANIE SYSTEMU S= <X, A, V, Q> Gdzie: X- zbiór obiektów systemu A- zbiór atrybutów systemu V- zbiór wartości atrybutów Q- funkcja informacji Zdefiniowany system przedstawia się w następujący sposób : X= {x1,..x16} A={Producent, Model, Państwo, Kaliber, Długość, Typ} V producent = { COLT, Remington, IMI, Browning, Kalashnikow, Nexter, Benelli, H&K, Łucznik, Barret, FN, Beretta} V model = {M4A1, M40, Desert Eagle, M60, AK74, FAMAS, 1911A1, AK47, M3, USP, Beryl, M2, Galil, M82A1, P90, M92} V państwo = {USA, Izrael, Rosja, Francja, Włochy, Niemcy, Polska, Belgia} V kaliber = {5.56, 7.62, 12.7, 5.45, 11.43, 12, 5.7, 9 } V długość = {krótki, średni, długi} V typ = { karbin, karbin snajperski, pistolet, CKM, Strzelba, pistolet maszynowy} Q(x, a)=v
KARTOTEKA WTÓRNA Producent Model Państwo kaliber Długość Typ x1 COLT M4A1 USA 5,56 Krótki karabin x2 Remington M40 USA 7,62 Średni karabin snajperski x3 IMI Desert Eagle Izrael 12,7 Krótki pistolet x4 Browning M60 USA 7,62 Długi CKM x5 Kalashnikow AK74 Rosja 5,45 Średni karabin x6 Nexter FAMAS Francja 5,56 Krótki karabin x7 COLT 1911A1 USA 11,43 Krótki pistolet x8 Kalashnikow AK47 Rosja 7,62 Średni karabin x9 Benelli M3 Włochy 12 Długi strzelba x10 H&K USP Niemcy 11,43 Krótki pistolet x11 Łucznik Beryl Polska 5,56 Średni karabin x12 Browning M2 USA 12,7 Długi CKM x13 IMI Galil Izrael 5,56 Średni karabin x14 Barret M82A1 USA 12,7 Długi karabin snajperski x15 FN P90 Belgia 5,7 Krótki pistolet maszynowy x16 Beretta M92 Włochy 9 Krótki pistolet
Aby móc wyszukiwać w systemie należy zmodyfikować kartotekę wtórną, w tym celu tworzymy kartotekę wyszukiwawczą : T x1 = (Producent, COLT)*(Model, M4A1)* (Państwo, USA)*(kaliber, 5.56)* (Długość, krótki)*( Typ, Karabin) T x2 =(Producent, Remington)*(Model, M40)* (Państwo, USA)*(kaliber, 7.62)* (Długość, średni)* (Typ, Karabin snajperski) T x3 =(Producent, IMI)*(Model, Desert Eagle)*(Państwo, Izrael)* (kaliber, 12.7)* (Długość, krótki)*( Typ, Pistolet) T x4 =(Producent, Browning)* (Model, M60)*(Państwo, USA)* (kaliber, 7.62)* (Długość, długi)*( Typ, CKM) T x5 =(Producent, Kalashnikow)* (Model, AK74)* (Państwo, Rosja)* (kaliber, 5.45)* T x6 =(Producent, Nexter)* (Model, Famas)*(Państwo, Francja)*(kaliber, 5.56)* (Długość, krótki)*( Typ, Karabin) T x7 =(Producent, COLT)* (Model, 1911A1)* (Państwo, USA)* (kaliber, 11.43)* (Długość, krótki)* ( Typ, pistolet) T x8 =(Producent, Kalashnikow)* (Model, AK47)* (Państwo, Rosja)* (kaliber, 7.62)* T x9 =(Producent, Benelli)* (Model, M3)* (Państwo, Włochy)* (kaliber, 12)* (Długość, długi)*( Typ, strzelba) T x10 =(Producent, H&K)* (Model, USP)* (Państwo, Niemcy)* (kaliber, 11.43)* (Długość, krótki)*( Typ, pistolet) T x11 =(Producent, Łucznik)* (Model, Beryl)* (Państwo, Polska)* (kaliber, 5.56)* T x12 =(Producent, Browning)* (Model, M2)* (Państwo, USA)* (kaliber, 12.7)* (Długość, długi)*( Typ, CKM) T x13 =(Producent, IMI)* (Model, Galil)* (Państwo, Izrael)* (kaliber, 5.56)* T x14 =(Producent, Barret)* (Model, M82A1)* (Państwo, USA)* (kaliber, 12.7)* (Długość, długi)*( Typ, karabin snajperski) T x15 =(Producent, FN)* (Model, P90)* (Państwo, Belgia)* (kaliber, 5.7)* (Długość, krótki)*( Typ, pistolet maszynowy) T x16 =(Producent, Beretta)* (Model, M92)* (Państwo, Włochy)* (kaliber, 9)* (Długość, krótki)*( Typ, Pistolet)
Pytanie do systemu(t) to dowolny term, sprowadzony do postaci normalnej czyli do sumy termów skladowych: T: t 1 +t 2 +t 3 + +t k T i =(a 1, x 1 )*(a 2, x 2 )* *(a k, x k ) T i =T s (term składowy) Wyszukiwanie odpowiedzi na pytanie zadane do systemu można podzielić na 2 sposoby: I. Przeglądamy kolejne opisy obiektów i wybieramy obiekty zawierające w swoim opisie pierwszy term składowy pytania. czas wyszukiwania: τ = N*m*τ0 gdzie: N liczba obiektów w bazie danych m liczba termów składowych w pytaniu t τ0 średni czas przeglądu jednego dokumentu II W tym sposobie porównujemy od razu pełne pytanie t z kolejnymi opisami obiektów i wybieramy te z nich, które w swoim opisie zawierają co najmniej jeden z termów składowych pytania. τ = N*τ0 gdzie: N liczba obiektów w bazie danych τ0 średni czas przeglądu jednego dokumentu Ta metoda jest szybsza od poprzedniej ponieważ porównujemy każdy obiekt z całym termem.
PRZYKŁAD Podaj listę karabinów z Rosji T 1 =(Państwo, Rosja)*(Typ, Karabin) Zbiór obiektów będących sumą kolejno uzyskanych odpowiedzi na termy składowe jest odpowiedzią na pytanie t: ς(ti) = {x X, ti tx} Gdzie: Tx- opis obiektu w systemie Ti- term składowy pytania t T x1 t T x2 t T x3 t T x4 t T x5 t T x6 t T x7 t T x8 t T x9 t T x10 t T x11 t T x12 t T x13 t T x14 t T x15 t T x16 zachodzi zachodzi ς(t1)={x 5,x 8 } Odpowiedzią na pytanie są obiekty X 5,X 8
MODYFIKACJE METODY LIST PROSTYCH 1.Metoda z uporządkowaniem opisu obiektów- Celem wprowadzenia tej metody było poprawienie czasu wyszukiwania. Polega na uporządkowaniu kolejności atrybutów w opisie obiektów. 2.Metoda z grupowaniem obiektów- Wybiera się atrybut grupujący i wartość tego atrybutu zamieszcza się na pierwszym miejscu w opisach obiektu, a następnie opisy obiektów są porządkowane aby elementy o takim samym deskryptorze leżały obok siebie. Ta metoda poprawi czas wyszukiwania ale musi spełnić warunki: a) Atrybut grupujący musi występować w pytaniach do systemu b) Atrybut grupujący musi być atrybutem wielowartościowym. 3. Metoda z podziałem połówkowym- Stosowana jest kiedy wartości atrybutów są podawane jako cyfry, liczby lub w postaci numerycznej. Każdy opis obiektu w kartotece wyszukiwawczej może być zapisany w postaci ciągu liczb. Kartoteka jest porządkowana w kolejności rosnącej lub malejącej. Podczas wyszukiwania porównujemy czy dana cecha zawarta w pytaniu miała wartość mniejszą czy też większą od tej, którą zawiera środkowy element bazy. Dzielimy bazę na połowę i w zależności od wyniku porównania (większy, mniejszy) wybieramy tą połowę bazy, w której znajduje się poszukiwany deskryptor.
PRZYKŁAD 2 Musimy wybrać jeden atrybut, który w miarę równo dzieli nam kartotekę wyszukiwawczą, będzie często używany oraz jest wielowartościowy. W naszym przypadku to atrybut TYP Producent Model Państwo kaliber Długość Typ X1 Browning M60 USA 7,62 Średni CKM X2 Browning M2 USA 12,7 Długi CKM X3 COLT M4A1 USA 5,56 Krótki karabin X4 Kalashnikow AK74 Rosja 5,45 średni karabin X5 Nexter FAMAS Francja 5,56 Krótki karabin X6 Kalashnikow AK47 Rosja 7,62 średni karabin X7 Łucznik Beryl Polska 5,56 średni karabin X8 IMI Galil Izrael 5,56 Średni karabin X9 Remington M40 USA 7,62 Średni karabin snajperski X10 Barret M82A1 USA 12,7 Długi karabin snajperski X11 IMI Desert Eagle Izrael 12,7 Krótki pistolet X12 COLT 1911A1 USA 11,43 Krótki pistolet x13 H&K USP Niemcy 11,43 Krótki pistolet X14 Beretta M92 Włochy 9 Krótki pistolet x15 FN P90 Belgia 5,7 Krótki pistolet maszynowy X16 Benelli M3 Włochy 12 długi strzelba
TWORZYMY KARTOTEKĘ WYSZUKIWAWCZĄ WZGLĘDEM NOWEJ KARTOTEKI WTÓRNEJ. T x1 = (Producent, Browning)* (Model, M60)*(Państwo, USA)* (kaliber, 7.62)* (Długość, długi)*( Typ, CKM) T x2 =(Producent, Browning)* (Model, M2)* (Państwo, USA)* (kaliber, 12.7)* (Długość, długi)*( Typ, CKM) T x3 =(Producent, COLT)*(Model, M4A1)* (Państwo, USA)*(kaliber, 5.56)* (Długość, krótki)*( Typ, Karabin) T x4 =(Producent, Kalashnikow)* (Model, AK74)* (Państwo, Rosja)* (kaliber, 5.45)* T x5 =(Producent, Nexter)* (Model, Famas)*(Państwo, Francja)*(kaliber, 5.56)* (Długość, krótki)*( Typ, Karabin) T x6 =(Producent, Kalashnikow)* (Model, AK47)* (Państwo, Rosja)* (kaliber, 7.62)* T x7 =(Producent, Łucznik)* (Model, Beryl)* (Państwo, Polska)* (kaliber, 5.56)* T x8 =(Producent, IMI)* (Model, Galil)* (Państwo, Izrael)* (kaliber, 5.56)* T x9 =(Producent, Remington)*(Model, M40)* (Państwo, USA)*(kaliber, 7.62)* (Długość, średni)* (Typ, Karabin snajperski) T x10 =(Producent, Barret)* (Model, M82A1)* (Państwo, USA)* (kaliber, 12.7)* (Długość, długi)*( Typ, karabin snajperski) T x11 =(Producent, IMI)*(Model, Desert Eagle)*(Państwo, Izrael)* (kaliber, 12.7)* (Długość, krótki)*( Typ, Pistolet) T x12 =(Producent, COLT)* (Model, 1911A1)* (Państwo, USA)* (kaliber, 11.43)* (Długość, krótki)* ( Typ, pistolet) T x13 =(Producent, H&K)* (Model, USP)* (Państwo, Niemcy)* (kaliber, 11.43)* (Długość, krótki)*( Typ, pistolet) T x14 =(Producent, Beretta)* (Model, M92)* (Państwo, Włochy)* (kaliber, 9)* (Długość, krótki)*( Typ, Pistolet) T x15 =(Producent, FN)* (Model, P90)* (Państwo, Belgia)* (kaliber, 5.7)* (Długość, krótki)*( Typ, pistolet maszynowy) T x16 =(Producent, Benelli)* (Model, M3)* (Państwo, Włochy)* (kaliber, 12)* (Długość, długi)*( Typ, strzelba)
TABLICA WSKAŹNIKÓW Typ wskaźnik początka wskaźnik końca CKM 1 2 karabin 3 8 karabin snajperski 9 10 pistolet 11 14 pistolet maszynowy 15 15 strzelba 16 16 Zadajemy pytanie: t = (Typ,Karabin)*(Państwo, Rosja) Przeszukujemy tylko odpowiedni fragment odczytany z tablicy wskaźników: t T x3 t T x4 t T x5 t T x6 t T x7 t T x8 zachodzi zachodzi Odpowiedzią na pytanie są obiekty X 4,X 6
PARAMETRY STRUKTURA KARTOTEKI WYSZUKIWAWCZEJ- najprostsza możliwa struktura. Zapisujemy opisy obiektów deskryptorowo. Po wprowadzeniu modyfikacji staje się sztywna REDUNDANCJA I ZAJĘTOŚĆ PAMIĘCI- metoda nie wnosi redundancji, każdy obiekt zapisany jest tylko raz. Zajętość pamięci związana jest z liczbą obiektów i bezpośrednio od ich liczby zależy. PROCES AKTUALIZACJI- bardzo prosty, wystarczy wyszukać odpowiedni obiekt i zmienić jego wartość. Po wprowadzeniu modyfikacji sztywna struktura utrudnia i komplikuje nam ten proces. Odpowiednie umieszczenie obiektu w kartotece oraz modyfikację tablicy wskaźników. Ten element pogorszył się po wprowadzeniu modyfikacji. CZAS WYSZUKIWANIA- długie czasy aktualizacji w metodzie klasycznej. Czas poprawiony w modyfikacjach. JĘZYK WYSZUKIWAWCZY- Nie ma ograniczeń na język. Język opisu obiektu musi być taki sam jak pytań do systemu. TRYB PRACY SYSTEMU- Tryb pracy ciągły, wiąże się z procesem aktualizacji. Aktualizacje mogą być robione na bieżąco (wyszukujemy i aktualizujemy jednocześnie). Metoda list prostych jest metodą bardzo prostą, ze względu na to stosuje się ją do tej pory. Cechą procesów wyszukiwawczych musi być krótki czas wyszukiwania, w metodzie przeglądu zupełnego czas jest zaletą.