Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CLIL jako výuková strategie na vysoké škole

Podobné dokumenty
Základy algoritmizace. Pattern matching

Vyhledávání řetězců. a b a c a a b. a b a c a b. a b a c a b

Vyhledávání v textu. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava

Hledání v textu algoritmem Boyer Moore

Suffixové stromy. Osnova:

ZADÁNÍ BAKALÁŘSKÉ PRÁCE

(Pattern Matching) a b a c a a b. a b a c a b. a b a c a b

Standardní algoritmy vyhledávací.

součet cvičení celkem. známka. Úloha č.: max. bodů: skut. bodů:

Algoritmizace Dynamické programování. Jiří Vyskočil, Marko Genyg-Berezovskyj 2010

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 12.

1. Pojmy a definice. 2. Naivní algoritmus. 3. Boyer Moore

Bakalářská práce Algoritmy vyhledávání v řetězcích pro DNA aplikace

Vyhledávání. doc. Mgr. Jiří Dvorský, Ph.D. Katedra informatiky Fakulta elektrotechniky a informatiky VŠB TU Ostrava. Prezentace ke dni 21.

Algoritmy a datové struktury

Faculty of Nuclear Sciences and Physical Engineering Czech Technical University in Prague

Třídění a vyhledávání Searching and sorting

Regulární výrazy. Vzory

Elegantní algoritmus pro konstrukci sufixových polí

LinuxDays 2017 Ondřej Guth GNU grep LD 17 1 / 14

Katedra počítačů FEL

závislý na délce řetězce. Budeme-li ji značit dále n, tak časová složitost bude O(n).

Textové, datumové a časové funkce

Microsoft Office. Excel vyhledávací funkce

vyhledávací stromové struktury

Algoritmy II. Otázky k průběžnému testu znalostí

Algoritmus pro hledání nejkratší cesty orientovaným grafem

MATEMATICKÁ OLYMPIÁDA NA STŘEDNÍCH ŠKOLÁCH

Předmět: Algoritmizace praktické aplikace

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Maturitní téma: Programovací jazyk JAVA

Úvod do programování 6. hodina

Programovanie v jazyku C - struktury a polia

Pravidlové znalostní systémy

63. ročník Matematické olympiády 2013/2014

Komprese dat (Komprimace dat)

Obsah přednášky. Analýza algoritmu Algoritmická složitost Návrhy algoritmů Urychlování algoritmů 1/41

NPRG030 Programování I, 2018/19 1 / :03:07

IAJCE Přednáška č. 9. int[] pole = new int[pocet] int max = pole[0]; int id; for(int i =1; i< pole.length; i++) { // nikoli 0 if (Pole[i] > max) {

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

65. ročník Matematické olympiády 2015/2016

STROMOVE ALGORITMY Prohledavani do sirky (level-order) Po vodorovnejch carach fronta

Grafové algoritmy. Programovací techniky

Grafové algoritmy. Programovací techniky

10. Složitost a výkon

: Teoretická informatika(ti)

Stromy. Jan Hnilica Počítačové modelování 14

Vyhledávací stromy. Slouží jako pomůcka pro organizaci dat umožňující efektivní vyhledávání.

Algoritmy komprese dat

Základy algoritmizace a programování

Intervalové stromy. Představme si, že máme posloupnost celých čísel p 0, p 1,... p N 1, se kterou budeme. 1. Změna jednoho čísla v posloupnosti.

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

Zadání: TÉMA: Zápis algoritmu, čtení textového souboru, porovnání řetězců.

5. Vyhledávání a řazení 1

Přednáška 7. Celočíselná aritmetika. Návratový kód. Příkazy pro větvení výpočtu. Cykly. Předčasné ukončení cyklu.

Prioritní fronta, halda

Red Black strom (Red Black Tree) Úvod do programování. Rotace. Red Black strom. Rotace. Rotace

Regulární výrazy. Definice Množina regulárních výrazů nad abecedou Σ, označovaná RE(Σ), je definována induktivně takto:

Algoritmizace prostorových úloh

PROGRAMOVACÍ JAZYKY A PŘEKLADAČE REALIZACE PŘEKLADAČE I

Databáze, sítě a techniky programování X33DSP

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

Sada 1 - Základy programování

Slepé prohledávání do šířky Algoritmus prohledávání do šířky Při tomto způsobu prohledávání máme jistotu, že vždy nalezneme koncový stav, musíme ale p

Select sort: krok 1: krok 2: krok 3: atd. celkem porovnání. výběr nejmenšího klíče z n prvků vyžaduje 1 porovnání

- znakové konstanty v apostrofech, např. a, +, (znak mezera) - proměnná zabírá 1 byte, obsahuje kód příslušného znaku

Obecná informatika. Matematicko-fyzikální fakulta Univerzity Karlovy v Praze. Podzim 2012

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Autor: Jan Hošek

1. Převeďte dané číslo do dvojkové, osmičkové a šestnáctkové soustavy: a) b)

