Configuring the PPO and Solving a Linear Planning Problem

Objectives

After completing this lesson, you will be able to:
  • Configuring the Production Planning Optimizer.
  • Solving a linear planning problem.

Configuration of the PPO Profile

As a prerequisite to the optimization run, the following profiles must be defined:

  • Category Profile - Category profile defines the order categories which are used to read the demand and receipts for the given location products. These demands and receipts are then passed as input to the optimizer.
  • Time Bucket Profile - You can define a profile consisting of a set of time units (such as years, months, weeks, and so on) that are used to generate time buckets for the PP Optimizer run. Time buckets are time durations in a bucketed format within which the planning is carried out.
  • Parallel Processing Profile - You can choose to execute the PP Optimizer with a parallel processing profile by which the optimizer runs with multiple parallel processes to improve overall performance. You define a parallel processing profile which consists of settings for the optimizer to run in parallel tasks.
  • Optimizer Profile - In this profile, you choose which optimization method you want to use during the optimization run (linear optimization or discrete optimization) and which constraints you want the algorithm to consider. This profile has several tabs with logically similar fields that the optimizer considers for its calculations.

You define the profiles in the Customizing following the menu path Advanced PlanningProduction Planning OptimizationBasic Settings.

Category Profile

In the category profile, you can categorize your orders into demands (such as customer demands, forecast demands, demands from firmed planned orders, and so on) and receipts (such as receipts from firmed planned orders, production orders, purchase orders, and so on). For this purpose, you first must define category groups. A category group is a group of requirement and stock categories. Category groups are used in the planning area, for instance, to specify the categories from which orders are considered when reading a key figure from liveCache. For this purpose, you can also specify the quantity type for each category that you want the system to consider when it reads orders from this category for a key figure from liveCache. You can combine categories which are sent as inputs to the Production Planning Optimizer as demand, receipt, or stock. For example, you can create a category group for combining all the categories corresponding to the production-dependent demands.

In the category profile, you have to define one category group for each of the following:

  • Customer demand
  • Demand forecast
  • Stock
  • Confirmed production receipts
  • Confirmed production demands
  • Confirmed distribution receipts
  • Confirmed distribution demands

Time Bucket Profile

The concept of bucket capacities in PPO involves dividing the planning horizon into discrete time intervals, commonly referred to as buckets. Each bucket represents a specific period, such as a day, week, or month, depending on the planning requirements of the organization. You can define a profile consisting of a set of time units (such as years, months, weeks, and so on) that are used to generate time buckets for the PP Optimizer run. Time buckets are time durations in a bucketed format within which the planning is carried out.

The figure includes two tables to illustrate the concept of time bucket profiles. In the first table, four levels are defined as month, week, day, and shift with durations 3, 2, 5, and 2 respectively. The lower table translates this into a telescopic time scale with 8 shifts, 3 days, 1 week and 3 months.

It is possible to define intraday buckets for the PPO. For example, shift buckets over even smaller buckets can be created. However, you should consider that variables are required for each bucket and therefore the algorithmic complexity increases with the number of buckets. Demands and available resource capacities are considered according to this bucket definition and receipts are created and scheduled in these buckets.

You can read the definition of the time bucket profile as follows considering the definition of the preceding table:

  • Three months will be planned (the current month and the next two months).
  • The first monthly buckets (here: only the first month) will be divided into two weeks.
  • The first weekly buckets (here: only the first week) will be divided into five days.
  • The first days (here: two days) will be divided into shifts (subdaily buckets).

The following constraints apply to the definition of time bucket profiles:

  • The smallest duration within a day for sub daily buckets is two hours.
  • The total duration for sub daily buckets (that is, time duration multiplied by the number of repetitions) should not exceed 24 hours.
  • If the total duration for the sub daily buckets is not 24 hours, an extra sub daily bucket with the remaining duration is added to maintain the 24-hour continuity.
  • The duration for a time unit should not be greater than the next higher time unit.

Parallel Processing Profile

