     (println "Total number of data lines:" (count lines))
     (mapv #(mapv read-string %) lines)))
 
-(def training-proportion 0.5) ;; proportion of training cases to use each generation
+(def training-proportion 0.2) ;; proportion of training cases to use each generation
+
+(def resampling false)
 
 (defn define-fitness-cases
   "Returns a map with two keys: train and test. Train maps to a

   ;:print-behavioral-diversity true ;; requires maintaining @population-behaviors 
   :report-simplifications 0
   :final-report-simplifications 5000
   :age-mediated-parent-selection [0.05 0.5]
   :age-combining-function :proportionate 
   ;:age-combining-function :first-reuse 
   ;:autoconstructive true
   ;:autoconstructive-genome-instructions :uniform

  (println @penn-fitness-cases)
  (println ";;******************************"))

(defn cycle-to-longest
  [& sequences]
  (let [max-count (apply max (map count sequences))]
    (vec (apply concat (map #(take max-count (cycle %)) sequences)))))

(def penn-atom-generators
  (cycle-to-longest (concat (distinct (mapv :target (:all-train @penn-fitness-cases))) ;; classes, for output
                            (list (tag-instruction-erc [:exec :integer :float :boolean :string] 1000)
                                  (tagged-instruction-erc 1000)
                                  (fn [] (lrand-int 1000))
                                  (fn [] (lrand 1))))
                    (for [n (map inc 
                                 (range (count (:inputs (first (:train @penn-fitness-cases))))))]
                      (symbol (str "in" n)))
                    (registered-for-stacks [:exec :integer :float :boolean :string])))

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; Main call
