Energetic Extended Edge Finding Filtering Algorithm for Cumulative Resource Constraints

Edge-finding and energetic reasoning are well known filtering rules used in constraint based disjunctive and cumulative scheduling during the propagation of the resource constraint. In practice, however, edge-finding is most used (because it has a low running time complexity) than the energetic reasoning which needs   2 n  time-intervals to be considered (where n is the number of tasks). In order to reduce the number of time-intervals in the energetic reasoning, the maximum density and the minimum slack notions are used as criteria to select the time-intervals. The paper proposes a new filtering algorithm for cumulative resource constraint, titled energetic extended edge finder of complexity   3 n  . The new algorithm is a hybridization of extended edge-finding and energetic reasoning: more powerful than the extended edge-finding and faster than the energetic reasoning. It is proven that the new algorithm subsumes the extended edge-finding algorithm. Results on Resource Constrained Project Scheduling Problems (RCPSP) from BL set and PSPLib librairies are reported. These results show that in practice the new algorithm is a good trade-off between the filtering power and the running time on instances where the number of tasks is less than 30.


Introduction
Scheduling is the process of assigning resources to tasks or activities over the time.There exist many types of scheduling problems following the tasks properties (preemptive or non-preemptive), the type of resources (disjunctive or cumulative) and the objective function (makespan, time late...).When a unique cumulative resource with non-preemptive tasks is considered, the problem is called cumulative scheduling problem (CuSP).
In a CuSP, a set of tasks T has to be executed on a resource of fixed capacity C. Each task i requires a fixed and constant amount of resource i c , and has to be executed during a fixed amount of time i p without interruption between an earliest start time est i (release date) and a latest completion time lct i (deadline).A solution of a CuSP instance is an assignment of valid start time i s to each task i in such a way that resource constraints are satisfied i.e., : est lct , : The inequalities in (1) ensure that each task is assigned a feasible start and end time, while (2) enforces the resource constraint.An example of CuSP is given in Figure 1.
The energy of a task i , is defined as i i i e c p   , its earliest completion time as ect est where  is a non-empty set of tasks.By convention, if  is the empty set, est    , lct    , and 0 e   .Throughout the paper, it is assumed that for any task i T  , est lct and i c C  , otherwise the problem has no solution.
The CuSP is a NP-complete problem [1].Therefore, only relaxation of the problem, for which it is possible to implement a polynomial time algorithm exists.In [2], the cumulative resource constraint is modelized by the global constraint CUMULATIVE in a constraint programming approach.The global constraint CUMULATIVE embeds many filtering algorithms.Among these algorithms, energetic reasoning, edge-finding and timetabling are the most used.

Related Works
To our knowledge, the word "energetic edge-finder" was firstly used in [3] where the author incorporates the energy-based deduction rule to edge-finder algorithm for disjunctive (unary) resource.The idea of hybridization of the edge-finding rule and the energetic reasoning for cumulative resource was suggested in [4].Indeed, in [4], Mercier and Van Hentenryck propose a two phase edge-finding algorithm where in the first phase, the potential adjustment values are computed.They found that many of these potential update values are unused and can be used inside an energetic-based second phase.After this suggestion, many filtering algorithms, hybridization of edge-finding rule and energetic reasoning have been proposed [5,6].In [6], the authors use in the first phase, the edge-finding algorithm of [7,8] to compute the potential update values and identify the corresponding time bounds of task intervals which provide the maximum update values.To each task, the time bounds used in the second phase is either the task intervals of maximum density or the task intervals of minimum slack.The resulting algorithm runs in   2 n  since both phases have this complexity.This algorithm was later improved in [5] by choosing for each task, the time bounds of task intervals of both maximum density and minimum slack which provide the maximum update values.Experimental results on RCPSP of the PSPLib [9] library and BL set [10] show that this variant is a good trade-off between the filtering power and the complexity but it does not dominate the edge-finding algorithm.
Energetic reasoning is one of the most powerful filtering algorithm in cumulative scheduling problems [1,10] since it dominates all the other rules (edge-finding [4,7,8,21], extended edge-finding [4,11], timetable [1], timetable edge-finding [12], timetable extended edge-finding [13]) except the not-first/not-last rule [14,15].However, it is not commonly used because it has a high running time (   3 n  time complexity), needs a high number of time-intervals to be considered and its success highly depends on the tightness of the variable bounds (highly cumulative problems).Recently, in [16], the authors proposed an approximative criterion for the potential of the energetic reasoning which allows the decrease of the running time with more nodes to explore in the search tree.The combination of a solver of the CP and SAT techniques for conflict analysis played recently an important role to solve cumulative scheduling problems efficiently [17,18].
In this paper, it is extended the energetic edge finder of [5] by adding the guarantee that the final algorithm deduces more than edge-finding and extended edge-finding.The main idea of our energetic extended edge finder is the combination of the best properties of (extended) edge-finding rule (interesting time bounds and good running time) and energetic reasoning (powerful filtering rule).The paper starts with the hypothesis that, the time bounds of task intervals used in the (extended) edgefinding algorithm can be interesting in an energetic reasoning.Based on this hypothesis, the number of time intervals to be considered in an energetic reasoning is reduced to those of (extended) edge-finding.