This is a configuration setting in which you define parameters such as server group, maximum number of parallel work processes and the minimum package size for the PP Optimizer to run multiple tasks in parallel. The package size for each of the parallel tasks is calculated depending on the number of objects to be processed and the available work processes. The minimum package size maintained in the parallel profile is the bare minimum that must be respected while calculating package size for each work processes. For each parallel processing profile, apart from the technical settings such as the maximum number of parallel processes or the minimum package size, you can specify the server group which the parallel profile uses. If the server group is not maintained in the parallel processing profile, then the system uses the default server group for parallelization.

Production Planning Optimizer Profile

You use the production planning optimizer profile to define the optimization methods and to activate the constraints you want the PP Optimizer to consider during its calculations.

On the General Constraints tab, you activate the constraints that you want the optimizer to consider independently from the chosen optimization methods, such as production capacity, or take the minimum PDS lot size or minimum transport lot size into account. On this tab page, you also define whether you want the optimizer to consider the safety stock. If you do, you can specify whether you want to consider the period length and if time-dependent safety stock must be read. Moreover, you can specify whether you want to consider the period length of the bucket to calculate the costs for the stock on hand. You can also set the condition if you want order splitting to occur for PP/DS orders based on the concept of different lot sizes. If you want to activate product substitution functionality for the PPO, you can select the Supersession Chain flag.

If required, on the Discrete Constraints tab, you can define the horizons within which the discrete constraints (such as minimum production lot size or transportation lot size, integral production lots, and so on) are to be considered. Consideration of discrete constraints in the PP Optimizer is performance intensive and makes it harder to find a good solution or even an optimal solution. Hence, production planners can restrict the horizon for each constraint individually. The optimizer then considers these discrete constraints for the discrete optimization method, such as integral (integer value) or minimum lot sizes for transportation or the production data structures (PDS). A prerequisite for being able to make settings on this tab page is that you have chosen the Discrete Optimization method in the header data.

On the Solution Methods tab, you define parameters pertaining to the algorithm used for solving the problem and performance-related parameters such as decomposition, maximum runtime, and the maximum number of improvements during discretization for the optimizer engine. You can also control, which algorithm is used as an LP solution procedure (primal simple, dual simplex, automatic algorithm selection, interior point method). For priority decomposition, you can select either a strict prioritization or a cost-based prioritization to specify whether you want the optimizer to use the demand priority or the costs priority as the determining factor when calculating the optimal solution. Strict prioritization should not be used together with the discrete optimization method.

On the Integration tab, you define parameters for the integration between PP optimization and Production Planning and Detailed Scheduling (PP/DS). You can specify that you want the optimizer to consider the dependent demand and distribution demand resulting from fixed orders as a hard constraint or a pseudo-hard constraint. You can also choose whether you want the optimizer to consider the stock of PDS input products or source location products that have not been selected. Furthermore, you can choose whether you want the optimizer to delete any order or choose the type of order that you do not want to delete.

The Automatic Cost Generation tab allows you to define the business goals based on which the optimizer generates all the relevant control costs. If you want to use the automatic cost generation function, you have to set the corresponding indicator in the header data of the transaction.

On the Extended Settings tab, you can specify the type of consistency check (if any) you want the algorithm to make and whether you want the log data for an optimization run to be stored. You can define whether you want the optimizer to take the time-based upper bound for stock as a soft constraint or a pseudo-hard constraint; which means, whether they can be violated with incurring penalty costs. You can also define how you want the optimizer to proceed if it cannot find a solution for a problem within the specified runtime. First, you can enter a runtime extension. If the optimizer cannot find a solution by the end of the extended runtime, other options are available (such as simplification of the problem).

The Production Planning Optimizer multiplies the factors that you assign on the Cost Multiplier tab for each parameter, with the costs defined in the corresponding cost maintenance (typically the master data). All the parameters defined in this profile represent multipliers of costs that are maintained elsewhere. Cost multipliers can be maintained for the following:

  1. PDS costs
  2. Production capacity increases costs
  3. Setup costs
  4. Procurement cost
  5. Transportation cost
  6. Storage cost
  7. Safety Stock penalty
  8. Late Delivery penalty
  9. Non Delivery penalty
  10. Quota arrangement violation cost
  11. Interchangeability cost

