changeset 51:e634e81c4c84

Added solver driver
author Mike Pavone <pavone@retrodev.com>
date Sun, 11 Aug 2013 05:55:06 -0700
parents f4399a22a704
children 0ea0bae24173
files src/driver.tp
diffstat 1 files changed, 52 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/driver.tp	Sun Aug 11 05:55:06 2013 -0700
@@ -0,0 +1,52 @@
+#{
+	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 " . (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
+		}
+	}
+}