As to the branching and search strategies, we are inspired by the results obtained in the previous chapters by employing SCCUB-p procedure. On the one hand, SCCUB-0, where all the patterns having values greater than 0.5 are included in the solution, reduces the dimension of the problem significantly and an integer solution to the problem is found quickly. On the other hand, optimal solution is obtained for the majority of the BPP instances by employing more time-consuming procedures like SCCUB-75, where only %25 of the patterns having values greater than 0.5 are included in the solution. The mentioned random processes are arguably amenable to deterministic versions of them, which subsequently, we propose as novel branching and search strategies.
Following the termination of column generation at the root node of the branch-and-bound tree, an initial core of patterns is created and that contains the most promising scenarios of the combination of the basic patterns that could lead to the optimal solution of BPP. The first element of the initial core is constituted of %25 of the best patterns having values greater than 0.5. The second scenario added to the initial core, would be that where one excludes the worst pattern out of the elite group (%25 of the best patterns having values greater than 0.5) and considers the remaining patterns as being the second element of the initial core. This elimination process continues until the pattern with the highest value is added as a single pattern to the initial core. At this point, to ensure the capability of the branch-and-bound procedure in exploring the whole search space of the problem, a scenario will be added to the core in which, the pattern with the highest value is considered as a forbidden pattern. To understand how the initial core is constructed, let us assume that the following basic patterns having values greater than 0.5, are obtained through, solving the continuous relaxation of the set-covering formulation of BPP at the root node.
94
Pattern A B C D E F G H I J
Value 1 0.9 0.85 0.85 0.7 0.65 0.65 0.6 0.55 0.55
Firstly, the number of the patterns to be eliminated is computed as:
e = β 10075 Γ 10 β = 7
So that patterns A, B, and C are left after the elimination process. The first element of the initial core will then be constructed as:
πΆππππΌ = {πππ1= {π΄, π΅, πΆ} πΉπ1= β }
where MUP denotes the Must Used Patterns,πΉπ the forbidden ones, and πΆππππΌ the initial core.
The second scenario will be eliminating the last pattern of the πππ1 and considering the rest of the patterns as πππ2 and adding it to the initial core. The core will then become:
πΆππππΌ = {{πππ1= {π΄, π΅, πΆ} πΉπ1= β } , {
πππ2 = {π΄, π΅} πΉπ2= β }}.
Following the same method, the core will be expanded as:
πΆππππΌ = {{πππ1= {π΄, π΅, πΆ} πΉπ1= β } , { πππ2 = {π΄, π΅} πΉπ2= β } , { πππ3= {π΄} πΉπ3= β }}.
Since the last pattern added to the core is a single one, its forbidden version should also be considered, and this will complete the process of building the initial core, and the resulting initial core will be:
πΆππππΌ = {{πππ1= {π΄, π΅, πΆ} πΉπ1= β } , { πππ2= {π΄, π΅} πΉπ2= β } , { πππ3= {π΄} πΉπ3= β } , { πππ4= β πΉπ4= {π΄}}}.
Following the completion of the initial core, each element of the core starting from the first one will be considered as the branching constraints, and in all of the subsequent nodes, the same process will be employed to expand the core until all the nodes are explored and
95
pruned by either integrality or infeasibility or bound. We call this strategy of searching the solution space, a batch diving strategy.
However, for more difficult instances of BPP, it might be possible that the initial core constructed this way, is not the best combination of patterns for finding the optimal solution in the shortest amount of time.
To this end, if the number of the nodes explored by using the initial core, exceeds a specific threshold, a different core will be fed into the branch-and-bound procedure.
For the new core, all the patterns having values greater than 0.5, will be considered. But, only every other pattern starting from the pattern with the highest value will be used to build the core.
The core established by using the method described hereby, for our example, will be derived as being: πΆπππβ² = {{πππ1= {π΄, πΆ, πΈ, πΊ, πΌ} πΉπ1= β } , { πππ2= {π΄, πΆ, πΈ, πΊ} πΉπ2= β } , { πππ3= {π΄, πΆ, πΈ} πΉπ3= β } , { πππ4= {π΄, πΆ} πΉπ4= β }}. Again, branch-and-bound procedure will start searching for the optimal solution, but this time, special focus is geared toward branching on patterns of the πΆπππβ². If the branch-and- bound procedure fails to find the optimal solution after exhausting a limit number of nodes, another core will be inputted.
This new core is built by considering all the patterns having values greater than 0.5, but only every other third pattern will be selected for inclusion into the core. For the current example, πΆπππβ²β² could be viewed as being:
πΆπππβ²β² = {{πππ1= {π΄, π·, πΊ, π½} πΉπ1= β } , { πππ2= {π΄, π·, πΊ} πΉπ2= β } , { πππ3= {π΄, π·} πΉπ3= β }}.
Similarly, πΆπππβ²β²β²and πΆπππβ²β²β²β² will be constructed by considering every other fourth and every other fifth patterns, respectively.
πΆπππβ²β²β² = {{πππ1= {π΄, πΈ, πΌ} πΉπ1= β } , { πππ2= {π΄, πΈ} πΉπ2= β }}. πΆπππβ²β²β²β² = {{πππ1= {π΄, πΉ} πΉπ1= β }}.
96
Such choices for the cores of the patterns in the branch-and-bound procedure, allow for the exploration of various and at the same time, promising regions of the solution space.