## ----include = FALSE----------------------------------------------------------
knitr::opts_chunk$set(collapse = TRUE, comment = "#>", fig.width = 6,
                      fig.height = 4)

## ----setup--------------------------------------------------------------------
library(simOutrank)
head(illustrative_log)

## ----traces-------------------------------------------------------------------
traces <- as_traces(illustrative_log,
                    case_id = "case_id", activity = "activity",
                    timestamp = "timestamp")
traces
summary(traces)[1:5, ]

## ----criteria-----------------------------------------------------------------
criteria <- list(
  crit_activity_profile(weight = 0.2, indifference = 0.7, similarity = 0.8,
                        veto = 0.4),
  crit_edit_distance(weight = 0.2, similarity = 2, indifference = 3, veto = 6),
  crit_nominal("status", weight = 0.3),
  crit_nominal("satisfaction", weight = 0.3)
)
criteria[[1]]

## ----similarity---------------------------------------------------------------
sim <- outrank_similarity(traces, criteria)
sim
round(sim$S[1:5, 1:5], 2)

## ----eigengap-----------------------------------------------------------------
eigengap(sim, k_max = 8)

## ----cluster------------------------------------------------------------------
clust <- cluster_traces(sim, k = 4, seed = 42)
clust
split(names(clust$memberships), clust$memberships)

## ----use----------------------------------------------------------------------
augmented <- augment_log(clust, illustrative_log)
head(augmented)

plot(clust, type = "profile", attribute = "status")

if (requireNamespace("clValid", quietly = TRUE)) {
  validate_clusters(clust)
}

