Documente Academic
Documente Profesional
Documente Cultură
()*+
/.-, ()*+
/.-, /.-,
()*+ /.-,
()*+
?? ??
? ?
String a b b a
vi 2 1 2 1
ceil(ci) ab b b root
()*+?TT
/.-,
ooooo ??TTTTTTT c$
aboo ?? TTTT
ooo
()*+? Z [
/.-, ()*+
/.-, ()*+
/.-,
?? TTTT
o oo b ? TTTT
o
w 2 ? *
? ] _ a c d ?
abc$ ???c$ abc$ ???c$
()*+
/.-, ()*+
/.-, ()*+
/.-, ()*+
/.-,
?? ??
?
?
Solution
()*+
/.-, ()*+
/.-, ()*+
/.-, ()*+
/.-,
??? ???
s,s0 ∈A∗
m
δs,s 0 is non-zero only
if |s| = |s0|
No. of mismatches between s and s0 is less than m
Special Case
The (k, m)-mismatch kernel is obtained if we set ws,s0 =
1 for all |s| = |s0| = k and 0 otherwise
S.V.N. “Vishy” Vishwanathan: String and Tree Kernels, Page 30
Algorithm - I
Key Idea
Given two strings x and x0
Align x0 with all possible positions on x
For each alignment locate the mismatch locations
This is known as convolution of strings
Use a suffix tree to jump over matching pieces
Example
GATTACATA x
TAGATACAGTAC x0
111000011 Mismatches between x and x0
123333345 Mismatch count
0123321012 Mismatch count in windows of size 4