diff --git a/src/Parallel.hs b/src/Parallel.hs index 6d9cafa..9b1cb28 100644 --- a/src/Parallel.hs +++ b/src/Parallel.hs @@ -7,31 +7,31 @@ import Control.Parallel.Strategies import Control.DeepSeq import KomplizierteFunktion --- Sie sollen Minima einer komplizierten Funktion finden. Die Funktion erlaubt keine analytische Berechnung --- der Maxima. Daher sollen Sie im Intervall [-10,10] für alle Parameter x y z w approximativ Maxima suchen. - --- komplizierteFunktion :: Double -> Double -> Double -> Double -> Double - berechnungMitEingabe :: Double -> Double -> Double -> Double -> ((Double,Double,Double,Double),Double) berechnungMitEingabe x y z w = ((x,y,z,w),komplizierteFunktion x y z w) +-- Parallelisieren Sie nBesteEingaben mit drei verschiedenen Strategien für Listen bzw. Lazy Listen nBesteEingaben :: Int -> Double -> [((Double,Double,Double,Double),Double)] -nBesteEingaben n d = take n $ sortOn (negate.snd) $ berechnungMitEingabe <$> range <*> range <*> range <*> range - where range = [(-10),(-(10-d))..10] +nBesteEingaben n d = take n $ sortOn (negate.snd) berechnungen + where + berechnungen = berechnungMitEingabe <$> range <*> range <*> range <*> range + range = [(-10),(-(10-d))..10] --- 3 x dieselbe implementation -> versuchen sie 3 verschiedene Strategien der Parallelisierung +-- TODO: IMPLEMENTIEREN nBesteEingabenPar1 :: Int -> Double -> [((Double,Double,Double,Double),Double)] nBesteEingabenPar1 n d = take n $ sortOn (negate.snd) berechnungen where berechnungen = berechnungMitEingabe <$> range <*> range <*> range <*> range range = [(-10),(-(10-d))..10] +-- TODO: IMPLEMENTIEREN nBesteEingabenPar2 :: Int -> Double -> [((Double,Double,Double,Double),Double)] nBesteEingabenPar2 n d = take n $ sortOn (negate.snd) berechnungen where berechnungen = berechnungMitEingabe <$> range <*> range <*> range <*> range range = [(-10),(-(10-d))..10] +-- TODO: IMPLEMENTIEREN nBesteEingabenPar3 :: Int -> Double -> [((Double,Double,Double,Double),Double)] nBesteEingabenPar3 n d = take n $ sortOn (negate.snd) berechnungen where