Exploring Advanced Topics in PP Optimization

Objective

After completing this lesson, you will be able to exploring advanced topics in PP optimization.

Modeling Recommendations

The PPO can consider a multitude of different constraints. When you define your model, you should keep in mind that not everything that can be modeled necessarily must be modeled. You should focus on the decision-relevant criteria based on your business requirements instead. Furthermore, you should keep in mind that discrete constraints can significantly increase the runtime requirement for the algorithm.

General Recommendations

Some general recommendations are:

  • Use aggregated time buckets. Make use of the Time Bucket Profile.
  • Optimize only key products and bottleneck resources.
  • Minimize the use of discrete variables as far as possible. Use appropriate discretization horizons in the PP Optimizer Profile.

Reduction of Problem Complexity

When discrete constraints are present, you may need to balance the required runtime of the algorithm with the quality of the result. In this case, the following thoughts can help you to decide whether a specific (discrete) constraint is required in your model or not.

  • Fixed resource consumption (to represent setup)

    If setup times are small in relation to the bucket size and many products are produced in the same bucket, it is not reasonable to model fixed resource consumption. As a work-around, a global capacity reduction can be defined in the resource master data to represent the capacity usage of all products instead of taking an individual fixed resource consumption of each product into account.

  • Minimum lot size

    If the minimal lot size is small compared to the average lot size of a product, it is not reasonable to take minimum lot sizes into account. For example, if the average lot size for a product in a bucket is 10, then it makes no sense to consider a minimum lot size of 2 as a constraint.

  • Integral lot size

    If the rounding value (fixed lot size) for a product is small compared to the average lot size, then you can use the integral lot size only when creating the orders for subsequent time-continuous planning, but you cannot expose this constraint to the PPO.

Matching Costs to Business Requirements

Defining an appropriate cost model that matches your business requirement is the most difficult task in the configuration of the PP Optimizer. The following remarks provide some guidance on the definition of the cost model:

  • If production of a product is allowed in different locations, you can use production cost to indicate preference for specific locations.
  • If a product can be stored in multiple locations in the supply chain, you can use storage costs to indicate your preference.
  • If you want to define inventory targets for products, you can use safety stock violation penalties to express the same.
  • If you want to meet demands rather early than late, you can define high delay costs and low storage costs.
  • If you prefer to meet demands rather late than early, you can define lower delay costs and higher storage costs, but you should keep in mind to define the maximum allowed delay.
  • If you want to reduce stock, you can increase storage costs.
  • If you want to model push-production, the storage cost for the finished product needs to be lower than the sum of the storage costs for its components.
  • You always have to maintain either non delivery or delay costs, because otherwise the algorithm can decide not to meet any demand.

The relative cost of the cost components to each other can express the importance of any specific business requirement.

Decomposition Methods

You can use the decomposition methods, defined in the PP Optimizer profile, to reduce runtime and memory requirements for optimization. Decomposition can also represent the only way for the optimizer to find a feasible solution in the event of large discrete problems. There exist three types of decomposition that you can define in the Solution Methods tab of the PP Optimizer Profile:

  • Priority decomposition
  • Time decomposition
  • Product decomposition

Regarding priority decomposition, you must select either cost-based prioritization or strict prioritization. If you activate cost-based prioritization, the PP Optimizer includes demand prioritization based on penalty costs that you define at the material master level. If you activate strict prioritization, the PP Optimizer adheres very closely to demand prioritization. Demands with priority 1 are considered first, then demands with priority 2, and so on. The optimizer first satisfies customer demand (which is priority 1 by default) and then the demand forecast (priority 6 by default).

A prerequisite for cost-based prioritization is that you have defined penalty costs (for late delivery and non delivery of customer demand and forecast demand). Strict prioritization cannot be used in connection with discrete optimization.

Time decomposition and product decomposition are optional decomposition methods. The idea of both methods is to split the overall planning problem into smaller subproblems by extracting only a specific number of buckets (time decomposition) or products (product decomposition) into each subproblem. The expected memory consumption and runtime of the subproblems is smaller than for the overall problem.

If you select Time Decomposition, you must indicate the window size in the number of buckets. The window size determines the number of consecutive time buckets that you want the algorithm to fix in each step of the time decomposition. A small window size reduces the runtime but can also diminish the quality of the solution. The default window size is one third of the number of time buckets.

