Reducing scheduling time

Long scheduling times can be reduced by specifying Asprova's settings carefully. The following presents setting tips to make Asprova perform faster.

For more details on how to improve display update, please refer here.


1. Changing message level

During rescheduling, Asprova prints out the messages to messages window. There are three message level options available.

Errors only

Outputs a message only when assignment failed.


Outputs the codes of operations as they are assigned. If the assignment fails, outputs an error message.


Outputs tentative assignment results (evaluated scores, assigned times, which master use instruction was used and so on) for each assignment candidate.

The message level setting (i.e. Assignment message level) can be found in settings tab under the project setting. The default value is "Brief".
By setting the level to "Errors only", the number of message decreases and thus scheduling time becomes shorter.


2. Using changeover time only when needed

In addition to setup and teardown properties in master editor; item setup, operation setup, and resource setup are used to affect item changeover time.
In changeover, it is possible that both previous and next process contain setup time value.
For this reason, there can be more setup expressions to handle than just that of changeover times. This slows down the scheduling process.

If specifying only setup and teardown time is sufficient, by not setting the changeover time, scheduling time can be reduced.


3. Rechecking scheduling parameter settings

3-1. Excluding unnecessary commands

If scheduling parameter is left with unnecessary scheduling commands, this can cause reduced scheduling speed.

For example, in case of composite scheduling, if default parameter is used in both forward and backward scheduling, order explosion command is needlessly executed twice as illustrated below.

As shown below, by using executing order explosion only once and using operation upload and filter operation commands on the second run is enough.
While using features like time period grouping, it is necessary to run order explosion several times.


3-2. Reviewing filter methods

If objects have to be filtered using scheduling parameters of filter order commands or filter operation commands, filtering in steps may reduce the processing time depending on the filtering conditions.
Filtering in steps avoids evaluation of unnecessary expressions and reduces processing time.
Significant reduction can be expected by not evaluating internal functions that take a long time to process, such as Sum, Min, and Max, or unnecessary properties that trace back orders, such as rightmost orders and right sales order earliest due date.

<Example 1>

If you want to filter down to manufacturing orders of item A that are not pegged to sales orders, it is possible to use a single order filter by combining conditions with && as follows.

ME.Item=='A'&&ME.'Order type'=='Manufacturing order'&&SumIF(ME.'Rightmost orders',TARGET.'Order type'=='Sales order',1)==0

In this case, even when the result of ME.Item=='A'&&ME. 'Order type'=='Manufacturing order' is FALSE, SumIF(ME.'Rightmost orders', TARGET.' Order type'=='Sales order', 1)==0 is evaluated. As "ME.'Rightmost orders'", which takes a long time to process, is executed on orders that do not actually need to be evaluated, unnecessary processing time is spent.

To eliminate this unnecessary processing, we can filter in steps as shown below.
As filtering with the item and order type is performed first, the number of evaluations of "ME.Rightmost orders" is reduced and this in turn reduces the processing time.


* As shown above, the function that allows filtering condition expressions to write directly in filter order commands (or filter operation commands) can be used in Ver. 12.0.4 and later.


4. Number of tentative assignments is great

Master information (described below) that contains four main resources, three S0 sub-resources (e.g. mold) and two S1 sub-resources (e.g. workers) produces 4x3x2 = 24 assignment combinations.

For one operation, all resource candidates are combined during tentative assignment. If the amount of resource candidates is very big, then it will take some time during scheduling <-> so the longer the number of candidates, the longer the schedule will take.


[Max # resource candidate] property in "Settings" tab of project setting dialog or the same name property in "Settings" tab of scheduling parameter dialog can be set to limit the maximum during tentative assignment.
In case that the quantity of main resource or sub resource is big, the resource candidates is also very big, if the [Max # resource candidate] property is specified with a value smaller than resource candidates, the scheduling time can be reduced.


Select the resource candidates according to "Max # resource candidate" value

In case that "Max # resource candidate" is specified, part of resource candidates will be selected and evaluated. Select rule is described as follows.

1. Ascending sort by the quantity of assigned use instruction.

2. Specified number of resource candidates are selected from top to bottom.

So the resource candidate with low load will be selected.
For example, there are 27 resource candidates as follows. The "Max # resource candidate" value is specified as 20. All resource candidates are sorted by quantity of assigned use instruction from the left graph to the right graph. Top 20 resource candidates are selected.
But if there is not available period for current operation, the "Max # resource candidate" will be ignored and all resource candidates will be considered. In this case, much more resource candidates than the "Max # resource candidate" value are evaluated.

For more details about resource candidates, please refer to Resource candidates in logic chapter.


5. Time constraint MAX or resource lock

Usually, one operation is evaluated during tentative assignment. But in case that time constraint MAX or resource lock is specified in the project, additional operation is assigned with the main operation.

In case if additional operation is assigned with main operation by time constraint MAX or resource lock, then both operations should be assigned available.
In addition, the resource candidate with highest evaluation will be selected.
For example, there is a process described as follows.

There are 3 resource candidates for process number "10" and 4 resource candidates for process number "20" during tentative assignment. In this case, there are 3 * 4 = 12 resource candidates.
All the resource candidates are evaluated and the one with highest evaluation is assigned.

The calculation method of resource candidates during tentative assignment is as follows

(resource candidates of process 1) * (resource candidates of process 2) * (resource candidates of process 3)...

The more followed processes are, the more resource candidates are.
For example, there are 4 resources for each process and 4 processes.

The resource candidates are 256. 4 * 4 * 4 * 4 = 256

There are 4 resources for each process and 6 processes.

The resource candidates are 4096. 4 * 4 * 4 * 4 * 4 * 4 = 4096

4 * 4 * 4 * 4 * 4 * 4 = 4096 So if time constraint max or resource lock is specified, the resource candidates of tentative assignment will increase explosively.

The more resource candidates are, the more the scheduling time is.
In case that time constraint MAX or resource lock is specified and the scheduling time is very long, please reduce the scheduling time by setting "Max # resource candidate".

For much more introduction about "4. Number of tentative assignments is great" and resource candidate, please refer to the logic - candidate resource selection.


6. Multiple thread

For more information about "Multiple thread", please Click here.


7. Dispersing a use instruction to multiple resources

When assigning a use instruction to multiple resources, the more use instructions already assigned to those resources, the longer the processing time.

For example, setting the [Resource quantity constraints] property to [Not constrained] or [Assignment type] scheduling parameter to [Infinite Capacity] is meaningless in terms of resource load. When registering such resource in the Integrated Master Editor, registering a resource for each item in order to disperse the use instructions that are assigned to each resource can shorten the assignment time. If this is not done, or in other words, if a single common resource is registered, the number of use instructions that are assigned to the resource becomes great, causing the processing to take longer.


8. Setting the power plan to high performance

You can maximize the computer's performance or change the power plan to save power from [Control Panel] > [Power Options].

Selecting "High performance" maximizes the computer's performance and may shorten processing time. If this item is not available, choose [Edit Plan Settings] > [Change advanced power settings] > [Processor power management], and change the [Minimum processor state] or [Maximum processor state] settings.

* You may not able to change these settings depending on the server or PC you are using. Check the manuals, or check with your vendor.


©2016 Asprova Corporation, All rights reserved.