Optimization

Key Concepts

Optimization is the process by which PlanetTogether creates a minute-by-minute schedule by assigning activities to resources at particular times according to the preferences defined by the constraints and the rules in use.

Optimization works in two phases:

  1. Release Rules limit the earliest date that a job can start.
  2. Optimize Rules choose the best sequence of operations.

If using the MRP Optimize option, there is an additional process that involves comparing the demands to the supplies and creating jobs or purchase orders to satisfy the net demand.

PlanetTogether uses a combination of simulation and rules to generate the schedule that would result over time if resources chose what to work on based on the defined preferences and rules while respecting all constraints imposed on the system. 

Key optimization capabilities:

  1. Creates a realistic schedule that adheres to constraints
  2. Honors preferences and user choices such as locked resources
  3. Creates a schedule that performs well in terms of target metrics
  4. Speed for the sake of usability

Setting Up

The schedule can be optimized by clicking one of three buttons found in the ribbon at the top of the screen:

                                             

Optimize: This will regenerate the schedule of all plants based on the current Optimize Options. The options can be modified using the drop-down of this button. 

Optimize Plant: This will regenerate the schedule for a specific plant based on the current Optimize Options. The drop-down menu lists all of the plants.

MPS/MRP Optimize: This will regenerate the schedule based on the current MRP and Optimize Options. The options may be changed using the drop-down of this button.

 

The Optimize Rules can be set by going to: Settings | Scenario Data | Optimize Rules.

Understanding How Optimize Works

This is an example that illustrates how PlanetTogether would create a schedule:

Starting Data:

  • Two Resources: Resource 1 and Resource 2, each with the same Capability.
  • Two Jobs:
    • Job 1
      • Need By 01/15
      • Priority = 1
      • Two Operations:
        • Op 10: 1 day of work, requires 1 unit of Material A.
        • Op 20: 3 days of work.
    • Job 2
      • Need By 01/15
      • Priority = 3
      • Two Operations:
        • Op 10: 1 day of work, requires 1 unit of Material A.
        • Op 20: 3 days of work.
  • Inventory
    • 1 unit of Material A is On-Hand.
    • 1 unit of Material A is On-Order with a purchase order due on 01/06.
  • Optimize Parameters:
    • Release Rule: JIT with 7 days slack
    • Current Clock Date: 01/01
    • Optimize Rule: 50% weight on Need Date and 50% weight on Priority.

Step-By-Step Optimize Process:

  1. Release Dates are calculated for each job. Since both jobs have the same need date (01/15) and the same work hours (4 days total), their JIT release dates are identical = 01/04. (Need Date of 01/15 minus 4 days of work minus 7 days of slack).
  2. The first "event" to occur is the release of the two jobs on 01/04. The result of this event is that Op 10 for both jobs is added to the work queues for both resources.
  3. The next event is for the resource with the highest Id to review its queue and see if any work can be scheduled at the simulated event time.
  4. This resource calculates a "score" for the operations in its queue. The results are:
    1. Job 1, Op 10 Score = 11 (Need Date minus event date) x 50% + 1 (Priority) x 50% = 6
    2. Job 2, Op 10 Score = 11 (Need Date minus event date) x 50% + 3 (Priority) x 50% = 7
  5. Job 1 has a lower score and is selected first by Resource 1 since it was the first resource to make a selection. Since there are enough materials on-hand, the operation is scheduled to run on 01/04. The material is allocated to Job 1, reducing the on-hand material to zero. No other operations can schedule at this time, and since this is the only operation that can start (Job 2 is still awaiting material), it is scheduled to start on 01/04.
  6. The next event is the completion of Job 1 Op 10 on 01/05. This causes Resource 1 to become available and it causes Job 1 Op 20 to become ready and added to the queues. The scores are once again computed, and since this is the only operation that can start (Job 2 Op 10 is still waiting on materials), it is scheduled to start on 01/05.
  7. The next event is the arrival of the purchase order on 01/06. This triggers the resources to evaluate their queues. At this point, Job 2 Op 10 can start since the material was received. Since Resource 2  is the only idle resource at this time, it selects Job 2 Op 10 and schedules it to run on 01/06.
  8. The next event is the completion of Job 2 Op 10 which causes Op 20 to become ready and to schedule, completing the scheduling process.

The events and resulting schedule are illustrated below:

Note: Each time optimize is performed, the JIT Start Dates are recalculated based on the resource the activities are scheduled on, and the actual setup times determined. Since JIT dates change, subsequent use of the optimize can potentially generate different schedules. To change this, go to: Settings | System Options | Scheduling and disable the option "Recalculate JIT on Schedule Change". This will make the JIT dates remain static after the initial optimize and will prevent optimization from recalculating the JIT start dates again and again. 

Using Optimization to Model Preference

Many manufacturers use a set of preferences when deciding what products to run on certain resources and which routings are to be used to increase efficiency. For example, a certain item might produce a higher yield on one resource compared to another. Other routings may be more favorable than others. Here are some options that can be used within PlanetTogether to model preference:

  • Product Rule HeadStart Span: Using product rules creates specific relationships between an item and a resource. This product rule determines how early a job can be scheduled for a particular item on that resource. Setting a longer HeadStart Span for that resource will cause it to be preferred over other available resources.
  • Alternate Path Auto Use Release Offset Days: Each manufacturing order has one or more alternate paths. On one of the alternate paths (there may be only one), there is a setting for the Auto Use Release Offset Days. This time span goes into effect when the "Auto Use" field is satisfied and will set the release date for the job. Defining a smaller time span will favor using that alternate path over others.
  • Resource HeadStart: On the resource properties, specifying a larger value will cause that resource to be favored over other resources that have the same capability. This will allow more jobs to be scheduled to the resource before resorting to other less favored resources.
  • Custom Add-In: Should PlanetTogethr not come with built-in functionality that can model the logic behind the manufacturer's preferences, PlanetTogether can leverage the fact that it is written in the .NET Framework and a custom add-in could be created to model those preferences. 

Related Articles

Optimize Options

MPS/MRP Optimize Options

Optimize Rules