Para o caso de múltiplos padrões, parece que a simples varredura de cada uma delas pode ser a melhor solução possível, pelo menos a menos que a forte hipótese de tempo exponencial falhe.
Lembre-se de que, dado os conjuntos e T 1 , T 2 , … , T n sobre o universo [ m ] , se pudéssemos decidir se existem S i e T j tais que S i ∪ T j = [ m ] no tempo O ( n 2 - ε poli ( m ) )S1 1, S2, … , SnT1 1, T2, … , Tn[ m ]SEuTjSEu∪ Tj= [ m ]O ( n2 - εpoli( M ) ), então SETH falha, ou seja, temos um algoritmo CNF-SAT com tempo de execução .O∗( 2( 1 - ε / 2 ) n)
Dados os conjuntos e T 1 , T 2 , … , T n , codificamos o problema acima como correspondência de vários padrões com não se preocupa com o alfabeto binário da seguinte maneira:S1 1, S2, … , SnT1 1, T2, … , Tn
Agora é claro que um padrão pode coincidir com o texto em uma ocorrência de 1 [ T j ] 1 , e somente quando S i ∪ T j = [ m ] . O comprimento total dos padrões e o comprimento do texto são O ( n m ) , por exemplo, um algoritmo de passagem única quase linear para vários padrões daria melhorias substanciais em relação aos algoritmos CNF-SAT mais conhecidos ...1 ⟨ SEu⟩ 11 [ Tj] 1SEu∪ Tj= [ m ]O ( n m )
(Observe que isso não diz nada sobre algoritmos que usam muito tempo para pré-processar os padrões, digamos, quadráticos na duração total dos padrões.)