コード例 #1
0
    def build_dictionaries(self, parameters):
        """
        Builds the dictionaries needed to store the information during the replay

        Parameters
        ---------------
        parameters
            Parameters:
             - Parameters.DICT_VARIANT: type of dictionary to use
             - Parameters.CASE_DICT_ID: identifier of the dictionary hosting the markings (0)
             - Parameters.MISSING_DICT_ID: identifier of the dictionary hosting the missing tokens (1)
             - Parameters.REMAINING_DICT_ID: identifier of the dictionary hosting the remaining tokens (2)
        """
        dict_variant = exec_utils.get_param_value(Parameters.DICT_VARIANT, parameters, generator.Variants.THREAD_SAFE)
        case_dict_id = exec_utils.get_param_value(Parameters.CASE_DICT_ID, parameters, 0)
        missing_dict_id = exec_utils.get_param_value(Parameters.MISSING_DICT_ID, parameters, 1)
        remaining_dict_id = exec_utils.get_param_value(Parameters.REMAINING_DICT_ID, parameters, 2)
        parameters_case_dict = copy(parameters)
        parameters_case_dict[Parameters.DICT_ID] = case_dict_id
        parameters_missing = copy(parameters)
        parameters_case_dict[Parameters.DICT_ID] = missing_dict_id
        parameters_remaining = copy(parameters)
        parameters_remaining[Parameters.DICT_ID] = remaining_dict_id
        self.case_dict = generator.apply(variant=dict_variant, parameters=parameters_case_dict)
        self.missing = generator.apply(variant=dict_variant, parameters=parameters_missing)
        self.remaining = generator.apply(variant=dict_variant, parameters=parameters_remaining)
コード例 #2
0
ファイル: classic.py プロジェクト: yoannlgd1/pm4py-core
    def build_dictionaries(self, parameters):
        """
        Builds the dictionaries needed to store the information during the replay

        Parameters
        ---------------
        parameters
            Parameters:
             - Parameters.DICT_VARIANT: type of dictionary to use
             - Parameters.CASE_DICT_ID: identifier of the dictionary hosting the last activity of a case (1)
             - Parameters.DEV_DICT_ID: identifier of the dictionary hosting the deviations (2)
        """
        dict_variant = exec_utils.get_param_value(Parameters.DICT_VARIANT,
                                                  parameters,
                                                  generator.Variants.CLASSIC)
        case_dict_id = exec_utils.get_param_value(Parameters.CASE_DICT_ID,
                                                  parameters, 0)
        dev_dict_id = exec_utils.get_param_value(Parameters.DEV_DICT_ID,
                                                 parameters, 1)
        parameters_case_dict = copy(parameters)
        parameters_case_dict[Parameters.DICT_ID] = case_dict_id
        parameters_dev_dict = copy(parameters)
        parameters_dev_dict[Parameters.DICT_ID] = dev_dict_id
        self.case_dict = generator.apply(variant=dict_variant,
                                         parameters=parameters_case_dict)
        self.dev_dict = generator.apply(variant=dict_variant,
                                        parameters=parameters_dev_dict)
