-- |

module Modelling.ActivityDiagram.MatchPetri.Config where

import Modelling.ActivityDiagram.Common (finalNodesAdvice)
import Modelling.ActivityDiagram.Config (AdConfig(..))
import Modelling.ActivityDiagram.MatchPetri (MatchPetriConfig(..))

import Data.GraphViz.Commands           (GraphvizCommand(..))

{-|
points: 0.15
average generation time per instance: 40:00min
CPU usage: 100%
-}
task2023_39 :: MatchPetriConfig
task2023_39 :: MatchPetriConfig
task2023_39 = MatchPetriConfig {
  adConfig :: AdConfig
adConfig = AdConfig {
    actionLimits :: (Int, Int)
actionLimits = (Int
8, Int
8),
    objectNodeLimits :: (Int, Int)
objectNodeLimits = (Int
4, Int
4),
    maxNamedNodes :: Int
maxNamedNodes = Int
12,
    decisionMergePairs :: Int
decisionMergePairs = Int
2,
    forkJoinPairs :: Int
forkJoinPairs = Int
1,
    activityFinalNodes :: Int
activityFinalNodes = Int
0,
    flowFinalNodes :: Int
flowFinalNodes = Int
2,
    cycles :: Int
cycles = Int
1
    },
  countOfPetriNodesBounds :: (Int, Maybe Int)
countOfPetriNodesBounds = (Int
0, Maybe Int
forall a. Maybe a
Nothing),
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
10000,
  hideBranchConditions :: Bool
hideBranchConditions = Bool
True,
  petriLayout :: [GraphvizCommand]
petriLayout = [GraphvizCommand
Fdp],
  petriSvgHighlighting :: Bool
petriSvgHighlighting = Bool
True,
  auxiliaryPetriNodeAbsent :: Maybe Bool
auxiliaryPetriNodeAbsent = Maybe Bool
forall a. Maybe a
Nothing,
  presenceOfSinkTransitionsForFinals :: Maybe Bool
presenceOfSinkTransitionsForFinals = Maybe Bool
forall a. Maybe a
Nothing,
  withActivityFinalInForkBlocks :: Maybe Bool
withActivityFinalInForkBlocks = Maybe Bool
forall a. Maybe a
Nothing,
  printSolution :: Bool
printSolution = Bool
True,
  extraText :: ExtraText
extraText = ExtraText
finalNodesAdvice
  }

{-|
points: 0.15
average generation time per instance: 40:00min
CPU usage: 100%
-}
task2023_40 :: MatchPetriConfig
task2023_40 :: MatchPetriConfig
task2023_40 = MatchPetriConfig {
  adConfig :: AdConfig
adConfig = AdConfig {
    actionLimits :: (Int, Int)
actionLimits = (Int
8, Int
8),
    objectNodeLimits :: (Int, Int)
objectNodeLimits = (Int
5, Int
5),
    maxNamedNodes :: Int
maxNamedNodes = Int
13,
    decisionMergePairs :: Int
decisionMergePairs = Int
3,
    forkJoinPairs :: Int
forkJoinPairs = Int
2,
    activityFinalNodes :: Int
activityFinalNodes = Int
0,
    flowFinalNodes :: Int
flowFinalNodes = Int
3,
    cycles :: Int
cycles = Int
3
    },
  countOfPetriNodesBounds :: (Int, Maybe Int)
countOfPetriNodesBounds = (Int
0, Maybe Int
forall a. Maybe a
Nothing),
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
  hideBranchConditions :: Bool
hideBranchConditions = Bool
True,
  petriLayout :: [GraphvizCommand]
petriLayout = [GraphvizCommand
Fdp],
  petriSvgHighlighting :: Bool
petriSvgHighlighting = Bool
True,
  auxiliaryPetriNodeAbsent :: Maybe Bool
auxiliaryPetriNodeAbsent = Maybe Bool
forall a. Maybe a
Nothing,
  presenceOfSinkTransitionsForFinals :: Maybe Bool
presenceOfSinkTransitionsForFinals = Maybe Bool
forall a. Maybe a
Nothing,
  withActivityFinalInForkBlocks :: Maybe Bool
withActivityFinalInForkBlocks = Maybe Bool
forall a. Maybe a
Nothing,
  printSolution :: Bool
printSolution = Bool
True,
  extraText :: ExtraText
extraText = ExtraText
finalNodesAdvice
  }

