podstawy informatyki metody dostepu do danychzti.polsl.pl/w3/amomot/pi/wyk/18.metody_dos.pdf ·...

50
Plan wykladu Informatyka Bazy danych Przeszukiwanie tablic Podstawy Informatyki Metody dostępu do danych dr inż. Alina MOMOT [email protected] http://zti.polsl.pl/AMomot/pi dr inż. Alina MOMOT Synchronizacja procesów

Upload: hathuy

Post on 27-Feb-2019

226 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Podstawy InformatykiMetody dostępu do danych

dr inż. Alina MOMOT

[email protected]

http://zti.polsl.pl/AMomot/pi

dr inż. Alina MOMOT Synchronizacja procesów

Page 2: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Plan wykładu

1 InformatykaWprowadzenieCzym zajmuje się informatyka

2 Bazy danychWprowadzeniePodstawowe problemy baz danychStruktury danych

3 Przeszukiwanie tablicOdszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

dr inż. Alina MOMOT Synchronizacja procesów

Page 3: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzenieCzym zajmuje się informatyka

Informatyka - pochodzenie słowa

Informatyka pochodzi od francuskiego słowa informatique:information (informacja) i automatique (automatyczny).

Pierwsze użycie słowa zarejestrowano w 1962 roku.

Pierwsza definicja (Akademia Francuska, 6 kwietnia 1967r.)

Informatyka

Nauka o racjonalnym przetwarzaniu, szczególnie przez maszynę,automatyczną, informacji traktowanej jako nośnik wiadomości i podstawakomunikowania się w dziedzinach technicznych, ekonomicznych ispołecznych.

dr inż. Alina MOMOT Synchronizacja procesów

Page 4: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzenieCzym zajmuje się informatyka

Informatyka w Polsce

“(...) uświadomienie sobie istnienia odrębnej nauki obejmującej maszynymatematyczne, maszynową technikę obliczeniową i przetwarzanieinformacji, określenie jej obszaru i powiązań z innymi naukami, a takżepotrzeba krótkiej i jasnej nazwy – jest dzisiaj w Polsce nakazemspołecznym. Wydaje mi się, że najodpowiedniejszą nazwą dla tejdziedziny w języku polskim jest INFORMATYKA (...)”

Romuald MarczyńskiSympozjum ’Naukowe Problemy Maszyn Matematycznych’Zakopane, 20-26.10.1968 r.

dr inż. Alina MOMOT Synchronizacja procesów

Page 5: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzenieCzym zajmuje się informatyka

Informatyka na świecie

Francja – informatique

Niemcy – Informatik

Polska – informatyka

Ale...

rosyjskie słowo informatika, oznacza informację naukowo-techniczną,

amerykańskie słowo informatics jest rozumiane jako informationscience, czyli ’gromadzenie, klasyfikację, przechowywanie irozpowszechnianie zapisanej wiedzy’,

Odpowiednikiem słowa informatyka jest angielskie computer science.

dr inż. Alina MOMOT Synchronizacja procesów

Page 6: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzenieCzym zajmuje się informatyka

Komputer - źródłosłów

Słowo komputer

pochodzi od łacińskiego computare (liczyć),

w XVII wieku poprzez francuskie compter zostało przejęte przezjęzyk angielski.

Odpowiedniki w języku polskim:

pomoc obliczeniowa,

aparat matematyczny,

mózg elektronowy,

maszyna matematyczna,

elektroniczna maszyna obliczeniowa,

elektroniczna maszyna cyfrowa,

maszyna cyfrowa.

dr inż. Alina MOMOT Synchronizacja procesów

Page 7: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzenieCzym zajmuje się informatyka

Pojęcie informatyki współcześnie

Informatykę można rozpatrywać jako:

samodzielną dyscyplinę naukową,

narzędzie wykorzystywane przez inne nauki,

gałąź techniki,

przemysł wytwarzający sprzęt i oprogramowanie.

dr inż. Alina MOMOT Synchronizacja procesów

Page 8: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzenieCzym zajmuje się informatyka

Informatyka - definicja

Informatyka traktowana jako ’nauka o komputerach’, to jak chirurgianazwana ’nauką o nożu’.

[Dawid Harel]

Informatyka to systematyczne badanie procesów algorytmicznych,które opisują i przetwarzają informację: ich teoria, analiza, projektowanie,efektywność, implementacja i zastosowanie.Fundamentalne pytanie brzmi: co można (efektywnie) zautomatyzować?

[prof. Jan Węglarz]

dr inż. Alina MOMOT Synchronizacja procesów

Page 9: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzenieCzym zajmuje się informatyka

Czym zajmuje się informatyka

Informatyka zajmuje się zagadnieniami związanymi z

pobieraniem,

przechowywaniem,

przetwarzaniem,

przesyłaniem informacji.

[prof. Stefan Węgrzyn]

Informacja :

wszystko to co zmniejsza naszą niepewność,

uporządkowane dane, zinterpretowane na podstawie posiadanejwiedzy.

[prof. Władysław M. Turski]

dr inż. Alina MOMOT Synchronizacja procesów

Page 10: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Plan wykładu

1 InformatykaWprowadzenieCzym zajmuje się informatyka

2 Bazy danychWprowadzeniePodstawowe problemy baz danychStruktury danych

3 Przeszukiwanie tablicOdszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

dr inż. Alina MOMOT Synchronizacja procesów

Page 11: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Bazy danych

Najwcześniejsze znane użycie terminu baza danych miało miejsce wlistopadzie 1963.

Baza danych - uporządkowany zbiór danych przechowywany wpamięci komputera.

Przetwarzanie danych realizowane jest za pomocą programuzarządzającego (system zarządzania bazą danych).

Dane reprezentowane są przez rekordy danych stanowiąceuporządkowany zbiór elementów dowolnego typu umieszczony wtzw. polach, które zawierają klucz rekordu oraz jego atrybuty.

dr inż. Alina MOMOT Synchronizacja procesów

Page 12: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Modele baz danych

Pierwsze systemy zarządzania bazami danych opracowano w latach60-tych XXw.

Charles Bachman szukał bardziej efektywnego użycia nowychurządzeń umożliwiających bezpośredni dostęp do składowanychdanych.Powstały wtedy pierwsze modele baz danych:hierarchiczne– jednej danej przyporządkowanych jest m innych danych bazy,sieciowe– n danym przyporządkowanych jest m innych danych bazy,relacyjne (F.Codd, lata 70-te)– zależności między danymi opisywane są poprzez odpowiednie klucze,obiektowe (lata 90-te).

dr inż. Alina MOMOT Synchronizacja procesów

Page 13: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Podstawowe problemy baz danych

1 Problem rozmieszczenia polega na podaniu takiego algorytmu A,który na podstawie klucza Ki zawartego w rekordzie Ri przydzielimiejsce (adres) dla tegoż rekordu w określonej strukturze S.

2 Problem odszukania rekordu Ri w strukturze S polega na ustaleniuadresu tego rekordu, na podstawie klucza Ki i algorytmu A.

3 Problem wyszukania występuje, gdy na podstawie atrybutówinnych niż klucz należy wyszukać odpowiedni rekord1.

1rozwiązanie tego problemu polega na przetestowaniu pól wszystkich rekordów iporównaniu ich zawartości z wartością zadanego atrybutu

dr inż. Alina MOMOT Synchronizacja procesów

Page 14: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Struktury danych

Podstawowe struktury danych to:

struktury stałeich rozmiar jest niezależny od zebranych w nich elementów, ustalonyz góry i niezmienny w czasie wykonywania operacji na strukturze,m.in. tablice

struktury dynamicznie zmienneich rozmiar zależy od liczby zgromadzonych w nich elementów, m.in.listy, drzewa, sieci.Rekordy w takich strukturach mają jedno lub kilka dodatkowych pól,zwanych polami łącznikowymi lub wskaźnikowymi, zwyklezawierające adresy elementów połączonych z danym rekordem.

dr inż. Alina MOMOT Synchronizacja procesów

Page 15: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Tablice

Jest strukturą jednorodną.

