Я пытаюсь реализовать алгоритм TEIRESIAS, как описано Rigoutsos и Floratos в 1997 году. Первым шагом этого алгоритма является нахождение значимых паттернов, соответствующих нескольким условиям.Я думаю, что это должно быть возможно с помощью регулярных выражений, однако я не нашел функцию, которая бы соответствовала моим потребностям, и поэтому мне нужна помощь.
Алгоритм использует 3 входных параметра: L, W и K. W обозначаетдлина найденных шаблонов, L обозначает количество мест в этой длине, которые должны быть действительными символами.K обозначает минимальное количество раз, когда шаблон должен появляться.Что, вероятно, звучит расплывчато, но может стать более ясным на примере.
Пример:
L = 3, W = 4, K = 3
S = {s 1 = "SDFBASTS", с 2 = "LFCASTS", с 3 = "FDASTSNP"}
Этот ввод должен привести к 5 шаблонам, которыеудовлетворяют условиям L, W и K:
'F.AS', 'AST', 'AS.S', 'STS', 'A.TS'
два из нихшаблоны имеют длину только 3, но их можно сделать длиной 4, добавив символ «Не заботиться» спереди или в конце.
Итак, я хочу, чтобы следующий ввод:
L <- 3
W <- 4
K <- 3
s1 <- "SDFBASTS"
s2 <- "LFCASTS"
s3 <- "FDASTSNP"
S <- c(s1, s2, s3)
приводил к набору шаблонов P:
> print(P)
[1] "F.AS" "AST" "AS.S" "STS" "A.TS"