Metoda List Łańcuchowych

Podobne dokumenty
Metoda List Inwersyjnych

Metoda list inwersyjnych. Wykład III

Systemy Wyszukiwania Informacji

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

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

METODA LIST PROSTYCH. Marcin Jaskuła

Wprowadzenie i pojęcia wstępne.

Metoda list inwersyjnych

Metoda Składowych atomowych

Systemy Wyszukiwania Informacji: Metoda list inwersyjnych

Dekompozycja w systemach wyszukiwania informacji

Metody indeksowania dokumentów tekstowych

Relacje. opracował Maciej Grzesiak. 17 października 2011

Zajęcia wprowadzające W-1 termin I temat: Sposób zapisu wyników pomiarów

Politechnika Warszawska Wydział Samochodów i Maszyn Roboczych Instytut Podstaw Budowy Maszyn Zakład Mechaniki

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

Zadanie 1. Suma silni (11 pkt)

Podstawy programowania. Wykład: 9. Łańcuchy znaków. dr Artur Bartoszewski -Podstawy programowania, sem 1 - WYKŁAD

Laboratorium Technologii Informacyjnych. Projektowanie Baz Danych

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

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

Politechnika Warszawska Wydział Samochodów i Maszyn Roboczych Instytut Podstaw Budowy Maszyn Zakład Mechaniki

Struktury danych i złożoność obliczeniowa Wykład 5. Prof. dr hab. inż. Jan Magott

dr inż. Małgorzata Langer Architektura komputerów

Cel normalizacji. Tadeusz Pankowski

Backend Administratora

Metoda Karnaugh. B A BC A

ALGORYTMY GENETYCZNE ćwiczenia

Wykład 2. Relacyjny model danych

Wstęp Pierwsze kroki Pierwszy rysunek Podstawowe obiekty Współrzędne punktów Oglądanie rysunku...

Definicja bazy danych TECHNOLOGIE BAZ DANYCH. System zarządzania bazą danych (SZBD) Oczekiwania wobec SZBD. Oczekiwania wobec SZBD c.d.

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

5. Rozwiązywanie układów równań liniowych

Zadanie 1. Doskonała inaczej (6 pkt) Poniższy algorytm wyznacza wszystkie dzielniki liczby naturalnej n 1, mniejsze od n.

Projektowanie Zorientowane na Dziedzinę. ang. Domain Driven Design

Teoretyczne podstawy informatyki

Zaawansowane algorytmy i struktury danych

TP1 - TABELE PRZESTAWNE od A do Z

Reprezentacje grafów nieskierowanych Reprezentacje grafów skierowanych. Wykład 2. Reprezentacja komputerowa grafów

Tablice z haszowaniem

LISTA 5. C++ PETLE for, while, do while

Techniki Optymalizacji: Stochastyczny spadek wzdłuż gradientu I

BAZY DANYCH. Co to jest baza danych. Przykłady baz danych. Z czego składa się baza danych. Rodzaje baz danych

EGZAMIN MATURALNY Z INFORMATYKI POZIOM PODSTAWOWY MAJ 2014 CZĘŚĆ I WYBRANE: Czas pracy: 75 minut. Liczba punktów do uzyskania: 20 WPISUJE ZDAJĄCY

Podstawy programowania. Wykład PASCAL. Zmienne wskaźnikowe i dynamiczne. dr Artur Bartoszewski - Podstawy prograowania, sem.

Bazy Danych i Usługi Sieciowe

Pojęcie systemu informacyjnego i informatycznego

Pojęcie funkcji i jej podstawowe własności.

Haszowanie (adresowanie rozpraszające, mieszające)

Zestaw A-1: Organizacja plików: Oddajemy tylko źródła programów (pliki o rozszerzeniach.adb i.ads)!!! Zad. 1: 4,3,3 2,2,1 Zad. 2: 3,3,3 Zad.

Normalizacja. Pojęcie klucza. Cel normalizacji

Symbol, alfabet, łańcuch

Metody numeryczne Wykład 4

WYŻSZA SZKOŁA INFORMATYKI STOSOWANEJ I ZARZĄDZANIA

Efektywność Procedur Obliczeniowych. wykład 5

1.1. Pozycyjne systemy liczbowe

Podstawy Informatyki i algorytmizacji

Bazy danych. wprowadzenie teoretyczne. Piotr Prekurat 1

BAZA DANYCH. Informatyka. ZESPÓŁ SZKÓŁ ELEKTRYCZNYCH Prowadzący: inż. Marek Genge

Materiały dla finalistów

Mikroprocesor Operacje wejścia / wyjścia

