Mercurial > repos > icfp2013
comparison src/driver.tp @ 51:e634e81c4c84
Added solver driver
author | Mike Pavone <pavone@retrodev.com> |
---|---|
date | Sun, 11 Aug 2013 05:55:06 -0700 |
parents | |
children | f864792a1b17 |
comparison
equal
deleted
inserted
replaced
50:f4399a22a704 | 51:e634e81c4c84 |
---|---|
1 #{ | |
2 main <- :args { | |
3 if: (args length) > 1 { | |
4 numops <- int32: (args get: 1) | |
5 | |
6 | |
7 file <- os open: "data/myproblems.json" (os O_RDONLY) | |
8 fstr <- (os read: file 400 * 1024) // file was 276k before bonus problems... | |
9 os close: file | |
10 | |
11 probs <- requests problems: fstr | |
12 | |
13 filtered <- #[] | |
14 foreach: probs :idx el { | |
15 if: (not: (el solved)) && (el size) = numops && (el timeLeft) > 0 { | |
16 filtered append: el | |
17 } | |
18 } | |
19 numtests <- #[16 32 64 128 256 256] | |
20 if: (args length) > 2 { | |
21 prog <- bv program | |
22 authKey <- args get: 2 | |
23 if: numops < 10 { | |
24 //nt <- numtests get: (numops - 3) | |
25 nt <- 32 | |
26 trees <- (prog allOfSize: numops) | |
27 foreach: filtered :idx el { | |
28 probtrees <- prog filterTrees: trees (el operators) | |
29 info <- solver classify: prog probtrees nt | |
30 solver solve: (el id) withAuth: authKey andInfo: info andProg: prog | |
31 } | |
32 } else: { | |
33 nt <- 24 | |
34 foreach: filtered :idx el { | |
35 print: "Generating programs for operators: " . ((el operators) fold: "" with: :acc el { acc . el }) . "\n" | |
36 probtrees <- prog allOfSize: numops withOps: (el operators) | |
37 print: "Generated " . (string: (probtrees length)) . " programs\n" | |
38 probtrees <- prog filterTrees: probtrees (el operators) | |
39 print: "Running classifier " . (string: (probtrees length)) . " programs\n" | |
40 info <- solver classify: prog probtrees nt | |
41 solver solve: (el id) withAuth: authKey andInfo: info andProg: prog | |
42 } | |
43 } | |
44 } else: { | |
45 foreach: filtered :idx el { | |
46 print: el | |
47 } | |
48 } | |
49 0 | |
50 } | |
51 } | |
52 } |