• Nie Znaleziono Wyników

SYSTEMY WYSZUKIWANIA INFORMACJI

N/A
N/A
Protected

Academic year: 2021

Share "SYSTEMY WYSZUKIWANIA INFORMACJI"

Copied!
56
0
0

Pełen tekst

(1)

Agnieszka Nowak - Brzezi«ska

28 listopada 2019

Metoda ªa«cuchowa - metoda klasyczna + modykacje Wykªad 6 i 7

(2)
(3)
(4)
(5)

Zakªadamy i» znany jest system wyszukiwania S, a wi¦c zbiór obiektów X, atrybutówA, warto±ci tych atrybutówVoraz funkcja informacji ρ.

Obiekty opisane s¡ iloczynem odpowiednich niezaprzeczonych deskryptorów. S¡ one pami¦tane w metodzie ªa«cuchowej w dowolnej kolejno±ci.

Obiektom przyporz¡dkowujemy zbiór liczb zwanych adresami obiektów okre±lony za pomoc¡ funkcji: µ : X → N gdzie: N- zbiór liczb naturalnych.

W systemie zachodzi nast¦puj¡ca zale»no±¢:

µ(x ) = µ(y ) ↔ tx = ty, takie same adresy maj¡ obiekty o jednakowym opisie deskryptorowym.

(6)

Denicja listy ªa«cuchowej

Dla ka»dego deskryptoradi = (ai, vi) ∈ D (D - zbiór wszystkich deskryptorów systemu) tworzona jest listaL(di) o nast¦puj¡cej postaci:

L(di) = {n1− n2− . . . − nk}

gdzien1 jest adresem pierwszego obiektu zawieraj¡cego w swoim opisie deskryptordi , a pozostaªe elementy n1, n2, . . . , nk

odsyªaczamido kolejnych obiektów zawieraj¡cych w swoim opisie ten deskryptor. List¦L(di) nazywamy list¡ ªa«cuchow¡ deskryptoradi.

(7)

Odsyªacze w listach ªa«cuchowych zawieraj¡ informacj¦, gdzie znajduje si¦ kolejny obiekt zawieraj¡cy w swoim opisie dany deskryptor.

Zazwyczaj umieszczane s¡ one bezpo±rednio przy ka»dym deskryptorze ka»dego obiektu w kartotece wyszukiwawczej.

Do ustalenia adresów pozostaªych obiektów mo»na u»y¢

nast¦puj¡cych typów odsyªaczy:

Odsyªacz bezwzgl¦dny  zawiera on bezpo±redni adres obiektu w kartotece wyszukiwawczej.

Odsyªacz wzgl¦dny  jest on tworzony wzgl¦dem pierwszego obiektu zawieraj¡cego w swoim opisie dany deskryptor.

Odsyªacz jako skok  zawiera ró»nic¦ pomi¦dzy adresami kolejnych obiektów zawieraj¡cych w swoim opisie dany deskryptor.

(8)

Kartotek¦ wyszukiwawcz¡ tworz¡ opisy deskryptorowe obiektów z umieszczonymi zwykle bezpo±rednio pod tym opisem odsyªaczami, tzn. odsyªacz jest umieszczony przy ka»dym deskryptorze bezpo±rednio przy opisie obiektu.

Listy ªa«cuchowe nie s¡ pami¦tane w systemie, s¡

generowane na bie»¡co, w miar¦ potrzeby.

W pami¦ci oprócz obiektów z odsyªaczami umieszczamy tylko tablic¦ zakotwicze«.

(9)

Tablica zakotwicze« dla ka»dego deskryptoradi podaje adres pierwszego obiektu w ªa«cuchu i ilo±¢ obiektów w ªa«cuchu (dªugo±¢ ªa«cucha ):

tab(di) = (ni1, L(di))

gdzieni1 jest to adres pierwszego takiego obiektu w Systemie, który w swoim opisie zawiera deskryptordi .

di n1 L(di) ... ... ...

... ... ...

... ... ...

(10)

Znaj¡c odsyªacze ªatwo uzyska¢ adresy wszystkich obiektów zawieraj¡cych w swoim opisie deskryptordi :

µ(x1i) = n1, µ(x2i) = n1+ n2, . . . , µ(xji) = n1+ nj

gdzie: xji - j -ty obiekt zawieraj¡cy w swoim opisie deskryptor di . µ(x1i) = n1 to pierwszy obiekt w systemie, który w swoim opisie ma deskryptordi.

µ(x2i) = n1+ n2 to drugi obiekt w systemie, który w swoim opisie ma deskryptordia.

µ(xji) = n1+ nj to j-ty obiekt w systemie, który w swoim opisie ma deskryptordib.

