-
Notifications
You must be signed in to change notification settings - Fork 39
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Loading status checks…
input configs for v3.1 drt+av
1 parent
b10e1de
commit 2533e75
Showing
3 changed files
with
824 additions
and
26 deletions.
There are no files selected for viewing
412 changes: 412 additions & 0 deletions
412
input/v3.1/kelheim-v3.1-25pct.kexi-with-av-intermodal.config.xml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,412 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE config SYSTEM "http://www.matsim.org/files/dtd/config_v2.dtd"> | ||
<config> | ||
<module name="TimeAllocationMutator"> | ||
<param name="mutationRange" value="7200.0"/> | ||
</module> | ||
|
||
<module name="controler"> | ||
<param name="lastIteration" value="1000"/> | ||
<param name="overwriteFiles" value="failIfDirectoryExists"/> | ||
<param name="runId" value="kelheim-v3.0-25pct"/> | ||
<param name="outputDirectory" value="./output/output-kelheim-v3.0-25pct"/> | ||
<param name="writeEventsInterval" value="250"/> | ||
<param name="writePlansInterval" value="250"/> | ||
<param name="enableLinkToLinkRouting" value="false"/> | ||
<param name="routingAlgorithmType" value="SpeedyALT"/> | ||
</module> | ||
|
||
<module name="global"> | ||
<param name="coordinateSystem" value="EPSG:25832"/> | ||
<param name="insistingOnDeprecatedConfigVersion" value="false"/> | ||
<param name="numberOfThreads" value="6"/> | ||
</module> | ||
|
||
<module name="network"> | ||
<param name="inputNetworkFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-network-with-pt.xml.gz"/> | ||
<param name="laneDefinitionsFile" value="null"/> | ||
</module> | ||
|
||
<module name="plans"> | ||
<param name="inputPlansFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-25pct-plans.xml.gz"/> | ||
<param name="removingUnnecessaryPlanAttributes" value="true"/> | ||
</module> | ||
|
||
<module name="vehicles"> | ||
<param name="vehiclesFile" value="please provide vehicles file per command line"/> | ||
</module> | ||
|
||
<module name="transit"> | ||
<param name="transitScheduleFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-transitSchedule-with-intermodal-stops.xml.gz"/> | ||
<param name="vehiclesFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-transitVehicles.xml.gz"/> | ||
<param name="useTransit" value="true"/> | ||
</module> | ||
|
||
<module name="planscalcroute"> | ||
<param name="networkModes" value="car,ride,freight"/> | ||
<parameterset type="teleportedModeParameters"> | ||
<param name="beelineDistanceFactor" value="1.3"/> | ||
<param name="mode" value="walk"/> | ||
<param name="teleportedModeSpeed" value="1.0555556"/> | ||
</parameterset> | ||
<parameterset type="teleportedModeParameters"> | ||
<param name="beelineDistanceFactor" value="1.3"/> | ||
<param name="mode" value="bike"/> | ||
<param name="teleportedModeSpeed" value="3.1388889"/> | ||
</parameterset> | ||
</module> | ||
|
||
<module name="qsim"> | ||
<param name="flowCapacityFactor" value="0.25"/> | ||
<param name="mainMode" value="car,freight"/> | ||
<param name="numberOfThreads" value="8"/> | ||
<param name="startTime" value="00:00:00"/> | ||
<param name="endTime" value="36:00:00"/> | ||
<param name="storageCapacityFactor" value="0.25"/> | ||
<param name="stuckTime" value="30.0"/> | ||
<param name="trafficDynamics" value="kinematicWaves"/> | ||
<param name="linkDynamics" value="FIFO"/> | ||
<param name="useLanes" value="false"/> | ||
<param name="simStarttimeInterpretation" value="onlyUseStarttime"/> | ||
<param name="vehiclesSource" value="modeVehicleTypesFromVehiclesData"/> | ||
<param name="insertingWaitingVehiclesBeforeDrivingVehicles" value="true"/> | ||
</module> | ||
|
||
<module name="ReplanningAnnealer" > | ||
<param name="activateAnnealingModule" value="true" /> | ||
<parameterset type="AnnealingVariable" > | ||
<param name="annealParameter" value="globalInnovationRate" /> | ||
<param name="annealType" value="sigmoid" /> | ||
<param name="subpopulation" value="person" /> | ||
<!-- this parameter enters the exponential and sigmoid formulas. May be an iteration or a share, i.e. 0.5 for halfLife at 50% of iterations. Exponential: startValue / exp(it/halfLife) --> | ||
<param name="halfLife" value="0.5" /> | ||
<!-- sigmoid: 1/(1+e^(shapeFactor*(it - halfLife))); geometric: startValue * shapeFactor^it; msa: startValue / it^shapeFactor --> | ||
<param name="shapeFactor" value="0.01" /> | ||
<param name="startValue" value="0.6" /> | ||
<param name="endValue" value="0.01" /> | ||
</parameterset> | ||
</module> | ||
<module name="strategy"> | ||
<param name="fractionOfIterationsToDisableInnovation" value="0.9"/> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="ChangeExpBeta"/> | ||
<param name="subpopulation" value="person"/> | ||
<param name="weight" value="0.85"/> | ||
</parameterset> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="ReRoute"/> | ||
<param name="subpopulation" value="person"/> | ||
<param name="weight" value="0.10"/> | ||
</parameterset> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="SubtourModeChoice"/> | ||
<param name="subpopulation" value="person"/> | ||
<param name="weight" value="0.10"/> | ||
</parameterset> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="TimeAllocationMutator"/> | ||
<param name="subpopulation" value="person"/> | ||
<param name="weight" value="0.10"/> | ||
</parameterset> | ||
|
||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="ChangeExpBeta"/> | ||
<param name="subpopulation" value="freight"/> | ||
<param name="weight" value="0.95"/> | ||
</parameterset> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="ReRoute"/> | ||
<param name="subpopulation" value="freight"/> | ||
<param name="weight" value="0.05"/> | ||
</parameterset> | ||
</module> | ||
|
||
<module name="subtourModeChoice"> | ||
<param name="chainBasedModes" value="car,bike"/> | ||
<param name="modes" value="car,pt,bike,walk,ride,drt,av"/> | ||
<param name="considerCarAvailability" value="true"/> | ||
<param name="behavior" value="betweenAllAndFewerConstraints"/> | ||
<param name="probaForRandomSingleTripMode" value="0.5"/> | ||
<param name="coordDistance" value="100"/> | ||
</module> | ||
|
||
<!-- | ||
<module name="informedModeChoice"> | ||
<param name="modes" value="car,ride,pt,bike,walk"/> | ||
<param name="topK" value="5"/> | ||
</module> | ||
--> | ||
|
||
<module name="transitRouter"> | ||
<param name="extensionRadius" value="500.0"/> | ||
</module> | ||
|
||
<module name="travelTimeCalculator"> | ||
<param name="analyzedModes" value="car,freight"/> | ||
|
||
<!-- Not implemented for link2link routing --> | ||
<param name="separateModes" value="false"/> | ||
|
||
<!-- Needed for lane specific routing times --> | ||
<param name="calculateLinkToLinkTravelTimes" value="false"/> | ||
<param name="calculateLinkTravelTimes" value="true"/> | ||
</module> | ||
|
||
<module name="vspExperimental"> | ||
<param name="vspDefaultsCheckingLevel" value="abort"/> | ||
</module> | ||
|
||
<module name="planCalcScore"> | ||
<param name="fractionOfIterationsToStartScoreMSA" value="0.9"/> | ||
<param name="writeExperiencedPlans" value="true"/> | ||
|
||
<parameterset type="scoringParameters"> | ||
<!-- mode ASCs come from auto-calibration--> | ||
<!-- For a bit of documentation on the non-zero marginal utilities per m, see the following link--> | ||
<!-- https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/matsim-kelheim-v3.0-calibration-mode-parameters.pdf --> | ||
<param name="waitingPt" value="-1.6"/> | ||
|
||
<parameterset type="modeParams"> | ||
<param name="constant" value="2.45" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="-2.5E-4" /> <!-- need this to fit the KEXI real data (Jan' 2022 - July 2023)--> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="0.0" /> | ||
<param name="mode" value="drt" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
|
||
<parameterset type="modeParams"> | ||
<param name="constant" value="0.0" /> <!-- this fits the real AV demand data for 2024 quite well--> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="0.0" /> | ||
<param name="mode" value="av" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
|
||
<parameterset type="modeParams" > | ||
<param name="constant" value="0.10908902922956654" /> | ||
<param name="dailyMonetaryConstant" value="-5.3" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-0.0" /> | ||
<param name="mode" value="car" /> | ||
<param name="monetaryDistanceRate" value="-2.0E-4" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="-0.44874536876610344" /> | ||
<param name="dailyMonetaryConstant" value="-0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-12.0" /> <!-- see comment above--> | ||
<param name="mode" value="ride" /> | ||
<param name="monetaryDistanceRate" value="-2.0E-4" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="0.0449751479497542" /> | ||
<param name="dailyMonetaryConstant" value="0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-0.0" /> | ||
<param name="mode" value="pt" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="-0.9059637590522914" /> | ||
<param name="dailyMonetaryConstant" value="0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-3.0" /> <!-- see comment above--> | ||
<param name="mode" value="bike" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="0.0" /> | ||
<param name="dailyMonetaryConstant" value="0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-0.0" /> | ||
<param name="mode" value="walk" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="0.0" /> | ||
<param name="dailyMonetaryConstant" value="0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-0.0" /> | ||
<param name="mode" value="freight" /> | ||
<param name="monetaryDistanceRate" value="-0.002" /> | ||
</parameterset> | ||
|
||
</parameterset> | ||
</module> | ||
|
||
<module name="transitRouter"> | ||
<!-- Factor with which direct walk generalized cost is multiplied before it is compared to the pt generalized cost. Set to a very high value to reduce direct walk results. --> | ||
<param name="directWalkFactor" value="1.0"/> | ||
<!-- maximum beeline distance between stops that agents could transfer to by walking --> | ||
<param name="maxBeelineWalkConnectionDistance" value="300.0"/> | ||
</module> | ||
|
||
<module name="multiModeDrt"> | ||
<parameterset type="drt"> | ||
<param name="mode" value="drt"/> | ||
<parameterset type="ExtensiveInsertionSearch" > | ||
<param name="admissibleBeelineSpeedFactor" value="1.0" /> | ||
<param name="nearestInsertionsAtEndLimit" value="10" /> | ||
</parameterset> | ||
<!-- If true, the startLink is changed to last link in the current schedule, so the taxi starts the next day at the link where it stopped operating the day before. False by default. --> | ||
<param name="changeStartLinkToLastLinkInSchedule" value="false"/> | ||
<!-- Defines the slope of the maxTravelTime estimation function (optimisation constraint), i.e. maxTravelTimeAlpha * estimated_drt_travel_time + maxTravelTimeBeta. Alpha should not be smaller than 1. --> | ||
<param name="maxTravelTimeAlpha" value="1.5"/> | ||
<!-- Defines the shift of the maxTravelTime estimation function (optimisation constraint), i.e. maxTravelTimeAlpha * estimated_drt_travel_time + maxTravelTimeBeta. Beta should not be smaller than 0. --> | ||
<param name="maxTravelTimeBeta" value="1200.0"/> | ||
<!-- Max wait time for the bus to come (optimisation constraint). --> | ||
<param name="maxWaitTime" value="1200.0"/> | ||
<!-- Maximum walk distance to next stop location in stationbased system. --> | ||
<param name="maxWalkDistance" value="1500.0"/> | ||
<param name="rejectRequestIfMaxWaitOrTravelTimeViolated" value="false" /> | ||
<!-- Operational Scheme, either door2door or stopbased. door2door by default --> | ||
<param name="operationalScheme" value="stopbased"/> | ||
<!-- Bus stop duration. --> | ||
<param name="stopDuration" value="60.0"/> | ||
<!-- Stop locations file (transit schedule format, but without lines) for DRT stops. Used only for the stopbased mode --> | ||
<param name="transitStopFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-drt-stops.xml"/> | ||
<!-- Writes out detailed DRT customer stats in each iteration. True by default. --> | ||
<param name="writeDetailedCustomerStats" value="true"/> | ||
<parameterset type="zonalSystem"> | ||
<parameterset type="SquareGridZoneSystem"> | ||
<param name="cellSize" value="200"/> | ||
</parameterset> | ||
</parameterset> | ||
<!--<parameterset type="rebalancing"> | ||
<parameterset type="minCostFlowRebalancingStrategy"> | ||
<param name="targetAlpha" value="0.5"/> | ||
<param name="targetBeta" value="0.5"/> | ||
</parameterset>--> | ||
<!-- </parameterset> --> | ||
</parameterset> | ||
<parameterset type="drt"> | ||
<param name="mode" value="av"/> | ||
<parameterset type="ExtensiveInsertionSearch" > | ||
<param name="admissibleBeelineSpeedFactor" value="1.0" /> | ||
<param name="nearestInsertionsAtEndLimit" value="10" /> | ||
</parameterset> | ||
<!-- If true, the startLink is changed to last link in the current schedule, so the taxi starts the next day at the link where it stopped operating the day before. False by default. --> | ||
<param name="changeStartLinkToLastLinkInSchedule" value="false"/> | ||
<!-- Defines the slope of the maxTravelTime estimation function (optimisation constraint), i.e. maxTravelTimeAlpha * estimated_drt_travel_time + maxTravelTimeBeta. Alpha should not be smaller than 1. --> | ||
<param name="maxTravelTimeAlpha" value="1.5"/> | ||
<!-- Defines the shift of the maxTravelTime estimation function (optimisation constraint), i.e. maxTravelTimeAlpha * estimated_drt_travel_time + maxTravelTimeBeta. Beta should not be smaller than 0. --> | ||
<param name="maxTravelTimeBeta" value="1200.0"/> | ||
<!-- Max wait time for the bus to come (optimisation constraint). --> | ||
<param name="maxWaitTime" value="1200.0"/> | ||
<!-- Maximum walk distance to next stop location in stationbased system. --> | ||
<param name="maxWalkDistance" value="1500.0"/> | ||
<param name="rejectRequestIfMaxWaitOrTravelTimeViolated" value="false" /> | ||
<!-- Operational Scheme, either door2door or stopbased. door2door by default --> | ||
<param name="operationalScheme" value="stopbased"/> | ||
<!-- Bus stop duration. --> | ||
<param name="stopDuration" value="60.0"/> | ||
<!-- Stop locations file (transit schedule format, but without lines) for DRT stops. Used only for the stopbased mode --> | ||
<param name="transitStopFile" value="please provide AV stops file per command line"/> | ||
<!-- Writes out detailed DRT customer stats in each iteration. True by default. --> | ||
<param name="writeDetailedCustomerStats" value="true"/> | ||
<parameterset type="zonalSystem"> | ||
<parameterset type="SquareGridZoneSystem"> | ||
<param name="cellSize" value="200"/> | ||
</parameterset> | ||
</parameterset> | ||
<parameterset type="rebalancing"> | ||
<param name="interval" value="1" /> | ||
<parameterset type="CustomRebalancingStrategy"> | ||
<!-- Note: waiting point based rebalancing strategy for av is to be setup in the run script--> | ||
</parameterset> | ||
</parameterset> | ||
|
||
</parameterset> | ||
|
||
</module> | ||
|
||
<module name="dvrp" > | ||
<!-- Mode of which the network will be used for routing vehicles, calculating travel times, etc. (fleet operator's perspective). If null, no mode filtering is done; the standard network (Scenario.getNetwork()) is used --> | ||
<param name="networkModes" value="drt,av"/> | ||
|
||
<!-- Used for estimation of travel times for VrpOptimizer by means of the exponential moving average. The weighting decrease, alpha, must be in (0,1]. We suggest small values of alpha, e.g. 0.05. The averaging starts from the initial travel time estimates. If not provided, the free-speed TTs is used as the initial estimates For more info see comments in: VrpTravelTimeEstimator, VrpTravelTimeModules, DvrpModule. --> | ||
<param name="travelTimeEstimationAlpha" value="0.05" /> | ||
<parameterset type="travelTimeMatrix"> | ||
<parameterset type="SquareGridZoneSystem"> | ||
<param name="cellSize" value="200"/> | ||
</parameterset> | ||
<param name="maxNeighborDistance" value="10000"/> | ||
</parameterset> | ||
</module> | ||
|
||
|
||
<module name="swissRailRaptor"> | ||
<!-- Sets whether intermodal access and egress modes are selected by least cost (default) or randomly chosen out of the available access / egress modes. --> | ||
<param name="intermodalAccessEgressModeSelection" value="CalcLeastCostModePerStop"/> | ||
<!-- Possible values: Default, Individual --> | ||
<param name="scoringParameters" value="Default"/> | ||
<param name="transferPenaltyBaseCost" value="0.0"/> | ||
<param name="transferPenaltyCostPerTravelTimeHour" value="0.0"/> | ||
<param name="transferPenaltyMaxCost" value="Infinity"/> | ||
<param name="transferPenaltyMinCost" value="-Infinity"/> | ||
<!-- time deducted from transfer walk leg during transfers between pt legs in order to avoid missing a vehicle by a few seconds due to delays. --> | ||
<param name="transferWalkMargin" value="5.0"/> | ||
<!-- If true, SwissRailRaptor tries to detect when agents cannot board a vehicle in the previous iteration because it is already full and tries to find an alternative route instead. --> | ||
<param name="useCapacityConstraints" value="false"/> | ||
<param name="useModeMappingForPassengers" value="false"/> | ||
<param name="useRangeQuery" value="false"/> | ||
<param name="useIntermodalAccessEgress" value="true"/> | ||
<parameterset type="intermodalAccessEgress"> | ||
<!-- Radius from the origin / destination coord in which transit stops are searched. Only if less than 2 transit stops are found the search radius is increased step-wise until the maximum search radius set in param radius is reached. --> | ||
<param name="initialSearchRadius" value="10000.0"/> | ||
<!-- If the mode is routed on the network, specify which linkId acts as access link to this stop in the transport modes sub-network. --> | ||
<param name="linkIdAttribute" value="null"/> | ||
<!-- Radius from the origin / destination coord in which transit stops are accessible by this mode. --> | ||
<param name="maxRadius" value="10000.0"/> | ||
<param name="mode" value="drt"/> | ||
<param name="personFilterAttribute" value="null" /> | ||
<param name="personFilterValue" value="null" /> | ||
<!-- If less than 2 stops were found in initialSearchRadius take the distance of the closest transit stop and add this extension radius to search again.The search radius will not exceed the maximum search radius set in param radius. Default is 200 meters. --> | ||
<param name="searchExtensionRadius" value="1000.0"/> | ||
<!-- The share of the trip crowfly distance within which the stops for access and egress will be searched for. This is a harder constraint than initial search radius. Default is positive infinity. --> | ||
<param name="shareTripSearchRadius" value="Infinity"/> | ||
<!-- Name of the transit stop attribute used to filter stops that should be included in the set of potential stops for access and egress. The attribute should be of type String. 'null' disables the filter and all stops within the specified radius will be used. --> | ||
<param name="stopFilterAttribute" value="allowDrtAccessEgress"/> | ||
<!-- Only stops where the filter attribute has the value specified here will be considered as access or egress stops. --> | ||
<param name="stopFilterValue" value="true"/> | ||
</parameterset> | ||
<parameterset type="intermodalAccessEgress"> | ||
<!-- Radius from the origin / destination coord in which transit stops are searched. Only if less than 2 transit stops are found the search radius is increased step-wise until the maximum search radius set in param radius is reached. --> | ||
<param name="initialSearchRadius" value="10000.0"/> | ||
<!-- If the mode is routed on the network, specify which linkId acts as access link to this stop in the transport modes sub-network. --> | ||
<param name="linkIdAttribute" value="null"/> | ||
<!-- Radius from the origin / destination coord in which transit stops are accessible by this mode. --> | ||
<param name="maxRadius" value="10000.0"/> | ||
<param name="mode" value="av"/> | ||
<param name="personFilterAttribute" value="null" /> | ||
<param name="personFilterValue" value="null" /> | ||
<!-- If less than 2 stops were found in initialSearchRadius take the distance of the closest transit stop and add this extension radius to search again.The search radius will not exceed the maximum search radius set in param radius. Default is 200 meters. --> | ||
<param name="searchExtensionRadius" value="1000.0"/> | ||
<!-- The share of the trip crowfly distance within which the stops for access and egress will be searched for. This is a harder constraint than initial search radius. Default is positive infinity. --> | ||
<param name="shareTripSearchRadius" value="Infinity"/> | ||
<!-- Name of the transit stop attribute used to filter stops that should be included in the set of potential stops for access and egress. The attribute should be of type String. 'null' disables the filter and all stops within the specified radius will be used. --> | ||
<param name="stopFilterAttribute" value="allowDrtAccessEgress"/> | ||
<!-- Only stops where the filter attribute has the value specified here will be considered as access or egress stops. --> | ||
<param name="stopFilterValue" value="true"/> | ||
</parameterset> | ||
<parameterset type="intermodalAccessEgress"> | ||
<param name="initialSearchRadius" value="1500.0"/> | ||
<param name="linkIdAttribute" value="null"/> | ||
<param name="maxRadius" value="100000.0"/> | ||
<param name="mode" value="walk"/> | ||
<param name="personFilterAttribute" value="null"/> | ||
<param name="personFilterValue" value="null"/> | ||
<param name="searchExtensionRadius" value="1000.0"/> | ||
<param name="shareTripSearchRadius" value="Infinity"/> | ||
<param name="stopFilterAttribute" value="null"/> | ||
<param name="stopFilterValue" value="null"/> | ||
</parameterset> | ||
</module> | ||
|
||
</config> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,392 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<!DOCTYPE config SYSTEM "http://www.matsim.org/files/dtd/config_v2.dtd"> | ||
<config> | ||
<module name="TimeAllocationMutator"> | ||
<param name="mutationRange" value="7200.0"/> | ||
</module> | ||
|
||
<module name="controler"> | ||
<param name="lastIteration" value="1000"/> | ||
<param name="overwriteFiles" value="failIfDirectoryExists"/> | ||
<param name="runId" value="kelheim-v3.0-25pct"/> | ||
<param name="outputDirectory" value="./output/output-kelheim-v3.0-25pct"/> | ||
<param name="writeEventsInterval" value="250"/> | ||
<param name="writePlansInterval" value="250"/> | ||
<param name="enableLinkToLinkRouting" value="false"/> | ||
<param name="routingAlgorithmType" value="SpeedyALT"/> | ||
</module> | ||
|
||
<module name="global"> | ||
<param name="coordinateSystem" value="EPSG:25832"/> | ||
<param name="insistingOnDeprecatedConfigVersion" value="false"/> | ||
<param name="numberOfThreads" value="6"/> | ||
</module> | ||
|
||
<module name="network"> | ||
<param name="inputNetworkFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-network-with-pt.xml.gz"/> | ||
<param name="laneDefinitionsFile" value="null"/> | ||
</module> | ||
|
||
<module name="plans"> | ||
<param name="inputPlansFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-25pct-plans.xml.gz"/> | ||
<param name="removingUnnecessaryPlanAttributes" value="true"/> | ||
</module> | ||
|
||
<module name="vehicles"> | ||
<param name="vehiclesFile" value="please provide vehicles file per command line"/> | ||
</module> | ||
|
||
<module name="transit"> | ||
<param name="transitScheduleFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-transitSchedule-with-intermodal-stops.xml.gz"/> | ||
<param name="vehiclesFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-transitVehicles.xml.gz"/> | ||
<param name="useTransit" value="true"/> | ||
</module> | ||
|
||
<module name="planscalcroute"> | ||
<param name="networkModes" value="car,ride,freight"/> | ||
<parameterset type="teleportedModeParameters"> | ||
<param name="beelineDistanceFactor" value="1.3"/> | ||
<param name="mode" value="walk"/> | ||
<param name="teleportedModeSpeed" value="1.0555556"/> | ||
</parameterset> | ||
<parameterset type="teleportedModeParameters"> | ||
<param name="beelineDistanceFactor" value="1.3"/> | ||
<param name="mode" value="bike"/> | ||
<param name="teleportedModeSpeed" value="3.1388889"/> | ||
</parameterset> | ||
</module> | ||
|
||
<module name="qsim"> | ||
<param name="flowCapacityFactor" value="0.25"/> | ||
<param name="mainMode" value="car,freight"/> | ||
<param name="numberOfThreads" value="8"/> | ||
<param name="startTime" value="00:00:00"/> | ||
<param name="endTime" value="36:00:00"/> | ||
<param name="storageCapacityFactor" value="0.25"/> | ||
<param name="stuckTime" value="30.0"/> | ||
<param name="trafficDynamics" value="kinematicWaves"/> | ||
<param name="linkDynamics" value="FIFO"/> | ||
<param name="useLanes" value="false"/> | ||
<param name="simStarttimeInterpretation" value="onlyUseStarttime"/> | ||
<param name="vehiclesSource" value="modeVehicleTypesFromVehiclesData"/> | ||
<param name="insertingWaitingVehiclesBeforeDrivingVehicles" value="true"/> | ||
</module> | ||
|
||
<module name="ReplanningAnnealer" > | ||
<param name="activateAnnealingModule" value="true" /> | ||
<parameterset type="AnnealingVariable" > | ||
<param name="annealParameter" value="globalInnovationRate" /> | ||
<param name="annealType" value="sigmoid" /> | ||
<param name="subpopulation" value="person" /> | ||
<!-- this parameter enters the exponential and sigmoid formulas. May be an iteration or a share, i.e. 0.5 for halfLife at 50% of iterations. Exponential: startValue / exp(it/halfLife) --> | ||
<param name="halfLife" value="0.5" /> | ||
<!-- sigmoid: 1/(1+e^(shapeFactor*(it - halfLife))); geometric: startValue * shapeFactor^it; msa: startValue / it^shapeFactor --> | ||
<param name="shapeFactor" value="0.01" /> | ||
<param name="startValue" value="0.6" /> | ||
<param name="endValue" value="0.01" /> | ||
</parameterset> | ||
</module> | ||
<module name="strategy"> | ||
<param name="fractionOfIterationsToDisableInnovation" value="0.9"/> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="ChangeExpBeta"/> | ||
<param name="subpopulation" value="person"/> | ||
<param name="weight" value="0.85"/> | ||
</parameterset> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="ReRoute"/> | ||
<param name="subpopulation" value="person"/> | ||
<param name="weight" value="0.10"/> | ||
</parameterset> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="SubtourModeChoice"/> | ||
<param name="subpopulation" value="person"/> | ||
<param name="weight" value="0.10"/> | ||
</parameterset> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="TimeAllocationMutator"/> | ||
<param name="subpopulation" value="person"/> | ||
<param name="weight" value="0.10"/> | ||
</parameterset> | ||
|
||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="ChangeExpBeta"/> | ||
<param name="subpopulation" value="freight"/> | ||
<param name="weight" value="0.95"/> | ||
</parameterset> | ||
<parameterset type="strategysettings"> | ||
<param name="strategyName" value="ReRoute"/> | ||
<param name="subpopulation" value="freight"/> | ||
<param name="weight" value="0.05"/> | ||
</parameterset> | ||
</module> | ||
|
||
<module name="subtourModeChoice"> | ||
<param name="chainBasedModes" value="car,bike"/> | ||
<param name="modes" value="car,pt,bike,walk,ride,drt,av"/> | ||
<param name="considerCarAvailability" value="true"/> | ||
<param name="behavior" value="betweenAllAndFewerConstraints"/> | ||
<param name="probaForRandomSingleTripMode" value="0.5"/> | ||
<param name="coordDistance" value="100"/> | ||
</module> | ||
|
||
<!-- | ||
<module name="informedModeChoice"> | ||
<param name="modes" value="car,ride,pt,bike,walk"/> | ||
<param name="topK" value="5"/> | ||
</module> | ||
--> | ||
|
||
<module name="transitRouter"> | ||
<param name="extensionRadius" value="500.0"/> | ||
</module> | ||
|
||
<module name="travelTimeCalculator"> | ||
<param name="analyzedModes" value="car,freight"/> | ||
|
||
<!-- Not implemented for link2link routing --> | ||
<param name="separateModes" value="false"/> | ||
|
||
<!-- Needed for lane specific routing times --> | ||
<param name="calculateLinkToLinkTravelTimes" value="false"/> | ||
<param name="calculateLinkTravelTimes" value="true"/> | ||
</module> | ||
|
||
<module name="vspExperimental"> | ||
<param name="vspDefaultsCheckingLevel" value="abort"/> | ||
</module> | ||
|
||
<module name="planCalcScore"> | ||
<param name="fractionOfIterationsToStartScoreMSA" value="0.9"/> | ||
<param name="writeExperiencedPlans" value="true"/> | ||
|
||
<parameterset type="scoringParameters"> | ||
<!-- mode ASCs come from auto-calibration--> | ||
<!-- For a bit of documentation on the non-zero marginal utilities per m, see the following link--> | ||
<!-- https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/matsim-kelheim-v3.0-calibration-mode-parameters.pdf --> | ||
<param name="waitingPt" value="-1.6"/> | ||
|
||
<parameterset type="modeParams"> | ||
<param name="constant" value="2.45" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="-2.5E-4" /> <!-- need this to fit the KEXI real data (Jan' 2022 - July 2023)--> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="0.0" /> | ||
<param name="mode" value="drt" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
|
||
<parameterset type="modeParams"> | ||
<param name="constant" value="0.0" /> <!-- this fits the real AV demand data for 2024 quite well--> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="0.0" /> | ||
<param name="mode" value="av" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
|
||
<parameterset type="modeParams" > | ||
<param name="constant" value="0.10908902922956654" /> | ||
<param name="dailyMonetaryConstant" value="-5.3" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-0.0" /> | ||
<param name="mode" value="car" /> | ||
<param name="monetaryDistanceRate" value="-2.0E-4" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="-0.44874536876610344" /> | ||
<param name="dailyMonetaryConstant" value="-0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-12.0" /> <!-- see comment above--> | ||
<param name="mode" value="ride" /> | ||
<param name="monetaryDistanceRate" value="-2.0E-4" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="0.0449751479497542" /> | ||
<param name="dailyMonetaryConstant" value="0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-0.0" /> | ||
<param name="mode" value="pt" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="-0.9059637590522914" /> | ||
<param name="dailyMonetaryConstant" value="0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-3.0" /> <!-- see comment above--> | ||
<param name="mode" value="bike" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="0.0" /> | ||
<param name="dailyMonetaryConstant" value="0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-0.0" /> | ||
<param name="mode" value="walk" /> | ||
<param name="monetaryDistanceRate" value="0.0" /> | ||
</parameterset> | ||
<parameterset type="modeParams" > | ||
<param name="constant" value="0.0" /> | ||
<param name="dailyMonetaryConstant" value="0.0" /> | ||
<param name="dailyUtilityConstant" value="0.0" /> | ||
<param name="marginalUtilityOfDistance_util_m" value="0.0" /> | ||
<param name="marginalUtilityOfTraveling_util_hr" value="-0.0" /> | ||
<param name="mode" value="freight" /> | ||
<param name="monetaryDistanceRate" value="-0.002" /> | ||
</parameterset> | ||
|
||
</parameterset> | ||
</module> | ||
|
||
<module name="transitRouter"> | ||
<!-- Factor with which direct walk generalized cost is multiplied before it is compared to the pt generalized cost. Set to a very high value to reduce direct walk results. --> | ||
<param name="directWalkFactor" value="1.0"/> | ||
<!-- maximum beeline distance between stops that agents could transfer to by walking --> | ||
<param name="maxBeelineWalkConnectionDistance" value="300.0"/> | ||
</module> | ||
|
||
<module name="multiModeDrt"> | ||
<parameterset type="drt"> | ||
<param name="mode" value="drt"/> | ||
<parameterset type="ExtensiveInsertionSearch" > | ||
<param name="admissibleBeelineSpeedFactor" value="1.0" /> | ||
<param name="nearestInsertionsAtEndLimit" value="10" /> | ||
</parameterset> | ||
<!-- If true, the startLink is changed to last link in the current schedule, so the taxi starts the next day at the link where it stopped operating the day before. False by default. --> | ||
<param name="changeStartLinkToLastLinkInSchedule" value="false"/> | ||
<!-- Defines the slope of the maxTravelTime estimation function (optimisation constraint), i.e. maxTravelTimeAlpha * estimated_drt_travel_time + maxTravelTimeBeta. Alpha should not be smaller than 1. --> | ||
<param name="maxTravelTimeAlpha" value="1.5"/> | ||
<!-- Defines the shift of the maxTravelTime estimation function (optimisation constraint), i.e. maxTravelTimeAlpha * estimated_drt_travel_time + maxTravelTimeBeta. Beta should not be smaller than 0. --> | ||
<param name="maxTravelTimeBeta" value="1200.0"/> | ||
<!-- Max wait time for the bus to come (optimisation constraint). --> | ||
<param name="maxWaitTime" value="1200.0"/> | ||
<!-- Maximum walk distance to next stop location in stationbased system. --> | ||
<param name="maxWalkDistance" value="1500.0"/> | ||
<param name="rejectRequestIfMaxWaitOrTravelTimeViolated" value="false" /> | ||
<!-- Operational Scheme, either door2door or stopbased. door2door by default --> | ||
<param name="operationalScheme" value="stopbased"/> | ||
<!-- Bus stop duration. --> | ||
<param name="stopDuration" value="60.0"/> | ||
<!-- Stop locations file (transit schedule format, but without lines) for DRT stops. Used only for the stopbased mode --> | ||
<param name="transitStopFile" value="https://svn.vsp.tu-berlin.de/repos/public-svn/matsim/scenarios/countries/de/kelheim/kelheim-v3.0/input/kelheim-v3.0-drt-stops.xml"/> | ||
<!-- Writes out detailed DRT customer stats in each iteration. True by default. --> | ||
<param name="writeDetailedCustomerStats" value="true"/> | ||
<parameterset type="zonalSystem"> | ||
<parameterset type="SquareGridZoneSystem"> | ||
<param name="cellSize" value="200"/> | ||
</parameterset> | ||
</parameterset> | ||
<!--<parameterset type="rebalancing"> | ||
<parameterset type="minCostFlowRebalancingStrategy"> | ||
<param name="targetAlpha" value="0.5"/> | ||
<param name="targetBeta" value="0.5"/> | ||
</parameterset>--> | ||
<!-- </parameterset> --> | ||
</parameterset> | ||
<parameterset type="drt"> | ||
<param name="mode" value="av"/> | ||
<parameterset type="ExtensiveInsertionSearch" > | ||
<param name="admissibleBeelineSpeedFactor" value="1.0" /> | ||
<param name="nearestInsertionsAtEndLimit" value="10" /> | ||
</parameterset> | ||
<!-- If true, the startLink is changed to last link in the current schedule, so the taxi starts the next day at the link where it stopped operating the day before. False by default. --> | ||
<param name="changeStartLinkToLastLinkInSchedule" value="false"/> | ||
<!-- Defines the slope of the maxTravelTime estimation function (optimisation constraint), i.e. maxTravelTimeAlpha * estimated_drt_travel_time + maxTravelTimeBeta. Alpha should not be smaller than 1. --> | ||
<param name="maxTravelTimeAlpha" value="1.5"/> | ||
<!-- Defines the shift of the maxTravelTime estimation function (optimisation constraint), i.e. maxTravelTimeAlpha * estimated_drt_travel_time + maxTravelTimeBeta. Beta should not be smaller than 0. --> | ||
<param name="maxTravelTimeBeta" value="1200.0"/> | ||
<!-- Max wait time for the bus to come (optimisation constraint). --> | ||
<param name="maxWaitTime" value="1200.0"/> | ||
<!-- Maximum walk distance to next stop location in stationbased system. --> | ||
<param name="maxWalkDistance" value="1500.0"/> | ||
<param name="rejectRequestIfMaxWaitOrTravelTimeViolated" value="false" /> | ||
<!-- Operational Scheme, either door2door or stopbased. door2door by default --> | ||
<param name="operationalScheme" value="stopbased"/> | ||
<!-- Bus stop duration. --> | ||
<param name="stopDuration" value="60.0"/> | ||
<!-- Stop locations file (transit schedule format, but without lines) for DRT stops. Used only for the stopbased mode --> | ||
<param name="transitStopFile" value="please provide AV stops file per command line"/> | ||
<!-- Writes out detailed DRT customer stats in each iteration. True by default. --> | ||
<param name="writeDetailedCustomerStats" value="true"/> | ||
<parameterset type="zonalSystem"> | ||
<parameterset type="SquareGridZoneSystem"> | ||
<param name="cellSize" value="200"/> | ||
</parameterset> | ||
</parameterset> | ||
<parameterset type="rebalancing"> | ||
<param name="interval" value="1" /> | ||
<parameterset type="CustomRebalancingStrategy"> | ||
<!-- note that av rebalancin gis configured via java run script--> | ||
</parameterset> | ||
</parameterset> | ||
</parameterset> | ||
|
||
</module> | ||
|
||
<module name="dvrp" > | ||
<!-- Mode of which the network will be used for routing vehicles, calculating travel times, etc. (fleet operator's perspective). If null, no mode filtering is done; the standard network (Scenario.getNetwork()) is used --> | ||
<param name="networkModes" value="drt,av"/> | ||
|
||
<!-- Used for estimation of travel times for VrpOptimizer by means of the exponential moving average. The weighting decrease, alpha, must be in (0,1]. We suggest small values of alpha, e.g. 0.05. The averaging starts from the initial travel time estimates. If not provided, the free-speed TTs is used as the initial estimates For more info see comments in: VrpTravelTimeEstimator, VrpTravelTimeModules, DvrpModule. --> | ||
<param name="travelTimeEstimationAlpha" value="0.05" /> | ||
<parameterset type="travelTimeMatrix"> | ||
<parameterset type="SquareGridZoneSystem"> | ||
<param name="cellSize" value="200"/> | ||
</parameterset> | ||
<param name="maxNeighborDistance" value="10000"/> | ||
</parameterset> | ||
</module> | ||
|
||
|
||
<module name="swissRailRaptor"> | ||
<!-- Sets whether intermodal access and egress modes are selected by least cost (default) or randomly chosen out of the available access / egress modes. --> | ||
<param name="intermodalAccessEgressModeSelection" value="CalcLeastCostModePerStop"/> | ||
<!-- Possible values: Default, Individual --> | ||
<param name="scoringParameters" value="Default"/> | ||
<param name="transferPenaltyBaseCost" value="0.0"/> | ||
<param name="transferPenaltyCostPerTravelTimeHour" value="0.0"/> | ||
<param name="transferPenaltyMaxCost" value="Infinity"/> | ||
<param name="transferPenaltyMinCost" value="-Infinity"/> | ||
<!-- time deducted from transfer walk leg during transfers between pt legs in order to avoid missing a vehicle by a few seconds due to delays. --> | ||
<param name="transferWalkMargin" value="5.0"/> | ||
<!-- If true, SwissRailRaptor tries to detect when agents cannot board a vehicle in the previous iteration because it is already full and tries to find an alternative route instead. --> | ||
<param name="useCapacityConstraints" value="false"/> | ||
<param name="useModeMappingForPassengers" value="false"/> | ||
<param name="useRangeQuery" value="false"/> | ||
<param name="useIntermodalAccessEgress" value="true"/> | ||
<parameterset type="intermodalAccessEgress"> | ||
<!-- Radius from the origin / destination coord in which transit stops are searched. Only if less than 2 transit stops are found the search radius is increased step-wise until the maximum search radius set in param radius is reached. --> | ||
<param name="initialSearchRadius" value="10000.0"/> | ||
<!-- If the mode is routed on the network, specify which linkId acts as access link to this stop in the transport modes sub-network. --> | ||
<param name="linkIdAttribute" value="null"/> | ||
<!-- Radius from the origin / destination coord in which transit stops are accessible by this mode. --> | ||
<param name="maxRadius" value="10000.0"/> | ||
<param name="mode" value="drt"/> | ||
<param name="personFilterAttribute" value="null" /> | ||
<param name="personFilterValue" value="null" /> | ||
<!-- If less than 2 stops were found in initialSearchRadius take the distance of the closest transit stop and add this extension radius to search again.The search radius will not exceed the maximum search radius set in param radius. Default is 200 meters. --> | ||
<param name="searchExtensionRadius" value="1000.0"/> | ||
<!-- The share of the trip crowfly distance within which the stops for access and egress will be searched for. This is a harder constraint than initial search radius. Default is positive infinity. --> | ||
<param name="shareTripSearchRadius" value="Infinity"/> | ||
<!-- Name of the transit stop attribute used to filter stops that should be included in the set of potential stops for access and egress. The attribute should be of type String. 'null' disables the filter and all stops within the specified radius will be used. --> | ||
<param name="stopFilterAttribute" value="allowDrtAccessEgress"/> | ||
<!-- Only stops where the filter attribute has the value specified here will be considered as access or egress stops. --> | ||
<param name="stopFilterValue" value="true"/> | ||
</parameterset> | ||
<parameterset type="intermodalAccessEgress"> | ||
<param name="initialSearchRadius" value="1500.0"/> | ||
<param name="linkIdAttribute" value="null"/> | ||
<param name="maxRadius" value="100000.0"/> | ||
<param name="mode" value="walk"/> | ||
<param name="personFilterAttribute" value="null"/> | ||
<param name="personFilterValue" value="null"/> | ||
<param name="searchExtensionRadius" value="1000.0"/> | ||
<param name="shareTripSearchRadius" value="Infinity"/> | ||
<param name="stopFilterAttribute" value="null"/> | ||
<param name="stopFilterValue" value="null"/> | ||
</parameterset> | ||
</module> | ||
|
||
</config> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters