Optimize rules are used to create schedules that implement the scheduling objectives for your business. That is, when an optimization is performed, APS’s optimization engine allocates resources and materials according to the preferences defined by the rules in use. For example, APS can optimize based on increasing on-time delivery and utilization or on reducing costs — or, likely, a combination of these options and others.

Many rules are included in APS’ standard library. In addition, custom rules can be created and the ability to group jobs by Operation Attributes provides additional flexibility. The Optimize rules work in conjunction with the Release Rules during schedule generation.

Optimize Rules Defined

Each tab is comprised of a list of rules by category. The explanation of each rule is found below:

Rule Summary Tab

This tab summarizes the details of all the rules that have been set to non-zero values.

  • Resource vs Operation Selection — Specifies the preference between favoring scheduling decisions based upon either (a) the best Resource to run an Operation and (b) the best sequence in which to run Operations.
    • Before selecting an Operation to schedule next on a Resource, each factor in use (such as Need Date or Setup Hours) is calculated for each eligible Resource to come up with a Best Resource Score and Worst Resource Score. Then a Resource Selection Penalty is calculated by: (a_resource_score – best_score) / (worst_score – best_score). This Penalty is multiplied by the Resource Selection Weight (slider value) and added to the Operation’s individual score. Therefore, the farther a particular Resource is from the Best Score the less likely it is to be selected for scheduling the Operation.
  • Current Rule Weightings– Shows the weights of all rules that have values greater than zero. This is to make it easier to see which rules are in effect.
  • Notes– Write any notes to help describe why the rule as been setup in the current way.
  • Customize this view — Custom rules can be created using .Net Add-Ins.

Synchronous Tab

  • Highest Throughput– Prioritizes Jobs with higher Throughput.
    • Multiplied by the Throughput. Higher values are chosen earlier.
  • Highest Throughput per Drum Hour — Prioritizes Jobs that have a higher ratio of Throughput to hours of Drum Resource usage (for the entire Job).
    • Multiplied by the Job Throughput divided by Expected Hours for Operations that use a Drum Resource. Higher values are chosen earlier.
  • Highest Buffer Penetration Percent — Prioritizes Operations with a higher Simulated Buffer Penetration %. This considers Drum, Shipping, and Stock Buffers depending upon the Operation’s Buffer Type.
    • Multiplied by the Simulation Buffer Penetration %. Higher values are chosen earlier.
  • Least Drum Hours– Prioritizes Jobs with lower Expected Hours for Operations that use a Drum Resource.
    • Multiplied by the hours. Lower values are chosen earlier.

Delivery Date Tab

  • Earliest Job Need Date — Prioritizes Activities where the Job Need Date is closest to the current date.
    • Multiplied by the days between Now and the Job NeedDate. Lower values are chosen earlier.
  • Earliest MO Need Date — Prioritizes Jobs where the Manufacturing Order’s Need Date is closest to the current date.
    • Multiplied by the days between Now and the Operation NeedDate. Lower values are chosen earlier.
  • Earliest Opn Need Date — Prioritizes Jobs where the Operation’s Need Date is closest to the current date.
    • Multiplied by the days between Now and the Operation NeedDate. Lower values are chosen earlier.
  • Earliest JIT Start Date — The JIT start is calculated by APS and prioritizes Jobs where the JIT Start Date is closest to the current Date
    • Multiplied by the days between Now and the Activity JITStartDate. Lower values are chosen earlier.
Note: Each time Optimize is performed the JIT Start Date is recalculated based on the Resources the Activities are scheduled and on the actual setup times determined. since the JIT Start Date can change, subsequent Optimization may yield different schedules each time. A new option was added to disable recalculation of the JIT Start Dates.
  • Highest Late Penalty Cost — Prioritizes Activities based on the Jobs that have the greatest financial penalty for being late.
    • Multiplied by the Job Late Penalty Cost. Higher values are chosen earlier.
  • Earliest Job Entry Date — Prioritizes Activities based on when they were Entered into APS
    • Multiplied by the days between Now and the Job Entry Date. Lower values are chosen earlier.
  • Group by Customer — This rule groups together Activities that are for the same customer.
    • Added to the balance composite sum if the Customer field of the current Activity and this Activity are equal. Otherwise it is ignored. Higher value are chosen earlier.
  • Critical Ratio — Prioritizes Activities that have less slack time remaining relative to their processing time. (i.e. Activities that need to be done soon and take a long time).
    • Lower values are chosen earlier.