azakªadaj¡c, »e u»yto odsyªaczy wzgl¦dnych b¡d¹ skoku

bzakªadaj¡c, »e u»yto odsyªaczy wzgl¦dnych

(11)

ka»dego deskryptoradi podaje adres pocz¡tku ªa«cucha i dªugo±¢

ªa«cucha (liczb¦ elementów ªa«cucha):

tab(di) = (n1, L(di)) dla di ∈ D, gdzie:

n1 = µ(x1i).

U w a g a. Zwykle odsyªacze umieszczone s¡ bezpo±rednio przy ka»dym deskryptorze w opisach obiektów. W pami¦ci oprócz obiektów z odsyªaczami umieszczamy tylko tablic¦ zakotwicze«

(ªa«cuchy oddzielnie nie s¡ zapami¦tywane).

(12)

Niech pytanie do systemuS b¦dzie zadane w postaci termut b¦d¡cego sum¡ termów skªadowych. Odpowied¹ na pytaniet jest zatem sum¡ odpowiedzi na pytania skªadowe. Rozpatrzmy

szczegóªowo odpowiadanie na pytanie skªadoweti .

Je»eli term skªadowy jest pojedynczym deskryptoremti = di

to odpowied¹ znajdujemy w nast¦puj¡cy sposób: z tablicy zakotwicze« dla di znajdujemy(n1,L(di)), a nast¦pnie generujemy zbiór obiektów (zbiór adresów obiektów) zgodnie ze znalezionym ªa«cuchem dla deskryptora di .

Je»eli ti = d1· d2· . . . · dk , odpowied¹ znajdujemy w nast¦puj¡cy sposób: z tablicy zakotwicze« znajdujemy ªa«cuchy dla wszystkich deskryptorów pytania.

(13)

Lmin(di) =min

di {L(di)}

Dalej wyszukiwanie odpowiedzi mo»e odbywa¢ si¦ jednym z podanych sposobów:

1 Generujemy wybrany ªa«cuch minimalny i metod¡ przegl¡du zupeªnego sprawdzamy, czy wybrane obiekty zawieraj¡ w swoim opisie pozostaªe deskryptory pytaniati . Odpowied¹ zatem mo»na zapisa¢ jako:

σ(ti) = {xi ∈ Lmin(di)&^

dj∈ti

dj6= di⇒ dj∈ txi}

2 Porównujemy elementy wybranego ªa«cuchaLminz pozostaªymi ªa«cuchami deskryporów pytania i wybieramy tylko elementy wspólne, które stanowi¡ odpowied¹ na pytanieti .

σ(ti) = {xi ∈ [Lmin(di) ∩ (\

j

L(dj))], di, dj∈ ti, di 6= dj}

(14)

Kartoteka wtórna

tx1 = (a, a1)(b, b1)(c, c1) tx2 = (a, a1)(b, b1)(c, c2) tx3 = (a, a2)(b, b2)(c, c3) tx4 = (a, a2)(b, b2)(c, c4) tx5 = (a, a1)(b, b2)(c, c1) tx6 = (a, a1)(b, b2)(c, c2) tx7 = (a, a2)(b, b2)(c, c3) tx8 = (a, a2)(b, b2)(c, c4)

(15)

Kartoteka wtórna

tx1 = (a, a1)(b, b1)(c, c1) tx2 = (a, a1)(b, b1)(c, c2) tx3 = (a, a2)(b, b2)(c, c3) tx4 = (a, a2)(b, b2)(c, c4) tx5 = (a, a1)(b, b2)(c, c1) tx6 = (a, a1)(b, b2)(c, c2) tx7 = (a, a2)(b, b2)(c, c3) tx8 = (a, a2)(b, b2)(c, c4) + funkcja adresuj¡ca µ

µ(x1) →1, µ(x2) →2, µ(x3) →3,µ(x4) →4, µ(x5) →5, µ(x6) →6, µ(x7) →3 oraz µ(x8) →4

(16)

Kartoteka wyszukiwawcza z odsyªaczami bezwzgl¦dnymi 1 : (a, a1) (b, b1) (c, c1)

2 2 5

2 : (a, a1) (b, b1) (c, c2)

5 ∅ 6

3 : (a, a2) (b, b2) (c, c3)

4 4 ∅

4 : (a, a2) (b, b2) (c, c4)

∅ 5 ∅

5 : (a, a1) (b, b2) (c, c1)

6 6 ∅

6 : (a, a1) (b, b2) (c, c2)

∅ ∅ ∅

(17)

Kartoteka wyszukiwawcza z odsyªaczami wzgl¦dnymi 1 : (a, a1) (b, b1) (c, c1)

+1 +1 +4

2 : (a, a1) (b, b1) (c, c2)

