06.08.2013 Views

A subgradient-based branch-and-bound algorithm for the ...

A subgradient-based branch-and-bound algorithm for the ...

A subgradient-based branch-and-bound algorithm for the ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

(νj + fj)/sj, where<br />

<br />

<br />

νj = min<br />

x<br />

i∈I<br />

cijxij : <br />

i∈I<br />

<br />

dixij = sj , 0 ≤ xij ≤ 1 ∀ i ∈ I .<br />

The <strong>branch</strong> that results from requiring <strong>the</strong> selected plant to be open is <strong>the</strong>n always<br />

investigated first.<br />

We used a FORTRAN code of Ryu <strong>and</strong> Guignard, but replaced <strong>the</strong> out-ofkilter<br />

method used in this code <strong>for</strong> solving <strong>the</strong> transportation problems by calls<br />

to <strong>the</strong> network simplex <strong>algorithm</strong> of CPLEX’s callable library. The code was <strong>the</strong>n<br />

compiled <strong>and</strong> run on <strong>the</strong> same machine as BB-SG. Table 3 compares CAPLOC<br />

<strong>and</strong> BB-SG on <strong>the</strong> test problem instances from Klose <strong>and</strong> Görtz (2007) <strong>and</strong> Table 4<br />

summarizes <strong>the</strong>se results by again averaging over <strong>the</strong> capacity ratio r. As can be seen<br />

from Table 3 <strong>and</strong> 4, BB-SG is far superior to CAPLOC. (The number of enumerated<br />

nodes reported <strong>for</strong> CAPLOC in this table does not include <strong>the</strong> <strong>branch</strong>es investigated<br />

in <strong>the</strong> Lagrangean probing.) On <strong>the</strong> test problems of Table 3, BB-SG was on average<br />

about 55 times faster than CAPLOC. Basically, both <strong>algorithm</strong>s are <strong>based</strong> on <strong>the</strong><br />

same methodology; <strong>the</strong>y apply <strong>the</strong> same Lagrangean relaxation <strong>and</strong> use <strong>subgradient</strong><br />

optimization <strong>for</strong> lower <strong>bound</strong>ing. BB-SG however greatly benefits from, firstly, <strong>the</strong><br />

best lower <strong>bound</strong> search <strong>and</strong>, secondly <strong>and</strong> mostly, from better <strong>branch</strong>ing decisions<br />

<strong>based</strong> on a reasonable estimate of a primal solution.<br />

Since also <strong>the</strong> test problem instances from <strong>the</strong> OR-library are of a size <strong>and</strong><br />

difficulty that can be managed by CAPLOC, we also compared both methods on<br />

<strong>the</strong>se test problems. Each of <strong>the</strong>se problem instances is of size |I| × |J| = 1000 ×<br />

100. Table 5 shows <strong>the</strong> results, which again indicate <strong>the</strong> superiority of BB-SG. The<br />

ORLIB instances are easier to solve than <strong>the</strong> instances of Table 3, but still BB-SG<br />

is about 17 times faster than CAPLOC on <strong>the</strong>se instances.<br />

4.3 Comparison with CPLEX <strong>and</strong> <strong>the</strong> <strong>branch</strong>-<strong>and</strong>-cut method of Avella <strong>and</strong> Boccia<br />

(2007)<br />

We used CPLEX’s MIP solver in <strong>the</strong> following way <strong>for</strong> solving <strong>the</strong> CFLP (1)–(7).<br />

We started with <strong>the</strong> weaker aggregate <strong>for</strong>mulation that is obtained by taking <strong>for</strong> each<br />

j ∈ J <strong>the</strong> sum of constraints (5) over all i ∈ I. Additional variable upper <strong>bound</strong>s (5)<br />

were <strong>the</strong>n included “on <strong>the</strong> fly” whenever violated by <strong>the</strong> current LP solution. The<br />

model <strong>for</strong>mulation found this way was <strong>the</strong>n passed to <strong>the</strong> MIP solver, after removing<br />

be<strong>for</strong>eh<strong>and</strong> those added constraints (5) that showed a positive slack at <strong>the</strong> final<br />

LP solution. We also passed a feasible solution <strong>and</strong> upper <strong>bound</strong> to CPLEX’s MIP<br />

solver. The solution was obtained using a simple rounding procedure, which was<br />

applied each time <strong>the</strong> current LP relaxation was solved. To this end, <strong>the</strong> facilities<br />

j ∈ J are sorted according to non-decreasing LP value of <strong>the</strong> associated variable yj<br />

<strong>and</strong> <strong>the</strong>n opened as long as yj ≥ 0.9 or <strong>the</strong> capacity of <strong>the</strong> open facilities is smaller<br />

than <strong>the</strong> total dem<strong>and</strong>. CPLEX’s MIP solver was called with default option values<br />

except that (i) CPLEX’s internal primal heuristic was switched off; (ii) <strong>the</strong> relative<br />

optimality tolerance was set to 10 −6 ; (iii) <strong>the</strong> parameters CutsFactor, CutPass <strong>and</strong><br />

AggCutLim respectively controlling <strong>the</strong> number of cuts CPLEX may add, <strong>the</strong> number<br />

of cutting rounds CPLEX may per<strong>for</strong>m, <strong>and</strong> <strong>the</strong> number of constraints that can<br />

9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!