Składa się ze składowych tego samego typu zwanego podstawowym.

Jest strukturą o dostępie swobodnym (wszystkie elementy mogą byćwybrane w dowolnej kolejności i są jednakowo dostępne).

Tablica jednowymiarowa o rozmiarze n oznaczana jest T[n].

Pesel Nazwisko Imię Adres

34567890123 Kowalska Anna Gliwice45678901234 Nowak Tomasz Katowice56789012345 Testowy Jan Bytom67890123456 Kowalska Anna Gliwice

Tablicę dwuwymiarową T[m,n] przedstawiamy jako m szeregowoustawionych tablic o rozmiarze n.

dr inż. Alina MOMOT Synchronizacja procesów

Page 16: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Listy

Lista liniowa – zbiór, w którym każdy element ma co najwyżejjednego poprzednika lub następnika.

Szczególnymi przypadkami listy liniowej są:

lista cykliczna– nie można tu wyróżnić początkowego ani końcowego elementu,stos– dopisywanie i usuwanie elementów odbywa się z jednego końca,kolejka– rekordy są dopisywane z jednego końca a usuwane z drugiego(tzn. usunięty może być tylko najwcześniej wpisany element).

Lista dwukierunkowa – istnieje tu dodatkowe w stosunku do listyliniowej połączenie ’następnik-poprzednik’.

dr inż. Alina MOMOT Synchronizacja procesów

Page 17: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Drzewa, sieci

Drzewo – struktura, w której element może posiadać wiele następników,lecz tylko jednego poprzednika.

Drzewo binarne – liczba następników wynosi zero, jeden lub dwa.

Drzewo BST (ang. Binary Search Tree) – drzewo binarne, wktórym lewe poddrzewo każdego węzła zawiera wyłącznie elementy okluczach mniejszych niż klucz węzła a prawe poddrzewo zawierawyłącznie elementy o kluczach większych.

Drzewo AVL (Adelsona-Velskiego oraz Landisa) – zrównoważonebinarne drzewo poszukiwań (BST), w którym wysokość lewego iprawego poddrzewa każdego węzła różni się co najwyżej o jeden.

Sieć – struktura, w której istnieją elementy o wielu poprzednikach i wielunastępnikach.

dr inż. Alina MOMOT Synchronizacja procesów

Page 18: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

WprowadzeniePodstawowe problemy baz danychStruktury danych

Przykłady drzew binarnych

dr inż. Alina MOMOT Synchronizacja procesów

Page 19: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Plan wykładu

1 InformatykaWprowadzenieCzym zajmuje się informatyka

2 Bazy danychWprowadzeniePodstawowe problemy baz danychStruktury danych

3 Przeszukiwanie tablicOdszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

dr inż. Alina MOMOT Synchronizacja procesów

Page 20: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Odszukanie rekordu danego kluczem

dr inż. Alina MOMOT Synchronizacja procesów

Page 21: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Odszukanie rekordu danego kluczem

Sposób odszukania zależy od struktury.

Najprostszy przypadek gdy klucz jednocześnie adresem rekordu(indeksem) – metoda adresowania bezpośredniego.

Niskie zapełnienie obszaru pamięci przeznaczonego na zbiór.Problemy podczas przemieszczania zbioru w pamięci i jegorozszerzania.

dr inż. Alina MOMOT Synchronizacja procesów

Page 22: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Odszukanie rekordu w tablicy

Założenia:

N-elementowy zbiór rekordów umieszczony w N-elementowej tablicy.

Przy braku dodatkowej wiedzy tablicę przeszukuje się sekwencyjnie.

wyszukiwanie liniowe

function Szukaj(x, T[1..N])beginfor i:=1 to N doif T[i]=x return i;

return ’brak poszukiwanego elementu’;end

W pesymistycznym przypadku lub gdy tablica nie zawiera poszukiwanegoelementu koszt czasowy wynosi N.

dr inż. Alina MOMOT Synchronizacja procesów

Page 23: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Średni czas odszukania

Średni czas odszukania opisuje wzór:

L =N∑i=1

cipi ,

