Updating demand matrices using the least squares method

Besides TFlowFuzzy, Visum provides another effective method for updating matrices: the least squares method. It differs from TFlowFuzzy in the solution procedure, which minimizes the squared distance between the assignment value and the counted value. The structure of the original matrix is maintained as far as possible by simultaneously minimizing the squared distance between old and new matrix values.

The nonlinear optimization problem is:

with

: values of the initial matrix

: corrected matrix values

: volume of network object r as a function of the corrected matrix values

: weighting factor for the difference between volume and count values

: weighting factor for the difference of values between corrected and initial matrix

: count value

Function is multi-linear and the linear factors are listed in flow matrix A,

.

Similar to TFlowFuzzy, flow matrix A is determined as

with

: number of paths that belong to OD relation ij

: 1 if path K contains network object r, otherwise 0

: volume of path K

There are two major advantages of the "least squares" method compared to TFlowFuzzy:

  • It always delivers a solution, which is why the procedure is more robust than TFlowFuzzy. However, this does not necessarily mean that the count values are reached as desired with the found solution.
  • The runtime is considerably less compared to TFlowFuzzy. This means the method can also be used in large models with a large number of count locations and the computation still time remains reasonable.

Nevertheless, both procedures still have their purpose:

  • For some models, TFlowFuzzy produces a better match of assignment and count value.
  • The structure of original demand is maintained better. The square objective function of the "least squares" method penalizes large absolute deviations more heavily than small ones. As a result, the method corrects OD pairs to different extents, depending on their absolute magnitude. And the ratios between OD pairs can be influenced more than with TFlowFuzzy, where entropy maximization mostly results in maintaining ratios between OD pairs. However, this behavior can be corrected with a clever choice of the weight, see below.

The "least squares" method requires slightly different input variables than TFlowFuzzy.

  • Instead of defining tolerances for count values, you define different weighting factors. This can be used, for example, to express the importance of a count location.
    From our experience, the following basic structure has proven itself for the weight: it should always contain the term 1 / Sqrt(Count). This term leads approximately to the optimization of GEH², i.e. the square of GEH and thus to a balanced result. If some count locations shall have a stronger effect than others, multiply this term by an appropriate weighting factor.
  • In addition, a further weighting factor must be specified that defines the weight of the matrix deviation (difference between new and old matrix entries) compared to the count value deviations in the objective function. If this factor is small, matrix deviations receive a small weight compared to count value deviations. Unfortunately, there is no rule of thumb as to what magnitude this factor must assume to be sufficiently effective. In our experience, there are models where values in the order of 10-7 have hardly any effect; in other models, even small values lead to noticeable differences. We recommend starting with a weighting factor of 0 and analyzing the difference between the initial and the result matrix. If it is unexpectedly large, the weighting factor should be increased until the deviation is acceptably small.

The iterative solution procedure mostly avoids an unnecessary deviation from the currently assigned matrix. Thus, the weighting factor only has a minor effect as long as the specified original matrix is identical to the currently assigned matrix.

However,, the assigned matrix may differ from the matrix whose structure is to be retained. This is the case, for example, when the "least squares" method is used iteratively, i.e. multiple times in alternation with an assignment. Here you want to avoid that the deviation between the result matrix and the "historical" original matrix becomes larger and larger.

There are two variants of the "least squares" method:

  • Static variant

The static variant corrects a static matrix and always refers to total volumes. It does not correct an existing percentage PuT time series.

  • Dynamic variant

The dynamic variant corrects a matrix time series with reference to the volume per analysis time interval. Thus, the dynamic variant takes the temporal dynamics both in demand and assignment into account. The time intervals on both sides do not have to be identical: The demand time intervals are defined by the time series, the time intervals of the count values by the analysis time intervals.

Note: The dynamic variant is only available in conjunction with the PrT assignment procedure Simulation-based dynamic assignment (SBA) and the timetable-based PuT assignment.

The methodology of both variants is almost identical; the main difference is the additional dimension of time, which essentially only affects the flow matrix. In the dynamic variant, the rows of the flow matrix no longer correspond to the count locations, but to the cross product of count locations and analysis time intervals; the columns of the flow matrix no longer correspond to the quantity of the OD pairs, but to the entire demand time series. An entry in the flow matrix corresponds to the proportion of the demand of an OD pair during a demand time interval that passes a count location during an analysis time interval.

By adding the time dimension, the number of cells in the flow matrix increases considerably and the computing time of the solution procedure increases accordingly. This is why the dynamic variant was not implemented for the slower TFlowFuzzy procedure.