Releases: jdlph/Path4GMNS
v0.9.9.post1
v0.9.9.post1 serves as a hotfix over v0.9.9. It reestablishes zone id cross-validation (between node.csv and demand.csv) and resolves network inconsistency by invoking find_shortest_path() and find_ue() in the same code snippet #51.
v0.9.9
v0.9.9 comes with bug fixes, new functionality, and performance improvement.
- Fix bugs in loading synthetic zones and synthesizing demand.
- Separate demand loading from read_network().
- Introduce a new public API read_demand() to unify demand and zone synthesis, and demand (and synthetic zone) loading.
- Deprecate confusing perform_column_generation() and replace it with find_ue().
- Introduce ODME.
- Add support to load link toll from link.csv.
- Optimize how to check if a key exists.
v0.9.8
v0.9.7
v0.9.6
v0.9.6 brings several enhancements over its predecessor.
- Eliminate the ultra-low-volume columns from the UE assignment, which leads to improved assignment results and much cleaner agent.csv.
- Calculate the final UE convergency after the postprocessing, which provides the accurate assessment of each assignment.
- Embed and support the latest DTALite, which includes all-new Logbook, enhanced scenario handling, improved I/O functionality, and so on compared to the existing classic version.
v0.9.5
v0.9.5 supports arbitrary node id and zone id, which can only be taken as integer values in all the previous releases. Besides, it includes several other updates.
- Add OS check in perform_network_assignment_DTALite() to make sure DTALite runs properly on Windows.
- Remove legacy naming inherited from DTALite_s.py, which has been deprecated.
- Remove format_type from demand_files in settings.yml and its implementation from read_settings() in utils.py.
v0.9.4
v0.9.4 brings crucial bug fixes in the simulation module and several enhancements.
- Fix the calculation of agent arrival time and agent waiting time.
- Use free-flow travel time as the traverse time of each link for the point queue model.
- Fix the incorrect setup of link outflow capacity within initialize_simulation().
- Remove useless memory_blocks and its implementations (which are intended for parallel computing), which removes the requirement that zone id's have to be consecutive #36.
- Remove problematic beg_iteration and end_iteration in setting up a special event.
- Enhance time_period parsing in setting up DemandPeriod instance.
- Fix potential issue related to _ (underscore) in YAML (that 0700_0730 is interpreted as integer 07000730 by replacing _ (underscore) with - (hyphen) in settings.yml) and add backward compatibility for time_period with _ (underscore) as delimiter.
- Add check on OD pair to ensure that agents of the same OD pair with the same departure time will be output for the first one in output_agent_trajectory().
- Bring back the post-processing after UE in case users do not do column updating (i.e., column_update_num = 0).
v0.9.3
v0.9.3 comes with bug fixes and performance improvement.
- Fix the bug in handling link capacity reduction in UE when a special event is specified in settings.yml.
- Remove dependency on demand.csv for loading columns to continue UE or initiate DTA (#31).
- Optimize colgen.py per TransOMS, which slightly improves the running time. See fb3f6e4 and bbad4b1 for details.
- Deprecate confusing find_path_for_agents() (#28).
v0.9.2
v0.9.2 improves the performance with faster and better UE convergency along with several bug fixes.
- Optimize the column generation module per TransOMS, which slightly reduces the running time and greatly improves the UE convergency by three times. For the Chicago Sketch Network, the UE gaps are 0.091% (or 13789.25) and 0.0326% (or 4909.65).
- Fix the bug in updating the total system travel time in _update_column_gradient_cost_and_flow(), which shall be updated before shifting flow.
- Fix the potential issue in path engine where the last through node may be traversed.
- Fix the bug in load_columns() that node path and link path shall be reversed in the loading process (#31).
- Add documentation on conducting simulation by directly loading existing UE result from agent.csv (#31).
v0.9.1
v0.9.1 features two major updates.
- Fully optimize the C++ routing engine with the MOST EFFICIENT deque implementation of the modified label correcting (MLC) algorithm. It leads to a 4.68% of speed improvement in column generation over v0.9.0 (20 column generations only and no column optimization for the Chicago Sketch network).
- Support UE + DTA. v0.9.1 connects UE with the simulation module. Now the routing decision of each agent is from UE directly. The original simulation implementation introduced in v0.9.0 (that each follows the shortest path from origin to destination) has been deprecated.