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 }