If you do not want the system to consider one of the cost aspects defined in the cost maintenance, you can enter the multiplier as 0 in the relevant field on the Cost Multiplier tab. If you want the PP Optimizer to consider the costs as they are already defined (in other words, no multiplier is assigned to the costs), you enter the value as 1 in the relevant fields. You can enter any appropriate weighting factor, which the algorithm applies to the costs defined in the costs maintenance. It is a best practice that you change the settings for testing to avoid the need to change each individual master data element. Changing values here can have a significant effect on the outcome of the optimization model. For example, if you reduce the cost multiplier for storage costs to zero, you switch off the just-in-time production. Since no storage costs are incurred, it is of no relevance to the system when production or procurement takes place.

Watch the Review the Production Planning Optimizer Profile simulation to learn how to review and maintain PP Optimizer Profiles and how to identify the differences between linear and discrete PP Optimizer Profiles. By completing this simulation, you can experience the look and feel of the solution and explore the supported business processes. The simulations serve as an entry point for the exercises that you can complete by yourself in the SAP Practice System, in which you can explore the features and functions in greater depth. Even though the simulations in this course are labeled exercises, they are not as comprehensive as the end-to-end exercises offered through SAP Practice Systems. They are merely intended to provide initial hands-on practice before attempting the end-to-end exercises.

Solve a Linear Planning Problem with the PPO

The optimizer makes sourcing decisions within optimization-based planning. This means that it uses costs as a basis for deciding the following:

  • Which products are to be produced, transported, procured, stored, and delivered and in which quantities (product mix).
  • Which resources and which production data structures (PDSs) to use (technology mix).
  • The dates and times for production, transportation, procurement, storage, and delivery.
  • The locations for production, procurement, storage, delivery, and the source and destination locations for transportation.

The optimization problem can be solved continuously or discretely depending on the chosen solution method and based on whether discrete constraints have been activated in the PP Optimizer profile or not. In this lesson, the focus is on linear optimization. In this case, the optimizer uses linear programming to simultaneously consider all relevant conditions for the planning problem in an optimal solution. As more constraints are activated, the optimization problem becomes more complex, requiring more time to solve. Generally, the optimization should be executed as a background job.

The optimizer compares alternative solutions based on the costs incurred and determines the most cost-effective feasible solution based on the constraints and objective function. When defining the costs and constraints for optimization, you should consider the following:

  • The prioritization of demands is done through penalty costs. The higher the revenue generated from a product, the higher the penalty costs are set.
  • A demand for a product without penalty costs will not be fulfilled.
  • In the optimization, result due dates can be violated or safety stocks cannot be replenished. Due dates and safety stocks are considered soft constraints. The violation of soft constraints also incurs costs, so the optimizer only identifies this solution if there is no cheaper alternative.
  • The selection of procurement alternatives is controlled through so-called control costs.
  • If you define storage costs, production is scheduled for the latest possible time to avoid creating inventory.
  • If a demand cannot be met on time, the ratio of delay costs to storage costs determines whether available capacity is used for production at an earlier time or if the delivery is instead delayed.

Depending on your business requirements, you can follow different approaches on how to define costs for optimization.

The figure illustrates the impact of a cost based optimization approach versus a service level based optimization optimization approach and how this influences the cost definition. The concept is explained in the following paragraph.

The simplest configuration of the optimizer is shown in the preceding figure under Service level optimized. In this case, you define high costs for non delivery of finished products and their (modest) storage cost through mass maintenance. The high non delivery costs force the optimizer to use all possible procurement and production capacities to meet demand. The storage costs ensure that procurement and production occur as late as possible. The more complex configuration of the optimizer is shown in the preceding figure under Cost optimized. In this case, you align with realistic costs for procurement, production, transportation, and storage. Through the delay and non delivery costs, you model revenue loss and customer dissatisfaction.

The purpose of optimization is to find the best possible solution. The difficulty in optimization lies in defining the relevant costs correctly (for example, the cost of a delayed delivery compared to the storage costs). To some extent, all costs are interdependent and must be adjusted in the correct relation:

  • Higher penalties for non delivery result in increased production.
  • Transport costs serve to prioritize source locations and thus increase the priority of a production location.
  • Reducing production costs in the currently preferred location increases (indirectly) the priority of another production location.
  • Reducing the costs of transportation from the currently preferred location increases (indirectly) the priority of another production location.

