Zpracování informací a znalostí Datové struktury a algoritmy pro vyhledávání informací Doc.
Download ReportTranscript Zpracování informací a znalostí Datové struktury a algoritmy pro vyhledávání informací Doc.
Zpracování informací a znalostí
Datové struktury a algoritmy pro vyhledávání informací Doc. RNDr. Jan Rauch, CSc. Katedra informačního a znalostního inženýrství
Datové struktury a algoritmy pro vyhledávání informací Literatura: Rauch, J.: Metody zpracování informací II, kapitoly 13, 14 KUČERA, L.: Kombinatorické algoritmy. Praha, SNTL 1983, 280 str.
SALTON, G. - McGILL, M.: Introduction to Modern Information Retrieval. Tokyo, McGraw-Hill Book Company Japan 1983, 448 s.
2
Datové struktury a algoritmy pro vyhledávání informací Základní pojmy Sekvenční vyhledávání Binární vyhledávání Invertovaný soubor
3
Základní pojmy
záznam (bibliografický záznam) pole klíč je pole, podle jehož hodnoty vyhledáváme Novák Vyhledávání informací GRADA 2000 počítač, tezaurus, knihovna Kadlec Historie počítačů PASEKA 1999 počítač, historie, DOS Zounar Informační služby UK 2001 počítač, tezaurus, knihovna …….
4
Základní pojmy
Hodnocení algoritmů : typická operace (např. porovnání klíčů) maximální počet typických operací průměrný počet typických operací složitost aktualizace potřebných datových struktur … viz literatura …
5
Datové struktury a algoritmy pro vyhledávání informací Základní pojmy Sekvenční vyhledávání Binární vyhledávání Invertovaný soubor
6
Sekvenční vyhledávání
Situace A: neuspořádaný seznam N záznamů (Autor Název - Deskriptory obsahu), může být více záznamů s jednou hodnotou klíče (např. více záznamů s jedním autorem) Úloha: Nalézt všechny záznamy se zadanou hodnotou daného klíče (např. všechny knihy, jejichž autorem je Novák)
7
Sekvenční vyhledávání
Situace A (může být více záznamů s jednou hodnotou klíče) Příklad: N záznamů Novák ABC...
Kadlec ZDU… Adam REP..
Počet potřebných porovnání: N Aktualizace: bez problémů Zounar ZJK..
… Novák XYZ…
8
Sekvenční vyhledávání
Situace B: neuspořádaný seznam záznamů právě jeden záznam pro danou hodnotu klíče (slovník autorů) Úloha: Nalézt záznam se zadanou hodnotou klíče
9
Sekvenční vyhledávání
Situace B (právě jeden záznam pro danou hodnotu klíče) Příklad: N záznamů Novák ABC...
Kadlec ZDU… Adam REP..
Zounar ZJK..
… Po nalezení záznamu lze skončit!
Počet porovnání pro nalezení N záznamů: 1 + 2 + 3 + … + N = N*(N + 1) / 2 Průměrný počet porovnání na nalezení 1 záznamu: (N + 1) / 2 Aktualizace: bez problémů Jonáš XYZ…
10
Sekvenční vyhledávání
Situace C: neuspořádaný seznam záznamů maximálně jeden záznam pro danou hodnotu klíče („neúplný slovník autorů“) Úloha: Nalézt záznam se zadanou hodnotou klíče
11
Sekvenční vyhledávání
Situace C (maximálně jeden záznam pro danou hodnotu klíče) Příklad: 5 záznamů Novák ABC...
Kadlec ZDU… Adam REP..
Zounar ZJK..
Jonáš XYZ… K nenalezení autora Jonáše nutno 5 porovnání (obecně N) Průměrný počet porovnání na nalezení 1 záznamu: nelze určit, záleží na počtu hledání nevyskytujících se autorů Maximální počet porovnání na nalezení 1 záznamu: N (obecně) Aktualizace: bez problémů
12
Modifikované sekvenční vyhledávání
Právě jeden záznam pro danou hodnotu klíče Známe pravděpodobnosti požadavků na vyhledávání podle jednotlivých hodnot klíče
13
Modifikované sekvenční vyhledávání
autor Pravděpodobnost požadavku na vyhledání
Novák Kadlec Jonáš Kovář Zounar 0.2
0.04
0.4
0.06
0.3
Úsilí na vyhledání: 0.2 * 1 + 0.04 * 2 + 0.4 * 3 + 0.06 * 4 + 0.3 * 5 = 3.22
Po přerovnání autor Pravděpodobnost požadavku na vyhledání
Jonáš Zouna r 0.4
0.3
Nová k 0.2
Kovář Kadlec 0.06
0.04
Úsilí na vyhledání: 0.4 * 1 + 0.3 * 2 + 0.2 * 3 + 0.06 * 4 + 0.04 * 5 = 2.04
14
Datové struktury a algoritmy pro vyhledávání informací Základní pojmy Sekvenční vyhledávání Binární vyhledávání Invertovaný soubor
15
Binární vyhledávání
Příklad: Vyhledáváni osob podle rodných čísel – hledáme ženu s rodným číslem 736021/0054 I) Uspořádáme záznamy podle velikosti: (čísla nevidíme) 741212/0053 725612/7865 730930/0067 736021/0054 737214/0012
16
Binární vyhledávání
Příklad: Vyhledáváni osob podle rodných čísel – hledáme ženu s rodným číslem 736021/0054 Princip řešení: I) Uspořádání do pole (např. vzestupně) podle rodných čísel II) Půlení intervalu: Inicializace: interval := celé pole Vyhledávanou hodnotu porovnáme s prostředním záznamem intervalu: = ... nalezeno, konec < ... dále hledáme v první polovině intervalu > ... dále hledáme ve druhé poloviné intervalu Interval nelze rozpůlit: nenalezeno, konec
17
Binární vyhledávání
Maximální počet potřebných porovnání: úměrný Log 2 (N+1) Aktualizace: Složitá, třeba zachovat uspořádání, viz doplňkovou literaturu.
18
Porovnání sekvenčního a binárního vyhledávání
Předpoklady: jeden záznam pro danou hodnotu klíče, 1 operace = 1/1000 vteřiny.
počet průměrný případ pro nejhorší případ pro záznamů sekvenční vyhledávání binární vyhledávání operací čas (vteřiny) operací čas (vteřiny) 31 16 0.016 5 0.005
119 60 0.060 7 0.007
1 999 1 000 1 11 0.011
9 999 5 000 5 14 0.014
999 999 500 000 500 20 0.020
19
Datové struktury a algoritmy pro vyhledávání informací Základní pojmy Sekvenční vyhledávání Binární vyhledávání Invertovaný soubor
20
Invertovaný soubor
Invertovaný soubor: MZI II – kapitola 14 oprava: MZI II, str. 83: 2 1 , 3 1 , 2 , 3
21