• No results found

Branching and search strategies

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.

Related documents