OptimizerBatchIrace
class that implements iterated racing. Calls
irace::irace()
from package irace.
Source
Lopez-Ibanez M, Dubois-Lacoste J, Caceres LP, Birattari M, Stuetzle T (2016). “The irace package: Iterated racing for automatic algorithm configuration.” Operations Research Perspectives, 3, 43–58. doi:10.1016/j.orp.2016.09.002 .
Parameters
instances
list()
A list of instances where the configurations executed on.targetRunnerParallel
function()
A function that executes the objective function with a specific parameter configuration and instance. A default function is provided, see section "Target Runner and Instances".
For the meaning of all other parameters, see irace::defaultScenario()
. Note
that we have removed all control parameters which refer to the termination of
the algorithm. Use TerminatorEvals instead. Other terminators do not work
with OptimizerBatchIrace
.
In contrast to irace::defaultScenario()
, we set digits = 15
.
This represents double parameters with a higher precision and avoids rounding errors.
Target Runner and Instances
The irace package uses a targetRunner
script or R function to evaluate a
configuration on a particular instance. Usually it is not necessary to
specify a targetRunner
function when using OptimizerBatchIrace
. A default
function is used that forwards several configurations and instances to the
user defined objective function. As usually, the user defined function has
a xs
, xss
or xdt
parameter depending on the used Objective class.
For irace, the function needs an additional instances
parameter.
Archive
The Archive holds the following additional columns:
"race"
(integer(1)
)
Race iteration."step"
(integer(1)
)
Step number of race."instance"
(integer(1)
)
Identifies instances across races and steps."configuration"
(integer(1)
)
Identifies configurations across races and steps.
Result
The optimization result (instance$result
) is the best performing elite of
the final race. The reported performance is the average performance estimated
on all used instances.
Dictionary
This Optimizer can be instantiated via the dictionary
mlr_optimizers or with the associated sugar function opt()
:
Progress Bars
$optimize()
supports progress bars via the package progressr
combined with a Terminator. Simply wrap the function in
progressr::with_progress()
to enable them. We recommend to use package
progress as backend; enable with progressr::handlers("progress")
.
Super classes
bbotk::Optimizer
-> bbotk::OptimizerBatch
-> OptimizerBatchIrace
Examples
# runtime of the example is too long
# \donttest{
library(data.table)
search_space = domain = ps(
x1 = p_dbl(-5, 10),
x2 = p_dbl(0, 15)
)
codomain = ps(y = p_dbl(tags = "minimize"))
# branin function with noise
# the noise generates different instances of the branin function
# the noise values are passed via the `instances` parameter
fun = function(xdt, instances) {
ys = branin(xdt[["x1"]], xdt[["x2"]], noise = as.numeric(instances))
data.table(y = ys)
}
# define objective with instances as a constant
objective = ObjectiveRFunDt$new(
fun = fun,
domain = domain,
codomain = codomain,
constants = ps(instances = p_uty()))
instance = OptimInstanceBatchSingleCrit$new(
objective = objective,
search_space = search_space,
terminator = trm("evals", n_evals = 96))
# create instances of branin function
instances = rnorm(10, mean = 0, sd = 0.1)
# load optimizer irace and set branin instances
optimizer = opt("irace", instances = instances)
# modifies the instance by reference
optimizer$optimize(instance)
#> # 2024-12-18 10:05:04 UTC: Initialization
#> # Elitist race
#> # Elitist new instances: 1
#> # Elitist limit: 2
#> # nbIterations: 3
#> # minNbSurvival: 3
#> # nbParameters: 2
#> # seed: 2011091433
#> # confidence level: 0.95
#> # budget: 96
#> # mu: 5
#> # deterministic: FALSE
#>
#> # 2024-12-18 10:05:05 UTC: Iteration 1 of 3
#> # experimentsUsedSoFar: 0
#> # remainingBudget: 96
#> # currentBudget: 32
#> # nbConfigurations: 5
#> # Markers:
#> x No test is performed.
#> c Configurations are discarded only due to capping.
#> - The test is performed and some configurations are discarded.
#> = The test is performed but no configuration is discarded.
#> ! The test is performed and configurations could be discarded but elite configurations are preserved.
#> . All alive configurations are elite and nothing is discarded.
#>
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> | | Instance| Alive| Best| Mean best| Exp so far| W time| rho|KenW| Qvar|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> |x| 1| 5| 2| 16.54517279| 5|00:00:00| NA| NA| NA|
#> |x| 2| 5| 2| 16.54517279| 10|00:00:00|+1.00|1.00|0.0000|
#> |x| 3| 5| 2| 16.54517279| 15|00:00:00|+1.00|1.00|0.0000|
#> |x| 4| 5| 2| 16.54517279| 20|00:00:00|+1.00|1.00|0.0000|
#> |-| 5| 1| 2| 16.54517279| 25|00:00:00| NA| NA| NA|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> Best-so-far configuration: 2 mean value: 16.54517279
#> Description of the best-so-far configuration:
#> .ID. x1 x2 .PARENT.
#> 2 2 7.21608519554138 2.15154692530632 NA
#>
#> # 2024-12-18 10:05:05 UTC: Elite configurations (first number is the configuration ID; listed from best to worst according to the sum of ranks):
#> x1 x2
#> 2 7.21608519554138 2.15154692530632
#> # 2024-12-18 10:05:06 UTC: Iteration 2 of 3
#> # experimentsUsedSoFar: 25
#> # remainingBudget: 71
#> # currentBudget: 35
#> # nbConfigurations: 5
#> # Markers:
#> x No test is performed.
#> c Configurations are discarded only due to capping.
#> - The test is performed and some configurations are discarded.
#> = The test is performed but no configuration is discarded.
#> ! The test is performed and configurations could be discarded but elite configurations are preserved.
#> . All alive configurations are elite and nothing is discarded.
#>
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> | | Instance| Alive| Best| Mean best| Exp so far| W time| rho|KenW| Qvar|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> |x| 6| 5| 6| 4.104613811| 5|00:00:00| NA| NA| NA|
#> |x| 5| 5| 6| 4.104613811| 9|00:00:00|+1.00|1.00|0.0000|
#> |x| 1| 5| 6| 4.104613811| 13|00:00:00|+1.00|1.00|0.0000|
#> |x| 2| 5| 6| 4.104613811| 17|00:00:00|+1.00|1.00|0.0000|
#> |-| 3| 2| 6| 4.104613811| 21|00:00:00|+1.00|1.00|0.0000|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> Best configuration for the instances in this race: 6
#> Best-so-far configuration: 2 mean value: 16.54517279
#> Description of the best-so-far configuration:
#> .ID. x1 x2 .PARENT.
#> 2 2 7.21608519554138 2.15154692530632 NA
#>
#> # 2024-12-18 10:05:06 UTC: Elite configurations (first number is the configuration ID; listed from best to worst according to the sum of ranks):
#> x1 x2
#> 2 7.21608519554138 2.151546925306320
#> 6 9.12606399995485 0.423063351400879
#> # 2024-12-18 10:05:06 UTC: Iteration 3 of 3
#> # experimentsUsedSoFar: 46
#> # remainingBudget: 50
#> # currentBudget: 50
#> # nbConfigurations: 7
#> # Markers:
#> x No test is performed.
#> c Configurations are discarded only due to capping.
#> - The test is performed and some configurations are discarded.
#> = The test is performed but no configuration is discarded.
#> ! The test is performed and configurations could be discarded but elite configurations are preserved.
#> . All alive configurations are elite and nothing is discarded.
#>
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> | | Instance| Alive| Best| Mean best| Exp so far| W time| rho|KenW| Qvar|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> |x| 7| 7| 11| 0.7360248612| 7|00:00:00| NA| NA| NA|
#> |x| 2| 7| 11| 0.7360248612| 12|00:00:00|+1.00|1.00|0.0000|
#> |x| 6| 7| 11| 0.7360248612| 17|00:00:00|+1.00|1.00|0.0000|
#> |x| 1| 7| 11| 0.7360248612| 22|00:00:00|+1.00|1.00|0.0000|
#> |-| 5| 3| 11| 0.7360248612| 27|00:00:00|+1.00|1.00|0.0000|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> Best configuration for the instances in this race: 11
#> Best-so-far configuration: 2 mean value: 16.54517279
#> Description of the best-so-far configuration:
#> .ID. x1 x2 .PARENT.
#> 2 2 7.21608519554138 2.15154692530632 NA
#>
#> # 2024-12-18 10:05:07 UTC: Elite configurations (first number is the configuration ID; listed from best to worst according to the sum of ranks):
#> x1 x2
#> 2 7.21608519554138 2.151546925306320
#> 6 9.12606399995485 0.423063351400879
#> 11 9.26569520132867 1.878363370490038
#> # 2024-12-18 10:05:07 UTC: Iteration 4 of 4
#> # experimentsUsedSoFar: 73
#> # remainingBudget: 23
#> # currentBudget: 23
#> # nbConfigurations: 4
#> # Markers:
#> x No test is performed.
#> c Configurations are discarded only due to capping.
#> - The test is performed and some configurations are discarded.
#> = The test is performed but no configuration is discarded.
#> ! The test is performed and configurations could be discarded but elite configurations are preserved.
#> . All alive configurations are elite and nothing is discarded.
#>
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> | | Instance| Alive| Best| Mean best| Exp so far| W time| rho|KenW| Qvar|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> |x| 8| 4| 11| 0.7360248612| 4|00:00:00| NA| NA| NA|
#> |x| 7| 4| 11| 0.7360248612| 5|00:00:00|+1.00|1.00|0.0000|
#> |x| 6| 4| 11| 0.7360248612| 6|00:00:00|+1.00|1.00|0.0000|
#> |x| 4| 4| 11| 0.7360248612| 9|00:00:00|+1.00|1.00|0.0000|
#> |-| 5| 3| 11| 0.7360248612| 10|00:00:00|+1.00|1.00|0.0000|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> Best configuration for the instances in this race: 11
#> Best-so-far configuration: 6 mean value: 4.104613811
#> Description of the best-so-far configuration:
#> .ID. x1 x2 .PARENT.
#> 6 6 9.12606399995485 0.423063351400879 2
#>
#> # 2024-12-18 10:05:07 UTC: Elite configurations (first number is the configuration ID; listed from best to worst according to the sum of ranks):
#> x1 x2
#> 6 9.12606399995485 0.423063351400879
#> 2 7.21608519554138 2.151546925306320
#> 11 9.26569520132867 1.878363370490038
#> # 2024-12-18 10:05:08 UTC: Iteration 5 of 5
#> # experimentsUsedSoFar: 83
#> # remainingBudget: 13
#> # currentBudget: 13
#> # nbConfigurations: 4
#> # Markers:
#> x No test is performed.
#> c Configurations are discarded only due to capping.
#> - The test is performed and some configurations are discarded.
#> = The test is performed but no configuration is discarded.
#> ! The test is performed and configurations could be discarded but elite configurations are preserved.
#> . All alive configurations are elite and nothing is discarded.
#>
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> | | Instance| Alive| Best| Mean best| Exp so far| W time| rho|KenW| Qvar|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> |x| 7| 4| 11| 0.7360248612| 1|00:00:00| NA| NA| NA|
#> |x| 3| 4| 11| 0.7360248612| 3|00:00:00|+1.00|1.00|0.0000|
#> |x| 5| 4| 11| 0.7360248612| 4|00:00:00|+1.00|1.00|0.0000|
#> |x| 6| 4| 11| 0.7360248612| 5|00:00:00|+1.00|1.00|0.0000|
#> |-| 2| 3| 11| 0.7360248612| 6|00:00:00|+1.00|1.00|0.0000|
#> |.| 4| 3| 11| 0.7360248612| 6|00:00:00|+1.00|1.00|0.0000|
#> |.| 8| 3| 11| 0.7360248612| 6|00:00:00|+1.00|1.00|0.0000|
#> |.| 1| 3| 11| 0.7360248612| 6|00:00:00|+1.00|1.00|0.0000|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> Best-so-far configuration: 11 mean value: 0.7360248612
#> Description of the best-so-far configuration:
#> .ID. x1 x2 .PARENT.
#> 11 11 9.26569520132867 1.87836337049004 6
#>
#> # 2024-12-18 10:05:08 UTC: Elite configurations (first number is the configuration ID; listed from best to worst according to the sum of ranks):
#> x1 x2
#> 11 9.26569520132867 1.878363370490038
#> 6 9.12606399995485 0.423063351400879
#> 2 7.21608519554138 2.151546925306320
#> # 2024-12-18 10:05:08 UTC: Stopped because there is not enough budget left to race more than the minimum (3).
#> # You may either increase the budget or set 'minNbSurvival' to a lower value.
#> # Iteration: 6
#> # nbIterations: 6
#> # experimentsUsedSoFar: 89
#> # timeUsed: 0
#> # remainingBudget: 7
#> # currentBudget: 7
#> # number of elites: 3
#> # nbConfigurations: 3
#> # Total CPU user time: 4.22, CPU sys time: 0.036, Wall-clock time: 4.256
#> # 2024-12-18 10:05:09 UTC: Starting post-selection:
#> # Configurations selected: 11, 6, 2, 1.
#> # Pending instances: 0, 0, 0, 3.
#> # Seed: 2011091433
#> # Configurations: 4
#> # Available experiments: 7
#> # minSurvival: 1
#> # Markers:
#> x No test is performed.
#> c Configurations are discarded only due to capping.
#> - The test is performed and some configurations are discarded.
#> = The test is performed but no configuration is discarded.
#> ! The test is performed and configurations could be discarded but elite configurations are preserved.
#> . All alive configurations are elite and nothing is discarded.
#>
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> | | Instance| Alive| Best| Mean best| Exp so far| W time| rho|KenW| Qvar|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> |x| 7| 4| 11| 0.7360248612| 1|00:00:00| NA| NA| NA|
#> |.| 2| 4| 11| 0.7360248612| 1|00:00:00|+1.00|1.00|0.0000|
#> |.| 4| 4| 11| 0.7360248612| 1|00:00:00|+1.00|1.00|0.0000|
#> |x| 6| 4| 11| 0.7360248612| 2|00:00:00|+1.00|1.00|0.0000|
#> |!| 8| 4| 11| 0.7360248612| 3|00:00:00|+1.00|1.00|0.0000|
#> |.| 5| 4| 11| 0.7360248612| 3|00:00:00|+1.00|1.00|0.0000|
#> |.| 1| 4| 11| 0.7360248612| 3|00:00:00|+1.00|1.00|0.0000|
#> |.| 3| 4| 11| 0.7360248612| 3|00:00:00|+1.00|1.00|0.0000|
#> |-| 9| 1| 11| 0.7360248612| 7|00:00:00| NA| NA| NA|
#> +-+-----------+-----------+-----------+----------------+-----------+--------+-----+----+------+
#> Best-so-far configuration: 11 mean value: 0.7360248612
#> Description of the best-so-far configuration:
#> .ID. x1 x2 .PARENT.
#> 11 11 9.26569520132867 1.87836337049004 6
#>
#> # 2024-12-18 10:05:09 UTC: Elite configurations (first number is the configuration ID; listed from best to worst according to the sum of ranks):
#> x1 x2
#> 11 9.26569520132867 1.87836337049004
#> # Total CPU user time: 4.563, CPU sys time: 0.036, Wall-clock time: 4.599
#> x1 x2 configuration x_domain y
#> <num> <num> <int> <list> <num>
#> 1: 9.265695 1.878363 11 <list[2]> 0.7360249
# best scoring configuration
instance$result
#> x1 x2 configuration x_domain y
#> <num> <num> <int> <list> <num>
#> 1: 9.265695 1.878363 11 <list[2]> 0.7360249
# all evaluations
as.data.table(instance$archive)
#> x1 x2 y race step instance configuration
#> <num> <num> <num> <int> <int> <int> <int>
#> 1: -0.2839148 9.6515465 29.3891389 1 1 2 1
#> 2: 7.2160852 2.1515469 16.5451728 1 1 2 2
#> 3: -4.0339147 5.9015469 78.2914784 1 1 2 3
#> 4: 3.4660852 13.4015465 130.0850078 1 1 2 4
#> 5: 5.3410852 4.0265469 23.7231778 1 1 2 5
#> 6: -0.2839148 9.6515465 29.3891389 1 1 10 1
#> 7: 7.2160852 2.1515469 16.5451728 1 1 10 2
#> 8: -4.0339147 5.9015469 78.2914784 1 1 10 3
#> 9: 3.4660852 13.4015465 130.0850078 1 1 10 4
#> 10: 5.3410852 4.0265469 23.7231778 1 1 10 5
#> 11: -0.2839148 9.6515465 29.3891389 1 1 4 1
#> 12: 7.2160852 2.1515469 16.5451728 1 1 4 2
#> 13: -4.0339147 5.9015469 78.2914784 1 1 4 3
#> 14: 3.4660852 13.4015465 130.0850078 1 1 4 4
#> 15: 5.3410852 4.0265469 23.7231778 1 1 4 5
#> 16: -0.2839148 9.6515465 29.3891389 1 1 9 1
#> 17: 7.2160852 2.1515469 16.5451728 1 1 9 2
#> 18: -4.0339147 5.9015469 78.2914784 1 1 9 3
#> 19: 3.4660852 13.4015465 130.0850078 1 1 9 4
#> 20: 5.3410852 4.0265469 23.7231778 1 1 9 5
#> 21: -0.2839148 9.6515465 29.3891389 1 1 8 1
#> 22: 7.2160852 2.1515469 16.5451728 1 1 8 2
#> 23: -4.0339147 5.9015469 78.2914784 1 1 8 3
#> 24: 3.4660852 13.4015465 130.0850078 1 1 8 4
#> 25: 5.3410852 4.0265469 23.7231778 1 1 8 5
#> 26: 7.2160852 2.1515469 16.5451728 2 1 3 2
#> 27: 9.1260640 0.4230634 4.1046138 2 1 3 6
#> 28: 9.9814309 1.0175448 5.7167544 2 1 3 7
#> 29: 5.0076254 3.9627674 20.0471055 2 1 3 8
#> 30: 7.2773650 2.7089999 17.3365236 2 1 3 9
#> 31: 9.1260640 0.4230634 4.1046138 2 1 8 6
#> 32: 9.9814309 1.0175448 5.7167544 2 1 8 7
#> 33: 5.0076254 3.9627674 20.0471055 2 1 8 8
#> 34: 7.2773650 2.7089999 17.3365236 2 1 8 9
#> 35: 9.1260640 0.4230634 4.1046138 2 1 2 6
#> 36: 9.9814309 1.0175448 5.7167544 2 1 2 7
#> 37: 5.0076254 3.9627674 20.0471055 2 1 2 8
#> 38: 7.2773650 2.7089999 17.3365236 2 1 2 9
#> 39: 9.1260640 0.4230634 4.1046138 2 1 10 6
#> 40: 9.9814309 1.0175448 5.7167544 2 1 10 7
#> 41: 5.0076254 3.9627674 20.0471055 2 1 10 8
#> 42: 7.2773650 2.7089999 17.3365236 2 1 10 9
#> 43: 9.1260640 0.4230634 4.1046138 2 1 4 6
#> 44: 9.9814309 1.0175448 5.7167544 2 1 4 7
#> 45: 5.0076254 3.9627674 20.0471055 2 1 4 8
#> 46: 7.2773650 2.7089999 17.3365236 2 1 4 9
#> 47: 7.2160852 2.1515469 16.5451728 3 1 6 2
#> 48: 9.1260640 0.4230634 4.1046138 3 1 6 6
#> 49: 8.6697676 1.2913234 3.3920805 3 1 6 10
#> 50: 9.2656952 1.8783634 0.7360249 3 1 6 11
#> 51: 8.7304678 0.8102927 3.9234273 3 1 6 12
#> 52: 8.1051079 0.7415683 8.3283539 3 1 6 13
#> 53: 6.3181451 0.3029009 20.2336398 3 1 6 14
#> 54: 8.6697676 1.2913234 3.3920805 3 1 10 10
#> 55: 9.2656952 1.8783634 0.7360249 3 1 10 11
#> 56: 8.7304678 0.8102927 3.9234273 3 1 10 12
#> 57: 8.1051079 0.7415683 8.3283539 3 1 10 13
#> 58: 6.3181451 0.3029009 20.2336398 3 1 10 14
#> 59: 8.6697676 1.2913234 3.3920805 3 1 3 10
#> 60: 9.2656952 1.8783634 0.7360249 3 1 3 11
#> 61: 8.7304678 0.8102927 3.9234273 3 1 3 12
#> 62: 8.1051079 0.7415683 8.3283539 3 1 3 13
#> 63: 6.3181451 0.3029009 20.2336398 3 1 3 14
#> 64: 8.6697676 1.2913234 3.3920805 3 1 2 10
#> 65: 9.2656952 1.8783634 0.7360249 3 1 2 11
#> 66: 8.7304678 0.8102927 3.9234273 3 1 2 12
#> 67: 8.1051079 0.7415683 8.3283539 3 1 2 13
#> 68: 6.3181451 0.3029009 20.2336398 3 1 2 14
#> 69: 8.6697676 1.2913234 3.3920805 3 1 8 10
#> 70: 9.2656952 1.8783634 0.7360249 3 1 8 11
#> 71: 8.7304678 0.8102927 3.9234273 3 1 8 12
#> 72: 8.1051079 0.7415683 8.3283539 3 1 8 13
#> 73: 6.3181451 0.3029009 20.2336398 3 1 8 14
#> 74: 7.2160852 2.1515469 16.5451728 4 1 7 2
#> 75: 9.1260640 0.4230634 4.1046138 4 1 7 6
#> 76: 9.2656952 1.8783634 0.7360249 4 1 7 11
#> 77: 6.8101530 0.5622976 18.6479655 4 1 7 15
#> 78: 6.8101530 0.5622976 18.6479655 4 1 6 15
#> 79: 6.8101530 0.5622976 18.6479655 4 1 3 15
#> 80: 9.1260640 0.4230634 4.1046138 4 1 9 6
#> 81: 9.2656952 1.8783634 0.7360249 4 1 9 11
#> 82: 6.8101530 0.5622976 18.6479655 4 1 9 15
#> 83: 6.8101530 0.5622976 18.6479655 4 1 8 15
#> 84: 6.2504068 3.4957169 25.3407491 5 1 6 16
#> 85: 9.2656952 1.8783634 0.7360249 5 1 4 11
#> 86: 6.2504068 3.4957169 25.3407491 5 1 4 16
#> 87: 6.2504068 3.4957169 25.3407491 5 1 8 16
#> 88: 6.2504068 3.4957169 25.3407491 5 1 3 16
#> 89: 6.2504068 3.4957169 25.3407491 5 1 10 16
#> 90: -0.2839148 9.6515465 29.3891389 6 1 6 1
#> 91: -0.2839148 9.6515465 29.3891389 6 1 3 1
#> 92: -0.2839148 9.6515465 29.3891389 6 1 7 1
#> 93: -0.2839148 9.6515465 29.3891389 6 1 5 1
#> 94: 7.2160852 2.1515469 16.5451728 6 1 5 2
#> 95: 9.1260640 0.4230634 4.1046138 6 1 5 6
#> 96: 9.2656952 1.8783634 0.7360249 6 1 5 11
#> x1 x2 y race step instance configuration
#> timestamp batch_nr
#> <POSc> <int>
#> 1: 2024-12-18 10:05:05 1
#> 2: 2024-12-18 10:05:05 1
#> 3: 2024-12-18 10:05:05 1
#> 4: 2024-12-18 10:05:05 1
#> 5: 2024-12-18 10:05:05 1
#> 6: 2024-12-18 10:05:05 2
#> 7: 2024-12-18 10:05:05 2
#> 8: 2024-12-18 10:05:05 2
#> 9: 2024-12-18 10:05:05 2
#> 10: 2024-12-18 10:05:05 2
#> 11: 2024-12-18 10:05:05 3
#> 12: 2024-12-18 10:05:05 3
#> 13: 2024-12-18 10:05:05 3
#> 14: 2024-12-18 10:05:05 3
#> 15: 2024-12-18 10:05:05 3
#> 16: 2024-12-18 10:05:05 4
#> 17: 2024-12-18 10:05:05 4
#> 18: 2024-12-18 10:05:05 4
#> 19: 2024-12-18 10:05:05 4
#> 20: 2024-12-18 10:05:05 4
#> 21: 2024-12-18 10:05:05 5
#> 22: 2024-12-18 10:05:05 5
#> 23: 2024-12-18 10:05:05 5
#> 24: 2024-12-18 10:05:05 5
#> 25: 2024-12-18 10:05:05 5
#> 26: 2024-12-18 10:05:06 6
#> 27: 2024-12-18 10:05:06 6
#> 28: 2024-12-18 10:05:06 6
#> 29: 2024-12-18 10:05:06 6
#> 30: 2024-12-18 10:05:06 6
#> 31: 2024-12-18 10:05:06 7
#> 32: 2024-12-18 10:05:06 7
#> 33: 2024-12-18 10:05:06 7
#> 34: 2024-12-18 10:05:06 7
#> 35: 2024-12-18 10:05:06 8
#> 36: 2024-12-18 10:05:06 8
#> 37: 2024-12-18 10:05:06 8
#> 38: 2024-12-18 10:05:06 8
#> 39: 2024-12-18 10:05:06 9
#> 40: 2024-12-18 10:05:06 9
#> 41: 2024-12-18 10:05:06 9
#> 42: 2024-12-18 10:05:06 9
#> 43: 2024-12-18 10:05:06 10
#> 44: 2024-12-18 10:05:06 10
#> 45: 2024-12-18 10:05:06 10
#> 46: 2024-12-18 10:05:06 10
#> 47: 2024-12-18 10:05:06 11
#> 48: 2024-12-18 10:05:06 11
#> 49: 2024-12-18 10:05:06 11
#> 50: 2024-12-18 10:05:06 11
#> 51: 2024-12-18 10:05:06 11
#> 52: 2024-12-18 10:05:06 11
#> 53: 2024-12-18 10:05:06 11
#> 54: 2024-12-18 10:05:06 12
#> 55: 2024-12-18 10:05:06 12
#> 56: 2024-12-18 10:05:06 12
#> 57: 2024-12-18 10:05:06 12
#> 58: 2024-12-18 10:05:06 12
#> 59: 2024-12-18 10:05:06 13
#> 60: 2024-12-18 10:05:06 13
#> 61: 2024-12-18 10:05:06 13
#> 62: 2024-12-18 10:05:06 13
#> 63: 2024-12-18 10:05:06 13
#> 64: 2024-12-18 10:05:06 14
#> 65: 2024-12-18 10:05:06 14
#> 66: 2024-12-18 10:05:06 14
#> 67: 2024-12-18 10:05:06 14
#> 68: 2024-12-18 10:05:06 14
#> 69: 2024-12-18 10:05:07 15
#> 70: 2024-12-18 10:05:07 15
#> 71: 2024-12-18 10:05:07 15
#> 72: 2024-12-18 10:05:07 15
#> 73: 2024-12-18 10:05:07 15
#> 74: 2024-12-18 10:05:07 16
#> 75: 2024-12-18 10:05:07 16
#> 76: 2024-12-18 10:05:07 16
#> 77: 2024-12-18 10:05:07 16
#> 78: 2024-12-18 10:05:07 17
#> 79: 2024-12-18 10:05:07 18
#> 80: 2024-12-18 10:05:07 19
#> 81: 2024-12-18 10:05:07 19
#> 82: 2024-12-18 10:05:07 19
#> 83: 2024-12-18 10:05:07 20
#> 84: 2024-12-18 10:05:08 21
#> 85: 2024-12-18 10:05:08 22
#> 86: 2024-12-18 10:05:08 22
#> 87: 2024-12-18 10:05:08 23
#> 88: 2024-12-18 10:05:08 24
#> 89: 2024-12-18 10:05:08 25
#> 90: 2024-12-18 10:05:09 26
#> 91: 2024-12-18 10:05:09 27
#> 92: 2024-12-18 10:05:09 28
#> 93: 2024-12-18 10:05:09 29
#> 94: 2024-12-18 10:05:09 29
#> 95: 2024-12-18 10:05:09 29
#> 96: 2024-12-18 10:05:09 29
#> timestamp batch_nr
# }