seq(1,1,d). seq(1,2,a). seq(1,3,b). seq(1,4,c).
seq(2,1,a). seq(2,2,c). seq(2,3,b). seq(2,4,c).
seq(3,1,a). seq(3,2,b). seq(3,3,c).
seq(4,1,a). seq(4,2,b). seq(4,3,c).
seq(5,1,a). seq(5,2,c).
seq(6,1,b).
seq(7,1,c).
(download the file: instance.lp)
slot(1..max).
item(E) :- seq(T,P,E).
{ pat(X,E) : item(E) } 1 :- slot(X).
pos(X) :- pat(X,E).
:- not pos(1).
:- pos(X), 2 < X, not pos(X-1).
inc(T,1,X) :- seq(T,1,E), slot(X),
not pos(X+1).
inc(T,P+1,X) :- seq(T,P,E), inc(T,P,X).
inc(T,P+1,X-1) :- seq(T,P,E), inc(T,P,X),
pat(X,E).
cover(T) :- inc(T,P,0), { seq(T,P,E) } 0.
:- not k { cover(T) }.
(download the file: mining frequent sequences.lp)
clingo 0 -c k=2 -c max=4 instance.lp frequent.lp
Answer: 1
pat(1,a)
Answer: 2
pat(1,b)
Answer: 3
pat(1,c)
Answer: 4
pat(1,c) pat(2,b)
Answer: 5
pat(1,c) pat(2,a)
Answer: 6
pat(1,b) pat(2,a)
Answer: 7
pat(1,c) pat(2,b) pat(3,a)