Page 1 of 1

Order Priorities versus OutsourcingCosts

Posted: Wed Jan 22, 2025 12:13 pm
by Bernd Welter
Hi there,

when it comes to "not enough vehicles to schedule all orders" the topic turns towards prioritizing some orders over other orders:
  • In the old xTour world (both xTour1 and xTour2) the planners used the order priority classes (e.g. 1..9) to deal with insufficient ressources. This was a hard approach which ensured that a high prio order was never displaced for the sake of lower prio orders (check this Prioritizing orders)
  • In Optiflow there's no priority attribute for an order to control the selection. Instead of this you have to look closer at the outsourcingCosts, but please be aware that this approach is in fact different: orders which are not scheduled but given with an outsourcingCost value >0 will contribute with their individual cost value to the total costs.
    Imagine the ressources you have can not deal with both tours in a single output plan - the algorithm has to decide which tour is returned.<br />based on priorities the red tour is returned - no matter how cheap the blue one is in comparison to the red one
    Imagine the ressources you have can not deal with both tours in a single output plan - the algorithm has to decide which tour is returned.
    based on priorities the red tour is returned - no matter how cheap the blue one is in comparison to the red one

Re: Order Priorities versus OutsourcingCosts

Posted: Wed Feb 12, 2025 2:23 pm
by clvo
Hello Bernd,
thanks for explanation... but for me it seems to be a bit complicated to find out, how to set the outsourcingCosts...
Should i set them with 100, 1000, 10000? :)
So if I have a Prio A, very important shipment... should i set it to null or to a very high value i.e. 10.000 and all other shipments to 1?
Feels like old solution was more practicable...
Thanks for your experiences.
BR Claus

Re: Order Priorities versus OutsourcingCosts

Posted: Thu Apr 03, 2025 12:51 pm
by TimDeMeerleer
While Priorities has a simplified syntax, and is more readable to a user, this has some serious drawbacks.
  • Should a Prio1 order be unplannable because it contains wrong data of any kind, the optimization as a whole will be impacted as no prio2 orders would be planned.
  • Also, if two orders are at the same location, one prio1, one prio3. Would it make sense to not deliver the prio3, just because a remote prio2 has not been planned yet?
This is the reason why long-lasting tests have been performed on Priorities, all with the conclusion to not include this in the product.

This is why we would always advise to set the Outsourcing cost to reflect the actual cost of not planning an order. A good first step would be to set the average cost per box/order.

If this is undesired, some orders must be planned, disregarded their Outsourcing Cost, you can play with different levels:
  • The question you must then ask yourself is how many prio2 orders do I want to leave unplanned for one prio1. And this could help you set the corresponding Outsourcing Costs.
  • If all prio1 orders must be planned, let us give these a penalty of 10000 (or make them mandatory: outsourcing cost = Null).
  • If I want to plan 10 prio3 orders for one prio2, this can be achieved by
    • Prio2: outsourcing cost = 1000
    • Prio3: outsourcing cost = 100.