Decision Optimization

Expand all | Collapse all

Grouping of optional tasks in scheduler in ascending order

  • 1.  Grouping of optional tasks in scheduler in ascending order

    Posted Mon August 02, 2021 10:16 AM
    Edited by Avinash Kumar Mon August 02, 2021 10:25 AM

    I have basically achieved my objective however, I want to rearrange the scheduled task if they belong to the same category/group.
    A group is a set of tasks that would like to get executed together. 

    For example in the following image, suppose, Mat_1, Mat_3, and Mat_5 belong to a group and Mat_2 and Mat_4 belong to another group. The scheduler has done a fabulous job as per all constraints (which I am not mentioning here). But, how do I make sure that in "Line_1", Mat_5 follows Mat_1?
    Mat_1 follows the Mat_5

    Also, the following is another solution. In here I would want the order, Mat_1, Mat_3, and Mat_5.

    I can try using end_before_start the function, but the problems are:
    1. It takes only 2 variables at a time. I don't want to hard code delay=0 in between the task. A task is free to go the other line. Currently, the tasks are scheduling as per requirement, just that I want to sort them on their name. 
    2. If there are two groups working in the same line, then the Mat_x from both groups can mix up, still satisfying the end_before_start constraint. E.g. If Mat_1 and Mat_2 belongs to group1 and Mat_3 and Mat_4 belongs to group2, then Mat_1,Mat_3,Mat_2,Mat_4 would too satisfy end_before_start of Mat_1 followed by Mat_2 and Mat_3 followed by Mat_4.. But the intended output is Mat_1, Mat_2, Mat_3, and Mat_4. Is there any way to provide the order constraint of multiple tasks in a built-in function?

    I can identify the groups by assigning a group_number to tasks belonging to the same group.

    Is there any built-in function to group a set of tasks in order? Is there any sort of weightage I can provide so that they gain higher value if a task is scheduled closer to another task? 

    Avinash Kumar

  • 2.  RE: Grouping of optional tasks in scheduler in ascending order

    Posted Mon August 02, 2021 10:55 AM
    Dear Avinash Kumar,

    From what I understand of your model,  the sequence and noOverlap  constraints could help you to build ordered sequences of tasks.
    Please have a look at the sched_bridgebr example from the OPL distribution. 
    Why do you need the weightage you describe since minimizing the global makespan  will have the effect of reducing the time delay between tasks?
    I hope this helps,


    Renaud Dumeur