#################################################################################################################
# Simple configuration example with i) no evaluation of the final BPS model, ii) 20 iterations of control-flow  #
# discovery, iii) 10 iterations of resource model (fuzzy availability) discovery, and iv) no discovery of       #
# extraneous delays.                                                                                            #
#################################################################################################################
# - Increase the num_iterations to (potentially) improve the quality of that discovered model                   #
# - Visit 'complete_configuration.yml' example for a description of all configurable parameters                 #
#################################################################################################################
version: 5
##########
# Common #
##########
common:
  # Path to the event log in CSV format
  train_log_path: ../event_logs/LoanApp_simplified_train.csv.gz
  # Specify the name for each of the columns in the CSV file (XES standard by default)
  log_ids:
    case: "case_id"
    activity: "activity"
    resource: "resource"
    enabled_time: "enabled_time"  # If not present in the log, automatically computed
    start_time: "start_time"
    end_time: "end_time"
  # Whether to discover case attributes or not
  discover_data_attributes: false
#################
# Preprocessing #
#################
preprocessing:
  # Threshold to consider two activities as concurrent when computing the enabled time (if necessary)
  enable_time_concurrency_threshold: 0.75
################
# Control-flow #
################
control_flow:
  # Metric to guide the optimization process (loss function to minimize)
  optimization_metric: two_gram_distance
  # Number of optimization iterations over the search space
  num_iterations: 20
  # Number of times to evaluate each iteration (using the mean of all of them)
  num_evaluations_per_iteration: 3
  # Method for discovering gateway probabilities
  gateway_probabilities: discovery
  # Discover process model with SplitMiner v3
  mining_algorithm: sm1
  # Number of concurrent relations between events to be captured
  epsilon:
    - 0.05
    - 0.4
  # Threshold for filtering the incoming and outgoing edges
  eta:
    - 0.2
    - 0.7
  # Whether to replace non-trivial OR joins or not
  replace_or_joins:
    - true
    - false
  # Whether to prioritize parallelism over loops or not
  prioritize_parallelism:
    - true
    - false
##################
# Resource model #
##################
resource_model:
  # Metric to guide the optimization process (loss function to minimize)
  optimization_metric: circadian_emd
  # Number of optimization iterations over the search space
  num_iterations: 10
  # Number of times to evaluate each iteration (using the mean of all of them)
  num_evaluations_per_iteration: 3
  # Whether to discover prioritization or batching behavior
  discover_prioritization_rules: false
  discover_batching_rules: false
  # Resource profiles configuration
  resource_profiles:
    # Resource profile discovery type
    discovery_type: differentiated_fuzzy
    # Duration of each granule in the resource calendar that will get its own probability
    granularity: 60
    # Angle of the fuzzy trapezoid when computing the availability probability for an activity (angle from start to end)
    fuzzy_angle:
      - 0.1
      - 0.9