Priority Tab
  • Highest Throughput — Prioritizes Jobs with the highest Throughput.
    • Higher values of Throughput are chosen earlier.
  • Highest Throughput per Drum Hour — Specifically for Jobs that have Operations that are scheduled on or can be schedule on a Drum Resource. It is calculated by dividing the Throughput of the Job by the hours of Drum capacity to be used. This favors Jobs that produce more Throughput while consuming less time on critical Drum Resources.
    • Higher values are chosen earlier.
  • Lowest Priority Nbr — Prioritizes Jobs that have been marked with the lowest Priority numbers.
    • Multiplied by Job Priority. Lower values are chosen earlier.
  • Hot — Prioritizes Jobs that have been flagged as Hot.
    • Added to the balanced composite sum if the Job is Hot. Otherwise ignored. Higher values are chosen earlier.
  • Firm — Prioritizes Firm Jobs over Planned or Estimate.
    • Added to the balanced composite sum if the Job is Firm. Otherwise ignored. Higher values are chosen earlier.
  • Highest Profit — Prioritizes Jobs that will yield the highest profit (Revenue – Cost).
    • Multiplied by the Job Profit. Higher values are chosen earlier.
  • Highest Revenue — Prioritizes Jobs that will yield the highest revenue.
    • Multiplied by the Job Revenue. Higher values are chosen earlier.
  • MO In-Process — Prioritizes Activities based on whether or not their parent MO’s have already been started.
    • A weight to use the in-process status of an MO in determining the next Activity to try to schedule. Higher values are chosen earlier. This can be used to reduce work in-process inventory by attempting to finish MO’s that already have been started instead of starting a new MO. This is not only based on the in-process state of the MO at the current time — the future simulated in-process state will cause Operations for the same MO to be grouped more closely together.
  • Fewest Eligible Resources — Prioritizes Activities that have the fewest Resources that are eligible to run them.
    • Multiplied by the number of eligible Resources for the Primary Resource Requirement
Efficiency
  • Least Setup Hours — Arranges the Activities in the schedule in a way to minimize setup time as much as possible.
    • Multiplied by Activity Setup Hours. Lower values are chosen earlier.
  • Group by Setup Code — Groups the Activities together based on the Setup Code of each Operation.
    • Added to the balance composite sum if the Setup Code of the current Activity and this Activity are equal. Otherwise it is ignored. Higher values are chosen earlier.
  • Least Drum Hours
  • Least Run Hours — Arranges the schedule to prioritize the Activities with the shortest Run hours.
    • Multiplied by Activity Run Hours. Lower values are chosen earlier.
  • Most Days in Queue — Prioritizes Activities which have been in queue for the most days.
    • Preference is given to Operations that have been in Queue longer. Multiplied by the days between Now and the Operation’s Latest Constraint Date. Lower values are chosen earlier.
  • Nearest Setup Nbr. — Prioritizes any Activity that has a setup number closest to the previous Activity’s setup number, whether higher or lower.
    • Multiplied by the absolute difference between the current Operation’s Setup Number and the Setup Number of the evaluated operation. Lower values are chosen earlier.
  • Nearest Higher Setup Nbr. — Based on the previous scheduled Activity, this will schedule the next Activity to have the nearest, higher setup number
    • Favors selection of Operations that have a Setup Number higher than and nearer to the current Operation.
  • Nearest Lower Setup Nbr. — Based on the previous scheduled Activity, this will schedule the next Activity to have the nearest, Lower setup number
    • Favors selection of Operations that have a Setup Number lower than and nearer to the current Operation.
  • Nearest Saw-tooth Setup Nbr. — Used when a Resource is constantly changing its setup number. This is dependent on the direction of the previous Activities. For example, if the first two operations had a setup number of one (1) and two (2) respectively, this rule will schedule the next largest setup number. If the first two operations had setup numbers of two(2) and one(1), this rule would schedule the next smallest setup number.
    • Favors selection of Operations that have a setup Number closest to the current Operation’s Setup Number and moving in the current direction, increasing or decreasing Setup Numbers.
  • Group by MO Product Name — Groups together Activities based on the MO Product Name
    • Added to the balance composite sum if the MOProductName of the current Activity and this Activity are equal. Otherwise it is ignored. Higher values are chosen earlier.
  • Group by MO Product Description — Groups together Activities based on the MO Product Description.
    • Added to the balance composite sum if the MOProductDescription of the current Activity and this Activity are equal. Otherwise it is ignored. Higher values are chosen earlier.
