$ cat gram/5.pcfg S: B C | B C C | D C B | D D C ; B: "a" "a" ; C: "c" "b" "c" ; D: "d" "b" "b" "d" ; $ ./pcfg-generate-seq -i1 -n10000 -o seq/5-10k.seq gram/5.pcfg $ ../scripts/mk-rg-vit.sh 5 5 2 >gram/5.rg $ ./topdown -i1 --det-niter-goal=50 --od=td-learn/5_det.rg \ --oo=td-learn/5.log gram/5.rg seq/5-10k.seq $ ./topdown -i1 --od=td-learn/5_out.rg --op=td-learn/5_out.pcfg \ --oo=- --simplify td-learn/5_det.rg seq/5-10k.seq Iteration 1: P: prob_gram 0.58674430, prob_term 1.00000000, prob_wpredict 0.86162420, prob_npredict 0.86020214, cycle_period 0 T: prob_gram 0.58674430, prob_term 1.00000000, prob_wpredict 0.86162420, prob_npredict 0.86020214, cycle_period 0 Finished.
$ cat td-learn/5_out.rg S: "a" . | "c" . . | "d" . . . | "b" . ( "a" . | "b" | "c" . . | "d" . ) ;
$ cat td-learn/5_out.pcfg S: "c" "b" "c" [0.45601921] // 1519 1.00000000 | "d" "b" "b" "d" [0.27199039] // 906 1.00000000 | "a" "a" [0.27199039] // 906 0.98432332 ; // 3331 $ ./topdown -i-1 --os=seq/5_random.seq --oo=- gram/5.rg seq/5-10k.seq [0]: prob_gram 0.09789976, prob_term 0.11414445, prob_wpredict 0.53202818, prob_npredict 0.44951466, cycle_period 1046 prob_epredict 0.44951466 $ ./topdown -i1 --os=seq/5_predict.seq --oo=- td-learn/5_out.rg seq/5-10k.seq [0]: prob_gram 0.58674430, prob_term 1.00000000, prob_wpredict 0.86162420, prob_npredict 0.86020214, cycle_period 0 prob_epredict 0.86020214
$ ./pcfg-predict-eval --prob-rand=0.44951466 gram/5.pcfg seq/5_predict.seq { "seq_len" : 9993, "wpredict_max" : 8928.00000000, "npredict_actual" : 8596, "wpredict_rand" : 4492.0, "prob_wpredict_max" : 0.89342540, "prob_npredict_actual" : 0.86020214, "prob_npredict_rand" : 0.44951466, "efficiency_rand, %" : 92.5 }