import CombinatorialOptimisation.SAT import CombinatorialOptimisation.TSP import FileFormat.SATLIB import FileFormat.TSPLIB import System.Random import qualified Data.Map as M import System.Directory {- main :: IO() main = do s<-loadCNFFile "./CBS_k3_n100_m403_b10_0.cnf" print s saveAsCNF "test.cnf" s -} {- -- checking basic Symmetric TSP code and mutator algorithms main :: IO() main = do gen<-newStdGen let meep = makeSymmetricTSPMap (2,5) 5 gen -- print meep let meep' = randomiseRoute gen meep print meep' print $ routeElementToIndex meep' print $ indexToRouteElement meep' print "" let meep'' = exchangeCities 1 1 meep' print meep'' print $ routeElementToIndex meep'' print $ indexToRouteElement meep'' putStrLn $ showEdgeWeights meep'' -} {- main :: IO() main = do let gen = mkStdGen 5 let meep = makeSymmetricTSPMap ExplicitMatrix (2,5) 50 gen let meep' = makeSymmetricTSPMap TriangularMatrix (2,5) 50 gen putStrLn $ show $ showEdgeWeights meep == showEdgeWeights meep' -} {- -- checking stability of arrays, rather than map main :: IO() main = do let gen = mkStdGen 5 let gen' = mkStdGen 10 let meep = makeEuclideanTSPMap ExplicitMatrix (2,8) (2,8) 100 gen let meep' = makeEuclideanTSPMap TriangularMatrix (2,8) (2,8) 100 gen let meep'' = makeEuclideanTSPMap Recomputation (2,8) (2,8) 100 gen putStrLn $ showEdgeWeights meep putStrLn "" putStrLn $ showEdgeWeights meep' putStrLn $ show $ (showEdgeWeights meep == showEdgeWeights meep') && (showEdgeWeights meep == showEdgeWeights meep'') -} {- -- checking loading TSPs main :: IO() main = do b<-loadTSPFile Recomputation "../exampleProblems/ali535.tsp" c<-loadTSPFile TriangularMatrix "../exampleProblems/ali535.tsp" d<-loadTSPFile ExplicitMatrix "../exampleProblems/ali535.tsp" putStrLn $ show $ (showEdgeWeights d == showEdgeWeights c) && (showEdgeWeights d == showEdgeWeights b) -} {- -- still checking the loading of TSPs main :: IO() main = do b<-loadTSPFile ExplicitMatrix "../exampleProblems/brazil58.tsp" putStrLn $ showEdgeWeights b -} -- brute force loading main :: IO() main = do xs<-getDirectoryContents "../exampleProblems" >>= (\x->return (drop 2 x)) mapM_ (\x->do b<-loadTSPFile ExplicitMatrix ("../exampleProblems/"++x) if (numCities b < 1000) then print $ getLastEdge b else print $ x++" too big for explicit") xs main2 where getLastEdge t = let m = numCities t -1 in edgePrices t m m problemFiles = ["brazil58.tsp","bayg29.tsp","bays29.tsp","brg180.tsp","dantzig42.tsp"] customFilter :: [String]->IO [String] customFilter [] = return [] customFilter (x:xs) = do b<-loadTSPFile ExplicitMatrix ("../exampleProblems/"++x) if numCities b <1000 then customFilter xs else do ps<-customFilter xs return (x:ps) main2 :: IO() main2 = do xs<-getDirectoryContents "../exampleProblems" >>= (\x->return (drop 2 x)) xs' <-customFilter xs print xs' mapM_ (\x->do print x b<-loadTSPFile Recomputation ("../exampleProblems/"++x) print $ getLastEdge b ) xs' where getLastEdge t = let m = numCities t -1 in edgePrices t m m