This will sequence optimize selected operations on selected resources
Example parameter configuration
If no operations are selected nothing happens when this macro element is executed.
The SequenceOptimizer is part of the Sequencer option and primarily used when operations have variable setup/switchover times. For more info on the sequencer module and optimization go to the Sequencer module.
It uses a heuristic approach to rearrange operations in a more optimal order minimizing setup and switchover time.
“Under the hood” it uses genetic algorithms, with several “tuning” parameters available. Genetic algorithms work by creating a number of different sequences (the population), picking the best sequences (the parents) and creating new sequences based on these (the offspring). This is done for a number of “generations” with an expected more optimal sequence as the result.
To use the SequenceOptimizer macro command select several operations in the Gantt plan and run the macro. The optimizer will only optimize the selected operations, one resource at a time, not other operations in the same route.
To “straighten out the plan” after the operations have been sequenced use the Bottleneck sort
Typical use case: You have a bottleneck resource with operations with variable setup time and want to minimize the setup time one week forward. All orders will be delivered the week after, and they all have the same priority:
- Select all operations on the resource one week forward
- Setup a new macro and add the SequenceOptimizer macro command
- set “OptimizeOnlySetupAndSwitchover” to true since the delivery time is unimportant within the week of selected operations.
- set “RespectPriority” to false since the priority is not important
- Run the macro and the operations are placed on the best sequence found.
- While the operations are still selected right-click on one and select bottleneck-sort in both directions.
- Further errors in the plan need to be handled manually.
The number of iterations to run the genetic algorithm (# times to create new sequences based on the previous best found sequences). The higher the number the better the chance is of finding the optimal solution.
The number of new sequences to produce in each iteration.
The number of parents to use when creating new solutions.
The population from which “parents” are chosen from and “offspring” is added to.
true or false: Setting this to false will select a better sequence with respect to delivery dates as long as the total setup time does not exceed the minimum total setup time + 50%
true or false: Setting this to true will order the operations in priority-sequence before minimizing the setup/switchover time. For some situations also increase GAGenerations in order for priority optimization to have full effect.