Skip to content

Release Notes

This is a summary of the key changes in subsequent patches for version 22 of Aimsun Next.

22.0.2

Improvements

Static Assignment

  • When the temporary file cannot be written or read (f.i. due to a lack of disk space) the Static Assignment is cancelled.
  • The size of the temporary file generated during the execution the Static Assignment has been significantly reduced.
  • Now check & fix on Static Assignment Experiment also checks the consistency of the Master Control Plan selected as it is done in Dynamic Traffic Assignment experiments.
  • When using control plans with control junctions for which the cycle duration is smaller than the duration of all the phases, the cycle used in CMacroTurning::getCycle() is expanded to the duration of all phases, consistently with Micro and Meso simulators.

Static Adjustment

  • When using Transit Plans in Static OD Adjustment the Transit vehicles volume is also accounted in the detection of the different measurements in the RDS if the user classes match. For instance, if the detection data has no vehicle associated, the adjustment will consider it refers to all possible users: included those with purpose any and the vehicle types present in the Transit Plan.

Transit Assignment

  • The Path Assignment editor in the Outputs of Transit Assignment also includes function components.
  • The Path Detail editor in the Transit Path Assignment editor now shows the different costs and costs components experience through this path.
  • Scripting documentation has been improved in order to make the use of PTForestCalculator and PTSkimCalculator easier for the user.

Hybrid Macro/Meso

  • When using control plans with control junctions for which the cycle duration is smaller than the duration of all the phases, the cycle used in DTATurning::getCycle() is expanded to the duration of all phases, consistently with Micro and Meso simulators.

Pedestrian Simulation

  • Improved pedestrian navigation around obstacles when crossing a street.

Four-step Experiment

  • Distribution & Modal Split boxes are now allowed to use skim matrices with Any trip purpose and Any vehicle selected.
  • Loading of objects has been improved and now no more than the strictly necessary objects(matrices, vectors, ...) are loaded to execute a box.
  • Public Transport Boxes now can generate Function Component skims. The Static Assignment and Transit Assignment boxes no longer require storing the output Path Assignment if there are no connections from the Skims or Volume slots. This will reduce the computation times in all cases.

Check & Fix

  • Check & Fix of any experiment now fixes those control junctions whose phases last longer than the cycle duration. The fix is done by expanding the cycle duration until all phases are included.

SSAM Extension supports saving results for multiple replications

When running multiple replications under the same Dynamic Scenario, the result is not overwritten anymore. The output file generated now includes the Replication ID, the Start Time and the Grouping if specified in the option Analysis Area(s): i.e.: path/odroutes_.trj

Example: odroutes_405_01_00_00.trj (Replication Id: 405, start time: 01:00:00, no grouping)

Performance

  • The usage of skim matrices is now more efficient. Consequently the memory consumption and execution time of Modal Split have been greatly reduced.

Static Assignment

  • Memory consumption has been greatly reduced in the Stochastic Assignment by storing the generated paths into a temporay file until they are needed to calculate statistics at the end of the assignment.
  • Size of output APA file from Stochastic Assignment has been significantly reduced.

Transit Assignment

  • The performance of the calculation of path-based statistics ( f.i. skims ) has improved. Now computation times and memory consumption have been reduced. Both could be a limiting factor for large networks (specially if using the Multi-Routing option).
  • Several performance improvements have been done when initializing a Transit Assignment in large-scale networks. Among them, reducing the number of evaluations of the cost functions when building the Transit graph.

Static OD Deprature Adjustment

  • Performance when processing the input Path Assignment has been improved by removing redundant and duplicated calculations.
  • Significant reduction of memory consumption has been achieved. This reduction will be specially significant in large models and when using elasticities for the OD term.

Mesoscopic API

  • Added new function AMesoGetCurrentTimeSta that returns the simulation in seconds from midnight.

Bug Fixes

Kernel

  • GKGenerationAttractionVector method clone now copies correctly all the data. Before, it did not copy correctly the GKTransportation Modes, the GKCentroidConfiguration, nor its Generation and Attraction values.
  • When restoring Path Assignments of newer Next versions than the one used, instead of crashing, the restore is aborted and an error indicating this issue is shown in the log.
  • When calculating the Stop To Stop Times at the Transit Time Table ( getStopToStopTimes( ... )) or Transit Line ( getTimeTableStopToStopDelay( ... ) ), The calculation is done consistently for circular lines using the offsets indicated in the Transit Line Schedules. Before, the stop to stop time from the penultimeate stop to the last one (the one closing the loop) returned a negative value.

Cost Function Editor

  • Addressed a crash when drawing a function's graph if the selected experiment's scenario had no traffic demand.
  • Scenario's traffic demand is now required for all function types except: Distribution Impedance Function, Modal Split Discrete Choice Function, Modal Split Utility Function, Distribution Deterrence Function and Distribution Utility Function.
  • Added information messages when drawing a function fails.
  • Graph was shown for functions that were not supported. Now the graph is only displayed for VDF, TPF and JDF.
  • Function definition was not updated properly when the selected language was C.

Hybrid Macro/Meso

  • In the macro area, close turn actions with specific lanes where closing the turn. These turn close action with specific lanes are now not considered in the macro area.
  • Fixed a crash when the close turn action was not correctly defined. The closed turn did not exist in the network.
  • DTATurning control times considers all control plan data for all periods. Before this fix, there was a bug for which, if warmup period was not zero, the average did not consider the control plan correctly in the last route choice interval.
  • DTATurning control times now consider correctly the control overrides. In previous versions, when warm-up was used, the override was shifted by a warmup duration.
  • DUE simulations with transit vehicles could produce different results when using multiple threads. In order to fix this problem we had to change how transit vehicles are generated in all dynamic simulations.

Statistics in multithreading

  • Times series of Max Queue (for sections, PTLines, centroids) and of Max Virtual Queue (for sections) are now shown as expected in Micro/Meso/Hybrid when the simulation is multi-threaded.

Microsimulation

  • Fixed a problem with actuated nodes with pedestrian crossings. The pedestrian detection or actuation associated with these pedestrian crossings didn't follow the configuration in the signal groups.
  • In the 2-lane overtaking model, the units of the speed difference to overtake with solid line were not displayed as expected and the conversion when working with English units was wrong.
  • Added standard deviation for detector speeds and detector headways.

Static Assignment

  • When using subnetworks and collecting statistics of subpaths partially or totally outside the subnetwork a crash occurred. This has been fixed by not collecting statistics of subpaths that are not fully inside the subnetwork, as they are out of the scope of the considered assignment.
  • Attribute Overrides now work correctly for Super Node trajectories and actually override all the specified attributes.
  • Fixed crash when opening the Path Assignment editor of a retrived APA file coming from a Stochastic Assignment.
  • Incremental Assignment parameters editor now stores correctly the applied Load and Unload percentages.
  • For centroid connectors to nodes, sections connected by unexisting turnings are not used as entrances or exits.
  • Transit volumes are computed correctly for cases where the assignment period changes day. Before, in those cases, the calculation was not considering all the vehicles in the period.

Static OD Adjustment

  • Static OD Adjustment now allows selecting and executing with lower values of Trip Length Distribution elasticity
  • Trip Length Distribution calculation now is calculated correctly when there are gaps (empty bins between non-empty bins). Before, the bins after this gap were (incorrectly) discarded.
  • Static OD Adjustment now discard GKSubPath observations if the subpath is empty. Empty subpaths do not make sense and were causing the adjustment not to converge.
  • Static OD Adjustment now considers correctly the counts of Subpaths which are of type: Flow or Count in PCU. Before, all were treated as Count measurements and caused that the demand was adjusted against incorrectly.
  • Static OD Adjustment Validation Tab now shows correctly the assigned values of single-turn Subpaths. Before their values were always set to 0, even if they were not. This can be checked when comparing to the Final Assignment Output Validation Tab.
  • Rather than crashing, Static OD Adjustment now requires the user to activate the "Keep Paths In Memory" option in case the RDS contains Subpath measurements. Doing so is required to do the adjustment internal calculations.

Static OD Departure Adjustment

  • Static OD Departure Adjustment Scenario now allows selecting the Geometry Configurations to be used. Before, it could only be done via scripting.
  • Subpath RDS observations are now supported in Static OD Departure Adjustment.
  • The initial demand profile (which is later optimized) in Static OD Departure Adjustment now considers all detection that is used. Including Super Node Trajectory detection, which was ommitted before.
  • The Validation tab now shows the correct shows the correct values for detectors that partially cover sections in the Output tab of the Departure Adjustment Experiment.
  • Outputs are no longer collected and shown for discarded detectors and detector stations.

Transit Assignment

  • The Waiting Time function evaluation receives now the experiment as expected.
  • Transit Assignment now uses correctly the Crowd Discomfort Overrides for Transit Lines.
  • Transit Assignment now uses the Geometry Configurations and Subnetwork consistently.
  • The Initial Waiting Time skim now is calculated as the weighted average of this value for each strategy. Before this fix, the calculation just summed the Initial Waiting Time of the different strategies.
  • Multiple reproducibility issues caused by ambiguities in the route choice have been fixed. Among others, they occurred when having multiple Transit lines overlapping and their costs were the same between the stops on the overlap.
  • The cost of paths between OD centroids without demand are now shown in the skim matrices and path assignment output tab.
  • Infinite loop fixed due to negative In-Vehicle Time in Transit Lines avoided. Now the assignment cancels and prints a message describing this issue.
  • All the PTLine Stop to Stop delays ( getTimeTableStopToStopDelay(...)) are now consistently evaluated for circular lines too. Before, the stop to stop time from the penultimate stop to the last one (the one closing the loop) returned a negative value.
  • Crash fixed when Retrieving Transit Assignment APAs through the Transit Assignment Experiment.
  • Now errors in the Transit Delay Function cancel the execution of the Transit Assignment Experiment.
  • Transit frequencies are computed correctly for cases where the assignment period changes day. Before, in those cases, the calculation did not consider all the Transit vehicles to calculate the frequency.
  • Fixed issues in the (average) Stop To Stop times calculation have been fixed. Among them, when the assignment and/or the time tables cross the midnight or the omission of time tables outside of the assignment period in the calculation.

Distribution

  • Distribution Impedance Functions now receive the context initialized with the correct user and experiment.

Four-step Experiment

  • Fixed unexpected crashes occurring when editing a Four Steps Experiment with boxes which had no target assigned.
  • Public Transport Boxes now generate the In-Vehicle time skim matrices when requested.
  • Stochastic Assignment Boxes now are executed loading the initial volumes correctly.
  • Four Step Loop did not store all the specified exit conditions. As a result executing the Four Steps Experiment before and after saving could lead to different results, because a different iterations were made. Now this is issue has been fixed.
  • Four Step Loop controllers were omitting some of skim matrices. As a result in the downstream nodes, those input skims were missing too. Now all the specified skims in the incoming connections are used.

Pedestrian API

  • Fixed a race condition in release code.
  • Added convenience function to facilitate creating a defaulted StaticInfPed instance via passing a max unsigned 32-bit integer (i.e. 0xFFFFFFFF) to AKIPedestrianGetStaticInf. The result can then be overridden for passing into AKIPedestrianSetStaticInf calls.

Microscopic API

  • Function AKIODDemandGetDemandODPair now returns the real simulated demand and the return value is an integer instead of a double.

22.0.1

Improvements

Unloading data

  • It is now possible to unload replication data and path assignment results. As a complement to the existing data retrieval options available on the context menus of replications and path assignment results, there are now options that enable you to unload replication data and path assignment results from the database. These options enable you to save memory, reduce computational effort, and enhance performance. They are:

  • Unload Replication Data: unloads the replication data that were stored in the database, to save memory and enhance performance.

  • Unload Path Assignment Results: unloads the path statistics and path assignment information from the replication to save memory and enhance performance.

You might find it helpful to select one or both of these options before retrieving data and results from another replication.

Depending on the type of experiment you are running, the wording of Unload xxx Data will differ.

Cost Functions

If any of the following is true, then the affected process will be cancelled and an error message displayed in the Log window.

  • The turn cost (TPF+JDF) is negative.
  • The section cost (VDF) is less than or equal to zero.
  • The unidirectional centroid connector cost (VDF) is negative.
  • The bidirectional centroid connector cost (VDF) is less than or equal to zero.
  • The supernode trajectory cost (TPF+JDF) is less than or equal to zero.

    Note that any processes you have already run in earlier models will be cancelled if these conditions are not met.

  • The class GKFunctionCostContext now includes an iteration field which contains the static assignment iteration at which the function is being evaluated. This parameter might be used when evaluating VDFs, TPFs or JDFs.

Path assignment plans

  • The path assignment plan has to cover fully the traffic demand time if this plan wants to be used in the scenario. Empty slots are not allowed.

DUE convergence table: DUELINKDATA

  • The generation of the DUELINKDATA is no longer automatic for Dynamic User Equilibrium. To generate this table, you must now add the experiment variable $ENABLE_DUE_CONVERGENCE_DATA and set it to yes. This can be edited in the Variables tab in the experiment.

Distribution

  • The execution of the Gravity Model is aborted if there are errors in the Deterrence or Impedance Functions. And if, due to the deterrence values used, the Gravity Model cannot balance trips. That occurs when all deterrence are zero for all ODs from/to a given centroid.

Static OD Adjustment

  • The Static OD Adjustment Weight Function now includes GKFunctionCostContext as an input. This allows the function to access the experiment object, simulation time, duration and user class. All existing adjustment weight functions from Aimsun Next 22.0.0 or earlier will need to add the context to the function input.
  • Using Centroid Grouping option now groups OD pairs consistently when using multiple user classes.

User Interface

  • Using the View Mode dialog or the Legend window, you can hide transit connections and non-transit connections separately when defining view modes and styles for 2D views.
  • A summary has been added to the Type Editor window which displays the total number of columns in a type, by storage and data type. This can be found in the Types Window.

APIs and SDKs

  • The Micro API, Meso API, and MicroSDK sample projects in the installation files are now correctly configured to link to the current Aimsun Next 22 libraries.
  • The meso API load function no longer requires the simulation handler as an input parameter.
  • New function in meso API that can be used to remove vehicles AMesoRemoveVehicle.
  • New functions related to manage pedestrians have been added to the micro API.
  • Hybrid micro/meso simulations now can handle micro and meso apis.

APA Fixer

  • Fixed APA sizes has been significantly reduced by improving the compression of the storage of similar paths.

Dynamic Assignment

  • Paths in APA Macro from/to centroids connected to/from objects inside a GKSuperNode can now be loaded in Dynamic Assignment by reconstructing the interior of the GKSuperNode in order to complete the segment that Macro does not describe.

Departure Adjustment

  • Two demands are created if there was a warmup period set in the Static OD Departure Adjustment Experiment: one for the Adjusted demand and another one for the warm-up demand.

Transit Assignment

  • Transit Assignment Experiment is cancelled if cost functions are not evaluated correctly.
  • Function Component values are an output of the Transit Assignment’s Path Assignment. Their values can now be checked and Skim matrices obtained from the Path Assignment Dialog.
  • If the option to generate Skim Matrices is checked in the Scenario -> Outputs to Generate, skim matrices containing the costs not only for each component but also for each function component of the transit trip cost will be created automatically under the OD matrices folder.
  • Transit Assignment no longer considers all centroid connectors as bidirectional. Now their directionality (generate, attract or bidirectional) is considered consistently.
  • Fixed crashes when using Transit Operators option.

Scripting

Performance

Static Assignment

  • Significant performance improvements in the calculation of Skim Matrices for the Static Assignment.

Transit Assignment

  • Significant performance improvements have been implemented to load Transit Assignment Outputs more efficiently.

Bug Fixes

Join centroids

  • When centroids that were not part of a polygon were joined, they were discarded on save. This has now been resolved.

Dynamic Traffic Assignment

  • Vehicle and Purpose parameters weren't set in GKFunctionCostContext dynamic function costs.

Microscopic simulation

  • Yellow boxes were not being correctly considered in a number of cases. The following cases have been fixed.
  • Where stop lines were moved back from the end of the section.
  • Where vehicles shared a conflict zone.
  • In pedestrian crossings.

Dynamic User Equilibrium

Path Assignment

  • Additional checks on the consistency of the Path Assignment Plan have been implemented for all model levels. This includes checking the geometry and time intervals. Where the time intervals are inconsistent the simulation is cancelled, and an error displayed in the log. Where the geometry is inconsistent, Aimsun Next removes the affected OD pairs from the path assignment. This is recorded in the log. Previously in these circumstances, the path assignment would be discarded, and the simulation would continue without it as an input. This may give inconsistencies between versions.

Generation/Attraction Experiment

  • External centroids are now included when using an "Aggregate Mode". Those centroids were erroneously discarded in previous versions.

Distribution

  • The maximum number of threads used is now limited by the license type and command line argument "force_th".

Four-step Experiment

  • Several bugs have been fixed for Script Boxes making them now functional, including the option of using output prediction consistently.

Static Assignment

  • When loading an APA in a static assignment, consistency checks of the geometry of the APA were not comprehensive. This caused crashes in some instances. APA and network geometry must be identical.
  • The static assignment was creating a database even when one was not necessary. This has been fixed and statistics are only collected and stored when required by the user.
  • Some performance and consistency improvements were made by not updating and processing stats of vehicles not allowed in specific places of the network. In those cases, both evaluating cost and assigning volume (in the case of Transit, specially) were inconsistent operations.
  • The maximum number of threads used is now limited by the license type and command line argument "force_th".

Static Adjustment

  • Now Static Adjustment Outputs include measurements from all user classes consistently. It no longer overrides cases where the same object has "All" and specific vehicle/s types.
  • Measurements on sections marked as congested through "Congested Sections" are no longer discarded as results, unless they have not been considered by the algorithm in the final iteration.
  • Validation Tab now displays the GKVehicle name in each measurement, to identify the vehicle associated to it.
  • The maximum number of threads used is now limited by the license type and command line argument "force_th".

Transit Assignment

  • Transit Assignment is no longer executed if there exists more than one connection from/to a centroid to/from a bus stop. This is a situation that may occur if connecting a centroid to a transit station and to a bus stop inside it.

Dynamic Assignment

  • Now, when loading APAs from Macro from/to centroids connected, the concurrent parts are limited to use the maximum number of threads, now limited by the license type and command line argument "force_th".

Dynamic Adjustment

  • When stopping the Dynamic Adjustment by reaching the maximum number of iterations, Aimsun Next was skipping the last simulation update. Now the results are consistent with the final demand.

APA Fixer

  • Centroid connections to and from nodes were not being checked correctly and any resulting APA was therefore inconsistent: all paths started at sections entering the node, however for entrance connections from centroid to node, the first section in path is always a section exiting the node.
  • The APA fixer was not providing the connectors in any specific order. This caused reading issues, which lead to differences in path assignment when compared to running the model.
  • The maximum number of threads used is now limited by the license type and command line argument "force_th".

GTFS Importer

  • When attributes had quotation marks, they interfered with the import process. Multiple bus stops were created instead of only one and timetables were not filled correctly. This has been fixed and reading process filters quotation marks.
  • Transit lines were not completely connected in some cases, e.g. short path between stops through a u-turn. Logic used to create paths has been refined.

GIS Importer/Exporter

  • Shapefiles containing null points caused a crash during the import process.
  • Merged nodes shapes were not exported correctly and were not referenced by sections exported.

Adaptive Control Interfaces

  • LISA controllers are now starting the communication as expected when launching a simulation.