Using the Yojee optimiser to build and assign routes

Yojee provides dispatchers with optimisation technology for route planning. The steps to activate optimisation in Yojee are as below:

  1. Select some tasks. Use filters to help you if required.
  2. Select driver(s) for optimisation
  3. Click Optimise on the ribbon bar
  4. Specify optimisation settings and click Continue

  5. Review the results and click Assign on the drivers list


Controlling the scope of optimisation

The scope of optimisation is defined in three aspects

  1. The driver(s) involved in optimisation - based on the user selection in step 2 above.
  2. The tasks involved in optimisation - this is based on the selected tasks in step 1 above. Additional tasks are automatically also added into scope of optimisation:
    1. Existing task(s) assigned to selected driver.
    2. Tasks linked to either a selected task, or an existing task assigned to selected driver.
  3. The time frame used in optimisation - this is the time starting from the optimisation start time, while also considering the effective driver schedule.

    Why are my orders dropped?

    Your orders might be dropped by the optimiser for various reasons. It just means a plan is not possible. More often than not, this is caused by issues in the data quality. The data sanity checklist below provides some "first aid" guidance to checking your data for issues.

    Data sanity checklist

    Optimisation relies on meaningful data to build good routes. Using data that are not up-to-date usually means you will not get meaningful results. Check your data using the checklist below:

    1. Orders must be possible to execute.
      1. There must be a mapped road linking the driver to the pickup and drop off addresses. If you know there is no road linking your addresses but want to optimise anyway, you can use crow fly distance by turning off the optimiser flag "Use real road distances".  
      2. There must be a reasonable time window for executing each task. If the item must be picked up within "Last Sunday 3-5pm", the optimiser running for "next Tuesday" will not be able to include this task in the plan.
        1. The simple solution to this problem is to update your time windows to sometime in the future.
        2. If you are trying to analyse orders in the past, turn off the optimiser flag "enforce epoch". This will allow the optimiser to ignore the time frame specified - allowing optimisation for past time windows.
    2. Driver must be available.
      1. Check the driver schedules. Does your driver have working hours coincide with the task execution windows? Are the working hours too short to complete the task?
      2. How long of a service times is required at the address location?

    Understanding penalties and costs

    Optimisation relies on metrics as well to decide which routing is a better one. An objective function is a mathematical expression that the optimiser uses to compare multiple plans.

    • Drop penalties are used by the optimiser as motivation to plan each individual item. If the drop penalty value is way surpassed by your route costs (this can happen if your travel distances are in the order of hundreds of kilometres/miles), you might need to get your optimiser tuned.
    • Cost per KM travelled is another key metric used by the optimiser to ensure the shortest path is used
    • ...other optimiser objectives.

    Example of an objective function

    Minimise cost of results, where cost of result is defined by C:

    C = (W1 x Number of tasks dropped) + (W2 x Distance travelled in KM)

    • W1 is the drop penalty
    • W2 is the cost per KM travelled

    Controlling vehicle capacity

    If your vehicle has capacity limits in how much can be carried, you will need to make sure the optimiser observes this limitation. This can be specified on the vehicle type that is assigned to the driver. The vehicle type capacity can be managed in the fleet management screen Manage>Vehicle Management>Fleet Management