{---------------------------------------------------------------
--
-- Main.hs : the main program for the PolyGP system.
-- [email protected] September 25, 1997
--
--------------------------------------------------------------}
module Main where
import Header(Expression(..),TypeExp(..))
import Auxil (getParas, create, evolve, displayPop)
import System (getArgs)
import Random (randomInts,randomDoubles)
main = getArgs >>= \ [f1] ->
readFile f1 >>= \ inputs ->
let (treeDepth, popSize, randomInt, maxEval, parScale, xOverRate) = getParas inputs 0 0 0 0 0.0 0
in if (treeDepth==0 || popSize==0 || randomInt==0 || maxEval==0 || parScale==0.0 || xOverRate==0) then
print "Parameter reading fails."
else
let (population, rList) = create popSize [] (randomInts randomInt (randomInt + 10)) treeDepth
(population', dList, rList') = evolve population maxEval parScale popSize treeDepth xOverRate
(randomDoubles randomInt (randomInt+10)) rList
in
displayPop 1 population'
|