Para el caso de patrones múltiples, parece que simplemente escanear cada una de ellas podría ser la mejor solución posible, al menos a menos que falle la fuerte hipótesis del tiempo exponencial.
S1, S2, ... , SnorteT1, T2, ... , Tnorte[ m ]SyoTjSyo∪ Tj= [ m ]O ( n2 - εescuela politécnica( m ) )O∗( 2( 1 - ε / 2 ) n)
S1, S2, ... , SnorteT1, T2, ... , Tnorte
1 ⟨ Syo⟩ 11 [ Tj] 1Syo∪ Tj= [ m ]O ( n m )
(Tenga en cuenta que esto no dice nada acerca de los algoritmos que usan mucho tiempo preprocesando los patrones, digamos, cuadráticos en la longitud total de los patrones).