Contribution
This paper uses the time-bounds of task intervals considered in the computation of the edge-finding algorithm [7,8] and the extended edge-finding algorithm [11] in an energetic reasoning.Indeed, in [7,8], a complete edgefinding algorithm is proposed based on maximum density and minimum slack.The minimum slack is used in [11] to perform the extended edge-finding algorithm.The algorithm presented in this paper is an energetic version of the edge-finding and the extended edge-finding algorithms of [7,8,11] respectively.The complexity of the corresponding algorithm is where n is the number of tasks since each of the algorithm of [7,8] and [11] are quadratic.
It is obvious that the new algorithm subsumes the edge-finding and the extended edge-finding algorithms.The filtering power of this algorithm is less than the one of the energetic reasoning, but in practice, it is a good trade-off between the filtering power and the running time.Empirical evaluation of the algorithm on the RCPSP instances of well known library prove that, the new algorithm performs in most of the cases better in term of reduction of number of nodes of the search tree than the quadratic extended edge-finding [11], but needs more time to do so, for instances of more than 30 tasks.
The rest of the paper is organized as follows: Section 2 is devoted to the specification of the edge-finding rule and the energetic reasoning.In Section 3, the new energetic extended edge-finder is described and some of its properties are deduced.Experimental results are provided in the last Section.

Edge-Finding Rule and Energetic Reasoning Rule
In this section, it is specified the (extended) edge-finding rule as well as the energetic reasoning.

Edge-Finding and Extended Edge-Finding Rules
Let T be the set of tasks of a CuSP.If the energy e  of a set of tasks T   is larger than the available en- , then the problem has no feasible solution.Overload checking algorithms typically enforce the following relaxation of this feasibility condition, which may be computed in time [19,20].
For a given CuSP, an edge-finding rule identifies a set of tasks T   and a task i   such that, in any solution, all tasks of  end before the end of i .More precisely, if the scheduling of task i as early as possible (i.e., starting at est i ) induces an overload in the in- then, all the tasks in  end before the end of i noted here i   as in [21].When all tasks of a set  end before the end of a task i , then the release date of task i is updated to: Proposition 1 provides conditions under which all tasks of a set  of a CuSP end before the end of a task .i Proposition 1 [4,7,8,11,21] Let T   be a set of tasks of a CuSP of capacity C and i T    be a task.
And if i   then the earliest start time of task i is updated to Rules (EF) and (EF1) are known as edge-finding detection rules while (EEF) is the extended edge-finding detection rule.It is proved in [4] that a complete edge-finding algorithm that only considers sets T   and    , which are task intervals can be imple- mented.The definition of the task intervals is given in Definition 2.
The task intervals In [7,8], the authors propose a quadratic edge-finding algorithm based on maximum density and minimum slack notions.
Definition 3 [7,8] Let  be a task set of an Efeasible CuSP.The slack of the task set  , denoted SL  , is given by:   The detection of the classic edge-finding rule (EF) is done with the task intervals of minimum slack.For adjustment, as it is proved in [7,8], the task intervals of minimum slack and the one of maximum density are considered.
Definition 5 [7,8] Let  be a task set of an Efeasible CuSP.The density of the task set  , denoted Dens  , is given by: .lct est  is a task depending on the tasks k and i , where and that defines the task intervals with the maximum density: for all tasks j T  such that est est The main idea of the edge-finding algorithm of [7,8]  .Using those two subsets, if est i can be improved, then it will be updated, although not necessarily immediately to the best value.More iterations of the algorithm may be needed for that.
The extended edge-finding rule (EEF) detects additional updates missing by the edge-finding rule.In [11], the authors propose a quadratic extended edge-finding algorithm based on minimum slack notion.This algorithm supposes that the fix point of the edge-finding is reached and looks for the upper bound of the task intervals of minimal slack instead of the lower bound as it is the case for the edge-finding algorithm.
Definition 7 [11] Let i and j be two tasks of an E-feasible CuSP with est est  is a task depending on the tasks j and i , where and that defines the largest task intervals with the minimum slack: for all k T  such that lct lct , lct est lct est .

Energetic Reasoning
In the edge-finding rule, the energy required by a nonempty set of tasks  only considers tasks which are completely processed within the time window   est , lct while, the partial contribution of each task is taken into account in the energetic reasoning.There exists many varieties of energy consumption required by a task depending on the type of tasks, Fully Elastic energy and Partial Elastic energy for preemptive tasks and Leftshift/Right-shift energy for non-preemptive tasks [10].
Let i be a task and   , , max 0, min , , ect , lst The overall energy consumption required by all tasks noted For a given CuSP, it is obvious that if there exists a time interval   , a b with a b  such that its overall required energy consumption is more than available energy, then the problem is infeasible.This necessary condition is provided in the following proposition.
then the problem is infeasible.
In [1,10], the authors give a precise characterization of time bounds for which the necessary condition of the existence of a feasible scheduling should be guaranteed.This necessary condition is more powerful than the E-feasible one defined earlier.There exist relevant intervals to be considered to detect infeasibility.These intervals correspond to start and completion times of tasks.If , and for a fixed The authors propose a quadratic algorithm for testing this necessary condition in [1,10].
The left-shift energy required of a task i over a time interval   , a b defined by min , , min ect , max est , is i c times the number of time units during which i executes after time a if i is left-shifted, i.e., sche- duled as soon as possible.If scheduling task i as early as possible (i.e., starting at est i ) induces an overload in the interval   , a b then task i ends after b and est i can be updated according to Proposition 3.
Proposition 3 [1] Let   , a b be an interval with a b  and i be a task such that holds, then the earliest start time of task i is updated to: No specific characterization of relevant intervals for the adjustment was proposed so far.With the algorithm for adjustment in [1,10].In practice, the energetic reasoning adjustment is too time-consuming for producing any useful result [1].The paper tries to determine a better trade off between the filtering power and running time by reducing the number of intervals to examine.It is used the time bounds of task intervals of edge-finding and extended edge-finding algorithm in an energetic reasoning.The corresponding algorithm runs in as pure energetic reasoning adjustment.

The Rule
The energetic extended edge-finding rule is obtained by in the edge-finding detection rule (EF) and the extended edge-finding detection rule (EEF).It can be observed that the energetic reasoning rule (ER) is a generalization of rules (EF) and (EEF) with more strong energy consumption required by tasks over interval   est , lct .

 
The energetic extended edge-finding combines the techniques of edge-finding, extended edge-finding and partially the energetic reasoning.The new adjustment rule is obtained by substituting the energy e  by in the (extended) edge-finding adjustment rule.

Algorithm
The algorithm proposed in this Section is an energetic version of the edge-finding and the extended edge-finding algorithm of [7,8,11] respectively.The time bounds of task intervals used in the edge-finding (resp.the extended edge-finding) for detection and adjustment are used in an energetic reasoning.The new algorithm runs in since each of the edge-finding and extended edge-finding algorithms are quadratic [7,8,11].
The algorithm is broken into two parts to make it more digest.The first part is an energetic variant of the edgefinding algorithm of [7,8] while the second part is the one of the extended edge-finding algorithm of [11] (adjustments missing by the edge-finding and detect with the extended edge-finding).

First Part
This part consists only in adding an inner loop in the edge-finding algorithm of [7,8] after detection of time bounds, to recompute the energy of each task intervals  plus the partial contribution of the rest of tasks .T   It is presented in Algorithm 1 where: 1) The first outer loop (line 3) selects, in the order of non-decreasing deadlines, the tasks k T  which form the possible upper bounds of the task intervals.
2) The first inner loop (line 5) selects the tasks i T  that includes the possible lower bounds for the task intervals, in non-increasing order by release date.If lct lct i k