A4B33ALG 2010/05 ALG 07. Selection sort (Select sort) Insertion sort (Insert sort) Bubble sort deprecated. Quicksort.

Digitální učební materiál

bfs, dfs, fronta, zásobník, prioritní fronta, halda


Informatika navazující magisterské studium Přijímací zkouška z informatiky 2018 varianta A

FUNKCE 3. Autor: Mgr. Dana Kaprálová. Datum (období) tvorby: září, říjen Ročník: sedmý. Vzdělávací oblast: Informatika a výpočetní technika

Implementace LL(1) překladů

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Algoritmy I, složitost

B3B33ALP - Algoritmy a programování - Zkouška z předmětu B3B33ALP. Marek Boháč bohacm11

Hanojská věž. T2: prohledávání stavového prostoru. zadání [1 1 1] řešení [3 3 3] dva možné první tahy: [1 1 2] [1 1 3]

Reprezentace aritmetického výrazu - binární strom reprezentující aritmetický výraz

Zadání druhého zápočtového projektu Základy algoritmizace, 2005

Tabulkový procesor. Základní rysy

IB111 Úvod do programování skrze Python

Hašování (Vyhledávání metodou transformace klíče)

bfs, dfs, fronta, zásobník, prioritní fronta, halda

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

AUTOMATY A GRAMATIKY. Pavel Surynek. Kontextové uzávěrové vlastnosti Turingův stroj Rekurzivně spočetné jazyky Kódování, enumerace

TOKY V SÍTÍCH II. Doc. RNDr. Josef Kolář, CSc. Katedra teoretické informatiky, FIT České vysoké učení technické v Praze

Paralelní grafové algoritmy

8. lekce Úvod do jazyka C 3. část Základní příkazy jazyka C Miroslav Jílek

Komprese dat. Jan Outrata KATEDRA INFORMATIKY UNIVERZITA PALACKÉHO V OLOMOUCI. přednášky

1 PRVOCISLA: KRATKY UKAZKOVY PRIKLAD NA DEMONSTRACI BALIKU WEB 1

Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49

"Agent Hledač" (3. přednáška)

Geometrické vyhledání.

Dynamické datové struktury III.

Bakalářská práce Výukový program pro předmět KIV/PT Programovací techniky

65. ročník Matematické olympiády 2015/2016

Transkript:

Pattern matching Metodický koncept k efektivní podpoře klíčových odborných kompetencí s využitím cizího jazyka ATCZ62 - CI jako výuková strategie na vysoké škole

Pattern matching porovnávání vzorů Hledání jistého vzoru v dané sekvenci (hledání podřetězce v řetězci) Řetězce (strings) Sekvence znaků Abeceda množina všech možných znaků ASCII Unicode {0, 1}, {A, C, G, T} P je řetězec délky m Podřetězec P[i..j] řetězce P, skládající se ze znaků mezi i a j Předpona (prefix) Přípona (suffix)