Wymagania edukacyjne z matematyki dla klasy pierwszej zasadniczej szkoły zawodowej

Systemy Wyszukiwania Informacji

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

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Dane wejściowe. Oracle Designer Generowanie bazy danych. Wynik. Przebieg procesu

Minimalizacja automatów niezupełnych.

Stałe, znaki, łańcuchy znaków, wejście i wyjście sformatowane

Spis treści. 1 Moduł RFID (APA) 3

POMOC DO KORZYSTANIA Z ELEKTRONICZNYCH KATALOGÓW

Teoretyczne podstawy informatyki

Podręcznik Użytkownika 360 Księgowość Projekty i centra kosztów

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

KS-ZSA. Mechanizm centralnego zarządzania rolami

Procesy Markowa zawdzięczają swoją nazwę ich twórcy Andriejowi Markowowi, który po raz pierwszy opisał problem w 1906 roku.

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

Algorytmy i struktury danych

SQL - Structured Query Language -strukturalny język zapytań SQL SQL SQL SQL

POMOC / INSTRUKCJA OBSŁUGI

Kształcenie w zakresie podstawowym. Klasa 1

Struktury danych i złożoność obliczeniowa Wykład 7. Prof. dr hab. inż. Jan Magott

Tabele przestawne tabelą przestawną. Sprzedawcy, Kwartały, Wartości. Dane/Raport tabeli przestawnej i wykresu przestawnego.

- odnajduje część wspólną zbiorów, złączenie zbiorów - wyodrębnia podzbiory;

Interfejsy i klasy wewnętrzne

Arytmetyka komputera. Na podstawie podręcznika Urządzenia techniki komputerowej Tomasza Marciniuka. Opracował: Kamil Kowalski klasa III TI

Matematyka dyskretna - wykład - część Podstawowe algorytmy kombinatoryczne

Optymalizacja ciągła

Wykład IV PASCAL - łańcuch znaków, - procedury i funkcje, - sortowanie bąbelkowe

Sterowniki Programowalne (SP) Wykład 11

TABLICE PSYCHROMETRYCZNE PSYCHROMETRU ASPIRACYJNEGO. Do pomiarów wilgotności z największą dokładnością 1 % wilgotności względnej

Technikum Nr 2 im. gen. Mieczysława Smorawińskiego w Zespole Szkół Ekonomicznych w Kaliszu

7. CIĄGI. WYKŁAD 5. Przykłady :

Zaprojektować i zaimplementować algorytm realizujący następujące zadanie.

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Plan wynikowy z wymaganiami edukacyjnymi z matematyki w zakresie podstawowym dla klasy 1 zsz Katarzyna Szczygieł

Instrukcja wprowadzania i aktualizacji danych dotyczących realizacji wypłat w Oprogramowaniu do obsługi Świadczeń SR/SW/FA

lekcja 8a Gry komputerowe MasterMind

ang. file) Pojęcie pliku (ang( Typy plików Atrybuty pliku Fragmentacja wewnętrzna w systemie plików Struktura pliku

B jest globalnym pokryciem zbioru {d} wtedy i tylko wtedy, gdy {d} zależy od B i nie istnieje B T takie, że {d} zależy od B ;

1 Wstęp do modelu relacyjnego

Transkrypt:

Metoda List Łańcuchowych mgr Tomasz Xięski, Instytut Informatyki, Uniwersytet Śląski Sosnowiec, 2010

Celem metody jest utrzymanie zalet MLI (dobre czasy wyszukiwania), ale wyeliminowanie jej wad (wysoka redundancja i zajętość pamięci). Założenie: Dany jest system informacyjny S = <X, A, V, ρ>, Obiekty opisane są iloczynem odpowiednich niezaprzeczonych deskryptorów. Opisy obiektów pamiętane są w MLŁ w dowolnej kolejności. Obiektom przyporządkowywany jest zbiór liczb zwanych adresami tych obiektów określony za pomocą funkcji adresującej: : X N, gdzie X zbiór obiektów, N zbiór adresów obiektów w systemie. Funkcja adresująca zachowuje jednak właściwość, że: Obiekty mają przyporządkowany ten sam adres jeśli posiadają identyczny opis deskryptorowy.

Dla zbioru wszystkich deskryptorów systemu D = {d 1 d m }, gdzie d i = (a i, v i ), tworzone są listy łańcuchowe[ łańcuchy ( ). Listę Ł(d i ) nazywamy listą łańcuchową deskryptora d i jeśli jest ona postaci: gdzie n 1 jest adresem pierwszego obiektu zawierającego w swoim opisie deskryptor d i, a pozostałe elementy to odsyłacze do kolejnych adresów obiektów zawierających w swoim opisie ten deskryptor.

Na podstawie odsyłaczy można w łatwy sposób znaleźć adresy wszystkich innych obiektów zawierających w swoim opisie deskryptor d i. Przykład (gdy stosujemy odsyłacze bezwzględne): Gdzie - j-ty obiekt zawierający w swoim opisie deskryptor d i. Zwykle odsyłacze umieszczone są bezpośrednio przy każdym deskryptorze w opisach obiektów. Wyróżniamy następujące typy odsyłaczy: Adres bezwzględny (odsyłacz wskazuje na adres obiektu w kartotece wyszukiwawczej) Adres względny (odsyłacz tworzony jest względem adresu pierwszego obiektu w łańcuchu, lub względem adresu pierwszego obiektu w kartotece) Skok (odsyłacz wyznaczany jest jako różnica między sąsiednimi adresami obiektów na liście)

Kartotekę wyszukiwawczą tworzą opisy deskryptorowe obiektów, z umieszczonymi bezpośrednio pod tym opisem odsyłaczami. W skład kartoteki wyszukiwawczej wchodzi również tzw. Tablica zakotwiczeń. Tablica zakotwiczeń podaje dla każdego deskryptora d i adres początku łańcucha i jego długość (liczbę elementów łańcucha): Gdzie to adres pierwszego obiektu w systemie, który zawiera w swoim opisie deskryptor d i. Listy łańcuchowe nie są pamiętane w systemie są generowane na bieżąco w zależności od potrzeb.

kart_wyszukiwawcza_mll.pdf Inna wersja kartoteki wyszukiwawczej z odsyłaczem jako adres bezwzględny

Odsyłacz jako adres względny Odsyłacz jako skok

Pytania kierowane do systemu mają ogólnie postać sumy termów składowych: t = t1 + t2 + + tm gdzie ti jest termem składowym. 1. Jeżeli term składowy jest pojedynczym deskryptorem (t i = d i ) to odpowiedź znajdujemy w następujący sposób: Na podstawie tablicy zakotwiczeń dla określonego deskryptora di znajdujemy adres początku i długość łańcucha, oraz generujemy wyszukany łańcuch. Zgodnie ze znalezionym łańcuchem, generujemy odpowiadający mu zbiór obiektów.

2. Jeżeli term składowy jest iloczynem deskryptorów (t i = d 1 *d 2 * *d k ) to: Na podstawie tablicy zakotwiczeń znajdujemy łańcuchy dla wszystkich deskryptorów pytania. Wybieramy łańcuch najkrótszy (minimalny). Dalej wyszukiwanie może się odbywać na dwa sposoby (zał: adresy = nr obiektów): a) Generujemy wybrany łańcuch minimalny i metodą przeglądu zupełnego sprawdzamy czy wybrane obiekty zawierają w swoim opisie pozostałe deskryptory pytania. b) Porównujemy elementy wybranego łańcucha Ł min z pozostałymi łańcuchami dla innych deskryptorów pytania i wybieramy tylko elementy wspólne, które stanowią odpowiedź na pytanie t i.

Pytanie: Podaj wszystkie filmy science-fiction o małej liczbie odcinków. t = (Rodzaj, sci-fi)*(liczba odcinków, Mało) Z tablicy zakotwiczeń pobieramy informacje odnośnie każdego z deskryptorów pytania: Tab(Rodzaj, sci-fi) = (1, 5) Tab(Liczba odcinków, mało) = (4, 3) Wybieramy łańcuch minimalny (o mniejszej liczbie elementów) i go generujemy:

Generowanie łańcucha minimalnego c.d. Ł(Liczba odcinków, mało) = {4, 11, 20} Ale adresowi 20 odpowiadają DWA obiekty (x20 i x21)! Uzyskujemy odpowiedź przybliżoną. By dostać odpowiedź dokładną używamy jednej z dwóch metod: Wykorzystujemy przegląd zupełny. X przybliżone = {x4, x11, x20, x21} (Rodzaj, sci-fi) x4 (Rodzaj, sci-fi) x11 (Rodzaj, sci-fi) x20 (Rodzaj, sci-fi) x21 σ (t) = {x 11 }

Generujemy łańcuch dla drugiego deskryptora i wykonujemy przecięcie tych łańcuchów. Odpowiedź uzyskujemy jako przecięcie wygenerowanych łańcuchów i odwzorujemy adresy w identyfikatory obiektów:

1. Struktura bazy danych (kartoteki wyszukiwawczej) Jest złożona w porównaniu z poprzednimi metodami. Na kartotekę wyszukiwawczą składa się opisy deskryptorowe obiektów z odsyłaczami, oraz tablica zakotwiczeń. 2. Redundancja i zajętość pamięci. Metoda ta nie wprowadza redundancji. Zajętość pamięci w stosunku do MLP jest dużo większa (ze względu na konieczność pamiętania odsyłaczy i tablicy zakotwiczeń). Ogólna zajętość pamięci wynosi: M = M x + M o + M t, Gdzie: M x zajętość pamięci wynikająca z liczby obiektów w bazie, M o zajętość pamięci związana z koniecznością pamiętania odsyłaczy, M t zajętość pamięci powiązana z tablicą zakotwiczeń.

3. Czas wyszukiwania Dla pytań ogólnych czas wyszukiwania odpowiedzi równy jest czasowi generowania łańcucha dla poszczególnego deskryptora d i. Dla pytań szczegółowych czas wyszukiwania jest powiększony o czas przeglądu zupełnego obiektów łańcucha lub porównywania łańcucha minimalnego z innymi łańcuchami. Ogólnie krótkie czasy wyszukiwania 4. Aktualizacja bazy danych Dodanie lub usunięcie obiektu wprowadza konieczność zmiany odsyłaczy, oraz ewentualnie wpisów w tablicy zakotwiczeń. Dodanie, usunięcie lub zmiana opisu poszczególnego deskryptora może spowodować konieczność dodania/usunięcia nowych odsyłaczy oraz wprowadzenia zmian w tablicy zakotwiczeń. Ogólnie skomplikowana i czasochłonna aktualizacja

Usuwamy obiekt o adresie 16

O wyborze tej modyfikacji decyduje projektant systemu Odsyłacze tworzone są według adresu ostatniego obiektu zawierającego w swoim adresie deskryptor d i. Gdzie n k to adres ostatniego obiektu zawierającego w swoim opisie deskryptor d i. Wyszukiwanie odpowiedzi odbywa się tak jak z łańcuchowaniem w przód. Tablica zakotwiczeń jest niemalże identyczna, z tą różnicą, że jej pierwsza kolumna zawiera adres ostatniego obiektu zawierającego w swoim opisie określony deskryptor. Zalety: Aktualizacja jest w pewnych przypadkach wygodniejsza

Podwójne łańcuchowanie (w przód i w tył) nie zmienia samej metody wyszukiwania, ale pozwala skrócić czas i ułatwić aktualizację (mniejsze usztywnienie kartoteki). 1. Kartoteka wyszukiwawcza = Kartoteka wtórna z odsyłaczami + Tablica zakotwiczeń. 2. Redundancji nie ma. 3. Zajętość pamięci: M = M x + 2M o + M tz, M tz > M tz

Kartoteka wyszukiwawcza z odsyłaczami w modyfikacji z łańcuchowaniem w przód i w tył Tablica zakotwiczeń

Wyodrębniony zostaje pewien podzbiór D 0 zbioru deskryptorów systemu (może to być np. podzbiór deskryptorów najczęściej występujących w pytaniach). O wyborze podzbioru D decydują te same przesłanki jak dla modyfikacji w MLI. Obiekty w bazie grupujemy według tego zbioru. Tworzone są łańcuchy, ale tylko dla podzbioru D 0. Dla tego zbioru tworzona jest również tablica zakotwiczeń. Odsyłacze umieszczone są tylko przy niektórych deskryptorach w opisach obiektów.

Pytanie t kierowane do systemu jest w postaci sumy termów składowych. Term składowy jest w postaci: t i = d 1 *d 2 * *d k Odpowiedź na term składowy uzyskujemy w następujący sposób: Jeżeli wszystkie deskryptory pytania należą do zbioru D 0 to odpowiedź znajdujemy jak w klasycznej metodzie list łańcuchowych. Jeżeli pewne deskryptory pytania należą do wybranego zbioru D 0, a część z nich nie należy to dla pewnego termu t j, którego wszystkie deskryptory dj D 0, odpowiedź znajdujemy klasyczną MLŁ. Uzyskujemy wówczas odpowiedź przybliżoną (zbiór obiektów X j ). σ (t j ) = X j, Gdzie X i X j. Odpowiedź dokładną uzyskujemy stosując metodę przeglądu zupełnego na zbiorze X j. Jeżeli żaden deskryptor pytania nie należy do zbioru D 0 to odpowiedź znajdujemy metodą przeglądu zupełnego. Zalety: Uproszczona zostaje struktura bazy danych. Zmniejszona redundancja i zajętość pamięci.