Sto cercando un algoritmo di corrispondenza delle stringhe k-mismatch veloce. Data una stringa di modello P di lunghezza m e una stringa di testo T di lunghezza n, ho bisogno di un algoritmo veloce (tempo lineare) per trovare tutte le posizioni in cui P corrisponde a una sottostringa di T con al massimo k non corrispondenti. Questo è diverso dal problema delle differenze k (modifica distanza). Una mancata corrispondenza implica la sottostringa e il modello ha una lettera diversa nella maggior parte delle posizioni k. Ho davvero bisogno solo di k = 1 (al massimo 1 discrepanza), quindi basterà anche un algoritmo veloce per il caso specifico di k = 1. La dimensione dell'alfabeto è 26 (testo in inglese senza distinzione tra maiuscole e minuscole), quindi il requisito di spazio non dovrebbe crescere troppo velocemente con la dimensione dell'alfabeto (ad esempio, l'algoritmo FAAST, credo, occupa spazio esponenziale nella dimensione dell'alfabeto, e così è adatto solo per sequenze di proteine e geni).
Un approccio basato sulla programmazione dinamica tenderà ad essere O (mn) nel peggiore dei casi, che sarà troppo lento. Credo che ci siano modifiche all'algoritmo di Boyer-Moore per questo, ma non sono in grado di mettere le mani su tali documenti. Non ho un abbonamento per accedere a riviste o pubblicazioni accademiche, quindi eventuali riferimenti dovranno essere di dominio pubblico.
Gradirei molto qualsiasi suggerimento o riferimento a documenti liberamente disponibili o l'algoritmo stesso per questo problema.