Top  Previous  Next

Matrix refer to the source of distance/time matrix:

InXML: Provided as part of XML file

StreetNetwork: Calculated using street network(s)

StraightLineLatLong: Calculated using great circle distances (lat/long coordinates)

StraightLineMeter: Calculated using Pythagoras (meter-based coordinates)

StraightLineFeet: Calculated using Pythagoras (feet-based coordinates)


If Matrix is "StreetNetwork", FleetEngine uses dynamic segmentation and can also handle avoidance of u-turns (see Job section) and calculate different matrices for different resource types. Coordinates are verified against the network setup - invalid coordinates returns an error.


Even when using InXML, it is still required to specify coordinates for depots and jobs, because we are using them in the optimization and the viewer also uses these for generating a map of the result.


NumCapacities refer to the number of capacities used for the resources(default 0, maximum 5). If you have both a weight and count capacity, you have 2 capacities for instance.


SpeedKM can be set if Matrix is "StraightLine*". This is the speed used for translating the calculated distance into time. For obvious reasons the speed is the same everywhere. Unit is km/h, (default 60).


MaxCalculationTime is the maximum calculation time in minutes (Default 30). Calculations may stop sooner or you can stop it yourself, by calling the OPTIMIZESTOP method. Calculation time as reported by the server in function calls / events / desktop version is in seconds, while it is also minutes in the output XML. This only includes optimization time, matrix calculation time is on top of this.


MinCalculationTime is the minimum calculation time in minutes, to be used in combination with StopRatio (default 0).


StopRatio can be used as a generic stopping criteria. What it generally does is measuring the area under the red line in the graph in the desktop version. This is compared to the full area of the graph. When the ratio drops under the threshold and minCalculationTime has passed, it stops. With a value of 0.05, it will run for relatively long time before stopping. A higher value such 0.10 or 0.15 will make it stop after shorter time, if you want a quick solution (default 0 = disabled).


Area is measured from the last time, when the cost increased - typically because additional jobs got assigned. Similar minCalculationTime counts from last increase in cost.


RandomSeed allows you to replicate a previous run, by ensuring the same sequence of random numbers is used. By default a random number is used. This only works with the same version of the software.


GISOutput allows you to define if and how coordinates of the routes should be included in the output:

None: Skip (default)

Line: As straight lines between jobs / depots. This is usually preferred for the testing phase.

Route: As detailed routes following the street network. This makes the XML files a lot bigger.

LineRoute: As Lines in intermediate results and Routes in the final result.

Directions: As driving directions (turn right, left etc).

LineDirections: As Lines in intermediate results and Directions in the final result.


Route / LineRoute / Directions / LineDirections are only allowed in combination with Matrix = StreetNetwork.


Use of Directions require that roadnames are loaded together with the street network in the INI file.


If you want to use the Viewer application, GISOutput need to be different from None.



Normally job priorities work by preferring one job of higher priority rather than all jobs of lower priority.

If there is a choice. This is called "strict" and means weights are calculated automatically.


As an option you can define your own set of priority weights, so it isn't so strict.

Meaning for instance N jobs of lower priority may get preferred to 1 of higher priority.

You should define weights for as many priority levels as you use in the task.


1 is highest priority and 5 is lowest priority.


Priority also applies to standby jobs.



This feature allows you to keep load between different resources balanced, so the workload is more or less the same for everybody. This always comes at a cost. Assume the optimum solution is to let resource A execute 10 jobs and resource B execute 1 job. If you then transfer some jobs to resource B, the total cost may increase from increased driving distance.


By calculating the spread between workloads (standard deviation) and using a factor, it is possible to add an additional cost element to the total. This makes FleetEngine prefer solutions with a more even load between resources.


See supplied spreadsheet workload_balancing.xls for an example.


Requires a minimum of 2 resources.



If set to Combined, the different elements are not simply summed, rather we use the maximum of <ResourceType><ServiceTimePerJob> and <Job><ServiceTime>, when the coordinates of multiple jobs are the same and they are assigned to the same resource period after each other. This can be used to define for instance a bus stopping and picking up / delivering multiple students. Stopping takes 1 minute and each student takes 0.1 minute to load/unload. Then only values relating to <ServiceTimePerDemand> are summed.


Default: Normal