+4 ∅ +4

3 : (a, a2) (b, b2) (c, c3)

+1 +1 ∅

4 : (a, a2) (b, b2) (c, c4)

∅ +2 ∅

5 : (a, a1) (b, b2) (c, c1)

+5 +3 ∅

6 : (a, a1) (b, b2) (c, c2)

∅ ∅ ∅

(18)

Kartoteka wyszukiwawcza z odsyªaczami w postaci skoku 1 : (a, a1) (b, b1) (c, c1)

+1 +1 +4

2 : (a, a1) (b, b1) (c, c2)

+3 ∅ +4

3 : (a, a2) (b, b2) (c, c3)

+1 +1 ∅

4 : (a, a2) (b, b2) (c, c4)

∅ +1 ∅

5 : (a, a1) (b, b2) (c, c1)

+1 +1 ∅

6 : (a, a1) (b, b2) (c, c2)

∅ ∅ ∅

(19)

Tablica zakotwicze«

di n1 L(di) (a, a1) 1 4 (a, a2) 3 2 (b, b1) 1 2 (b, b2) 3 4

(c, c1) 1 2

(c, c2) 2 2 (c, c3) 3 1

(c, c4) 4 1

Tablica zakotwicze« b¦dzie dla wszystkich 3 przypadków (z ró»nymi odsyªaczami) taka sama

(20)

Dla pytania t = (a, a2)(b, b2) + (c, c3)

t = t1+ t2 gdzie t1= (a, a2)(b, b2), t2= (c, c3) Dla pytania t1:

szukamy informacji w tablicy zakotwicze« dla ka»dego deskryptora pytania t1:

tab(a, a2) = (3, 2) tab(b, b2) = (3, 4)

wybieramy ªa«cuch minimalny:

Lmin(di) = L(a, a2)

generujemy ªa«cuch dla (a, a2): L(a, a2) = {3 − 1 − ∅}

µ(x1(a,a2)) = n1=3, µ(x2(a,a2)) = n1+ n2=3 + 1 = 4

odpowied¹ przybli»ona: σ(t1) ≈ L(a, a2) = {3, 4} = {x3, x4, x7, x8} odpowied¹ dokªadna:

(b, b2) ≤ tx3, (b, b2) ≤ tx4, (b, b2) ≤ tx7, (b, b2) ≤ tx8

σ(t1) = {x3, x4, x7, x8} dla pytania t2:

szukamy informacji w tablicy zakotwicze« dla ka»dego deskryptora pytania t2:

tab(c, c3) = (3, 1)

generujemy ªa«cuch dla (c, c3): L(c, c3) = {3 − ∅}

µ(x1(c,c3)) = n1=3, σ(t2) = {x3, x7}

(21)

t = t1+ t2 gdzie t1= (a, a2)(b, b2), t2= (c, c3) Dla pytania t1:

szukamy informacji w tablicy zakotwicze« dla ka»dego deskryptora pytania t1:

tab(a, a2) = (3, 2) tab(b, b2) = (3, 4)

wybieramy ªa«cuch minimalny:

Lmin(di) = L(a, a2)

generujemy ªa«cuch dla (a, a2): L(a, a2) = {3 − 1 − ∅}

µ(x1(a,a2)) = n1=3, µ(x2(a,a2)) = n1+ n2=3 + 1 = 4

generujemy ªa«cuch dla (b, b2): L(b, b2) = {3 − 1 − 2 − 3 − ∅}:

µ(x1(b,b2)) = n1=3,

µ(x2(b,b2)) = n1+ n2=3 + 1 = 4,µ(x3(b,b2)) = n1+ n3=3 + 2 = 5, µ(x4(b,b2)) = n1+ n4=3 + 3 = 6

σ(t1) = {x3, x4, x7, x8} dla pytania t2:

szukamy informacji w tablicy zakotwicze« dla ka»dego deskryptora pytania t2:

tab(c, c3) = (3, 1)

generujemy ªa«cuch dla (c, c3): L(c, c3) = {3 − ∅}

µ(x(c,c3)) = n =3, σ(t ) = {x , x }

(22)

tx1= (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, PR) tx2= (A1, K ) · (A2, c) · (A3, S ) · (A4, A) · (A5, BT ) tx3= (A1, K ) · (A2, b) · (A3, P) · (A4, A) · (A5, BT ) tx4= (A1, M) · (A2, a) · (A3, S ) · (A4, T ) · (A5, BT ) tx5= (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, MR) tx6= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DR) tx7= (A1, K ) · (A2, c) · (A3, W ) · (A4, D) · (A5, DR) tx8= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DC ) tx9= (A1, K ) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) tx10= (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, MR) tx11= (A1, K ) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) tx12= (A1, K ) · (A2, b) · (A3, S ) · (A4, T ) · (A5, BT ) tx13= (A1, M) · (A2, b) · (A3, S ) · (A4, T ) · (A5, BT ) tx14= (A1, K ) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) tx15= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DC ) tx16= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DC ) tx17= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, PR) tx18= (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) t = (A , K ) · (A , b) · (A, W ) · (A , D) · (A , MR)

