7
Aho-Corasic algorithm April 6, 2013

Bioalgo 2013-05-aho-corasick

Embed Size (px)

Citation preview

Page 1: Bioalgo 2013-05-aho-corasick

Aho-Corasicalgorithm

April 6, 2013

Page 2: Bioalgo 2013-05-aho-corasick

The problem

Text T, |T| = m

Patterns p1, p2... pk, |p1| + |p2| + ... + |pk| = n

Find all occurrences of pi within T

2/7

Page 3: Bioalgo 2013-05-aho-corasick

Meet the trie

1. he2. she3. his4. hers

3/7

Page 4: Bioalgo 2013-05-aho-corasick

Suffix links i

For node u, suffix link points to node v such that string(v) is the maximal proper suffix of string(u)

3/7

Page 5: Bioalgo 2013-05-aho-corasick

Suffix links ii

5/7

Page 6: Bioalgo 2013-05-aho-corasick

go & link

go :: node –> char –> nodelink :: node –> node

go n c = n.child[c] or go (link n) c

link n = go (link n.p_node) n.p_char

6/7

Page 7: Bioalgo 2013-05-aho-corasick

Домашка =)Решить задачи в классеTRIE – построить и вывести борATRIE + суффиксные ссылкиEPM – задача из первого слайда

PS. Не забываем про тесты: короткие случайные паттерны из ab алфавита + длинный текст

PPS. Сдать до 20.04 или до 27.04, но со штрафом