, then the energy and density of where the task is overloaded (see inequality (12)) and if the condition of line 17 is fulfilled, then the potential update i Dupd of the release date of i is calculated (line 18), based on the current interval . This potential update is stored only if it is greater than the previous potential update value calculated for this task using the maximum density time bounds.The release date of task i is updated at line 20 when the energetic reasoning condition of line 19 is fulfilled (see inequality (ER)).
3) The second inner loop (line 23) selects i in non-decreasing order by release date.The energies stored in the previous loop (line 21)    This first algorithm (Algorithm 1) corresponds to the energetic edge-finding algorithm.

Second Part
This part is the energetic version of the extended edgefinding algorithm of [11].It consist in adding an inner loop in the extended edge-finding algorithm of [11] after detection of time bounds, to recompute the energy of each task intervals  plus the partial contribution of the rest of tasks .T   The corresponding algorithm is presented in Algorithm 2 where: 1) The outer loop (line 37) iterates through the tasks j T  forming the possible lower bounds of the task intervals.
2) The inner loop (line 39) selects the tasks i T  that comprise the possible upper bounds for the task intervals, in non-decreasing order of deadlines.If 3) At the next iteration of this outer loop,   Merging Algorithms 1 and 2, the corresponding algorithm title "EnEEF" is an energetic extended edge-finding algorithm.

Some Properties of EnEEF
The energetic extended edge-finding algorithm EnEEF is compared to the conjunction of the edge-finding and the extended edge-finding.It is proved that, this algorithm subsumes the conjunction of edge-finding and extended edge-finding algorithm.

The Energetic Extended Edge-Finder EnEEF
Performs Some Additional Adjustments Missing by (Extended) Edge-Finding Using the CuSP instance of Figure 1, it is found that the energetic extended edge-finder EnEEF performs additional adjustments missing by (extended) edge-finding.Indeed, the application of the (extended) edge-finding algorithm on the CuSP instance of Figure 1 doesn't produce any adjustment whereas the application of our energetic extended edge finder EnEEF permits to update the release date of task A from 1 to 5. When the task B (resp.C or D ) is considered at the outer loop of line 3, the bounds of the task intervals of maximum density are [3,6) and the condition of line 19 holds for 3 a  and 6. b  It follows that Therefore, the release date est A is updated to The reader can check that no propagation is performed by the timetable edge-finding rule of [12] and the timetable extended edge-finding rule of [13] on the CuSP instance of Figure 1.

The Energetic Extended Edge-Finder EnEEF
Subsumes the Edge-Finding Algorithm Theorem 1 The energetic extended edge-finder EnEEF subsumes the edge-finding algorithm of [7,8].
Proof.It is important to prove that the edge-finding algorithm can not propagate anything when the energetic extended edge-finder EnEEF reaches the fix point.
By contradiction: assume that the energetic extended edge-finder EnEEF reaches the fix point, and that however, the edge-finding algorithm can propagate i.e., there are i ,  and  ,    such that (EF) or (EF1) holds and (Upd) improves est i using  .It will be prove (by contradiction) that the energetic extended edge-finding algorithm EnEEF can update the time bounds of task i .
1) The rule (EF1) holds.In this case, two subcases are considered: (a) If est est i   , then the energy contribution of task holds since the release date of task i is updated using the rule (Upd) and it is algebraically equivalent to Let k T  be a task such that : .
According to [7,8],  is the task intervals of minimum slack (Definition 4) and it follows , lct est lct est lct est .
When the task k is considered in the outer loop of line 3, in the second inner loop of line 23 the condition is detected at line 35 since and the adjustment follows.
, then the energy contribution of task holds since the release date of task i is updated using the set  and the rule (Upd) and it is algebraically equivalent to Let k T  be a task such that : .
According to [7,8],  is the task intervals of maximum density (Definition 6) and it follows Therefore, it appears that , , lct est lct est .
When the task k is considered in the outer loop of line 3, in the first inner loop of line 5 the condition is detected at line 19 since , , , and the adjustment follows.
2) The rule (EF) holds: Let k T  be a task such that lct : lct .
According to [7,8],  is the task intervals of minimum slack (Definition 4) and it follows When the task k is considered in the outer loop of line 3, in the second inner loop of line 23 the condition is detected at line 35 since According to this theorem, the first outer loop of line 3 ensures us that the fix point of the edge-finding rule will always be reached.This result is used to demonstrate that our algorithm dominates the extended edge-finding rule.In the following theorem, it is proved that, at the fix point of the edge-finding rule, if the extended edge-finding rule detects the relation i   for a set of tasks  and a task i then the set  can help to compute the potential updated value of est i .

The Energetic Extended Edge-Finder EnEEF
Subsumes the Extended Edge-Finding Algorithm Theorem 2 [11] Using theorem 2, it is derived the following theorem: Theorem 3 The energetic extended edge-finder EnEEF subsumes the extended edge-finding algorithm of [11].
Proof.As in Theorem 1, it is prove that the extended edge-finding algorithm can not propagate anything when the energetic extended edge-finder EnEEF reaches the fix point.
The contradiction is used: assume that the energetic extended edge-finder EnEEF reaches the fix point, and that however, the extended edge-finding algorithm can propagate i.e., there are i ,  and  ,    such that (EEF) holds and (Upd) improves est i using  .It will be prove (by contradiction) that the energetic extended edge-finding algorithm EnEEF can update the time bounds of task i .
Let j T  be a task such that est : est .
According to [11],  is the task intervals of minimum slack (Definition 7) and it follows , lct est lct est ect est .
When the task j is considered in the outer loop of line 37, in the inner loop of line 39 the condition .According to Theorem 1, the fix point of the edge-finding rule is reached and the Theorem 3 shows that the task intervals used for detection can also be used to perform the adjustment.Therefore, an adjustment is performed at line 52 since this adjustment is justified by the condition of line 51.■

Experimental Results
For our experiments, it is consided the resource-constrained project scheduling problems (RCPSP).A RCPSP consists of a set of resources of finite capacities, a set of tasks of given processing times, an acyclic network of precedence constraints between tasks, and a horizon (a deadline for all tasks).Each task requires a fixed amount of each resource over its execution time.The problem is to find a start time assignment for every task satisfying the precedence and resource capacity constraints, with a makespan (i.e., the time at which all tasks are completed) at most equal to the horizon.The cumulative scheduling problem (CuSP) is a sub-problem of the RCPSP, where precedence constraints are relaxed and a single resource is considered at a time; both problems are NP-complete [10].
Tests were performed on the RCPSP single-mode J30, J60 and J90 test sets of the well-established benchmark library PSPLib [9] as well as on the library of [10] (BL).The data sets J30, J60 and J90 consist of 480 instances of 30, 60 and 90 tasks respectively, while BL consists of 40 instances of 20 and 25 tasks respectively.Each instance from the PSPLib sets includes tasks to be scheduled over 4 resources, while instances from the BL suite share 3 resources.
Starting with the provided horizon as an upper bound, each instance of problem is modeled as an instance of Constraint Satisfaction Problem (CSP); variables are start times of tasks and they are constrained by precedence graph (i.e., precedence relations between pairs of tasks were enforced with linear constraints) and resource limitation (i.e., each resource was modeled with a single CU-MULATIVE constraint [2]).
Dynamic branching schemes are the most used branching strategy in CP, as they typically result in smaller search trees.However, when comparing filtering algorithms of differing pruning strengths, dynamic branching can be misleading: in some cases the domain resulting from weaker pruning may result in a choice point yielding a smaller subtree, and hence a faster solution.In order to minimize the effect of differing pruning strength on the shape of the search trees, it is consided two branching models: 1) For dynamic branching, variable selection was based on the minimum of domain size, divided by degree (i.e., the number of propagators depending on the variable).Ties were broken by selecting the task with the minimum latest start time; values were taken from the smallest range for domains with multiple ranges, or the lesser half of the domain when only one range existed [23].
2) For static branching, it is selected the first unassigned variable, and the smallest value in the domain.
Tests were performed on a Pentium(R) Dual-Core processor, CPU 2.70 ghz, 1.96 GB of RAM.The implementation was done in c++ using the Gecode 3.7.3[23] constraint solver.For each benchmark instance, it is used branch and bound search to minimize the makespan, stopping only when the optimum solution was found.Each test was run three times, with the best result reported; any search taking more than 300 seconds was counted as a failure.
Two filtering algorithms for different configurations of the global constraint CUMULATIVE have been considered.
1) The first CUMULATIVE propagator noted "EEF" for tasks of fixed duration is a sequence of three filters: the   2 n  extended edge-finding algorithm from [11], the overload checking from [19] and timetabling algorithm from [1].
2) The second propagator noted "EnEEF" is a modified version of "EEF" that substitutes the extended edgefinding algorithm from [11] for the   3 n  energetic extended edge-finder of this paper (EnEEF).