(23)

tx1= (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, PR) tx2= (A1, K ) · (A2, c) · (A3, S ) · (A4, A) · (A5, BT ) tx3= (A1, K ) · (A2, b) · (A3, P) · (A4, A) · (A5, BT ) tx4= (A1, M) · (A2, a) · (A3, S ) · (A4, T ) · (A5, BT ) tx5= (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, MR) tx6= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DR) tx7= (A1, K ) · (A2, c) · (A3, W ) · (A4, D) · (A5, DR) tx8= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DC ) tx9= (A1, K ) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) tx10= (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, MR) tx11= (A1, K ) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) tx12= (A1, K ) · (A2, b) · (A3, S ) · (A4, T ) · (A5, BT ) tx13= (A1, M) · (A2, b) · (A3, S ) · (A4, T ) · (A5, BT ) tx14= (A1, K ) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) tx15= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DC ) tx16= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DC ) tx17= (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, PR) tx18= (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) t = (A , K ) · (A , b) · (A, W ) · (A , D) · (A , MR)

(24)

+ funkcja adresuj¡ca µ

µ(x1) →1, µ(x2) →2, µ(x3) →3,µ(x4) →4, µ(x5) →5, µ(x6) →6, µ(x7) →7 oraz µ(x8) →8,µ(x9) →9, µ(x10) →6, µ(x11) →9,µ(x12) →10, µ(x13) →11, µ(x14) →9, µ(x15) →12 oraz µ(x16) →12,µ(x17) →13, µ(x18) →14,

µ(x19) →15,µ(x20) →9

(25)

2 : (A1 2 3 4 5

3 : (A1, K ) · (A2, b) · (A3, P) · (A4, A) · (A5, BT ) 4 : (A1, M) · (A2, a) · (A3, S ) · (A4, T ) · (A5, BT ) 5 : (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, MR) 6 : (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DR) 7 : (A1, K ) · (A2, c) · (A3, W ) · (A4, D) · (A5, DR) 8 : (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DC ) 9 : (A1, K ) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) 10 : (A1, K ) · (A2, b) · (A3, S ) · (A4, T ) · (A5, BT ) 11 : (A1, M) · (A2, b) · (A3, S ) · (A4, T ) · (A5, BT ) 12 : (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, DC ) 13 : (A1, M) · (A2, c) · (A3, W ) · (A4, D) · (A5, PR) 14 : (A1, M) · (A2, b) · (A3, W ) · (A4, D) · (A5, DR) 15 : (A1, K ) · (A2, b) · (A3, W ) · (A4, D) · (A5, MR)

(26)

+1 +4 +2 +1 +1 3 : (A1, K ) (A2, b) (A3, P) (A4, A) (A5, BT )

+5 +4 +∅ +∅ +2

4 : (A1, M) (A2, a) (A3, S) (A4, T ) (A5, BT )

+4 +∅ +8 +6 +8

5 : (A1, M) (A2, b) (A3, W ) (A4, D) (A5, MR)

+5 +8 +5 +5 +10

6 : (A1, M) (A2, c) (A3, W ) (A4, D) (A5, DR)

+7 +5 +6 +6 +1

7 : (A1, K ) (A2, c) (A3, W ) (A4, D) (A5, DR)

+7 +6 +7 +7 +3

8 : (A1, M) (A2, c) (A3, W ) (A4, D) (A5, DC )

+10 +10 +8 +8 +4

9 : (A1, K ) (A2, b) (A3, W ) (A4, D) (A5, DR)

+8 +9 +11 +11 +8

10 : (A1, K ) (A2, b) (A3, S) (A4, T ) (A5, BT )

+13 +10 +9 +7 +9

11 : (A1, M) (A2, b) (A3, S) (A4, T ) (A5, BT )

+11 +13 +∅ +∅ +∅

12 : (A1, M) (A2, c) (A3, W ) (A4, D) (A5, DC )

+12 +11 +12 +12 +∅

13 : (A1, M) (A2, c) (A3, W ) (A4, D) (A5, PR)

+13 +∅ +13 +13 +∅

14 : (A1, M) (A2, b) (A3, W ) (A4, D) (A5, DR)

+∅ +14 +14 +14 +∅

15 : (A1, K ) (A2, b) (A3, W ) (A4, D) (A5, MR)

