Haskell, Genetic Algorithm, Graph Theory, Programming.
main :: IO () main = do void $ runIO initialize $ loopIO [DoEvery 10 logStats, TimeLimit (12 * 3600)] (Generations maxBound) nextGen initialize = return (replicate popsize (encodeTiles originalTiles)) logStats n pop = do let best = decodeTiles $ head $ map takeGenome $ bestFirst Maximizing pop