Pattern matching porovnávání vzorů Řetězec T (text) a P (pattern) Pattern matching porovnávání vzorů podřetězce T, který je roven (je stejný) jako P Aplikace Textové editory Vyhledávací nástroje Biologický výzkum

Brute-Force (Hrubá síla) algoritmus Prochází text zleva doprava Porovnává vzor P s textem T, pro všechny možné pozice dokud Není nalezena shoda Nebyly vyzkoušeny všechny možné pozice Časová náročnost: O(nm) Algorithm BruteForceMatch(T, P) Input text T délky n a vzor P délky m Output počáteční index podřetězce, nebo 1, pokud daný podřetězec neexistuje for i 0 to n m { test shift i of the pattern } j 0 while j m T[i j] P[j] j j 1 if j m return i { match at i } else return 1 { no match }

Boyer-Moorův algoritmus Prohledáváme zprava doleva Index i ukazuje do textu T, index j ukazuje do P 4 případy při prohledávání T(i) není v P vůbec, posuneme i dále o délku P (zarovnáme P na další písmeno v T, tedy T(i+1)) T(i) odpovídá P(j) - posuneme se v obou do leva a opakujeme (jako v brutální síle) T(i) není P(j), ale T(i) je v P před indexem j -> zarovnáme P doprava tak, aby T(i) odpovídal jeho výskytu v P a opakujeme T(i) není P(j), ale T(i) je v P za indexem j -> posuneme se doprava o 1 a opakujeme (nemůžeme se vracet, ale ani posunout o více dále)

Boyer-Moorův algoritmus Vrátíme i - pokud nalezneme celý pattern Algoritmus je pro texty rychlejší, než brute force Přesto jeho složitost může být O(mn + A), kde A je velikost abecedy Rychlý pro velké abecedy Preprocesing zjistí, na které pozici má které písmena (směrem zleva) Je-li patern např.: ABRAKADABRA A dostane index 10, B dostane index 8, K = 4, D = 6 a R = 9. Pro ostatní písmena přiřadíme -1. Naimplementujeme tedy funkci ast(char input), která podle písmene vrátí tento index, a pak pro případy 3 a 4 porovnáváme ast(t(i)) a j, a tím pak víme, jestli i posunout na ast(t(i)) (pokud je ast(t(i)) < j) nebo pouze i++

Knuth-Morris-Pratt (KMP) algoritmus Prohledává text zleva doprava Nedělá všechna porovnání Pokud narazíme na neshodu, posune se o více než o jedno písmeno. O maximální prefix P( 0.. j-1 ), který je suffixem P( 1.. j-1 ) Suffix a prefix se nesmí překrývat. Najdeme-li kus P (od začátku, tedy prefix), znaky tohoto prefixu odpovídají textu, není třeba je kontrolovat znovu Konec nalezeného podřetězce může být také obsažen v začátku tohoto podřetězce. Takovou shodou je samozřejmě celá nalezená část P, proto hledáme od P+1. Takže jdeme od konce nalezeného kusu P zleva a zprava, a ve chvíli, kdy nenalezneme shodu, víme, o kolik se můžeme posunout. Toto lze předpočítat do tabulky pak je vše O(1)

Trie Struktura pro předzpracování textu V každém uzlu je jednopísmeno Délka cesty z uzlu k vrcholu = pořadí písmene ve slovu Vyhledávání: O(dm), kde d je velikost abecedy, m délka slova Do Trie je možné ukládat i celý text, v každém uzlu je pak jedno slovo

Trie S={BE, BEAR, BU, BUY, SE, STOCK, STOP} B S E U E T A Y O R C P K

Komprimovaný trie S={BE, BEAR, BU, BUY, SE, STOCK, STOP} Komprimovaný trie obsahuje uzly alespoň stupně dva (dvě písmena v jednom uzlu) B S E U E TO AR Y CK P