Several steps
It's hard to see a big improvement with "-w 4", which is not very surprising if you think about it.
Let's try with "-w 7", which for technical reasons is the maximum dbacl can
handle. But before we do this, I want to briefly mention the work of
C.E. Shannon.
One of Shannon's famous experiments concerns the approximation of English. He
asked what would sentences look like if letters or words were picked randomly from
a book. Here is what he found:
(Single letters) OCRO HLI RGWR NMIELWIS EU LL NBNESEBYA TH EEI ALHENHTTPA OOBTTVA NAH BRL.
(Pairs of letters) ON IE ANTSOUTINYS ARE T INCTORE ST BE S DEAMY ACHIN D ILONASIVE TUCOOWE AT TEASONARE FUSO TIZIN ANDY TOBE SEACE CTISBE.
(Triples of letters) IN NO IST LAT WHEY CRATICT FROURE BIRS GROCID PONDENOME OF DEMONSTURES OF THE REPTAGIN IS REGOACTIONA OF CRE.
(Single words) REPRESENTING AND SPEEDILY IS AN GOOD APT OR COME CAN DIFFERENT NATURAL HERE HE THE A IN CAME THE TO OF TO EXPERT GRAY COME TO FURNISHES
THE LINE MESSAGE HAD BE THESE.
(Pairs of words) THE HEAD AND IN FRONTAL ATTACK ON AN ENGLISH WRITER THAT THE CHARACTER OF THIS POINT IS THEREFORE ANOTHER METHOD FOR THE LETTERS THAT
THE TIME OF WHO EVER TOLD THE PROBLEM FOR AN UNEXPECTED.
So can we expect this also with chess moves? Let's try it. Because of
the heavy memory requirements when "-w 7" is used (and the long time it takes),
we'll learn a smaller
game collection BlackWin.txt
(but we keep the BlackWinDraw category name so we don't have to modify dce-basic.sh).
% ./dbacl/src/dbacl -T text -l ./BlackWinDraw -e alnum -L uniform \
-j -w 7 -H 23 ./gamefiles/BlackWin.txt
Before we start playing, how can we be sure that dbacl will match patterns in the way we expect?
Let's try the debug switch like we did before on our test gameline:
% head -1 test.complete | ./dbacl/src/dbacl -nv -c ./BlackWinDraw -f 1 -d
# categories: BlackWinDraw
# format: avg_score * complexity
63.73 * 0.1 []e4[](1)
-9.44 * 0.3 []e4[]c5[](1)
15.46 * 0.4 []c5[](1)
6.91 * 0.6 []e4[]c5[]Nf3[](1)
-6.53 * 0.7 []c5[]Nf3[](1)
5.07 * 0.9 []Nf3[](1)
4.17 * 1.0 []e4[]c5[]Nf3[]e6[](1)
1.31 * 1.1 []c5[]Nf3[]e6[](1)
-9.96 * 1.3 []Nf3[]e6[](1)
-2.22 * 1.4 []e6[](1)
-0.86 * 1.6 []e4[]c5[]Nf3[]e6[]d3[](1)
-1.00 * 1.7 []c5[]Nf3[]e6[]d3[](1)
-3.88 * 1.9 []Nf3[]e6[]d3[](1)
-9.31 * 2.0 []e6[]d3[](1)
-3.80 * 2.1 []d3[](1)
-2.59 * 2.3 []e4[]c5[]Nf3[]e6[]d3[]Nc6[](1)
-1.58 * 2.4 []c5[]Nf3[]e6[]d3[]Nc6[](1)
-2.16 * 2.6 []Nf3[]e6[]d3[]Nc6[](1)
-2.99 * 2.7 []e6[]d3[]Nc6[](1)
-5.49 * 2.9 []d3[]Nc6[](1)
-2.12 * 3.0 []Nc6[](1)
0.51 * 3.1 []e4[]c5[]Nf3[]e6[]d3[]Nc6[]Bd2[](1)
2.92 * 3.3 []c5[]Nf3[]e6[]d3[]Nc6[]Bd2[](1)
5.13 * 3.4 []Nf3[]e6[]d3[]Nc6[]Bd2[](1)
7.16 * 3.6 []e6[]d3[]Nc6[]Bd2[](1)
6.37 * 3.7 []d3[]Nc6[]Bd2[](1)
3.35 * 3.9 []Nc6[]Bd2[](1)
5.84 * 4.0 []Bd2[](1)
Perfect! Clearly dbacl is picking up sequences up to seven long. Now
let's make a proper check:
% xboard -fcp ./dce-basic.sh
|