There exist different ways how you can schedule (production, process, planned) orders in PP/DS. Orders can be scheduled interactively in the detailed scheduling planning board, in the background using heuristics, or by the DS Optimizer. When orders are scheduled interactively or in the background using heuristics, the scheduling follows local optimization criteria or a simple logic, that is defined in the Strategy Profile. For example, the Strategy Profile can define that the order should be scheduled in direction forward and the next available slot can be used to schedule the order. This kind of scheduling is executed immediately for the material, or resource, or order, that has been selected. The response time of such a scheduling step is typically very short.
In contrast, the DS Optimizer takes a different approach. It is not looking at scheduling individual orders, but can only be executed for a set of resources. Taking all orders that are to be scheduled on these selected resources into account. The DS Optimizer is guided by global optimization criteria. That means, it does look at the complete scheduling result of all orders and evaluates global fitness criteria like the sum of all order delays or the total setup time based on the sequence of all orders in the schedule. Depending on the number of orders that have been scheduled executing the DS Optimizer can take seconds, minutes, or even hours.

Why are optimization algorithms required for scheduling tasks? What makes scheduling difficult and why is it so difficult to obtain the best possible setup sequence? Actually, it can depend on your business requirements, whether an optimization algorithm is required to solve your scheduling tasks or whether a simple heuristic can suffice. If there are no significant setup operations required between the production of different products and your objective is to keep a high service level. That is to produce all orders on time, then the most simple logic is to sort all your orders by their requirement date to obtain the best possible sequence to match your objective.
However, in most cases, the scenario is not that simple and the objective cannot be accomplished that easily. There are typically many different objectives, which are conflicting. Conflicting means that improving one objective can deteriorate another objective. Objectives in scheduling can be:
- Choose the right sequence: setup optimization
- Produce at the lowest cost: mode selection
- Increase service levels: avoid delaying orders
- Improve margin: select most profitable orders
What makes scheduling difficult is its complexity.

Imagine a simple scheduling task. You must decide about the sequence of three orders A, B, and C on a single resource. There exist six potential schedules: ABC, ACB, BAC, BCA, CAB, and CBA. Mathematically, this is expressed as 3!. While it is simple to pick the best sequence in this case, it gets more difficult very soon. If you must schedule 10 orders on a single resource, there are already 3,628,800 potential sequences and with 15 orders, this number increases to more than 1,307 billion potential sequences. In real life, there are even more orders on more resources to schedule, which make the use of a smart algorithm mandatory.
How long does it take to count all potential solutions to select the best one?

Assume that it takes one millisecond to evaluate a single solution. Since there exist six potential solutions for three orders, it takes six milliseconds to evaluate all potential combinations. For five orders, this number increases to 0.12 seconds and for 10 orders it takes an hour. However, for 20 orders, it could not be computed anymore in due time. Based on the preceding assumptions, it would take more than 77 million years.
How are solutions generated and evaluated?

You can compare the search for a reasonable schedule with finding the right path in a maze. You must make sequential decisions on whether to turn left or right and, if you have made the decisions in the right sequence, you will eventually have found your way out. You can typically include probabilities into your decision-making. For example, you would change the direction at some point, if you have run in circles. Likewise, any smart scheduling algorithm has to consider knowledge derived from previous decisions and must evaluate the outcome.
Simply speaking, the DS optimization algorithm schedules all orders one by one in a random sequence. The resultant schedule is evaluated and based on this evaluation, the DS Optimizer can try another sequence. This process continues until a termination criteria is met.
What is the difference between heuristics and optimization?

Creating one solution can be done by a simple heuristic. Any sorting algorithm would be a heuristic that allows you to create a sequence of orders based on a predefined criteria. For example, you can sort all orders by their requirement date to minimize the delay of each individual order. Calculating all potential sequences and evaluating these to choose the best one would be an exact optimization algorithm. But based on the complexity and time required, this is not an option.
Therefore, an algorithm is needed that calculates many solutions in a smart way to obtain a better solution than a simple heuristic and comes as close as possible to the exact optimal solution. The PP/DS Optimizer represents such an algorithm. When designing it, the following considerations have been made:
- How should solutions be generated?
- Which solutions are generated?
- How to allocate the available time to the different algorithmic steps?
- How can the algorithm improve generated solutions?








