| CPC G06F 9/5038 (2013.01) [G06F 9/5033 (2013.01); G06F 9/5088 (2013.01); G06N 7/01 (2023.01); G06F 2209/504 (2013.01); G06F 2209/508 (2013.01)] | 18 Claims |

|
1. A computer implemented method to explain large scale scheduling solutions on large scale project scheduling instances, comprising:
receiving, by an artificial intelligence (A.I.) module, an original instance of a resource constrained scheduling problem, wherein the instance includes a set of tasks, one or more resource requirements and one or more constraints;
determining, using an optimizer engine, a schedule for the set of tasks based on (i) the one or more resource requirements and on (ii) the one or more constraints, while minimizing a makespan of the schedule;
upon a determination that the set of tasks are constrained to a single uniform resource type:
constructing a set of time slots of start and end times for each of the tasks;
adding a left dummy task and a right dummy task to the left of and to the right of each time slot in the set of time slots, respectively;
constructing a transportation problem instance, wherein:
the left dummy task, ending before a current time slot, represents suppliers as the tasks; and
the right dummy task, starting after the current time slot, represents demands as the tasks;
solving the transportation problem instance to obtain sets of pairs of tasks, wherein each pair of tasks represents:
suppliers and demands; and
a non-zero transfer of a resource from a supplier task to a demand task;
adding the resource link, for each pair of tasks, to a precedence graph; and
post-processing the dummy tasks, comprising:
for each dummy task, adding the resource links between incoming neighbor tasks and out-going neighbor tasks in the precedence graph; and
deleting all the dummy tasks;
generating a minimal set of resource links, wherein the resource links are based on resource dependencies between tasks in the set of tasks;
adding the resource links to the original instance of the resource constrained scheduling problem, as precedence constraints;
removing all the resource constraints from the original instance of the resource constrained scheduling problem;
computing, using a constraint propagation method, a set of critical tasks in the schedule of tasks using a non-resource constrained critical path; and
providing one or more schedules with an explanation of an optimized order of the set of tasks based on the use of the non-resource constrained critical path.
|