26.01.2015 Views

sprawozdanie z metody list inwersyjnych

sprawozdanie z metody list inwersyjnych

sprawozdanie z metody list inwersyjnych

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

© COPYRIGHT 2004 MARCIN KARWIŃSKI & MARCIN DZIĘGIELEWSKI<br />

18 z 19<br />

α(PrT,b.nowy)={10,12,13,14,15,22,33,34,35,36,37,38,39}<br />

W ten oto sposób usunęliśmy obiekt Nocoma, a także zaktualizowaliśmy wszystkie <strong>list</strong>y odnoszące się do<br />

usuniętego obiektu. Proces istotnie zakończony.<br />

Parametry MLI, czyli króciutkie podsumowanie...<br />

Struktura bazy danych<br />

Struktura w tej metoszie jest na pewno bardziej złożona aniżeli jej odpowiednik w metodzie <strong>list</strong> prostych.<br />

Bierze się to stąd, iż poza pamiętaniem opisów obiektów istnieje konieczność pamiętania w kartotece<br />

wyszukiwawczej wysoce redundantnego systemu <strong>list</strong> <strong>inwersyjnych</strong> utworzonych dla deskryptorów tego<br />

systemu. Dodatkowo, dla obiektów o dużych nazwach, bądź występujących w bardzo dużych systemach,<br />

dla ułatwienia i przyspieszenia czynności opartych na kartotece wyszukiwawczej, i dla jej zmniejszenia,<br />

wprowadza się funkcję adresową, która również wnosi pewną redundancję i pewne skomplikowanie owej<br />

struktury.<br />

Redundancja i zajętość pamięci<br />

Metoda ta wnosi dużą redundancję określaną wzorem:<br />

R = (∑ r i=1 #α(d i ) – N)/N,<br />

gdzie r – liczba deskryptorów w systemie, N – liczba obiektów (lub adresów), a symbol #x oznacza moc<br />

zbioru x. Pewne modyfikacje wpływają na zmniejszenie wartości ∑ r i=1 #α(d i ) w podsystemach, albowiem:<br />

1. zmniejszają liczbę deskryptorów r, albo<br />

2. skracają <strong>list</strong>y inwersyjne.<br />

Zatem modyfikacje tej grupy zmniejszają redundancję w podsystemach przy jednoczesnym zachowaniu<br />

lub tylko niewielkim zmniejszeniu szybkości pracy systemu. Inne modyfikacje zmniejszają redundancję,<br />

kosztem niepełnej informacji uzyskiwanej bezpośrednio bazując na zmodyfikowanej kartotece<br />

wyszukiwawczej. Przez co są odpowiednie tylko dla określonej klasy pytań.<br />

Aktualizacja bazy danych<br />

Wszelkie aktualizacje związane z liczbą obiektów pamiętanych w systemie, zmianą ich opisów, czy pełną<br />

reorganizacją są wykonywane w podobny sposób. Każda aktualizacja wymaga bowiem dokonania zmian<br />

w <strong>list</strong>ach <strong>inwersyjnych</strong> niezależnie od dodania czy usunięcia samego opisu obiektu w systemie. W<br />

przypadku zmian w opisie natomiast, jesteśmy zmuszeni usunąć obiekt o nieaktualnym opisie,<br />

wprowadzić nowy aktualny, oraz zreorganizować i zupdate'wać odpowiednie <strong>list</strong>y inwersyjne.<br />

Wprowadzenie natomiast większości modyfikacji pociąga za sobą w tym procesie całościową<br />

reorganizację bazy danych.<br />

Czas wyszukiwania<br />

Czas wyszukiwania w tej metodzie jest bez wątpienia bardzo krótki. W przypadku gdy pytanie jest<br />

zadane w postaci sumy deskryptorów, tj.<br />

t = d 1 + d 2 + d 3 + ... + d k<br />

odpowiedź jest niemal natychmiastowa i czas wyszukiwania τ jest nieomal równy czasowi generowania<br />

<strong>list</strong> τ g :<br />

τ = τ g ,<br />

czy też jak kto woli czasowi wyszukania w kartotece wyszukiwawczej odpowiednich, uprzednio<br />

wygenerowanych <strong>list</strong> τ s i ich połączenia.<br />

W przypadku gdy pytanie zadajemy w postaci termu t będącego sumą termów składowych t = t 1 +...+ t m ,<br />

to znaczy pytanie jest sumą pytań składowych t i = d 1 ∙ d 2 ∙...∙ d k czas odpowiedzi na pytanie t jest dłuższy,<br />

gdyż dochodzi czas potrzebny na znalezienie części wspólnej wygenerowanych lis:<br />

τ = ∑ i (τ gi + τ pi ),<br />

gdzie: τ gi – czas generowania i-tej <strong>list</strong>y, a τ pi – czas porównywania i-tej <strong>list</strong>y z resztą.<br />

Czas generowania zależy od pytania t i – bo zależy od liczby deskryptorów w pytaniu, czas porównywania<br />

z kolei zależy od liczby deskryptorów pytania t i oraz od długości <strong>list</strong> związanych z tym pytaniem (τ p ><br />

τ g ). Modyfikacje mogą prowadzić do dodania czasu przeglądu <strong>list</strong>, zatem czas wyszukiwania będzie<br />

równy:<br />

τ' = τ + τ 0 ,

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!