Dynamic Branching
Table 1 reports the results for all instances from the test sets BL, J30, J60 and J90 that were solved by at least one propagator using dynamic branching.There were 40, 392, 341 and 324 for BL, J30, J60 and J90 respectively.In this table, the line "solve" reports the number of instances in which each algorithm found the optimal solution, did so in the fastest time "time", and generated the smallest search tree "nodes", using dynamic branching.Line "Av.time" reports the average CPU time (in second) used to reach the optimal solution while line "Av.node"denotes the average number of nodes reported on instances solved by both propagators.Both propagators solve the same number of instances in each test sets.As can be observed form Figure 2, using dynamic branching EnEEF performs the strongest among the two algorithms on instances less than 30 tasks.Unfortunately, the use of a dynamic branching scheme appears to hide the domination of EnEEF on EEF.On instances with more than 30 tasks, EnEEF requires more time for small reduction of tree search.
Here, on BL set (reputed to be highly cumulative [10]), 87.5% of instances were solved by EnEEF with better running time and 85% of instances were solved with smallest search tree.On J30, J60 and J90 instances (reputed to be highly disjunctive [10]), the performance of the EnEEF is reduced.This result confirms that of Baptiste et al. [1] concerning the usage of the energetic reasoning on tightness instances.

Static Branching
In Table 2, lines "solve", "time", "node", "Av.time" and "Av.node" have the same meaning as in Table 1.For static branching scheme, an instance of BL25 was solved only by the propagator EnEEF in the time available.Two other instances for J30 and J60 respectively was soled by EEF only in the time available.The tests show that the EEF propagator is faster in a large majority of test instances but the EnEEF remains the best on BL test set.As in Table 1, the average running time of EEF is more than two times the one of EnEEF on the BL25 test set.The same remark can be observed on the average of nodes count of the different propagators on BL25 for both static and dynamic branching scheme.Runtimes comparison: EnEEF/EEF EEF and (right) the proportional nodes count when using static branching, sorted by number of tasks of instances.It appears that the propagator EnEEF subsumes the EEF in almost all test instances.On tests set J30, J60 and J90, EnEEF need more time for a weak reduction of the tree search on instances solved by the propagators.

Conclusion
In this paper, it is presented a new filtering algorithm for cumulative resource, hybridization of the extended edgefinding rule and the energetic reasoning.The new algorithm is stronger than the extended edge-finding algorithm, but weaker than the energetic reasoning and runs in where n is the number of tasks sharing the resource.In practice, it is a good trade-off between the filtering power and the running time.Experimental results demonstrate that on a standard benchmark suite, our new algorithm reduces substantially more number of nodes-thus the tree search-than the extended edgefinding algorithm on instances where the number of tasks is less than 30.The time complexity of this algorithm remains too high.Our future work will focus on the reduction of the complexity of this algorithm from using a  -tree data structures.
energy notation along with that of earliest start and latest completion time may be extended to non-empty sets of tasks as follows:

Figure 1 .
Figure 1.A scheduling problem of 5 tasks sharing a resource of capacity C = 3.

,
a b be a time interval with a b  .The left-shift/right-shift energy consumption required by i over  , i is the nonnegative minimum of 1) the volume in the interval   , a b , 2) the energy of task i , 3) the left shifted energy, and 4) the right shifted energy i.e., 12), then the energy required by interval the inner loop of line 13.The condition of line 15 checks if the interval the adjustment follows using the potential update values previously computed.■

Figure 2 .
Figure 2. Comparison of (left) proportional runtimes of EnEEF over EEF and (right) proportional nodes count when using dynamic branching, sorted by number of tasks of instances.Table 2. Number of instances in which each algorithm found the optimal solution (solve), did so in the fastest time (time), and generated the smallest search tree (nodes), using static branching.Average runtime (Av.time) and nodes (Av.node) count on instances were both solvers can found the optimal solutions are considered.

Figure 3 .
Figure 3.Comparison of (left) proportional runtimes of EnEEF over EEF and (right) proportional nodes count when using static branching, sorted by number of tasks of instances.
is that once the relation i   is discovered, then it is not necessary to iterate over all subsets  of  .It is enough to consider only (1) subset with minimum slack