When you run the optimizer, it reads all relevant data like the horizons and location products, and all relevant constraints to create a feasible result.

The figure illustrates that when you run the optimizer, it reads all relevant data like the horizons and location products, as well as all relevant constraints in order to create a feasible result.

When you run the PP Optimizer with the linear optimization method, you must also choose a linear optimization algorithm (LP solution procedure) from the Solution Methods tab. The recommended setting is that you choose automatic algorithm selection. However, you can also choose a primal simplex algorithm, dual simplex algorithm, and you can activate the interior point method together with the primal or dual algorithm. Each method finds the optimal solution, but the computation time to do so can differ. No general statement can be made, which method should be chosen, because the algorithmic performance depends on problem-specific data. If your model requires a large runtime to solve, you can test either option, to figure out, which algorithm performs better with your scenario.

Let's review the different behavior of the PPO with an example.

The figure illustrates the bill-of-material of the PPO example as described in the following paragraph.

In the example, there are two finished products. The first finished product TRPPO_F_00_01 is produced on work center TRPPO001, whereas the second product TRPPO_F_00_02 is produced on work center TRPPO002. Both finished products are composed of three materials. Product TRPPO_F_00_01 consists of raw material TRPPO_R_00_01 and the two semifinished products TRPPO_S_00_01 and TRPPO_S_00_02. Product TRPPO_F_00_02 consists of raw material TRPPO_R_00_02 and the same two semifinished products TRPPO_S_00_01 and TRPPO_S_00_02. Both semifinished products TRPPO_S_00_01 and TRPPO_S_00_02 can be produced on two work centers TRPPO3 and TRPPO4. Both work centers are alternatives to each other with work center TRPPO3 representing the cheaper production alternative.

The planned-independent requirements or customer demands in the example are provided in the following table.

PPO Example: Planned-Independent Requirements for Products TRPPO_F_00_01 and TRPPO_F_00_02

DateTRPPO_F_00_01TRPPO_F_00_02
Week+2, Monday4030
Week+2, Tuesday3020
Week+2, Wednesday2030
Week+2, Thursday4040

A typical outcome of optimization is illustrated in the following Gantt chart.

The figure illustrates in a gantt chart a typical outcome of optimization as explained in the next paragraph.

The finished products are produced on their dedicated work centers. The shared work centers for the semifinished products represent the bottleneck in this scenario. The cheaper production alternative on work center TRPPO003 shows a higher utilization compared to the more expensive work center TRPPO004.

Watch the Perform an Infinite MRP Live Run simulation to learn how to run MRP Live for a small planning scenario and review the planning result in the product planning table. By completing this simulation, you can experience the look and feel of the solution and explore the supported business processes. The simulations serve as an entry point for the exercises that you can complete by yourself in the SAP Practice System, in which you can explore the features and functions in greater depth. Even though the simulations in this course are labeled exercises, they are not as comprehensive as the end-to-end exercises offered through SAP Practice Systems. They are merely intended to provide initial hands-on practice before attempting the end-to-end exercises.

You must have noticed that the resource load has been planned beyond 100% in this scenario. The reason is that the MRP logic cannot take scarce resource capacity into account.

Let's run the same scenario with the PP Optimizer.

Watch the Run the Production Planning Optimizer with Different Costs simulation to learn how to run the PPO, review the planning result in the product planning table, change costs for the PPO, and compare the results of two optimization runs. By completing this simulation, you can experience the look and feel of the solution and explore the supported business processes. The simulations serve as an entry point for the exercises that you can complete by yourself in the SAP Practice System, in which you can explore the features and functions in greater depth. Even though the simulations in this course are labeled exercises, they are not as comprehensive as the end-to-end exercises offered through SAP Practice Systems. They are merely intended to provide initial hands-on practice before attempting the end-to-end exercises.

In this simulation, you have observed that the planning result is now finite and that based on your definition of storage costs, the optimizer either decides to prepone production or switch to the more expensive production version.