コード例 #3
0
    def __init__(self,
                 temporal_profile: typing.TemporalProfile,
                 parameters: Optional[Dict[Any, Any]] = None):
        """
        Initialize the streaming conformance checking.

        Implements the approach described in:
        Stertz, Florian, Jürgen Mangler, and Stefanie Rinderle-Ma. "Temporal Conformance Checking at Runtime based on Time-infused Process Models." arXiv preprint arXiv:2008.07262 (2020).

        Parameters
        ---------------
        temporal_profile
            Temporal profile
        parameters
            Parameters of the algorithm, including:
             - Parameters.ACTIVITY_KEY => the attribute to use as activity
             - Parameters.START_TIMESTAMP_KEY => the attribute to use as start timestamp
             - Parameters.TIMESTAMP_KEY => the attribute to use as timestamp
             - Parameters.ZETA => multiplier for the standard deviation
             - Parameters.CASE_ID_KEY => column to use as case identifier
             - Parameters.DICT_VARIANT => the variant of dictionary to use
             - Parameters.CASE_DICT_ID => the identifier of the case dictionary
             - Parameters.DEV_DICT_ID => the identifier of the deviations dictionary
        """
        if parameters is None:
            parameters = {}

        self.temporal_profile = temporal_profile
        self.activity_key = exec_utils.get_param_value(
            Parameters.ACTIVITY_KEY, parameters,
            xes_constants.DEFAULT_NAME_KEY)
        self.timestamp_key = exec_utils.get_param_value(
            Parameters.TIMESTAMP_KEY, parameters,
            xes_constants.DEFAULT_TIMESTAMP_KEY)
        self.start_timestamp_key = exec_utils.get_param_value(
            Parameters.START_TIMESTAMP_KEY, parameters,
            xes_constants.DEFAULT_TIMESTAMP_KEY)
        self.case_id_key = exec_utils.get_param_value(
            Parameters.CASE_ID_KEY, parameters, constants.CASE_CONCEPT_NAME)
        self.zeta = exec_utils.get_param_value(Parameters.ZETA, parameters,
                                               6.0)
        parameters_gen = copy(parameters)
        dict_variant = exec_utils.get_param_value(
            Parameters.DICT_VARIANT, parameters,
            generator.Variants.THREAD_SAFE)
        case_dict_id = exec_utils.get_param_value(Parameters.CASE_DICT_ID,
                                                  parameters, 0)
        parameters_gen[Parameters.DICT_ID] = case_dict_id
        self.case_dictionary = generator.apply(variant=dict_variant,
                                               parameters=parameters_gen)
        parameters_dev = copy(parameters)
        dev_dict_id = exec_utils.get_param_value(Parameters.DEV_DICT_ID,
                                                 parameters, 1)
        parameters_dev[Parameters.DICT_ID] = dev_dict_id
        self.deviations_dict = generator.apply(variant=dict_variant,
                                               parameters=parameters_dev)
        StreamingAlgorithm.__init__(self)
コード例 #4
0
    def build_dictionaries(self, parameters):
        """
        Builds the dictionaries that are needed by the
        discovery operation

        Parameters
        ---------------
        parameters
            Parameters:
             - Parameters.DICT_VARIANT: type of dictionary to use
             - Parameters.CASE_DICT_ID: identifier of the case dictionary (hosting the last activity of a case) (0)
             - Parameters.DFG_DICT_ID: identifier of the DFG dictionary (1)
             - Parameters.ACT_ID: identifier of the dictionary hosting the count of the activities (2)
             - Parameters.START_ACT_DICT_ID: identifier of the dictionary hosting the count of the start activities (3)
        """
        dict_variant = exec_utils.get_param_value(
            Parameters.DICT_VARIANT, parameters,
            generator.Variants.THREAD_SAFE)
        case_dict_id = exec_utils.get_param_value(Parameters.CASE_DICT_ID,
                                                  parameters, 0)
        dfg_dict_id = exec_utils.get_param_value(Parameters.DFG_DICT_ID,
                                                 parameters, 1)
        act_dict_id = exec_utils.get_param_value(Parameters.ACT_DICT_ID,
                                                 parameters, 2)
        start_act_dict_id = exec_utils.get_param_value(
            Parameters.START_ACT_DICT_ID, parameters, 3)
        parameters_case_dict = copy(parameters)
        parameters_case_dict[Parameters.DICT_ID] = case_dict_id
        parameters_dfg = copy(parameters)
        parameters_dfg[Parameters.DICT_ID] = dfg_dict_id
        parameters_activities = copy(parameters)
        parameters_activities[Parameters.DICT_ID] = act_dict_id
        parameters_start_activities = copy(parameters)
        parameters_start_activities[Parameters.DICT_ID] = start_act_dict_id
        self.case_dict = generator.apply(variant=dict_variant,
                                         parameters=parameters_case_dict)
        self.dfg = generator.apply(variant=dict_variant,
                                   parameters=parameters_dfg)
        self.activities = generator.apply(variant=dict_variant,
                                          parameters=parameters_activities)
        self.start_activities = generator.apply(
            variant=dict_variant, parameters=parameters_start_activities)