Mercurial > repos > icfp2013
view src/driver.tp @ 59:3c8d8fdd32a1 default tip
mike's changes to solver
author | bill |
---|---|
date | Sun, 11 Aug 2013 15:24:22 -0700 |
parents | f864792a1b17 |
children |
line wrap: on
line source
#{ main <- :args { if: (args length) > 1 { numops <- int32: (args get: 1) file <- os open: "data/myproblems.json" (os O_RDONLY) fstr <- (os read: file 400 * 1024) // file was 276k before bonus problems... os close: file probs <- requests problems: fstr filtered <- #[] foreach: probs :idx el { if: (not: (el solved)) && (el size) = numops && (el timeLeft) > 0 { filtered append: el } } numtests <- #[16 32 64 128 256 256] if: (args length) > 2 { prog <- bv program authKey <- args get: 2 if: numops < 10 { //nt <- numtests get: (numops - 3) nt <- 32 trees <- (prog allOfSize: numops) foreach: filtered :idx el { probtrees <- prog filterTrees: trees (el operators) info <- solver classify: prog probtrees nt solver solve: (el id) withAuth: authKey andInfo: info andProg: prog } } else: { nt <- 24 foreach: filtered :idx el { print: "Generating programs for operators: " . ((el operators) fold: "" with: :acc el { acc . el }) . "\n" probtrees <- prog allOfSize: numops withOps: (el operators) print: "Generated " . (string: (probtrees length)) . " programs\n" probtrees <- prog filterTrees: probtrees (el operators) print: "Running classifier on " . (string: (probtrees length)) . " programs\n" info <- solver classify: prog probtrees nt solver solve: (el id) withAuth: authKey andInfo: info andProg: prog } } } else: { foreach: filtered :idx el { print: el } } 0 } } }