gdzie:

ci – liczba prób wykonanych w celu odnalezienia i-tego rekordu,

pi – prawdopodobieństwo odwołania do i-tego rekordu,

N – wielkość (pojemność) tablicy.

dr inż. Alina MOMOT Synchronizacja procesów

Page 24: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Średni czas odszukania - wyszukiwanie liniowe

Założenia:

prawdopodobieństwo odwołania do każdego z rekordów jestjednakowe.

L =N∑i=1

cipi =N∑i=1

i

N=

N + 12

= O(N)

dr inż. Alina MOMOT Synchronizacja procesów

Page 25: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Odszukanie rekordu w tablicy

Wiedząc, że N-elementowa tablica jest uporządkowana rosnąco możnazastosować przeszukiwanie dychotomiczne.

wyszukiwanie binarne

function Szukaj(x, T[1..n])beginl:=1;r:=n;while (l<=r) do beginm:=(l+r) div 2;if (T[m]<x) then l:=m+1else if (T[m]>x) then r:=m-1else return m; { ponieważ T[m]=x }end;return ’brak poszukiwanego elementu’;end;

dr inż. Alina MOMOT Synchronizacja procesów

Page 26: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Przeszukiwanie dychotomiczne - przykład

Szukany klucz: 9

(left) l = 1(right) r = 10

(middle) m = (1 + 10) div 2 = 5

1 2 3 4 5 6 7 8 9 10

dr inż. Alina MOMOT Synchronizacja procesów

Page 27: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Przeszukiwanie dychotomiczne - przykład

Szukany klucz: 9

(left) l = 6(right) r = 10

(middle) m = (6 + 10) div 2 = 8

1 2 3 4 5 6 7 8 9 10

dr inż. Alina MOMOT Synchronizacja procesów

Page 28: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Przeszukiwanie dychotomiczne - przykład

Szukany klucz: 9

(left) l = 9(right) r = 10

(middle) m = (9 + 10) div 2 = 9

1 2 3 4 5 6 7 8 9 10

dr inż. Alina MOMOT Synchronizacja procesów

Page 29: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Przeszukiwanie dychotomiczne - przykład c.d.

Szukany klucz: 5liczba prób: 1

1 2 3 4 5 6 7 8 9 10

5 krok 1

2 8 krok 2

1 3 6 9 krok 3

4 7 10 krok 4

Powstało drzewo binarne idealnie zrównoważone.

dr inż. Alina MOMOT Synchronizacja procesów

Page 30: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Przeszukiwanie dychotomiczne - przykład c.d.

Szukany klucz: 8liczba prób: 2

1 2 3 4 5 6 7 8 9 10

5 krok 1

2 8 krok 2

1 3 6 9 krok 3

4 7 10 krok 4

Powstało drzewo binarne idealnie zrównoważone.

dr inż. Alina MOMOT Synchronizacja procesów

Page 31: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Przeszukiwanie dychotomiczne - przykład c.d.

Szukany klucz: 6liczba prób: 3

1 2 3 4 5 6 7 8 9 10

5 krok 1

2 8 krok 2

1 3 6 9 krok 3

4 7 10 krok 4

Powstało drzewo binarne idealnie zrównoważone.

dr inż. Alina MOMOT Synchronizacja procesów

Page 32: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Przeszukiwanie dychotomiczne - przykład c.d.

Szukany klucz: 7liczba prób: 4

1 2 3 4 5 6 7 8 9 10

5 krok 1

2 8 krok 2

1 3 6 9 krok 3

4 7 10 krok 4

Powstało drzewo binarne idealnie zrównoważone.

dr inż. Alina MOMOT Synchronizacja procesów

Page 33: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Przeszukiwanie dychotomiczne - przykład c.d.

Szukany klucz:liczba prób:

1 2 3 4 5 6 7 8 9 10

5 krok 1

2 8 krok 2

1 3 6 9 krok 3

4 7 10 krok 4

Powstało drzewo binarne idealnie zrównoważone.

dr inż. Alina MOMOT Synchronizacja procesów

Page 34: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Średni czas odszukania - wyszukiwanie binarne

Odszukanie rekordu w przypadku:

optymistycznym wymaga 1 próby,

pesymistycznym wymaga dlog2(N + 1)e prób.

Średni czas odszukania rekordu:

L =N∑i=1

cipi = O(log2(N)).

dr inż. Alina MOMOT Synchronizacja procesów

Page 35: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Średni czas odszukania - drzewo BST

Wyszukiwanie w drzewie binarnym w przypadku:

optymistycznym wymaga 1 próby,

pesymistycznym wymaga N próbdrzewo degeneruje się do listy, np. dla posortowanych danych.

Średnio liczba prób wynosi:

L = 2(log2(N) + γ)− 3,

gdzie γ ≈ 0.577 jest stałą Eulera.

Drzewo wyważone skraca nam drogę poszukiwań średnio o 39%.

dr inż. Alina MOMOT Synchronizacja procesów

Page 36: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Funkcja mieszająca (haszująca)

Funkcja mieszająca dla danego klucza wyznacza indeks w tablicy(przekształca klucz w liczbę z zadanego zakresu).

Zbiór możliwych wartości kluczy jest najczęściej znacznie większy odzbioru adresów (indeksów tablicy)!

dr inż. Alina MOMOT Synchronizacja procesów

Page 37: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Funkcja mieszająca - przykłady

1 Przekształcenie klucza do postaci liczby binarnej, np. dla kluczaliterowego można skorzystać z kodu ASCII.

2 W przypadku klucza binarnego:

wyznaczenie reszty z dzielenia wartości liczbowej klucza przez liczbęelementów tablicy N,odrzucenie najmniej znaczących bitów (lub skrajnych bitów),podzielenie klucza binarnego na kilka części i dodanie ich do siebie,podnoszenie wartości klucza do kwadratu, a następnie pobieranie dowyniku tylko wybranych bitów.

dr inż. Alina MOMOT Synchronizacja procesów

Page 38: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Odszukanie rekordu z użyciem funkcji mieszającej

1 Mając zadany klucz K należy obliczyć związany z nim adres (indeks).2 Sprawdzić, czy obiekt o kluczu K jest rzeczywiście pod adresem

wyznaczonym przez funkcję h(K).

Kolizja występuje gdy pod danym adresem jest inny klucz niż żądany.Wyznacza się wtedy adres alternatywny za pomocą odpowiedniegoalgorytmu rozwiązywania kolizji.

dr inż. Alina MOMOT Synchronizacja procesów

Page 39: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Rozwiązywanie problemu kolizji - metoda łańcuchowa

Dane nie są przechowywane bezpośrednio w tablicy, lecz na liściezwiązanej z danym indeksem tablicy.

Nowy element dołącza się do końca listy.

Średnia złożoność wyszukiwania jest złożonością liniowegowyszukiwania elementu na liście i zależy od współczynnikawypełnienia listy1.

Ponieważ złożoność pesymistyczna wyszukiwania wynosi O(N),czasami zamiast list stosuje się drzewa.

Zaletą metody łańcuchowej jest szybkość i prostota usuwaniaelementów z listy.

1stosunek liczby elementów do wielkości tablicydr inż. Alina MOMOT Synchronizacja procesów

Page 40: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Rozwiązywanie problemu kolizji - adresowanie otwarte

Lokalizacja elementu określana jest przez dodanie do wartości funkcjimieszającej h(K ) wartości funkcji przyrostu p(i).

i oznacza numer próby (ile razy wstawienie się nie powiodło zewzględu na kolizję),Ze względu na rodzaj funkcji przyrostu wyróżnia się różne metodyadresowania otwartego, np.:szukanie liniowe, dla p(i) = i ,szukanie kwadratowe, dla p(i) = i2;mieszanie podwójne, dla p(i) = i ∗ h′(K ),gdzie h′ jest dodatkową funkcją mieszającą od klucza K .

Wadą tej metody jest problem usuwania elementu, w sytuacji gdy wtablicy znajdują się inne, o tej samej wartości funkcji mieszającej.

dr inż. Alina MOMOT Synchronizacja procesów