Operation Attributes
  • Same Attribute Number — Groups and prioritizes Activities based on the having the same Attribute Number
    • Added to the balance composite sum if the Operation Attribute Number of the current Activity and this Activity are equal. Otherwise it is ignored. Higher values are chosen earlier.
  • Same Attribute Code — Groups and prioritizes Activities based on having the same attribute code (ie. color)
    • Added to the balance composite sum if the Operation Attribute Code of the current Activity are this Activity are equal. Otherwise it is ignored. Higher values are chosen earlier.
  • Nearest Attribute Number — This option will group together Activities with attribute numbers nearest to the previous Activity’s Attribute Number.
    • Multiplied by the absolute difference between the current Operation’s AttributeNumber and the AttributeNumber of the evaluated Operation. Lower values are chosen earlier.
  • Nearest Lower Attribute Number — Prioritizes and groups together Activities by scheduling the Activity that has the nearest, lower Attribute Number to the previous Activity’s Attribute Number.
    • Favors selection of Operations that have an AttributeNumber lower than and nearer to the current Operation.
  • Nearest Higher Attribute Number — Prioritizes and groups together Activities by scheduling the Activity that has the nearest, higher Attribute Number to the previous Activity’s Attribute Number.
    • Favors selection of Operations that have an AttributeNumber higher than and nearer to the current Operation.
  • Sawtooth Attribute Number — Used when a resource is constantly changing its Attribute Number. Unlike the previous two options, this is dependent also on direction. For example, Op1 handles a width of 3, Op2 a width of 4, and there are two more operations, one with a width of 5 and another with a width of 3, APS will schedule the Operation with the width of 5 first in order to be consistent with the increasing direction.
    • Favors selection of Operations that have an AttributeNumber closest to the current Operation’s AttributeNumber and moving in the current direction, increasing or decreasing Setup Numbers.
  • Lowest Attribute Number: Prioritizes Activities with the lowest attribute number.
    • Multiplied by the AttributeNumber. Lower values are chosen first.
  • Highest Attribute Number: Prioritizes Activities with the highest attribute number.
    • Multiplied by the AttributeNumber. higher values are chosen first.

Material Groupings Often used in Food and Beverage manufacturing or other industries where material compatibility is a concern, Material Grouping allows the scheduler to give a higher weight to batch together Materials with the same Material Group code.

An example where grouping Materials together would be beneficial is specifically in the Food and Beverage industry where Kosher ingredients are an issue that need to be considered carefully. Often in F&B manufacturing, Kosher ingredients require a long clean-out interval before and after use, which can be costly in terms of time. As a result, many F&B companies make a distinct effort to group together Jobs together that require Kosher ingredients to minimize setup time as much as possible.

Ranges Ranges allow for the normalization of different factors with different units of measurement. For example, Optimize Rules regarding Priority versus Slack Days do not provide an inherently easy basis of comparison. Ranges allow APS to convert the measurements into a common percentage for greater precision in weighing different factors.

Key Concepts

Optimize rules are prioritized according to a system of relative weights which are set by using simple slider bars. A higher weight makes a specific rule more important while a lower weight makes a rule less important. It’s important to remember that the weights are relative — assigning two rules with the same high weight is no different than assigning the same two rules the same lower weights. If only one weight is used then its value does not affect the results because all operations have their scores multiplied by the same scaling factor resulting in the same relative scores regardless of the weight.

When balancing different rules, keep in mind that many of the rules produce a sort of “apples to oranges” comparison. The Ranges portion of the Optimize Rule screen allows the user to normalize the different weights, providing a simple table of equivalence between the different factors being considered during the optimize process. This is helpful when optimize rules are on vastly different scales — for example on-time delivery is based on “days” while profit is based on “currency” and one day of lateness is probably equivalent to many units of currency (rather than “1 day = 1 dollar”). By using the scaling factors the sliders can be made to be more in sync with each other across units of measure.

The optimize rules need to be assigned to the appropriate resources. There can be two different optimize rules associated with each Resource, the “Normal” optimize rule and the “Experimental” optimize rule. Setting the Rules in the Optimize options screen, the planner can choose which rule to use when optimizing. It’s also important to note that while each individual Resource may have its own Optimize Rule, the entire Plant can also be set to use a single specified rule for simplicity.

This is an example of how APS uses the the Optimize Rules.