Commit c512bd1
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 (matsim-org#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 (matsim-org#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>1 parent 9989e91 commit c512bd1
12 files changed
Lines changed: 260 additions & 102 deletions
File tree
- contribs/dvrp/src
- main/java/org/matsim/core/router/speedy
- test/java/org/matsim/contrib/dvrp/path
- matsim
- src/main/java/org/matsim/core/router/speedy
- test/input/org/matsim/integration/replanning/ReRoutingIT
Lines changed: 4 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
95 | 95 | | |
96 | 96 | | |
97 | 97 | | |
98 | | - | |
| 98 | + | |
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
104 | | - | |
| 104 | + | |
105 | 105 | | |
106 | 106 | | |
107 | 107 | | |
| |||
247 | 247 | | |
248 | 248 | | |
249 | 249 | | |
250 | | - | |
| 250 | + | |
251 | 251 | | |
252 | 252 | | |
253 | 253 | | |
254 | | - | |
| 254 | + | |
255 | 255 | | |
256 | 256 | | |
257 | 257 | | |
| |||
Lines changed: 7 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
60 | | - | |
| 60 | + | |
61 | 61 | | |
62 | 62 | | |
63 | | - | |
64 | | - | |
65 | | - | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
87 | | - | |
88 | | - | |
| 86 | + | |
| 87 | + | |
| 88 | + | |
89 | 89 | | |
90 | 90 | | |
Lines changed: 120 additions & 37 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
582 | 582 | | |
583 | 583 | | |
584 | 584 | | |
585 | | - | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
| 591 | + | |
586 | 592 | | |
587 | 593 | | |
588 | 594 | | |
| |||
1958 | 1964 | | |
1959 | 1965 | | |
1960 | 1966 | | |
1961 | | - | |
1962 | | - | |
1963 | | - | |
| 1967 | + | |
| 1968 | + | |
| 1969 | + | |
| 1970 | + | |
| 1971 | + | |
| 1972 | + | |
| 1973 | + | |
| 1974 | + | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
| 1992 | + | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
| 1997 | + | |
| 1998 | + | |
| 1999 | + | |
| 2000 | + | |
| 2001 | + | |
| 2002 | + | |
1964 | 2003 | | |
1965 | | - | |
1966 | | - | |
1967 | | - | |
1968 | | - | |
1969 | | - | |
1970 | | - | |
1971 | | - | |
| 2004 | + | |
| 2005 | + | |
| 2006 | + | |
| 2007 | + | |
| 2008 | + | |
| 2009 | + | |
| 2010 | + | |
1972 | 2011 | | |
1973 | | - | |
1974 | | - | |
1975 | | - | |
1976 | | - | |
1977 | | - | |
1978 | | - | |
1979 | | - | |
1980 | | - | |
1981 | | - | |
1982 | | - | |
1983 | | - | |
1984 | | - | |
1985 | | - | |
1986 | | - | |
1987 | | - | |
1988 | | - | |
1989 | | - | |
1990 | | - | |
1991 | | - | |
1992 | | - | |
1993 | | - | |
1994 | | - | |
1995 | | - | |
1996 | | - | |
| 2012 | + | |
| 2013 | + | |
| 2014 | + | |
| 2015 | + | |
| 2016 | + | |
| 2017 | + | |
| 2018 | + | |
| 2019 | + | |
| 2020 | + | |
| 2021 | + | |
| 2022 | + | |
| 2023 | + | |
| 2024 | + | |
| 2025 | + | |
| 2026 | + | |
| 2027 | + | |
| 2028 | + | |
| 2029 | + | |
| 2030 | + | |
| 2031 | + | |
| 2032 | + | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
| 2040 | + | |
| 2041 | + | |
| 2042 | + | |
| 2043 | + | |
| 2044 | + | |
| 2045 | + | |
1997 | 2046 | | |
1998 | 2047 | | |
1999 | 2048 | | |
| |||
2008 | 2057 | | |
2009 | 2058 | | |
2010 | 2059 | | |
2011 | | - | |
2012 | | - | |
| 2060 | + | |
| 2061 | + | |
| 2062 | + | |
2013 | 2063 | | |
2014 | 2064 | | |
2015 | 2065 | | |
| |||
2029 | 2079 | | |
2030 | 2080 | | |
2031 | 2081 | | |
| 2082 | + | |
| 2083 | + | |
| 2084 | + | |
| 2085 | + | |
| 2086 | + | |
| 2087 | + | |
| 2088 | + | |
| 2089 | + | |
| 2090 | + | |
| 2091 | + | |
| 2092 | + | |
| 2093 | + | |
| 2094 | + | |
| 2095 | + | |
| 2096 | + | |
| 2097 | + | |
| 2098 | + | |
| 2099 | + | |
| 2100 | + | |
| 2101 | + | |
| 2102 | + | |
| 2103 | + | |
| 2104 | + | |
| 2105 | + | |
| 2106 | + | |
| 2107 | + | |
| 2108 | + | |
| 2109 | + | |
| 2110 | + | |
| 2111 | + | |
| 2112 | + | |
| 2113 | + | |
| 2114 | + | |
2032 | 2115 | | |
2033 | 2116 | | |
2034 | 2117 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
| 139 | + | |
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| |||
Lines changed: 1 addition & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
143 | | - | |
| 143 | + | |
144 | 144 | | |
145 | 145 | | |
146 | 146 | | |
| |||
0 commit comments