Zpracování informací a znalostí Datové struktury a algoritmy pro vyhledávání informací Doc.

Download Report

Transcript 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