The figure illustrates the concept of time decomposition as explained in the following paragraph.

In the first iteration of the time decomposition algorithm, all buckets beyond the number of buckets that you have defined as the window size are aggregated into one (large) bucket. The resultant model is solved and the first (window size) buckets are fixed. In any subsequent iteration, the buckets solved in the previous iteration are considered as fixed, the (window size) number of buckets are variable and the remaining planning period is aggregated into one (large) bucket. This procedure is indicated in the preceding figure using the window size as three buckets as an example.

When you select Product Decomposition, the window size specifies the percentage of the planning problem that the algorithm considers in each individual step. A small window size reduces the runtime but can also diminish the quality of the solution. Recommended values for the window size are in the range between 1% and 30%. The smaller the window size, the faster a solution is found and the larger the window size, the better the quality of the solution found. The window size is corresponding loosely to the size of the decomposed problems in relation to the entire original model size.

The planning window is defined by the material flow, considering all resources, semifinished materials, and activities which could be used to produce a given (finished) product. The complexity of each subproblem is reduced by considering only a subset of materials and only a subset of resources or transportation lanes that have to be considered for these materials. After each subproblem is solved, the (remaining) capacities are reduced based on the solution of the subproblem. The individual solutions are aggregated to become a consistent solution for the overall problem.

Run Options for the PPO

You can run the PP Optimizer interactively, from a report and as a heuristic.

You can execute the PPO run-through the transaction (/SAPAPO/PPO_OPT). This report also allows you to schedule the PP Optimizer to run in the background. The following parameters are required:

  • Planning version
  • Propagation range
  • Planning horizon

    The Planning Start Date that is maintained in the report is considered. Otherwise, the system date is considered. The planning end date is derived from the least of the two: End date from the time bucket profile or the Planning End Date maintained in the report.

  • Products, locations, product group, or planning group
  • Optimizer profile, time bucket profile, and category profile

You can also run the optimizer as a heuristic using the SAP_PP_PPO heuristic. You can define your own heuristic using the algorithm /SAPAPO/PPO_HEURISTIC. PPO can only be executed in PP/DS applications where the selected objects are location products. For example in the Product Planning Table (PPT1), it cannot be run as a product heuristic nor can it be used in the MRP Live run, since the PPO is more relevant as a local-network planning solution and not as a product-specific heuristic which runs on the basis of low-level codes.

Production Planning Optimizer Log

When you execute the PPO, the system automatically generates an application log. You can view a list of all the optimization runs that have been carried out for PP optimization in transaction /SAPAPO/PPO_LOG. The PPO log provides an overview of the generated logs. Among other things, the list of logs contains the following data:

  • Log status
  • User name
  • Optimizer profile used
  • Start and finish time of the run
  • Runtimes of the individual optimization steps
  • Total costs of solution
  • Log expiration date

You can display the log of each optimization run. When you display the log, you can review the following data:

  • Input parameters

    The input parameters contain the settings that you made when you started the PPO run.

  • Location products

    The list of location products for which the PPO run was executed is displayed here.

  • Input log

    The input log contains the input data considered by the optimizer during the optimization run (that is, master data and transactional data). The data is divided into several tables (such as ET_LOCMAT). You can display the content of these tables on the right-hand side of the screen.

  • Results log

    The results log contains all results of the optimization run, such as fulfilled demands, unfulfilled demands, planned orders, stock transfers, resource consumption, and so on. The data is divided into several tables (such as IT_PROMO table). You can display the content of these tables on the right-hand side of the screen.

  • Result indicators

    Result indicators help you to assess the quality of the optimization solution, such as service level and shortfall of safety stock.

  • Message log

    The message log contains error messages, warning messages, and information messages generated by the system during the optimization run. The messages are displayed in the order at which they occur, that is, whether they refer to the optimization run settings or to the three main steps of the run.

  • Trace file

    All individual optimization run steps are logged in this text file. It is saved on the optimization server, but you can also download it to your own computer.

  • Costs

    Here, you find detailed information about the costs of the solution determined by the optimizer.

  • Solution quality

    Here, you find the costs of the best solution determined by the optimizer up to the time displayed.