Skip to content

feat(drt): Refactor parallel unplanned request inserter#4713

Open
steffenaxer wants to merge 11 commits intomatsim-org:mainfrom
steffenaxer:refactor-ParallelUnplannedRequestInserter
Open

feat(drt): Refactor parallel unplanned request inserter#4713
steffenaxer wants to merge 11 commits intomatsim-org:mainfrom
steffenaxer:refactor-ParallelUnplannedRequestInserter

Conversation

@steffenaxer
Copy link
Collaborator

This pull request introduces a new benchmarking framework for DRT (Demand Responsive Transport) scalability experiments in MATSim. It adds three new classes that together enable configuration, execution, and reporting of DRT benchmarks, including both timing and quality metrics. The main changes are grouped below:

Benchmarking Framework Implementation:

  • Added BenchmarkResult record to encapsulate timing and quality results for a benchmark run, including statistical summaries and extraction of DRT quality metrics from simulation output CSV files. This includes an inner record DrtQualityStats for detailed quality metrics and a static run method to execute benchmarks. (contribs/drt-extensions/src/main/java/org/matsim/contrib/drt/extension/benchmark/BenchmarkResult.java)
  • Introduced DrtBenchmarkRunner class to orchestrate multiple benchmark scenarios, handle warmup/measured runs, and generate CSV reports with both performance and quality statistics. It provides a fluent API for adding scenarios and customizing runs. (contribs/drt-extensions/src/main/java/org/matsim/contrib/drt/extension/benchmark/DrtBenchmarkRunner.java)

Configuration Enhancements:

  • Added DrtBenchmarkConfigGroup class, a MATSim ConfigGroup for configuring DRT benchmark parameters via XML or code. It supports agent/vehicle counts, partitioner strategies, parallelization settings, output directory, and other benchmark controls, with helper methods for parsing and validation. (contribs/drt-extensions/src/main/java/org/matsim/contrib/drt/extension/benchmark/DrtBenchmarkConfigGroup.java)

These additions provide a flexible, extensible foundation for running and analyzing DRT scalability benchmarks within MATSim, with support for both timing and operational quality metrics.

@steffenaxer steffenaxer changed the title core(drt): Refactor parallel unplanned request inserter feat(drt): Refactor parallel unplanned request inserter Feb 12, 2026
* @param d end of ramp-down
* @return sampled time value
*/
private double sampleTrapezoidal(double a, double b, double c, double d) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

why trapezoidal and not gaussian/something smoother?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will change this in the evening. Good idea. Thanks Mark.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants