Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- type Individual = [Float]
- type Population = [Individual]
- type FitnessFun = Individual -> Float
- class Driver d where
- init :: Population
- -> ([Individual -> Float]) -- 'fitnesses', nie modyfikuje tego co dostaje
- -> d
- population :: d -> Population
- steps :: d -> Iterator a -> Integer
- get_indivs_inorder :: d -> (Iterator Population, Int) -- Konrad: IMHO teoretycznie zbędna bo istnieje
- -- `rank`, natomiast:
- -- 1) get_indivs_inorder driver = (rank x, f)
- -- where (x,f) = population driver
- -- na tyle proste, że nie ma problemu
- -- 2) możliwe optymalizacje?
- -- >> do konsultacji <<
- rank :: d -> Iterator Population -> ([[Individual]], Int)
- -- populacja w kolejności od najlepszych do najgorszych (wg kryterium typu
- -- operator dominacji); zwraca info o ilości wywołań
- -- funkcji fitness.
- -- PS. Wywaliłem to, że ma być statyczna. Dlaczego? Bo functools.partial()
- -- nie zwraca klasy źródłowej…
- finished :: d -> Bool -- czy obliczenia zakończone?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement