-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Concurrent simulated annealing system. -- -- An extremely lightweight system for concurrent simulated annealing. @package concurrent-sa @version 1.0.0 -- | The traditional simulated annealing is to maintain a current state, -- and repeatedly perturb it, keeping or discarding the perturbed state -- depending on the difference in an energy function and a -- temperature, which changes as a function of time. This -- concurrent SA implementation maintains a population of current states -- which are perturbed, and lower-ranked states are deleted according to -- a temperature function. It is intended as a lightweight approach to -- parallelizing optimization problems. module Control.Concurrent.Annealer data Annealer s e -- | Initializes an annealer. initAnnealer :: (Ord e) => (s -> e) -> [s] -> Int -> (s -> IO s) -> IO (Annealer s e) -- | Offer a state to the annealer. Depending on the current population, -- the state may or may not be kept. offerState :: s -> Annealer s e -> IO () -- | Returns the current best state in the annealer. getBestState :: (Ord e) => Annealer s e -> IO s -- | Runs several annealing threads for the specified length of time. annealForTime :: (Ord e) => Int -> Int -> Annealer s e -> IO s