Dataset Controller
DatasetController
=================Orchestrates:
DatasetModel lifecycle (load → optional expand → seal → solve)
Streaming consumption (printer coroutine reading ProgressEvents)
View writing for final snapshots and merged artifacts (CSV + Parquet)
Determinism
When Parameters.deterministic is true
:
Runs execute sequentially (BEST → WORST → AVERAGE).
All randomness is routed through jMetal's singleton via RandomBridge.withSeed.
Expansion helpers (expandTopics, expandSystems) also use a SplittableRandom seeded via RandomBridge.childSeed for reproducible fake data.
Efficiency
A single printer coroutine consumes a back-pressured Channel of events.
Uses batched TopKReplaceBatch to avoid rewriting the TOP file multiple times per generation.
Properties
Functions
Delete a list of files on disk and remove their paths from the given list.
Expand the dataset by appending expansionCoefficient
fake systems (or revert to a prefix), across all loaded models.
Expand the dataset by appending expansionCoefficient
fake topics to all loaded models.
Load a dataset from a CSV path into one or three DatasetModels depending on targetToAchieve.
Run the experiment(s) according to parameters.targetToAchieve: