Commit 7936c8f
feat(core): Implement customizable, time dependend CH router (#4859)
* feat(router): implement customizable CCH router with CATCHUp extension for time-dependent routing
* feat(router): Add time-dependent CATCHUp bidirectional CH router (SpeedyCH) (#48)
* build(deps): bump the all-dependencies group across 1 directory with 3 updates (#4845)
Bumps the all-dependencies group with 3 updates in the / directory: [org.codehaus.woodstox:stax2-api](https://github.com/FasterXML/stax2-api), [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) and software.amazon.awssdk:bom.
Updates `org.codehaus.woodstox:stax2-api` from 4.2.2 to 4.3.0
- [Commits](FasterXML/stax2-api@stax2-api-4.2.2...stax2-api-4.3.0)
Updates `net.bytebuddy:byte-buddy` from 1.18.7 to 1.18.8
- [Release notes](https://github.com/raphw/byte-buddy/releases)
- [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md)
- [Commits](raphw/byte-buddy@byte-buddy-1.18.7...byte-buddy-1.18.8)
Updates `software.amazon.awssdk:bom` from 2.42.23 to 2.42.25
---
updated-dependencies:
- dependency-name: org.codehaus.woodstox:stax2-api
dependency-version: 4.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all-dependencies
- dependency-name: net.bytebuddy:byte-buddy
dependency-version: 1.18.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: all-dependencies
- dependency-name: software.amazon.awssdk:bom
dependency-version: 2.42.25
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(drt): Compute sharing metrics per DRT mode (#4844)
* feat(drt): Enable SpeedyCH time-dependent router for DRT insertion search (#49)
* feat(router): add build statistics tracking for CH contraction process
* feat(benchmark): enhance DRT benchmark with request inserter types and insertion search strategies
* fix(dvrp): fix ArrayIndexOutOfBoundsException in CHRouter + OneToManyPathCalculator (#50)
* feat(benchmark): update insertion search strategy to RepeatedSelective
* fix test
* fix(router): Make CH router fully deterministic (#51)
* feat(router): Add time-dependent CATCHUp bidirectional CH router (SpeedyCH) (#48)
* build(deps): bump the all-dependencies group across 1 directory with 3 updates (#4845)
Bumps the all-dependencies group with 3 updates in the / directory: [org.codehaus.woodstox:stax2-api](https://github.com/FasterXML/stax2-api), [net.bytebuddy:byte-buddy](https://github.com/raphw/byte-buddy) and software.amazon.awssdk:bom.
Updates `org.codehaus.woodstox:stax2-api` from 4.2.2 to 4.3.0
- [Commits](FasterXML/stax2-api@stax2-api-4.2.2...stax2-api-4.3.0)
Updates `net.bytebuddy:byte-buddy` from 1.18.7 to 1.18.8
- [Release notes](https://github.com/raphw/byte-buddy/releases)
- [Changelog](https://github.com/raphw/byte-buddy/blob/master/release-notes.md)
- [Commits](raphw/byte-buddy@byte-buddy-1.18.7...byte-buddy-1.18.8)
Updates `software.amazon.awssdk:bom` from 2.42.23 to 2.42.25
---
updated-dependencies:
- dependency-name: org.codehaus.woodstox:stax2-api
dependency-version: 4.3.0
dependency-type: direct:production
update-type: version-update:semver-minor
dependency-group: all-dependencies
- dependency-name: net.bytebuddy:byte-buddy
dependency-version: 1.18.8
dependency-type: direct:development
update-type: version-update:semver-patch
dependency-group: all-dependencies
- dependency-name: software.amazon.awssdk:bom
dependency-version: 2.42.25
dependency-type: direct:production
update-type: version-update:semver-patch
dependency-group: all-dependencies
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* fix(drt): Compute sharing metrics per DRT mode (#4844)
* feat(drt): Enable SpeedyCH time-dependent router for DRT insertion search (#49)
* feat(router): add build statistics tracking for CH contraction process
* feat(benchmark): enhance DRT benchmark with request inserter types and insertion search strategies
* fix(dvrp): fix ArrayIndexOutOfBoundsException in CHRouter + OneToManyPathCalculator (#50)
* feat(benchmark): update insertion search strategy to RepeatedSelective
* fix test
* fix: translate colored node indices through spatial reorder mapping and fix tests
- Add SpeedyGraph.getInternalIndex(int) for raw external index translation
- Fix LeastCostPathTree colored node index in forward/backward search
- Fix SpeedyDijkstra, SpeedyALT, CHRouter, CHRouterTimeDep colored node indices
- Fix SpeedyMultiSourceALT to use graph.getNodeIndex() instead of node.getId().index()
- Fix LeastCostPathTreeTurnRestrictionsTest to use tree.getNodeIndex()
- Update ReRoutingIT CH test: verify simulation succeeds instead of golden reference
(CH construction is non-deterministic with spatial node ordering)
Agent-Logs-Url: https://github.com/steffenaxer/matsim-libs/sessions/934c5dff-2a0c-4f13-9449-51662b958f4e
Co-authored-by: steffenaxer <26229392+steffenaxer@users.noreply.github.com>
* fix: deterministic Morton code tie-breaking and restore ReRoutingIT CH golden reference test
Agent-Logs-Url: https://github.com/steffenaxer/matsim-libs/sessions/934c5dff-2a0c-4f13-9449-51662b958f4e
Co-authored-by: steffenaxer <26229392+steffenaxer@users.noreply.github.com>
* fix: make CH router fully deterministic and regenerate golden reference
Two sources of non-determinism fixed:
1. InertialFlowCutter: Replace shared AtomicInteger levelCounter in
parallel recursion with a two-phase approach: Phase 1 builds a
deterministic NDCell tree (parallel), Phase 2 assigns levels via
sequential depth-first walk.
2. CHBuilder: Disable parallel contraction (pool=null) because cells
in the same round share adjacency structures — shortcuts from one
cell can affect another cell's witness search, creating different
shortcut sets per run. Additionally, sort each node's CSR edges by
(neighborNode, origLink) in buildCHGraph() for deterministic edge
iteration order.
Verified deterministic across multiple runs:
- ReRoutingIT: 4/4 pass (3 consecutive runs identical)
- CH/Speedy tests: 81/81 pass
- dvrp tests: 79/79 pass
Agent-Logs-Url: https://github.com/steffenaxer/matsim-libs/sessions/ea70a0e9-8db0-4344-99a7-1895ad33d191
Co-authored-by: steffenaxer <26229392+steffenaxer@users.noreply.github.com>
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: steffenaxer <26229392+steffenaxer@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Samuel Hönle <samuel.hoenle@ait.ac.at>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* feat(router): optimize subgraph refinement thresholds and enhance logging for benchmarks
* fix(test)
* feat(router): Improve CHRouter
* Update plans_CH.xml.gz to match
* fix(SpeedyGraphBuilder): scope Z-order node reordering to CHRouter only (#52)
* feat(router): set default locale to US for consistent number formatting in benchmarks
* feat(router): enhance CHBuilder to support configurable thread count for parallel contraction
* fix(CHRouterFactory): add no-arg constructor for backward compatibility (#53)
The CHRouterFactory constructor was changed to require GlobalConfigGroup,
but SingleInsertionDetourPathCalculator uses a no-arg new CHRouterFactory().
This broke compilation of drt and all its dependents (taxi,
commercialTrafficApplications, accessibility, integration, av, vsp,
simwrapper).
Add a no-arg constructor that delegates to the injected constructor with
default GlobalConfigGroup (nThreads=2), preserving backward compatibility.
Agent-Logs-Url: https://github.com/steffenaxer/matsim-libs/sessions/a7a83643-0bb5-4cff-8f3b-6193cd701ab6
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: steffenaxer <26229392+steffenaxer@users.noreply.github.com>
* fix: revert SpeedyALTData.java to upstream/main (NodeMinHeap) for retrofit compatibility
Agent-Logs-Url: https://github.com/steffenaxer/matsim-libs/sessions/e1a1e82f-b09c-41cd-9319-42406ce7ec6d
Co-authored-by: steffenaxer <26229392+steffenaxer@users.noreply.github.com>
* fix: restore test reference files from upstream/main after SpeedyALTData revert
Agent-Logs-Url: https://github.com/steffenaxer/matsim-libs/sessions/cf1afc12-dd97-4e8d-9e31-f35d2246886f
Co-authored-by: steffenaxer <26229392+steffenaxer@users.noreply.github.com>
* refactor(benchmark): move RouterBenchmark to benchmark module
* refactor(benchmark): move RouterBenchmark (real-network, CH+ALT) to benchmark module
- Replace synthetic-grid version with the real RouterBenchmark from speedy package
- Make SpeedyALTData public, add CHGraph.getTotalEdgeCount() and SpeedyGraph.getNodeCount()
- Use SpeedyGraphBuilder.buildWithSpatialOrdering() instead of deprecated build()
* Add some more stats
* Fix SpeedyALTData
* refactor: update routing algorithm configuration and remove deprecated methods
* refactor: enhance OD pair generation with new modes and statistics
* Refactor InertialFlowCutter
* Update config
* refactor: improve CHRouter test suite and enhance turn restriction handling
* refactor: enhance CHRouter with turn restriction handling and add static test suite
* Delete dev. code
* fix: update reference file to check determinism
---------
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Samuel Hönle <samuel.hoenle@ait.ac.at>
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>1 parent 1ca2324 commit 7936c8f
64 files changed
Lines changed: 13282 additions & 305 deletions
File tree
- benchmark/src/main/java/org/matsim/benchmark
- contribs
- drt-extensions/src/main
- java/org/matsim/contrib/drt/extension/benchmark
- scenario
- resources
- drt/src
- main/java/org/matsim/contrib/drt
- optimizer/insertion
- extensive
- repeatedselective
- selective
- run
- test/java/org/matsim/contrib/drt/optimizer/insertion/extensive
- dvrp/src
- main/java/org/matsim
- contrib
- dvrp/path
- zone/skims
- core/router/speedy
- test/java/org/matsim/contrib/dvrp/path
- freight/test/input/org/matsim/freight/carriers/CarrierPlanXmlWriterV2_1Test
- sbb-extensions/src/main/java/ch/sbb/matsim/analysis/skims
- matsim
- src
- main/java/org/matsim/core
- config
- consistency
- groups
- router
- speedy
- test/java/org/matsim
- core/router
- speedy
- integration/replanning
- test/input/org/matsim/integration/replanning/ReRoutingIT
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Lines changed: 641 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 172 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
26 | 27 | | |
27 | 28 | | |
28 | 29 | | |
| 30 | + | |
| 31 | + | |
29 | 32 | | |
30 | 33 | | |
31 | 34 | | |
| |||
105 | 108 | | |
106 | 109 | | |
107 | 110 | | |
108 | | - | |
| 111 | + | |
| 112 | + | |
| 113 | + | |
| 114 | + | |
| 115 | + | |
| 116 | + | |
| 117 | + | |
| 118 | + | |
| 119 | + | |
| 120 | + | |
| 121 | + | |
| 122 | + | |
| 123 | + | |
| 124 | + | |
| 125 | + | |
| 126 | + | |
| 127 | + | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
| 131 | + | |
| 132 | + | |
| 133 | + | |
| 134 | + | |
| 135 | + | |
| 136 | + | |
| 137 | + | |
| 138 | + | |
| 139 | + | |
| 140 | + | |
| 141 | + | |
| 142 | + | |
| 143 | + | |
| 144 | + | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
109 | 178 | | |
110 | 179 | | |
111 | 180 | | |
| |||
175 | 244 | | |
176 | 245 | | |
177 | 246 | | |
| 247 | + | |
178 | 248 | | |
179 | 249 | | |
180 | 250 | | |
| |||
190 | 260 | | |
191 | 261 | | |
192 | 262 | | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
193 | 268 | | |
194 | 269 | | |
195 | 270 | | |
| |||
238 | 313 | | |
239 | 314 | | |
240 | 315 | | |
| 316 | + | |
| 317 | + | |
| 318 | + | |
| 319 | + | |
| 320 | + | |
| 321 | + | |
| 322 | + | |
| 323 | + | |
| 324 | + | |
| 325 | + | |
241 | 326 | | |
242 | 327 | | |
243 | 328 | | |
| |||
279 | 364 | | |
280 | 365 | | |
281 | 366 | | |
| 367 | + | |
| 368 | + | |
282 | 369 | | |
283 | 370 | | |
284 | 371 | | |
| |||
287 | 374 | | |
288 | 375 | | |
289 | 376 | | |
| 377 | + | |
| 378 | + | |
| 379 | + | |
| 380 | + | |
| 381 | + | |
| 382 | + | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
290 | 388 | | |
291 | 389 | | |
292 | 390 | | |
| |||
307 | 405 | | |
308 | 406 | | |
309 | 407 | | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
| 431 | + | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
| 443 | + | |
| 444 | + | |
310 | 445 | | |
311 | 446 | | |
312 | 447 | | |
| |||
353 | 488 | | |
354 | 489 | | |
355 | 490 | | |
| 491 | + | |
| 492 | + | |
| 493 | + | |
| 494 | + | |
| 495 | + | |
| 496 | + | |
| 497 | + | |
| 498 | + | |
| 499 | + | |
| 500 | + | |
| 501 | + | |
| 502 | + | |
| 503 | + | |
| 504 | + | |
| 505 | + | |
| 506 | + | |
| 507 | + | |
| 508 | + | |
| 509 | + | |
| 510 | + | |
| 511 | + | |
| 512 | + | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
| 518 | + | |
356 | 519 | | |
357 | 520 | | |
358 | 521 | | |
359 | 522 | | |
360 | 523 | | |
361 | | - | |
362 | | - | |
363 | | - | |
| 524 | + | |
| 525 | + | |
| 526 | + | |
| 527 | + | |
| 528 | + | |
364 | 529 | | |
365 | 530 | | |
| 531 | + | |
366 | 532 | | |
367 | 533 | | |
368 | 534 | | |
369 | 535 | | |
| 536 | + | |
| 537 | + | |
370 | 538 | | |
371 | 539 | | |
372 | 540 | | |
Lines changed: 48 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
0 commit comments