Page 41: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Analiza efektywności funkcji mieszającej - założenia

Wystąpienie każdego z kluczy jednakowo prawdopodobne.

Tablica o rozmiarze N zawiera już n rekordów.

Funkcja mieszająca przydziela wszystkie miejsca w tablicy zjednakowym prawdopodobieństwem, czyli 1/N.

Algorytm rozwiązywania kolizji wybiera nie przeszukane miejsca wtablicy z równym prawdopodobieństwem.

dr inż. Alina MOMOT Synchronizacja procesów

Page 42: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Analiza efektywności funkcji mieszającej

Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1rekord w tablicy N-elementowej:

Dla n = 0 otrzymujemy E1 = 1, bo tablica była jeszcze pusta.Dla n = 1, E2 = 1Pt(1) + 2Pn(1)Pt(2) = N−1

N + 2 1NN−1N−1 =

N+1N .

Dla n = 2, E3 = 1Pt(1) + 2Pn(1)Pt(2) + 3Pn(1)Pn(2)Pt(3) = N+1N−1

Dla n = 3, E4 = 1Pt(1) + . . .+ 4Pn(1)Pn(2)Pn(3)Pt(4) = N+1N−2

Ogólnie

En+1 =N+ 1N− n+ 1

Pt(j) – prawdopodobieństwo, że udało się wstawić rekord w j-tym krokupod warunkiem, że w żadnym poprzednim się nie udało,Pn(j) – prawdopodobieństwo, że w j-tym kroku się nie udało wstawićrekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

dr inż. Alina MOMOT Synchronizacja procesów

Page 43: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Analiza efektywności funkcji mieszającej

Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1rekord w tablicy N-elementowej:

Dla n = 0 otrzymujemy E1 = 1, bo tablica była jeszcze pusta.Dla n = 1, E2 = 1Pt(1) + 2Pn(1)Pt(2) = N−1

N + 2 1NN−1N−1 =

N+1N .

Dla n = 2, E3 = 1Pt(1) + 2Pn(1)Pt(2) + 3Pn(1)Pn(2)Pt(3) = N+1N−1

Dla n = 3, E4 = 1Pt(1) + . . .+ 4Pn(1)Pn(2)Pn(3)Pt(4) = N+1N−2

Ogólnie

En+1 =N+ 1N− n+ 1

Pt(j) – prawdopodobieństwo, że udało się wstawić rekord w j-tym krokupod warunkiem, że w żadnym poprzednim się nie udało,Pn(j) – prawdopodobieństwo, że w j-tym kroku się nie udało wstawićrekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

dr inż. Alina MOMOT Synchronizacja procesów

Page 44: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Analiza efektywności funkcji mieszającej

Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1rekord w tablicy N-elementowej:

Dla n = 0 otrzymujemy E1 = 1, bo tablica była jeszcze pusta.Dla n = 1, E2 = 1Pt(1) + 2Pn(1)Pt(2) = N−1

N + 2 1NN−1N−1 =

N+1N .

Dla n = 2, E3 = 1Pt(1) + 2Pn(1)Pt(2) + 3Pn(1)Pn(2)Pt(3) = N+1N−1

Dla n = 3, E4 = 1Pt(1) + . . .+ 4Pn(1)Pn(2)Pn(3)Pt(4) = N+1N−2

Ogólnie

En+1 =N+ 1N− n+ 1

Pt(j) – prawdopodobieństwo, że udało się wstawić rekord w j-tym krokupod warunkiem, że w żadnym poprzednim się nie udało,Pn(j) – prawdopodobieństwo, że w j-tym kroku się nie udało wstawićrekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

dr inż. Alina MOMOT Synchronizacja procesów

Page 45: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Analiza efektywności funkcji mieszającej

Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1rekord w tablicy N-elementowej:

Dla n = 0 otrzymujemy E1 = 1, bo tablica była jeszcze pusta.Dla n = 1, E2 = 1Pt(1) + 2Pn(1)Pt(2) = N−1

N + 2 1NN−1N−1 =

N+1N .

Dla n = 2, E3 = 1Pt(1) + 2Pn(1)Pt(2) + 3Pn(1)Pn(2)Pt(3) = N+1N−1

Dla n = 3, E4 = 1Pt(1) + . . .+ 4Pn(1)Pn(2)Pn(3)Pt(4) = N+1N−2

Ogólnie

En+1 =N+ 1N− n+ 1

Pt(j) – prawdopodobieństwo, że udało się wstawić rekord w j-tym krokupod warunkiem, że w żadnym poprzednim się nie udało,Pn(j) – prawdopodobieństwo, że w j-tym kroku się nie udało wstawićrekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

dr inż. Alina MOMOT Synchronizacja procesów

Page 46: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Analiza efektywności funkcji mieszającej

Spodziewana średnia liczba prób jaką należy wykonać aby umieścić n+1rekord w tablicy N-elementowej:

Dla n = 0 otrzymujemy E1 = 1, bo tablica była jeszcze pusta.Dla n = 1, E2 = 1Pt(1) + 2Pn(1)Pt(2) = N−1

N + 2 1NN−1N−1 =

N+1N .

Dla n = 2, E3 = 1Pt(1) + 2Pn(1)Pt(2) + 3Pn(1)Pn(2)Pt(3) = N+1N−1

Dla n = 3, E4 = 1Pt(1) + . . .+ 4Pn(1)Pn(2)Pn(3)Pt(4) = N+1N−2

Ogólnie

En+1 =N+ 1N− n+ 1

Pt(j) – prawdopodobieństwo, że udało się wstawić rekord w j-tym krokupod warunkiem, że w żadnym poprzednim się nie udało,Pn(j) – prawdopodobieństwo, że w j-tym kroku się nie udało wstawićrekordu pod warunkiem, że w żadnym poprzednim kroku się nie udało.

dr inż. Alina MOMOT Synchronizacja procesów

Page 47: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Wykres En+1 dla 100-elementowej tablicy

dr inż. Alina MOMOT Synchronizacja procesów

Page 48: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Analiza efektywności funkcji mieszającej

Ponieważ liczba prób przy rozmieszczaniu jest taka sama jak przyodszukiwaniu, to średnia liczba prób potrzebnych do znalezienialosowego klucza w tablicy wypełnionej M elementami:

L =1M

M∑n=1

En+1 = −1αlog2(1− α),

gdzie

α =M

N + 1

jest ilorazem liczby zajętych i dostępnych adresów – współczynnikiemwypełnienia. Gdy tablica jest pusta, to α = 0, gdy pełna α = N

N+1 .

dr inż. Alina MOMOT Synchronizacja procesów

Page 49: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Analiza efektywności funkcji mieszającej - wnioski

Ze względu na efektywność zaleca się aby pojemność tablicy mieszającabyła 10% - 20% większa od przewidywanej liczby danych.

dr inż. Alina MOMOT Synchronizacja procesów

Page 50: Podstawy Informatyki Metody dostepu do danychzti.polsl.pl/w3/AMomot/pi/wyk/18.Metody_dos.pdf · Modele baz danych Pierwsze systemy zarządzania bazami danych opracowano w latach 60-tych

Plan wykładuInformatykaBazy danych

Przeszukiwanie tablic

Odszukanie rekorduPrzeszukiwanie sekwencyjnePrzeszukiwanie dychotomicznePrzeszukiwanie z użyciem funkcji mieszającej

Wady zastosowania funkcji mieszającej

Teoretycznie wyszukiwanie elementu ma złożoność czasową O(1),ale w przypadku pesymistycznym wynosi O(N).

Obliczanie wartości dobrej funkcji mieszającej może być bardzokosztowne.

Zastosowanie tablicy mieszającej dla zbyt małej liczby elementówmoże być wolniejsze niż zastosowanie zwykłej tablicy przeszukiwanejsekwencyjnie1.

1ze względu na wykorzystanie pamięci podręcznej, która przyspiesza odwołania dokomórek pamięci operacyjnej gdy są one zgrupowane blisko siebie

dr inż. Alina MOMOT Synchronizacja procesów