Mercurial > repos > icfp2013
diff src/solver.tp @ 56:f864792a1b17
Improve prefiltering in program generator. Make solver use similar logic to driver when run standalone.
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 11 Aug 2013 14:11:47 -0700 |
parents | f4399a22a704 |
children | c50f0fb9a717 |
line wrap: on
line diff
--- a/src/solver.tp Sun Aug 11 14:08:13 2013 -0700 +++ b/src/solver.tp Sun Aug 11 14:11:47 2013 -0700 @@ -218,7 +218,6 @@ } prog <- bv program if: size >= 2 { - trees <- (prog allOfSize: size) numTests <- 0 if: (args length) > 2 { numTests <- int32: (args get: 2) @@ -226,10 +225,22 @@ if: numTests <= 0 { numTests <- 16 } + trees <- #[] + if: (args length) > 3 { ops <- (args get: 3) splitOn: "," - trees <- prog filterTrees: trees ops + if: size < 10 { + trees <- prog filterTrees: (prog allOfSize: size) ops + } else: { + print: "Generating programs for operators: " . (ops fold: "" with: :acc el { acc . el }) . "\n" + trees <- prog allOfSize: size withOps: ops + print: "Generated " . (string: (trees length)) . " programs\n" + trees <- prog filterTrees: trees ops + } + } else: { + trees <- (prog allOfSize: size) } + print: "Running classifier on " . (string: (trees length)) . " programs\n" info <- classify: prog trees numTests if: (args length) > 5 { progId <- (args get: 4)