Releases: jdlph/Path4GMNS
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.
v0.9.0
v0.9.0 introduces a mesoscopic traffic simulator using the point queue model. Each agent is assumed to follow the shortest path from origin to destination. Other updates include
- Link length was converted from meter to mile in link.csv for ASU in the sample data set;
- Link path or node path is specified in the output of find_shortest_path().
v0.8.7
v0.8.7 finalizes the changes introduced in v0.8.7a1 as a stable release with the following updates.
- Calculate and print out relative UE gap as convergency measure.
- Support the most common length and speed units for link.csv, which include meter (or m), kilometer (or km), mile (or mi), kmh (or kph), and mph.
- Add more stable handling over the legacy mode 'p' or 'passenger'.
- Include Public API to docs.
- Print out distance unit (i.e., mi) in find_shortest_path(), get_agent_node_path(), and get_agent_link_path().
v0.8.7a1
v0.8.7a1 serves as a hot fix to v0.8.6 over the following aspects.
- add backwards compatibility over the deprecated agent type of p or passenger.
- enhance demand loading with InvalidRecord when a record of demand volume is empty.
- fix potential issue in setup_spnetwork(), which requires ascending order of zone ids by adding sorting to get_zones() in class Network.
- fix the potential issue that bin_index might not start from zero along with the potential zero division issue, when all zones have the same number of nodes in _synthesize_bin_index().
- change synthesized demand file name to demand.csv in output_synthesized_demand().
- update all settings.yml in data directory by changing 'p' to 'a' and 'passenger' to 'auto'.
- enhance exception message when an invalid agent_no as a result of an invalid agent_id is encountered in _get_agent().
- output origin node and destination node of each agent in agent_paths.csv while remove toll and travel_time. change header 'volume' to 'OD volume' to avoid confusion.
- enhance the tutorial with elaboration on the legacy way of loading demand and zone information and some caveats.
v0.8.6
v0.8.6a2
v0.8.6a1
v0.8.6a1 comes as a hotfix to v0.8.5 over the following two issues.
- read_nodes() cannot proceed if a record of column "is_boundary" is empty or nonmetric.
- misleading code snippet in finding shortest paths when link sequence is expected, where the key word "seq_type" should have been placed before argument 'link'.
Other updates include
- separate _output_equity() from evaluate_accessibility();
- optimize the setup for bin_index in read_nodes() and polish README on Synthesize Zones and OD Demand.
v0.8.5
v0.8.5 adds support to Apple Silicon, and synthesizing zones and demand. Other changes include,
- remove legacy namings inherited from dtalite_s.py;
- remove useless (legacy) members;
- remove useless imports automatically added by VS Code;
- change the value of MAX_LABEL_COST to the largest integer (i.e., 2147483647);
- change the caller of setup_spnetwork() from read_network() to perform_column_generation();
- introduce class Zone and update the previous implementation where involves zones accordingly;
- support loading demand for an agent type and a demand period via load_demand();
- support loading zone information after synthesis;
- update all settings.yml in data directory to include "use_link_ffs".
v0.8.4
v0.8.4 fixes bug in equity evaluation and introduces special event representation for traffic assignment. Specifically,
- fix bug in mean accessibility evaluation;
- introduce special event with affected links and capacity reduction ratios, which will be considered in the process of column generation for traffic assignment.