+∅ +∅ +∅ +∅ +∅

(27)

Tablica zakotwicze«

di n1 L(di) (A1, K ) 2 6 (A1, M) 1 9 (A2, a) 4 1 (A2, b) 1 8 (A2, c) 2 6 (A3, W ) 1 10

(A3, S) 2 4 (A3, P) 3 1 (A4, D) 1 10 (A4, A) 2 2 (A4, T ) 4 3 (A5, PR) 1 2 (A5, BT ) 2 5 (A5, DR) 6 4 (A5, MR) 5 2 (A5, DC ) 8 2

(28)

L(A2, b) = {1 − 2 − 4 − 7 − 8 − 9 − 13 − 14 − ∅}, L(A2, c) = {2 − 4 − 5 − 6 − 10 − 11 − ∅}, L(A2, a) = {4 − ∅},

L(A3, W ) = {1 − 4 − 5 − 6 − 7 − 8 − 11 − 12 − 13 − 14 − ∅}, L(A3, S) = {2 − 2 − 8 − 9 − ∅},

L(A3, P) = {3 − ∅},

L(A4, D) = {1 − 4 − 5 − 6 − 7 − 8 − 11 − 12 − 13 − 14 − ∅}, L(A4, A) = {2 − 1 − ∅},

L(A4, T ) = {4 − 6 − 7 − ∅}, L(A5, PR) = {1 − 12 − ∅},

L(A5, BT ) = {2 − 1 − 2 − 10 − 11 − ∅}, L(A5, MR) = {5 − 10 − ∅},

L(A5, DR) = {6 − 1 − 3 − 8 − ∅}, L(A5, DC ) = {8 − 4 − ∅}.

Odsyªacze s¡ pami¦tane przy opisach obiektów. Uwaga ! Ša«cuchy nie s¡

pami¦tane

(29)

t1= (A4, D) · (A2, b).

Z tablicy zakotwicze« znajdujemy:

tab(A4, D) = (1, 10), tab(A2, b) = (1, 8),

Lmin= L(A2, b) = {1 − 2 − 4 − 7 − 8 − 9 − 13 − 14 − ∅}.

Po przetworzeniu ªa«cucha uzyskujemy:

L(A2, b) = {1, 3, 5, 8, 9, 10, 14, 15}

Porównujemy elementy Lminz L(A4, D)i wybieramy elementy wspólne:

L(A4, D) = L(A4, D) = {1 − 4 − 5 − 6 − 7 − 8 − 11 − 12 − 13 − 14 − ∅}

po przetworzeniu ªa«cucha:

L(A4, D) = {1, 5, 6, 7, 8, 9, 12, 13, 14, 15}

σ(t1) = {1, 3, 5, 8, 9, 10, 14, 15} ∩ {1, 5, 6, 7, 8, 9, 12, 13, 14, 15}

(30)

P2 = Poda¢ pracowników technicznych w wieku pomi¦dzy 20 a 35 rokiem »ycia lub pracowników z wyksztaªceniem ±rednim

nieadministracyjnym.

t2 = (A2, b) · (A4, T ) + (A3, S ) · (A4, T ) + (A3, S ) · (A4, D) Term t2 jest sum¡ termów skªadowych t21, t22, t23

t2 = t21+ t22+ t23, gdzie:

t21= (A2, b) · (A4, T ), t22= (A3, S ) · (A4, T ), t23= (A3, S ) · (A4, D).

Znajdujemy odpowied¹ na pytania skªadowe.

(31)

Rozpatrzmy pierwszy term skªadowy t21= (A2, b) · (A4, T ): Z tablicy zakotwicze«:

tab(A2, b) = (1, 8), tab(A4, T ) = (4, 3), Lmin= L(A4, T )

Ze wzgl¦du na maª¡ liczb¦ obiektów w ªa«cuchu minimalnym, zastosujemy przegl¡d zupeªny elementów ªa«cucha minimalnego, wybieraj¡c te obiekty, które zawieraj¡

w swoim opisie dodatkowo deskryptor (A2, b).

Wybieramy ªa«cuch minimalny: L(A4, T ) = {4 − 6 − 7 − ∅}

Przetwarzamy ªa«cuch: µ(x1(A4,T )) = n1=4, µ(x2(A4,T )) = n1+ n2=4 + 6 = 10, µ(x3(A4,T )) = n1+ n3=4 + 7 = 11

L(A4, T ) = {4, 10, 11} = {x4, x12, x13}

Tylko opis obiektu x4nie zawiera deskrypora (A2, b): (A2, b)  tx4, (A2, b) ≤ tx12, (A2, b) ≤ tx14

σ(t21) = {x12, x13}.

(32)

