Metoda list prostych.

Transkrypt

Metoda list prostych.
Sosnowiec, dn. 18.05.2009
Sprawozdanie
Systemy wyszukiwania informacji – Metoda list prostych.
Kamil Zieleniec
Grupa Zaoczna, rok II
Kartoteka wtórna
lp
imię
nazwisko staż pracy
dział
pensja
1
Jan
Kowalski
5
sale
średnia
2 Andrzej
Korzeń
2
sale
niska
3 Tadeusz
Nowak
7
helpdesk
średnia
4
Jan
Nowak
10
kierownictwo wysoka
5
Adam
Kowalski
4
development wysoka
6 Sebastian
Mikrut
2
development średnia
7
Michał
Cieślak
3
development średnia
8
Adam
Myśliwiec
13
kierownictwo wysoka
9
Artur
Pański
4
helpdesk
niska
Kartoteka wyszukiwawcza
t1=(lp,1)*(imię,Jan)*(nazwisko,Kowalski)*(stażpracy,5)*(dział,sale)*(pensja,średnia)
t2=(lp,2)*(imię,Andrzej)*(nazwisko,Korzeń)*(stażpracy,2)*(dział,sale)*(pensja,niska)
t3=(lp,3)*(imię,Tadeusz)*(nazwisko,Nowak)*(stażpracy,7)*(dział,helpdesk)*(pensja,średnia)
t4=(lp,4)*(imię,Jan)*(nazwisko,Nowak)*(stażpracy,10)*(dział,kierownictwo)*(pensja,wysoka)
t5=(lp,5)*(imię,Adam)*(nazwisko,Kowalski)*(stażpracy,4)*(dział,development)*(pensja,wysoka)
t6=(lp,6)*(imię,Sebastian)*(nazwisko,Mikrut)*(stażpracy,2)*(dział,development)*(pensja,średnia)
t7=(lp,7)*(imię,Michał)*(nazwisko,Cieślak)*(stażpracy,3)*(dział,development)*(pensja,średnia)
t8=(lp,8)*(imię,Adam)*(nazwisko,Myśliwiec)*(stażpracy,13)*(dział,kierownictwo)*(pensja,wysoka
)
t9= (lp,9)*(imię,Artur)*(nazwisko,Pański)*(stażpracy,4)*(dział,helpdesk)*(pensja,niska)
Wyszukiwanie informacji
Odpowiedzi na pytanie poszukuje się wykorzystując metodę przeglądu zupełnego. Proces wyszukiwania polega na porównywaniu deskryptora z pytania z kolejnymi elementami termów elementarnych w kartotece wyszukiwawczej. Algorytm wyszukiwania:
●
●
●
●
pobierz pierwszy deskryptor z pytania
porównaj deskryptor pytania z kolejnymi deskryptorami obiektów z kartoteki wyszukiwawczej
jeśli nastąpiło wystąpienie pierwszego deskryptora z pytania w obiekcie kartoteki pobierz drugi deskryptor pytania i dokonaj porównania drugiego deskryptora z deskryptorami z tego obiektu powtarzaj operację tyle razy, ile deskryptorów jest w pytaniu
Przykładowe pytania (ogólne)
t=(imię,Adam)
Odpowiedzią na takie pytanie będą wszystkie rekordy zawierające deskryptor (imię, Adam) (które mają atrybut imię przyjmujący wartość Adam).
(t) = { 5, 8 }
Przykładowe pytanie (szczegółowe)
t=(pensja, średnia)*(nazwisko, Nowak) Odpowiedzią na tak zadane pytanie będą wszystkie rekordy posiadające deskryptor (pensja, średnia) oraz deskryptor (nazwisko,Nowak).
(t) = { 3 }
Redundancja
W tej metodzie redundancja jest zerowa, gdyż w kartotece wyszukiwawczej nie powtarzają się opisy obiektów.
Zajętość pamięci.
Opisana jest wzorem
M = N *mx
gdzie
N – ilość obiektów w kartotece
mx – średnia ilość jednostek pamięci potrzebna do zapisania jednego obiektu
Czas wyszukiwania
Zależy od ilości obiektów i ilości termów składowych wchodzących w skład zapytania. Określony wzorem
t=N*t0*k
gdzie
N – ilość obiektów w kartotece
t0 – średni czas przeglądu jednego obiektu
k – liczba termów składowych zapytania
Aktualizacja
Dokonywana przez usunięcie, dodanie obiektu.
Modyfikacje metody.
Jednym ze sposobów poprawienia wydajności tej metody jest wykorzystanie metody grupowania obiektów według wybranego atrybutu. Metody tej nie można zastosować w systemie „z marszu”. Wymaga pewnego okresu obserwacji systemu, gdyż należy wybrać atrybut względem, którego pogrupujemy obiekty. Wyboru atrybutu dokonujemy ze względu na pewne kryteria. Przede wszystkim musi często występować w pytaniach zadawanych do systemu, ponadto powinien być możliwie wielowartościowy oraz powinien w miarę równomiernie dzielić kartotekę wyszukiwawczą.
Algorytm postępowania.
Decydujemy się, że atrybutem „do grupowania” będzie dział. Spełnia on wszystkie warunki podane powyżej, dodatkowo zakładamy, że w pytaniach pojawia się najczęściej. Na podstawie kartoteki wyszukiwawczej z metody klasycznej tworzymy nową kartotekę.
NU lp
1
5
2
imię
Adam
nazwisko staż pracy
dział
pensja
Kowalski
4
development wysoka
6 Sebastian
Mikrut
2
development średnia
3
7
Michał
Cieślak
3
development średnia
4
3 Tadeusz
Nowak
7
helpdesk
średnia
5
9
Artur
Pański
4
helpdesk
niska
6
4
Jan
Nowak
10
kierownictwo wysoka
7
8
Adam
Myśliwiec
13
kierownictwo wysoka
8
1
Jan
Kowalski
5
sale
średnia
9
2 Andrzej
Korzeń
2
sale
niska
gdzie NU – nowe uporządkowanie
Dodatkowo budujemy tablicę adresową do tejże kartoteki.
(a,u)
AP
AK
(dział,development)
1
3
(dział,helpdesk)
4
5
(dział,kierownictwo)
6
7
(dział,sale)
8
9
gdzie
AP – adres początku
AK – adres końca
Wyszukiwania w takiej kartotece dokonujemy przez pobranie adresu początku i końca dla danego obiektu. Następnie przeglądem zupełnym poznajemy odpowiedź na pytanie. Metoda ta nie daje nic w przypadku pytań rzadko zadawanych do systemu. Wadą modyfikacji jest także zwiększenie zajętości pamięci w porównaniu z metodą klasyczną (prócz samej kartoteki wyszukiwawczej musi przechować w pamięci tablicę adresową). Oczywiście w przypadku pytań odnoszących się do atrybutów „popularnych” modyfikacja zmniejsza czas wyszukiwania. Redundancja pozostaje nie zmieniona.