-- |

module Modelling.PetriNet.PetriFindConflictPlaces.Config where

import Modelling.PetriNet.Types (
  AdvConfig (..),
  AlloyConfig (..),
  BasicConfig (..),
  ChangeConfig (..),
  ConflictConfig (..),
  GraphConfig (..),
  FindConflictConfig (..),
  )

import Control.OutputCapable.Blocks     (ExtraText (..))
import Data.GraphViz.Commands           (GraphvizCommand(..))

{-|
points: 0.2
average generation time per instance: 20:00min
CPU usage: 100%
-}
task2023_24 :: FindConflictConfig
task2023_24 :: FindConflictConfig
task2023_24 = FindConflictConfig {
  basicConfig :: BasicConfig
basicConfig = BasicConfig {
    places :: Int
places = Int
6,
    transitions :: Int
transitions = Int
5,
    atLeastActive :: Int
atLeastActive = Int
3,
    flowOverall :: (Int, Int)
flowOverall = (Int
14, Int
16),
    maxTokensPerPlace :: Int
maxTokensPerPlace = Int
2,
    maxFlowPerEdge :: Int
maxFlowPerEdge = Int
2,
    tokensOverall :: (Int, Int)
tokensOverall = (Int
2, Int
7),
    isConnected :: Maybe Bool
isConnected = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  advConfig :: AdvConfig
advConfig = AdvConfig {
    presenceOfSelfLoops :: Maybe Bool
presenceOfSelfLoops = Maybe Bool
forall a. Maybe a
Nothing,
    presenceOfSinkTransitions :: Maybe Bool
presenceOfSinkTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
    presenceOfSourceTransitions :: Maybe Bool
presenceOfSourceTransitions = Maybe Bool
forall a. Maybe a
Nothing
    },
  changeConfig :: ChangeConfig
changeConfig = ChangeConfig {
    tokenChangeOverall :: Int
tokenChangeOverall = Int
2,
    maxTokenChangePerPlace :: Int
maxTokenChangePerPlace = Int
1,
    flowChangeOverall :: Int
flowChangeOverall = Int
2,
    maxFlowChangePerEdge :: Int
maxFlowChangePerEdge = Int
1
    },
  conflictConfig :: ConflictConfig
conflictConfig = ConflictConfig {
    addConflictCommonPreconditions :: Maybe Bool
addConflictCommonPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    withConflictDistractors :: Maybe Bool
withConflictDistractors = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorAddExtraPreconditions :: Maybe Bool
conflictDistractorAddExtraPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorOnlyConflictLike :: Bool
conflictDistractorOnlyConflictLike = Bool
True,
    conflictDistractorOnlyConcurrentLike :: Bool
conflictDistractorOnlyConcurrentLike = Bool
False
    },
  graphConfig :: GraphConfig
graphConfig = GraphConfig {
    graphLayouts :: [GraphvizCommand]
graphLayouts = [GraphvizCommand
Neato],
    hidePlaceNames :: Bool
hidePlaceNames = Bool
False,
    hideTransitionNames :: Bool
hideTransitionNames = Bool
False,
    hideWeight1 :: Bool
hideWeight1 = Bool
True
    },
  printSolution :: Bool
printSolution = Bool
True,
  uniqueConflictPlace :: Maybe Bool
uniqueConflictPlace = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
  alloyConfig :: AlloyConfig
alloyConfig = AlloyConfig {
    maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
    timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing
    },
  extraText :: ExtraText
extraText = ExtraText
NoExtraText
  }

{-|
points: 0.2
average generation time per instance: 20:00min
CPU usage: 100%
-}
task2023_26 :: FindConflictConfig
task2023_26 :: FindConflictConfig
task2023_26 = FindConflictConfig {
  basicConfig :: BasicConfig
basicConfig = BasicConfig {
    places :: Int
places = Int
6,
    transitions :: Int
transitions = Int
5,
    atLeastActive :: Int
atLeastActive = Int
3,
    flowOverall :: (Int, Int)
flowOverall = (Int
14, Int
16),
    maxTokensPerPlace :: Int
maxTokensPerPlace = Int
2,
    maxFlowPerEdge :: Int
maxFlowPerEdge = Int
2,
    tokensOverall :: (Int, Int)
tokensOverall = (Int
2, Int
7),
    isConnected :: Maybe Bool
isConnected = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  advConfig :: AdvConfig
advConfig = AdvConfig {
    presenceOfSelfLoops :: Maybe Bool
presenceOfSelfLoops = Maybe Bool
forall a. Maybe a
Nothing,
    presenceOfSinkTransitions :: Maybe Bool
presenceOfSinkTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    presenceOfSourceTransitions :: Maybe Bool
presenceOfSourceTransitions = Maybe Bool
forall a. Maybe a
Nothing
    },
  changeConfig :: ChangeConfig
changeConfig = ChangeConfig {
    tokenChangeOverall :: Int
tokenChangeOverall = Int
2,
    maxTokenChangePerPlace :: Int
maxTokenChangePerPlace = Int
1,
    flowChangeOverall :: Int
flowChangeOverall = Int
2,
    maxFlowChangePerEdge :: Int
maxFlowChangePerEdge = Int
1
    },
  conflictConfig :: ConflictConfig
conflictConfig = ConflictConfig {
    addConflictCommonPreconditions :: Maybe Bool
addConflictCommonPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    withConflictDistractors :: Maybe Bool
withConflictDistractors = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorAddExtraPreconditions :: Maybe Bool
conflictDistractorAddExtraPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorOnlyConflictLike :: Bool
conflictDistractorOnlyConflictLike = Bool
True,
    conflictDistractorOnlyConcurrentLike :: Bool
conflictDistractorOnlyConcurrentLike = Bool
False
    },
  graphConfig :: GraphConfig
graphConfig = GraphConfig {
    graphLayouts :: [GraphvizCommand]
graphLayouts = [GraphvizCommand
Neato],
    hidePlaceNames :: Bool
hidePlaceNames = Bool
False,
    hideTransitionNames :: Bool
hideTransitionNames = Bool
False,
    hideWeight1 :: Bool
hideWeight1 = Bool
True
    },
  printSolution :: Bool
printSolution = Bool
True,
  uniqueConflictPlace :: Maybe Bool
uniqueConflictPlace = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
  alloyConfig :: AlloyConfig
alloyConfig = AlloyConfig {
    maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
    timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing
    },
  extraText :: ExtraText
extraText = ExtraText
NoExtraText
  }

{-|
points: 0.2
average generation time per instance: 31:14min
CPU usage: 104%
-}
task2024_34 :: FindConflictConfig
task2024_34 :: FindConflictConfig
task2024_34 = FindConflictConfig
task2023_24

{-|
points: 0.2
average generation time per instance: 35:16min
CPU usage: 103%
-}
task2024_35 :: FindConflictConfig
task2024_35 :: FindConflictConfig
task2024_35 = FindConflictConfig
task2023_26

{-|
points: 0.2
average generation time per instance: 35:16min
CPU usage: 103%
-}
task2024_36 :: FindConflictConfig
task2024_36 :: FindConflictConfig
task2024_36 = FindConflictConfig {
  basicConfig :: BasicConfig
basicConfig = BasicConfig {
    places :: Int
places = Int
6,
    transitions :: Int
transitions = Int
6,
    atLeastActive :: Int
atLeastActive = Int
4,
    flowOverall :: (Int, Int)
flowOverall = (Int
16, Int
18),
    maxTokensPerPlace :: Int
maxTokensPerPlace = Int
2,
    maxFlowPerEdge :: Int
maxFlowPerEdge = Int
2,
    tokensOverall :: (Int, Int)
tokensOverall = (Int
3, Int
5),
    isConnected :: Maybe Bool
isConnected = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  advConfig :: AdvConfig
advConfig = AdvConfig {
    presenceOfSelfLoops :: Maybe Bool
presenceOfSelfLoops = Maybe Bool
forall a. Maybe a
Nothing,
    presenceOfSinkTransitions :: Maybe Bool
presenceOfSinkTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    presenceOfSourceTransitions :: Maybe Bool
presenceOfSourceTransitions = Maybe Bool
forall a. Maybe a
Nothing
    },
  changeConfig :: ChangeConfig
changeConfig = ChangeConfig {
    tokenChangeOverall :: Int
tokenChangeOverall = Int
2,
    maxTokenChangePerPlace :: Int
maxTokenChangePerPlace = Int
1,
    flowChangeOverall :: Int
flowChangeOverall = Int
2,
    maxFlowChangePerEdge :: Int
maxFlowChangePerEdge = Int
1
    },
  conflictConfig :: ConflictConfig
conflictConfig = ConflictConfig {
    addConflictCommonPreconditions :: Maybe Bool
addConflictCommonPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    withConflictDistractors :: Maybe Bool
withConflictDistractors = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorAddExtraPreconditions :: Maybe Bool
conflictDistractorAddExtraPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorOnlyConflictLike :: Bool
conflictDistractorOnlyConflictLike = Bool
False,
    conflictDistractorOnlyConcurrentLike :: Bool
conflictDistractorOnlyConcurrentLike = Bool
True
    },
  graphConfig :: GraphConfig
graphConfig = GraphConfig {
    graphLayouts :: [GraphvizCommand]
graphLayouts = [GraphvizCommand
Neato],
    hidePlaceNames :: Bool
hidePlaceNames = Bool
False,
    hideTransitionNames :: Bool
hideTransitionNames = Bool
False,
    hideWeight1 :: Bool
hideWeight1 = Bool
True
    },
  printSolution :: Bool
printSolution = Bool
True,
  uniqueConflictPlace :: Maybe Bool
uniqueConflictPlace = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
  alloyConfig :: AlloyConfig
alloyConfig = AlloyConfig {
    maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
    timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing
    },
  extraText :: ExtraText
extraText = ExtraText
NoExtraText
  }

{-|
points: 0.08
average generation time per instance: 20:35min
CPU usage: 106%
-}
task2024_64 :: FindConflictConfig
task2024_64 :: FindConflictConfig
task2024_64 = FindConflictConfig {
  basicConfig :: BasicConfig
basicConfig = BasicConfig {
    places :: Int
places = Int
6,
    transitions :: Int
transitions = Int
5,
    atLeastActive :: Int
atLeastActive = Int
3,
    flowOverall :: (Int, Int)
flowOverall = (Int
14, Int
16),
    maxTokensPerPlace :: Int
maxTokensPerPlace = Int
2,
    maxFlowPerEdge :: Int
maxFlowPerEdge = Int
2,
    tokensOverall :: (Int, Int)
tokensOverall = (Int
2, Int
7),
    isConnected :: Maybe Bool
isConnected = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  advConfig :: AdvConfig
advConfig = AdvConfig {
    presenceOfSelfLoops :: Maybe Bool
presenceOfSelfLoops = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
    presenceOfSinkTransitions :: Maybe Bool
presenceOfSinkTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    presenceOfSourceTransitions :: Maybe Bool
presenceOfSourceTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
    },
  changeConfig :: ChangeConfig
changeConfig = ChangeConfig {
    tokenChangeOverall :: Int
tokenChangeOverall = Int
2,
    maxTokenChangePerPlace :: Int
maxTokenChangePerPlace = Int
1,
    flowChangeOverall :: Int
flowChangeOverall = Int
2,
    maxFlowChangePerEdge :: Int
maxFlowChangePerEdge = Int
1
    },
  conflictConfig :: ConflictConfig
conflictConfig = ConflictConfig {
    addConflictCommonPreconditions :: Maybe Bool
addConflictCommonPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    withConflictDistractors :: Maybe Bool
withConflictDistractors = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorAddExtraPreconditions :: Maybe Bool
conflictDistractorAddExtraPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
    conflictDistractorOnlyConflictLike :: Bool
conflictDistractorOnlyConflictLike = Bool
True,
    conflictDistractorOnlyConcurrentLike :: Bool
conflictDistractorOnlyConcurrentLike = Bool
False
    },
  graphConfig :: GraphConfig
graphConfig = GraphConfig {
    graphLayouts :: [GraphvizCommand]
graphLayouts = [GraphvizCommand
Neato],
    hidePlaceNames :: Bool
hidePlaceNames = Bool
False,
    hideTransitionNames :: Bool
hideTransitionNames = Bool
False,
    hideWeight1 :: Bool
hideWeight1 = Bool
True
    },
  printSolution :: Bool
printSolution = Bool
True,
  uniqueConflictPlace :: Maybe Bool
uniqueConflictPlace = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
  alloyConfig :: AlloyConfig
alloyConfig = AlloyConfig {
    maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
    timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing
    },
  extraText :: ExtraText
extraText = ExtraText
NoExtraText
  }

{-|
points: 0.08
average generation time per instance: 24:28min
CPU usage: 107%
-}
task2024_65 :: FindConflictConfig
task2024_65 :: FindConflictConfig
task2024_65 = FindConflictConfig {
  basicConfig :: BasicConfig
basicConfig = BasicConfig {
    places :: Int
places = Int
6,
    transitions :: Int
transitions = Int
5,
    atLeastActive :: Int
atLeastActive = Int
3,
    flowOverall :: (Int, Int)
flowOverall = (Int
14, Int
16),
    maxTokensPerPlace :: Int
maxTokensPerPlace = Int
2,
    maxFlowPerEdge :: Int
maxFlowPerEdge = Int
2,
    tokensOverall :: (Int, Int)
tokensOverall = (Int
2, Int
7),
    isConnected :: Maybe Bool
isConnected = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  advConfig :: AdvConfig
advConfig = AdvConfig {
    presenceOfSelfLoops :: Maybe Bool
presenceOfSelfLoops = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    presenceOfSinkTransitions :: Maybe Bool
presenceOfSinkTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    presenceOfSourceTransitions :: Maybe Bool
presenceOfSourceTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
    },
  changeConfig :: ChangeConfig
changeConfig = ChangeConfig {
    tokenChangeOverall :: Int
tokenChangeOverall = Int
2,
    maxTokenChangePerPlace :: Int
maxTokenChangePerPlace = Int
1,
    flowChangeOverall :: Int
flowChangeOverall = Int
2,
    maxFlowChangePerEdge :: Int
maxFlowChangePerEdge = Int
1
    },
  conflictConfig :: ConflictConfig
conflictConfig = ConflictConfig {
    addConflictCommonPreconditions :: Maybe Bool
addConflictCommonPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
    withConflictDistractors :: Maybe Bool
withConflictDistractors = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorAddExtraPreconditions :: Maybe Bool
conflictDistractorAddExtraPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorOnlyConflictLike :: Bool
conflictDistractorOnlyConflictLike = Bool
True,
    conflictDistractorOnlyConcurrentLike :: Bool
conflictDistractorOnlyConcurrentLike = Bool
False
    },
  graphConfig :: GraphConfig
graphConfig = GraphConfig {
    graphLayouts :: [GraphvizCommand]
graphLayouts = [GraphvizCommand
Neato],
    hidePlaceNames :: Bool
hidePlaceNames = Bool
False,
    hideTransitionNames :: Bool
hideTransitionNames = Bool
False,
    hideWeight1 :: Bool
hideWeight1 = Bool
True
    },
  printSolution :: Bool
printSolution = Bool
True,
  uniqueConflictPlace :: Maybe Bool
uniqueConflictPlace = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
  alloyConfig :: AlloyConfig
alloyConfig = AlloyConfig {
    maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
    timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing
    },
  extraText :: ExtraText
extraText = ExtraText
NoExtraText
  }

{-|
points: 0.08
average generation time per instance: 28:17min
CPU usage: 108%
-}
task2024_66 :: FindConflictConfig
task2024_66 :: FindConflictConfig
task2024_66 = FindConflictConfig {
  basicConfig :: BasicConfig
basicConfig = BasicConfig {
    places :: Int
places = Int
6,
    transitions :: Int
transitions = Int
6,
    atLeastActive :: Int
atLeastActive = Int
4,
    flowOverall :: (Int, Int)
flowOverall = (Int
16, Int
18),
    maxTokensPerPlace :: Int
maxTokensPerPlace = Int
2,
    maxFlowPerEdge :: Int
maxFlowPerEdge = Int
2,
    tokensOverall :: (Int, Int)
tokensOverall = (Int
3, Int
5),
    isConnected :: Maybe Bool
isConnected = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True
    },
  advConfig :: AdvConfig
advConfig = AdvConfig {
    presenceOfSelfLoops :: Maybe Bool
presenceOfSelfLoops = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False,
    presenceOfSinkTransitions :: Maybe Bool
presenceOfSinkTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    presenceOfSourceTransitions :: Maybe Bool
presenceOfSourceTransitions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
False
    },
  changeConfig :: ChangeConfig
changeConfig = ChangeConfig {
    tokenChangeOverall :: Int
tokenChangeOverall = Int
2,
    maxTokenChangePerPlace :: Int
maxTokenChangePerPlace = Int
1,
    flowChangeOverall :: Int
flowChangeOverall = Int
2,
    maxFlowChangePerEdge :: Int
maxFlowChangePerEdge = Int
1
    },
  conflictConfig :: ConflictConfig
conflictConfig = ConflictConfig {
    addConflictCommonPreconditions :: Maybe Bool
addConflictCommonPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    withConflictDistractors :: Maybe Bool
withConflictDistractors = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorAddExtraPreconditions :: Maybe Bool
conflictDistractorAddExtraPreconditions = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
    conflictDistractorOnlyConflictLike :: Bool
conflictDistractorOnlyConflictLike = Bool
False,
    conflictDistractorOnlyConcurrentLike :: Bool
conflictDistractorOnlyConcurrentLike = Bool
True
    },
  graphConfig :: GraphConfig
graphConfig = GraphConfig {
    graphLayouts :: [GraphvizCommand]
graphLayouts = [GraphvizCommand
Neato],
    hidePlaceNames :: Bool
hidePlaceNames = Bool
False,
    hideTransitionNames :: Bool
hideTransitionNames = Bool
False,
    hideWeight1 :: Bool
hideWeight1 = Bool
True
    },
  printSolution :: Bool
printSolution = Bool
True,
  uniqueConflictPlace :: Maybe Bool
uniqueConflictPlace = Bool -> Maybe Bool
forall a. a -> Maybe a
Just Bool
True,
  alloyConfig :: AlloyConfig
alloyConfig = AlloyConfig {
    maxInstances :: Maybe Integer
maxInstances = Integer -> Maybe Integer
forall a. a -> Maybe a
Just Integer
2000,
    timeout :: Maybe Int
timeout = Maybe Int
forall a. Maybe a
Nothing
    },
  extraText :: ExtraText
extraText = ExtraText
NoExtraText
  }