{-|
points: 0.15
average generation time per instance: 23:20min
CPU usage: 103%
-}
task2024_45 :: MatchPetriConfig
task2024_45 :: MatchPetriConfig
task2024_45 = MatchPetriConfig
task2023_39

{-|
points: 0.15
average generation time per instance: 1:06:10h
CPU usage: 102%
-}
task2024_46 :: MatchPetriConfig
task2024_46 :: MatchPetriConfig
task2024_46 = MatchPetriConfig
task2023_40

{-|
points: 0.08
average generation time per instance: 18:16min
CPU usage: 105%
-}
task2024_70 :: MatchPetriConfig
task2024_70 :: MatchPetriConfig
task2024_70 = MatchPetriConfig {
  adConfig :: AdConfig
adConfig = AdConfig {
    actionLimits :: (Int, Int)
actionLimits = (Int
6, Int
6),
    objectNodeLimits :: (Int, Int)
objectNodeLimits = (Int
7, Int
7),
    maxNamedNodes :: Int
maxNamedNodes = Int
13,
    decisionMergePairs :: Int
decisionMergePairs = Int
1,
    forkJoinPairs :: Int
forkJoinPairs = Int
1,
    activityFinalNodes :: Int
activityFinalNodes = Int
0,
    flowFinalNodes :: Int
flowFinalNodes = Int
1,
    cycles :: Int
cycles = Int
0
    },
  countOfPetriNodesBounds :: (Int, Maybe Int)
countOfPetriNodesBounds = (Int
0, Maybe Int
forall a. Maybe a
Nothing),
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
10000,
  hideBranchConditions :: Bool
hideBranchConditions = Bool
True,
  petriLayout :: [GraphvizCommand]
petriLayout = [GraphvizCommand
Fdp],
  petriSvgHighlighting :: Bool
petriSvgHighlighting = Bool
True,
  auxiliaryPetriNodeAbsent :: Maybe Bool
auxiliaryPetriNodeAbsent = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
  presenceOfSinkTransitionsForFinals :: Maybe Bool
presenceOfSinkTransitionsForFinals = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
  withActivityFinalInForkBlocks :: Maybe Bool
withActivityFinalInForkBlocks = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
  printSolution :: Bool
printSolution = Bool
True,
  extraText :: ExtraText
extraText = ExtraText
finalNodesAdvice
  }

{-|
points: 0.08
average generation time per instance: 14:13min
CPU usage: 104%
-}
task2024_71 :: MatchPetriConfig
task2024_71 :: MatchPetriConfig
task2024_71 = MatchPetriConfig {
  adConfig :: AdConfig
adConfig = AdConfig {
    actionLimits :: (Int, Int)
actionLimits = (Int
8, Int
8),
    objectNodeLimits :: (Int, Int)
objectNodeLimits = (Int
5, Int
5),
    maxNamedNodes :: Int
maxNamedNodes = Int
13,
    decisionMergePairs :: Int
decisionMergePairs = Int
3,
    forkJoinPairs :: Int
forkJoinPairs = Int
2,
    activityFinalNodes :: Int
activityFinalNodes = Int
0,
    flowFinalNodes :: Int
flowFinalNodes = Int
3,
    cycles :: Int
cycles = Int
3
    },
  countOfPetriNodesBounds :: (Int, Maybe Int)
countOfPetriNodesBounds = (Int
0, Maybe Int
forall a. Maybe a
Nothing),
  maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
  hideBranchConditions :: Bool
hideBranchConditions = Bool
True,
  petriLayout :: [GraphvizCommand]
petriLayout = [GraphvizCommand
Fdp],
  petriSvgHighlighting :: Bool
petriSvgHighlighting = Bool
True,
  auxiliaryPetriNodeAbsent :: Maybe Bool
auxiliaryPetriNodeAbsent = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
  presenceOfSinkTransitionsForFinals :: Maybe Bool
presenceOfSinkTransitionsForFinals = Maybe Bool
forall a. Maybe a
Nothing,
  withActivityFinalInForkBlocks :: Maybe Bool
withActivityFinalInForkBlocks = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
  printSolution :: Bool
printSolution = Bool
True,
  extraText :: ExtraText
extraText = ExtraText
finalNodesAdvice
  }