Rozpatrzmy drugi term skªadowy: t22= (A3, S ) · (A4, T ).

Z tablicy zakotwicze«:

tab(A3, S ) = (2, 4), tab(A4, T ) = (4, 3).

Rozpatrywane b¦d¡ nast¦puj¡ce ªa«cuchy:

Ju» wiemy, »e Lmin= L(A4, T ) = {4, 10, 11},

L(A3, S ) = {2 − 2 − 8 − 9 − ∅}

co po przetworzeniu tego ªa«cucha daje nam:

L(A3, S ) = {2, 4, 10, 11}

Odpowied¹ na pytanie znajdujemy jako przeci¦cie ªa«cucha minimalnego z pozostaªymi:

σ(t22) = L(A4, T ) ∩ L(A3, S ) = {4, 10, 11} = {x4, x12, x13}.

(33)

Analogicznie znajdujemy odpowied¹ na kolejny term skªadowy:

t23= (A3, S ) · (A4, D) Wiemy ju», »e: L(A3, S ) = {2, 4, 10, 11} oraz, »e

L(A4, D) = {1 − 4 − 5 − 6 − 7 − 8 − 11 − 12 − 13 − 14 − ∅}

co po przetworzeniu daje: L(A4, D) = {1, 5, 6, 7, 8, 9, 12, 13, 14, 15}

Wtedy przeci¦cie obu ªa«cuchów daje nam odpowied¹ σ(t23) = {∅}.

Opowied¹ na pytanie t2b¦dzie sum¡ odpowiedzi na pytania skªadowe:

σ(t2) = σ(t21) ∪ σ(t22) ∪ σ(t23), σ(t2) = {x12, x13} ∪ {x4, x12, x13} ∪ {∅}

σ(t2) = {x4, x12, x13}

(34)

Brak redundancji obiektowej i stosunkowo krótki czas wyszukiwania informacji wi¡»e si¦ ze skomplikowan¡ struktur¡ bazy danych i kªopotliw¡ aktualizacj¡. Modykacje metody maj¡ na celu uproszczenie struktury oraz uªatwienie procesu aktualizacji.

(35)

Budowa ªa«cuchów:

L(di) = {nk− nk−1− nk−2− . . . − n1},

gdzie: nk= µ(xki), to znaczy pierwszy element ªa«cucha jest adresem ostatniego obiektu zawieraj¡cego w swoim opisie deskryptor di; pozostaªe elementy s¡

odsyªaczami do kolejnych (poprzednich) obiektów zawieraj¡cych w swoim opisie desktyptor di. Adresy obiektów znajdujemy w nast¦puj¡cy sposób:

µ(xki) = nk, µ(xk−i 1) = nk− nk−1, . . . , µ(xji) = nk− nj

gdzie xji - j-ty obiekt zawieraj¡cy w swoim opisie deskryptor di. Wyszukiwanie odpowiedzi odbywa si¦ tak jak w metodzie z ªa«cuchowaniem w przód. Tablica zakotwicze« jest identyczna z tym tylko zastrze»eniem, »e jej pierwsza kolumna zawiera adres ostatniego obiektu zawieraj¡cego w opisie deskryptor di. Wybranie sposobu ªa«cuchowania nie ma wpªywu na przebieg procesu wyszukiwania informacji. O wyborze metody z ªa«cuchowaniem w przód lub w tyª decyduje projektant systemu bior¡c pod uwag¦ umieszczenie obiektów w pami¦ci maszyny cyfrowej.

(36)

Kartoteka wyszukiwawcza z odsyªaczami wzgl¦dnymi 1 : (a, a1) (b, b1) (c, c1)

∅ ∅ ∅

2 : (a, a1) (b, b1) (c, c2)

−5 −1 ∅

3 : (a, a2) (b, b2) (c, c3)

∅ ∅ ∅

4 : (a, a2) (b, b2) (c, c4)

−1 −3 ∅

5 : (a, a1) (b, b2) (c, c1)

−4 −2 −4

6 : (a, a1) (b, b2) (c, c2)

−1 −1 −4

(37)

Tablica zakotwicze«

di nk L(di)

(a, a1) 6 4

(a, a2) 4 2 (b, b1) 2 2

(b, b2) 6 4

(c, c1) 5 2 (c, c2) 6 2 (c, c3) 3 1 (c, c4) 4 1

(38)

L(a, a1) = {6 − 1 − 4 − 5 − ∅}

L(a, a2) = {4 − 1 − ∅}

L(b, b1) = {2 − 1 − ∅}

L(b, b2) = {6 − 1 − 2 − 3 − ∅}

L(c, c1) = {5 − 4 − ∅}

L(c, c2) = {6 − 4 − ∅}

L(c, c3) = {3 − ∅}

L(c, c4) = {4 − ∅}

(39)

t=t1+t2 gdziet1= (a,a2)(b,b2),t2= (c,c3) Dla pytaniat1:

szukamy informacji w tablicy zakotwicze« dla ka»dego deskryptora pytaniat1:

tab(a,a2) = (3, 2) tab(b,b2) = (3, 4)

wybieramy ªa«cuch minimalny:

Lmin(di) = L(a,a2), który ma 2 elementy:

generujemy ªa«cuch dla (a,a2): L(a,a2) = {4 − 1 − ∅}

µ(x2(a,a2)) =n2=4, µ(x1(a,a2)) =n2n1=4 − 1 = 3

odpowied¹ przybli»ona: σ(t1) ≈ L(a,a2) = {4, 3} = {x3,x4,x7,x8} odpowied¹ dokªadna:

(b,b2) ≤tx3, (b,b2) ≤tx4, (b,b2) ≤tx7, (b,b2) ≤tx8

σ(t1) = {x3,x4,x7,x8} dla pytaniat2:

szukamy informacji w tablicy zakotwicze« dla ka»dego deskryptora pytaniat2:

tab(c,c3) = (3, 1)

generujemy ªa«cuch dla (c,c3): L(c,c3) = {3 − ∅}

µ(x1(c,c3)) =nk=3, σ(t2) = {x3,x7}

(40)

t=t1+t2 gdziet1= (a,a2)(b,b2),t2= (c,c3) Dla pytaniat1:

szukamy informacji w tablicy zakotwicze« dla ka»dego deskryptora pytaniat1:

tab(a,a2) = (3, 2) tab(b,b2) = (3, 4)

wybieramy ªa«cuch minimalny:

Lmin(di) = L(a,a2)

generujemy ªa«cuch dla (a,a2): L(a,a2) = {4 − 1 − ∅}

µ(x2(a,a2)) =n2=4, µ(x1(a,a2)) =n2n1=4 − 1 = 3

generujemy ªa«cuch dla (b,b2): L(b,b2) = {6 − 1 − 2 − 3 − ∅}:

µ(x4(b,b2)) =n4=6,

µ(x3(b,b2)) =n4n3=6 − 1 = 5,µ(x2(b,b2)) =n4n2=6 − 2 = 4, µ(x1(b,b2)) =n4n3=6 − 3 = 3

σ(t1) = {3, 4} ∩ {6, 5, 4, 3} = {x3,x4,x7,x8} dla pytaniat2:

szukamy informacji w tablicy zakotwicze« dla ka»dego deskryptora pytaniat2:

tab(c,c3) = (3, 1)

generujemy ªa«cuch dla (c,c3): L(c,c3) = {3 − ∅}

(c,c3) 3, σ(

(41)

Stosowana jest modykacja metody ªa«cuchowej z podwójnym ªa«cuchowaniem i w tyª, i w przód. Wprowadzenie podwójnego ªa«cuchowania nie zmienia samej metody wyszukiwania, ale pozwala bardzo szybko ustali¢ pozycj¦ ka»dego obiektu w ªa«cuchu, co z kolei uªatwia i przyspiesza proces aktualizacji.

Metoda list ªa«cuchowych charakteryzuje si¦ szybkim czasem wyszukiwania, szczególnie w przypadku pyta« ogólnych,

jednodeskryptorowych i mimo zwi¦kszonej zaj¦to±ci pami¦ci, wynikaj¡cej z konieczno±ci pami¦tania odsyªaczy i tablicy zakotwicze«, zysk czasowy przewa»a nad t¡ wad¡. Jednak»e sztywna struktura, wi¡»ca poprzez pola odsyªacz obiekty nale»¡ce do jednego ªa«cucha mo»e by¢ przyczyn¡

skomplikowanej procedury aktualizacji obiektów. W celu poprawy tej sytuacji omówimy modykacj¦ polegaj¡c¡ na ªa«cuchowaniu

dwukierunkowym, gdzie przy poszczególnych warto±ciach deskryptorów mo»emy uzyska¢ informacje na temat adresu poprzednika i nast¦pnika w li±cie ªa«cuchowej, w której rozpatrujemy aktualizacj¦ dotycz¡c¡

pojedynczego obiektu.

(42)

Kartoteka wyszukiwawcza z odsyªaczami wzgl¦dnymi 1 : (a, a1) (b, b1) (c, c1)

+1 +1 +4

2 : (a, a1) (b, b1) (c, c2)

−5 −1

+4 +4

3 : (a, a2) (b, b2) (c, c3)

+1 +1

4 : (a, a2) (b, b2) (c, c4)

1 3

+2

5 : (a, a1) (b, b2) (c, c1)

−4 −2 −4

+5 +3

6 : (a, a1) (b, b2) (c, c2)

−1 −1 −4

(43)

Tablica zakotwicze«

di n1 nk L(di)

(a, a1) 1 6 4

(a, a2) 3 4 2

(b, b1) 1 2 2

(b, b2) 3 6 4

(c, c1) 1 5 2

(c, c2) 2 6 2

(c, c3) 3 3 1

(c, c4) 4 4 1

(44)

Rozpatrzmy pewien podzbiórD0 zbioru deskryptorówD systemuS(na przykªad podzbiór deskryptorów najcz¦±ciej wyst¦puj¡cych w pytaniach do systemu).

Obiekty w bazie danych grupujemy wedªug wybranego zbioru

deskryptorówD0⊂ D . Nast¦pnie tworzymy ªa«cuchy dowoln¡ metod¡

(ªa«cuchowanie w przód lub w tyª), ale tylko dla deskryptorówdj∈ D0. L(dj) = {n1− n2− n3− . . . − nk}, dj∈ D0, 1 ≤ j ≤ k.

Dla deskryptorówdj∈ D0 tworzymy równie» tablic¦ zakotwicze«. Pytanie do systemu, jak w poprzednich metodach, zadajemy w postaci termut . Term skªadowy jest postaciti = d1· d2· . . . · dk.

(45)

Odpowied¹ na term skªadowy znajdujemy w nast¦puj¡cy sposób:

je»eli wszystkie deskryptory pytania nale»¡ do zbioruD0 , to odpowied¹ znajdujemy jak w metodzie list ªa«cuchowych bez modykacji,

je»eli pewne deskryptory pytaniadi / D0 , to dla pewnego termutj ti

, którego wszystkie deskryptorydj D0 , odpowied¹ znajdujemy klasyczn¡ metod¡ list ªa«cuchowych.

W ten sposób znajdujemy zbiór obiektówXj: σ(tj) =Xj,

przy czymXjXi . Zbiór obiektówXj stanowi odpowied¹ przybli»on¡ na pytanieti. Odpowied¹ dokªadn¡ mo»emy znale¹¢ metod¡ przegl¡du zupeªnego w wyszukanym zbiorze obiektówXj:

σ(ti) = {xi Xj, ^

di∈D/ 0

ditxi diti}

je»eli »aden deskryptor pytania nie nale»y do zbioruD0 , to odpowied¹ znajdujemy metod¡ przegl¡du zupeªnego opisów obiektów w bazie danych.

(46)

Wprowadzona modykacja pozwala upro±ci¢ struktur¦ bazy danych, poniewa» odsyªacze umieszczone s¡ tylko przy niektórych

deskryptorach w opisach obiektów.

O wyborze zbioruD0 ⊂ D , dla którego tworzymy ªa«cuchy, decyduj¡ takie same wzgl¦dy jak przy wyborze zbioruD0 w modykacji metody list inwersyjnych.

Cytaty

Powiązane dokumenty

znalezienie odpowiedzi na pytanie zadane do systemu wymaga w tej metodzie dokonania przegl¡du wszystkich opisów. obiektów w bazie danych

nie zwiększa się ani redundancja ani zajętość pamięci, skraca się czas przeglądu opisu obiektu w porównaniu do metody klasycznej - nie trzeba dla każdego deskryptora pytania

Zatem dla deskryptorów ze zbioru D 0 znajdujemy zbiór obiektów zgodnie z metod¡ list inwersyjnych.. Przedstawiona modykacja ze wzgl¦du na zmniejszon¡ liczb¦ list inwersyjnych

Dekompozycja obiektowa dostarcza mniejszej zaj¦to±ci pami¦ci w podsystemach, oraz krótszego czasu przeci¦cia list inwersyjnych (gdy» listy takie zawieraj¡ z reguªy mniejsz¡

Je»eli grupa si¦ rozpadªa, to obiekty tej grupy b¦d¡ stanowi¢ obiekty swobodne i konieczne jest ponowne przeprowadzenie klasykacji obiektów. Aktualizacja zwi¡zana ze zmian¡

Następnym krokiem jest utworzenie grup poprawionych (j-tą Następnym krokiem jest utworzenie grup poprawionych (j-tą grupę poprawioną oznaczamy przez Sj’). Na grupę Sj’..

Aktualizacja przy tej dekompozycji jest znacznie utrudniona, natomiast redundancja w ramach podsystemów zależy od przyjętej metody wyszukiwania informacji, a w ramach całego

Przy wpisaniu “10 pds kgs,” Alpha nie zrozumiał, a Google zapytał się czy chodzi może o funty i podał znów strony do konwersji. WPIS TESTOWY: light