Update Parallel.hs
This commit is contained in:
parent
dca18e4009
commit
60a2b7973f
@ -7,31 +7,31 @@ import Control.Parallel.Strategies
|
|||||||
import Control.DeepSeq
|
import Control.DeepSeq
|
||||||
import KomplizierteFunktion
|
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 :: Double -> Double -> Double -> Double -> ((Double,Double,Double,Double),Double)
|
||||||
berechnungMitEingabe x y z w = ((x,y,z,w),komplizierteFunktion x y z w)
|
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 :: Int -> Double -> [((Double,Double,Double,Double),Double)]
|
||||||
nBesteEingaben n d = take n $ sortOn (negate.snd) $ berechnungMitEingabe <$> range <*> range <*> range <*> range
|
nBesteEingaben n d = take n $ sortOn (negate.snd) berechnungen
|
||||||
where range = [(-10),(-(10-d))..10]
|
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 :: Int -> Double -> [((Double,Double,Double,Double),Double)]
|
||||||
nBesteEingabenPar1 n d = take n $ sortOn (negate.snd) berechnungen
|
nBesteEingabenPar1 n d = take n $ sortOn (negate.snd) berechnungen
|
||||||
where
|
where
|
||||||
berechnungen = berechnungMitEingabe <$> range <*> range <*> range <*> range
|
berechnungen = berechnungMitEingabe <$> range <*> range <*> range <*> range
|
||||||
range = [(-10),(-(10-d))..10]
|
range = [(-10),(-(10-d))..10]
|
||||||
|
|
||||||
|
-- TODO: IMPLEMENTIEREN
|
||||||
nBesteEingabenPar2 :: Int -> Double -> [((Double,Double,Double,Double),Double)]
|
nBesteEingabenPar2 :: Int -> Double -> [((Double,Double,Double,Double),Double)]
|
||||||
nBesteEingabenPar2 n d = take n $ sortOn (negate.snd) berechnungen
|
nBesteEingabenPar2 n d = take n $ sortOn (negate.snd) berechnungen
|
||||||
where
|
where
|
||||||
berechnungen = berechnungMitEingabe <$> range <*> range <*> range <*> range
|
berechnungen = berechnungMitEingabe <$> range <*> range <*> range <*> range
|
||||||
range = [(-10),(-(10-d))..10]
|
range = [(-10),(-(10-d))..10]
|
||||||
|
|
||||||
|
-- TODO: IMPLEMENTIEREN
|
||||||
nBesteEingabenPar3 :: Int -> Double -> [((Double,Double,Double,Double),Double)]
|
nBesteEingabenPar3 :: Int -> Double -> [((Double,Double,Double,Double),Double)]
|
||||||
nBesteEingabenPar3 n d = take n $ sortOn (negate.snd) berechnungen
|
nBesteEingabenPar3 n d = take n $ sortOn (negate.snd) berechnungen
|
||||||
where
|
where
|
||||||
|
Loading…
Reference in New Issue
Block a user