{-|
points: 0.15
the amount of generated instances: 100
maximum concurrent amount of tasks: 100
average generation time per instance on the cluster (without considering concurrency): 39:44min
total run time on the cluster (not including queuing time): 40:26min
average CPU usage: 100%
average memory usage: 9190.32 MB
-}
task2025_48 :: MatchPetriConfig
task2025_48 :: MatchPetriConfig
task2025_48 = MatchPetriConfig {
    adConfig :: AdConfig
adConfig = AdConfig {
      actionLimits :: (Int, Int)
actionLimits = (Int
8, Int
8),
      objectNodeLimits :: (Int, Int)
objectNodeLimits = (Int
4, Int
4),
      maxNamedNodes :: Int
maxNamedNodes = Int
12,
      decisionMergePairs :: Int
decisionMergePairs = Int
2,
      forkJoinPairs :: Int
forkJoinPairs = Int
1,
      activityFinalNodes :: Int
activityFinalNodes = Int
0,
      flowFinalNodes :: Int
flowFinalNodes = Int
2,
      cycles :: Int
cycles = Int
1
      },
    countOfPetriNodesBounds :: (Int, Maybe Int)
countOfPetriNodesBounds = (Int
25, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
26),
    maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
10000,
    hideBranchConditions :: Bool
hideBranchConditions = Bool
True,
    petriLayout :: [GraphvizCommand]
petriLayout = [GraphvizCommand
Fdp],
    petriSvgHighlighting :: Bool
petriSvgHighlighting = Bool
True,
    auxiliaryPetriNodeAbsent :: Maybe Bool
auxiliaryPetriNodeAbsent = Maybe Bool
forall a. Maybe a
Nothing,
    presenceOfSinkTransitionsForFinals :: Maybe Bool
presenceOfSinkTransitionsForFinals = Maybe Bool
forall a. Maybe a
Nothing,
    withActivityFinalInForkBlocks :: Maybe Bool
withActivityFinalInForkBlocks = Maybe Bool
forall a. Maybe a
Nothing,
    printSolution :: Bool
printSolution = Bool
True,
    extraText :: ExtraText
extraText = ExtraText
finalNodesAdvice
    }

{-|
points: 0.15
the amount of generated instances: 100
maximum concurrent amount of tasks: 100
average generation time per instance on the cluster (without considering concurrency): 41:20min
total run time on the cluster (not including queuing time): 49:04min
average CPU usage: 99.24%
average memory usage: 2268.47 MB
-}
task2025_49 :: MatchPetriConfig
task2025_49 :: MatchPetriConfig
task2025_49 = MatchPetriConfig {
    adConfig :: AdConfig
adConfig = AdConfig {
      actionLimits :: (Int, Int)
actionLimits = (Int
8, Int
8),
      objectNodeLimits :: (Int, Int)
objectNodeLimits = (Int
5, Int
5),
      maxNamedNodes :: Int
maxNamedNodes = Int
13,
      decisionMergePairs :: Int
decisionMergePairs = Int
3,
      forkJoinPairs :: Int
forkJoinPairs = Int
2,
      activityFinalNodes :: Int
activityFinalNodes = Int
0,
      flowFinalNodes :: Int
flowFinalNodes = Int
3,
      cycles :: Int
cycles = Int
3
      },
    countOfPetriNodesBounds :: (Int, Maybe Int)
countOfPetriNodesBounds = (Int
37, Int -> Maybe Int
forall a. a -> Maybe a
Just Int
38),
    maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
    hideBranchConditions :: Bool
hideBranchConditions = Bool
True,
    petriLayout :: [GraphvizCommand]
petriLayout = [GraphvizCommand
Fdp],
    petriSvgHighlighting :: Bool
petriSvgHighlighting = Bool
True,
    auxiliaryPetriNodeAbsent :: Maybe Bool
auxiliaryPetriNodeAbsent = Maybe Bool
forall a. Maybe a
Nothing,
    presenceOfSinkTransitionsForFinals :: Maybe Bool
presenceOfSinkTransitionsForFinals = Maybe Bool
forall a. Maybe a
Nothing,
    withActivityFinalInForkBlocks :: Maybe Bool
withActivityFinalInForkBlocks = Maybe Bool
forall a. Maybe a
Nothing,
    printSolution :: Bool
printSolution = Bool
True,
    extraText :: ExtraText
extraText = ExtraText
finalNodesAdvice
    }

{-|
points: 0.1
the amount of generated instances: 100
maximum concurrent amount of tasks: 100
average generation time per instance on the cluster (without considering concurrency): 38:54min
total run time on the cluster (not including queuing time): 46:16min
average CPU usage: 99.26%
average memory usage: 2265.84 MB
-}
task2025_66 :: MatchPetriConfig
task2025_66 :: MatchPetriConfig
task2025_66 = MatchPetriConfig
task2025_49